@kne-components/components-admin 1.1.25 → 1.1.26

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 (78) hide show
  1. package/build/asset-manifest.json +54 -50
  2. package/build/index.html +1 -1
  3. package/build/remoteEntry.js +1 -1
  4. package/build/remoteEntry.js.map +1 -1
  5. package/build/static/css/3066.cf4075eb.chunk.css +2 -0
  6. package/build/static/css/{3066.dc31dbc0.chunk.css.map → 3066.cf4075eb.chunk.css.map} +1 -1
  7. package/build/static/css/369.f468af01.chunk.css +2 -0
  8. package/build/static/css/{369.4e425294.chunk.css.map → 369.f468af01.chunk.css.map} +1 -1
  9. package/build/static/css/4168.b4ca737e.chunk.css +2 -0
  10. package/build/static/css/{4168.d040d109.chunk.css.map → 4168.b4ca737e.chunk.css.map} +1 -1
  11. package/build/static/css/4460.f6bca362.chunk.css +2 -0
  12. package/build/static/css/4460.f6bca362.chunk.css.map +1 -0
  13. package/build/static/css/4948.eea1c5f6.chunk.css +2 -0
  14. package/build/static/css/{4948.c27c1bb2.chunk.css.map → 4948.eea1c5f6.chunk.css.map} +1 -1
  15. package/build/static/css/{5084.ddc5e70e.chunk.css → 5084.f04eefae.chunk.css} +2 -2
  16. package/build/static/css/{5084.ddc5e70e.chunk.css.map → 5084.f04eefae.chunk.css.map} +1 -1
  17. package/build/static/css/5425.f468af01.chunk.css +2 -0
  18. package/build/static/css/{5425.4e425294.chunk.css.map → 5425.f468af01.chunk.css.map} +1 -1
  19. package/build/static/css/5795.a93a6cb7.chunk.css +2 -0
  20. package/build/static/css/{5795.138e7d4d.chunk.css.map → 5795.a93a6cb7.chunk.css.map} +1 -1
  21. package/build/static/css/6024.cb5d801f.chunk.css +2 -0
  22. package/build/static/css/{6024.2d74587b.chunk.css.map → 6024.cb5d801f.chunk.css.map} +1 -1
  23. package/build/static/css/7687.d33fb935.chunk.css +2 -0
  24. package/build/static/css/7687.d33fb935.chunk.css.map +1 -0
  25. package/build/static/css/875.73c1d7bd.chunk.css +12 -0
  26. package/build/static/css/875.73c1d7bd.chunk.css.map +1 -0
  27. package/build/static/js/{369.e1f9c751.chunk.js → 369.b78442fe.chunk.js} +3 -3
  28. package/build/static/js/{369.e1f9c751.chunk.js.map → 369.b78442fe.chunk.js.map} +1 -1
  29. package/build/static/js/3690.9a50be09.chunk.js +2 -0
  30. package/build/static/js/3690.9a50be09.chunk.js.map +1 -0
  31. package/build/static/js/{4836.e1f53cfe.chunk.js → 4836.74f296ea.chunk.js} +2 -2
  32. package/build/static/js/{4836.e1f53cfe.chunk.js.map → 4836.74f296ea.chunk.js.map} +1 -1
  33. package/build/static/js/{4948.3284a018.chunk.js → 4948.69740a43.chunk.js} +3 -3
  34. package/build/static/js/{4948.3284a018.chunk.js.map → 4948.69740a43.chunk.js.map} +1 -1
  35. package/build/static/js/{5084.99e2b83e.chunk.js → 5084.06a38430.chunk.js} +2 -2
  36. package/build/static/js/{5084.99e2b83e.chunk.js.map → 5084.06a38430.chunk.js.map} +1 -1
  37. package/build/static/js/{5272.b987cd40.chunk.js → 5272.ee8c301b.chunk.js} +2 -2
  38. package/build/static/js/{5272.b987cd40.chunk.js.map → 5272.ee8c301b.chunk.js.map} +1 -1
  39. package/build/static/js/{5425.ee671541.chunk.js → 5425.3a6321a3.chunk.js} +3 -3
  40. package/build/static/js/{5425.ee671541.chunk.js.map → 5425.3a6321a3.chunk.js.map} +1 -1
  41. package/build/static/js/{5795.05d21882.chunk.js → 5795.a6bfd18a.chunk.js} +3 -3
  42. package/build/static/js/{5795.05d21882.chunk.js.map → 5795.a6bfd18a.chunk.js.map} +1 -1
  43. package/build/static/js/{7517.3c13b48e.chunk.js → 7517.5b0506e9.chunk.js} +2 -2
  44. package/build/static/js/{7517.3c13b48e.chunk.js.map → 7517.5b0506e9.chunk.js.map} +1 -1
  45. package/build/static/js/{7687.810c9e57.chunk.js → 7687.0e4dc21a.chunk.js} +2 -2
  46. package/build/static/js/{7687.810c9e57.chunk.js.map → 7687.0e4dc21a.chunk.js.map} +1 -1
  47. package/build/static/js/{7747.556a6701.chunk.js → 7747.5fce18ee.chunk.js} +2 -2
  48. package/build/static/js/7747.5fce18ee.chunk.js.map +1 -0
  49. package/build/static/js/8406.6fb30c10.chunk.js +2 -0
  50. package/build/static/js/{8406.e8abf05d.chunk.js.map → 8406.6fb30c10.chunk.js.map} +1 -1
  51. package/build/static/js/{main.71bda9a2.js → main.d18c90b0.js} +2 -2
  52. package/build/static/js/{main.71bda9a2.js.map → main.d18c90b0.js.map} +1 -1
  53. package/build/static/media/check~elxgVvVe.d6bb9a199bf3a5853749ecea3ce6a127.svg +3 -0
  54. package/build/static/media/collapse~vphRLfPi.378d83c01100d172e79c04ba3179be58.svg +6 -0
  55. package/build/static/media/copy~drOLfxzP.5880fbbaf59db852794c06f32786d138.svg +4 -0
  56. package/build/static/media/expand~blSbUwvt.8a0d1f9fb3339d7da34c3117df14b545.svg +6 -0
  57. package/package.json +2 -2
  58. package/build/static/css/3066.dc31dbc0.chunk.css +0 -2
  59. package/build/static/css/369.4e425294.chunk.css +0 -2
  60. package/build/static/css/4168.d040d109.chunk.css +0 -2
  61. package/build/static/css/4460.9a69ea92.chunk.css +0 -2
  62. package/build/static/css/4460.9a69ea92.chunk.css.map +0 -1
  63. package/build/static/css/4948.c27c1bb2.chunk.css +0 -2
  64. package/build/static/css/5425.4e425294.chunk.css +0 -2
  65. package/build/static/css/5795.138e7d4d.chunk.css +0 -2
  66. package/build/static/css/6024.2d74587b.chunk.css +0 -2
  67. package/build/static/css/7687.e31548b1.chunk.css +0 -2
  68. package/build/static/css/7687.e31548b1.chunk.css.map +0 -1
  69. package/build/static/css/875.e7d143b9.chunk.css +0 -12
  70. package/build/static/css/875.e7d143b9.chunk.css.map +0 -1
  71. package/build/static/js/3556.7b6f32dc.chunk.js +0 -2
  72. package/build/static/js/3556.7b6f32dc.chunk.js.map +0 -1
  73. package/build/static/js/7747.556a6701.chunk.js.map +0 -1
  74. package/build/static/js/8406.e8abf05d.chunk.js +0 -2
  75. /package/build/static/js/{369.e1f9c751.chunk.js.LICENSE.txt → 369.b78442fe.chunk.js.LICENSE.txt} +0 -0
  76. /package/build/static/js/{4948.3284a018.chunk.js.LICENSE.txt → 4948.69740a43.chunk.js.LICENSE.txt} +0 -0
  77. /package/build/static/js/{5425.ee671541.chunk.js.LICENSE.txt → 5425.3a6321a3.chunk.js.LICENSE.txt} +0 -0
  78. /package/build/static/js/{5795.05d21882.chunk.js.LICENSE.txt → 5795.a6bfd18a.chunk.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_kne_components_components_admin=globalThis.webpackChunk_kne_components_components_admin||[]).push([[7747],{78798(e,t,n){n.d(t,{A:()=>r});var o=n(98406),a=n(55199);const r={name:"Account",summary:"<p>Account \u7ec4\u4ef6\u63d0\u4f9b\u4e86\u5b8c\u6574\u7684\u7528\u6237\u8d26\u53f7\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u62ec\u767b\u5f55\u3001\u6ce8\u518c\u3001\u4fee\u6539\u5bc6\u7801\u3001\u5fd8\u8bb0\u5bc6\u7801\u3001\u91cd\u7f6e\u5bc6\u7801\u7b49\u529f\u80fd\u3002\u652f\u6301\u90ae\u7bb1\u548c\u624b\u673a\u53f7\u4e24\u79cd\u8d26\u53f7\u7c7b\u578b\uff0c\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684 UI \u98ce\u683c\u548c\u4ea4\u4e92\u4f53\u9a8c\u3002</p>",api:"<h3>Login \u767b\u5f55\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u767b\u5f55\u6807\u9898</td>\n<td>string</td>\n<td>'\u767b\u5f55'</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u767b\u5f55\u7c7b\u578b\uff0c\u652f\u6301\u90ae\u7bb1\u6216\u624b\u673a\u53f7</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>registerUrl</td>\n<td>\u6ce8\u518c\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>forgetUrl</td>\n<td>\u5fd8\u8bb0\u5bc6\u7801\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Register \u6ce8\u518c\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6ce8\u518c\u6807\u9898</td>\n<td>string</td>\n<td>'\u6ce8\u518c'</td>\n</tr>\n<tr>\n<td>systemName</td>\n<td>\u7cfb\u7edf\u540d\u79f0\uff0c\u663e\u793a\u5728\u9876\u90e8\u6a2a\u5e45</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u6ce8\u518c\u7c7b\u578b\uff0c\u652f\u6301\u90ae\u7bb1\u6216\u624b\u673a\u53f7</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u5f55\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>sendVerificationCode</td>\n<td>\u53d1\u9001\u9a8c\u8bc1\u7801\u56de\u8c03\u51fd\u6570</td>\n<td>({ type, data }) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>topBanner</td>\n<td>\u9876\u90e8\u6a2a\u5e45\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Modify \u4fee\u6539\u5bc6\u7801\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6807\u9898</td>\n<td>string</td>\n<td>'\u4fee\u6539\u5bc6\u7801'</td>\n</tr>\n<tr>\n<td>systemName</td>\n<td>\u7cfb\u7edf\u540d\u79f0\uff0c\u663e\u793a\u5728\u9876\u90e8\u6a2a\u5e45</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u8d26\u53f7\u7c7b\u578b</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>account</td>\n<td>\u8d26\u53f7\u4fe1\u606f\uff08\u90ae\u7bb1\u6216\u624b\u673a\u53f7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>isReset</td>\n<td>\u662f\u5426\u4e3a\u91cd\u7f6e\u5bc6\u7801\u6a21\u5f0f\uff08\u4e0d\u9700\u8981\u8f93\u5165\u65e7\u5bc6\u7801\uff09</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>header</td>\n<td>\u81ea\u5b9a\u4e49\u5934\u90e8\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>null</td>\n</tr>\n<tr>\n<td>topBanner</td>\n<td>\u9876\u90e8\u6a2a\u5e45\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>ForgetByEmail \u5fd8\u8bb0\u5bc6\u7801\uff08\u90ae\u7bb1\uff09\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6807\u9898</td>\n<td>string</td>\n<td>'\u5fd8\u8bb0\u5bc6\u7801'</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u5f55\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData, callback) =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>ResetPassword \u91cd\u7f6e\u5bc6\u7801\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6807\u9898</td>\n<td>string</td>\n<td>'\u91cd\u7f6e\u767b\u5f55\u5bc6\u7801'</td>\n</tr>\n<tr>\n<td>systemName</td>\n<td>\u7cfb\u7edf\u540d\u79f0\uff0c\u663e\u793a\u5728\u9876\u90e8\u6a2a\u5e45</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u8d26\u53f7\u7c7b\u578b</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>account</td>\n<td>\u8d26\u53f7\u4fe1\u606f\uff08\u90ae\u7bb1\u6216\u624b\u673a\u53f7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u5f55\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>topBanner</td>\n<td>\u9876\u90e8\u6a2a\u5e45\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>LoginOuterContainer \u767b\u5f55\u5916\u5c42\u5bb9\u5668\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u7cfb\u7edf\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>logo</td>\n<td>\u7cfb\u7edf Logo \u56fe\u7247\u5730\u5740</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>leftInner</td>\n<td>\u5de6\u4fa7\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u53f3\u4fa7\u5185\u5bb9\u533a\u57df</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Logout \u767b\u51fa\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>storeKeys</td>\n<td>Token \u5b58\u50a8\u952e\u540d\u914d\u7f6e</td>\n<td>{ token: string }</td>\n<td>{ token: 'X-User-Token' }</td>\n</tr>\n<tr>\n<td>domain</td>\n<td>Token \u5b58\u50a8\u57df\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u51fa\u540e\u8df3\u8f6c\u7684\u767b\u5f55\u9875\u9762\u5730\u5740</td>\n<td>string</td>\n<td>'/account/login'</td>\n</tr>\n<tr>\n<td>...props</td>\n<td>\u5176\u4ed6 Button \u7ec4\u4ef6\u5c5e\u6027</td>\n<td>ButtonProps</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>useLogout Hook</h3>\n<p>\u7528\u4e8e\u83b7\u53d6\u767b\u51fa\u51fd\u6570\u7684 Hook\u3002</p>\n<pre><code class=\"language-javascript\">const logout = useLogout({ storeKeys, domain, loginUrl });\n</code></pre>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>storeKeys</td>\n<td>Token \u5b58\u50a8\u952e\u540d\u914d\u7f6e</td>\n<td>{ token: string }</td>\n<td>{ token: 'X-User-Token' }</td>\n</tr>\n<tr>\n<td>domain</td>\n<td>Token \u5b58\u50a8\u57df\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u51fa\u540e\u8df3\u8f6c\u7684\u767b\u5f55\u9875\u9762\u5730\u5740</td>\n<td>string</td>\n<td>'/account/login'</td>\n</tr>\n</tbody>\n</table>\n<p>\u8fd4\u56de\u503c\uff1a<code>() =&gt; void</code> - \u6267\u884c\u767b\u51fa\u64cd\u4f5c\u7684\u51fd\u6570</p>",example:{isFull:!0,className:"",style:"",list:[{title:"Login",description:"\u767b\u5f55",code:"const { LoginOuterContainer, Login } = _Account;\nconst { Flex, Radio, Space, message } = antd;\nconst { useState } = React;\n\nconst BaseExample = () => {\n const [type, setType] = useState('email');\n \n return (\n <Flex vertical gap={20}>\n <Flex justify=\"center\">\n <Space>\n <span>\u767b\u5f55\u7c7b\u578b:</span>\n <Radio.Group\n value={type}\n onChange={e => {\n setType(e.target.value);\n }}\n options={[\n { label: '\u90ae\u7bb1\u767b\u5f55', value: 'email' },\n { label: '\u624b\u673a\u767b\u5f55', value: 'phone' }\n ]}\n />\n </Space>\n </Flex>\n <LoginOuterContainer\n title=\"\u4f01\u4e1a\u7ba1\u7406\u7cfb\u7edf\"\n logo=\"https://api.dicebear.com/7.x/shapes/svg?seed=company\">\n <Login\n type={type}\n registerUrl=\"/register\"\n forgetUrl=\"/forget\"\n onSubmit={formData => {\n console.log('\u767b\u5f55\u4fe1\u606f:', formData);\n message.success(`\u767b\u5f55\u6210\u529f: ${formData[type]}`);\n }}\n />\n </LoginOuterContainer>\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"Register",description:"\u6ce8\u518c",code:"const { LoginOuterContainer, Register } = _Account;\nconst { Flex, Radio, Space, message } = antd;\nconst { useState } = React;\n\nconst BaseExample = () => {\n const [type, setType] = useState('email');\n \n return (\n <Flex vertical gap={20}>\n <Flex justify=\"center\">\n <Space>\n <span>\u6ce8\u518c\u7c7b\u578b:</span>\n <Radio.Group\n value={type}\n onChange={e => {\n setType(e.target.value);\n }}\n options={[\n { label: '\u90ae\u7bb1\u6ce8\u518c', value: 'email' },\n { label: '\u624b\u673a\u6ce8\u518c', value: 'phone' }\n ]}\n />\n </Space>\n </Flex>\n <Register\n type={type}\n loginUrl=\"/login\"\n sendVerificationCode={({ type, data }) => {\n console.log(`\u53d1\u9001\u9a8c\u8bc1\u7801\u5230 ${type}:`, data);\n message.success(`\u9a8c\u8bc1\u7801\u5df2\u53d1\u9001\u5230 ${data}`);\n return Promise.resolve();\n }}\n onSubmit={formData => {\n console.log('\u6ce8\u518c\u4fe1\u606f:', formData);\n message.success('\u6ce8\u518c\u6210\u529f');\n }}\n />\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"Modify",description:"\u4fee\u6539\u5bc6\u7801",code:"const { Modify } = _Account;\nconst { Flex, message } = antd;\n\nconst BaseExample = () => {\n return (\n <Flex vertical gap={20}>\n <Modify\n type=\"email\"\n account=\"zhangsan@company.com\"\n onSubmit={formData => {\n console.log('\u4fee\u6539\u5bc6\u7801:', formData);\n message.success('\u5bc6\u7801\u4fee\u6539\u6210\u529f');\n }}\n />\n <Modify\n type=\"phone\"\n account=\"+86 13800138000\"\n onSubmit={formData => {\n console.log('\u4fee\u6539\u5bc6\u7801:', formData);\n message.success('\u5bc6\u7801\u4fee\u6539\u6210\u529f');\n }}\n />\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"ForgetByEmail",description:"\u5fd8\u8bb0\u5bc6\u7801\uff08\u90ae\u7bb1\uff09",code:"const { LoginOuterContainer, ForgetByEmail } = _Account;\nconst { message } = antd;\n\nconst BaseExample = () => {\n return (\n <LoginOuterContainer title=\"\u4f01\u4e1a\u7ba1\u7406\u7cfb\u7edf\">\n <ForgetByEmail\n loginUrl=\"/login\"\n onSubmit={(formData, callback) => {\n console.log('\u5fd8\u8bb0\u5bc6\u7801\u90ae\u7bb1:', formData);\n // \u6a21\u62df\u53d1\u9001\u91cd\u7f6e\u5bc6\u7801\u90ae\u4ef6\n setTimeout(() => {\n callback();\n message.success('\u91cd\u7f6e\u5bc6\u7801\u94fe\u63a5\u5df2\u53d1\u9001\u5230\u60a8\u7684\u90ae\u7bb1');\n }, 1000);\n }}\n />\n </LoginOuterContainer>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"ResetPassword",description:"\u91cd\u7f6e\u5bc6\u7801",code:'const { ResetPassword } = _Account;\nconst { Flex, message } = antd;\n\nconst BaseExample = () => {\n return (\n <Flex vertical gap={20}>\n <ResetPassword\n type="email"\n account="zhangsan@company.com"\n loginUrl="/login"\n onSubmit={formData => {\n console.log(\'\u91cd\u7f6e\u5bc6\u7801:\', formData);\n message.success(\'\u5bc6\u7801\u91cd\u7f6e\u6210\u529f\uff0c\u8bf7\u4f7f\u7528\u65b0\u5bc6\u7801\u767b\u5f55\');\n }}\n />\n <ResetPassword\n type="phone"\n account="+86 13800138000"\n loginUrl="/login"\n onSubmit={formData => {\n console.log(\'\u91cd\u7f6e\u5bc6\u7801:\', formData);\n message.success(\'\u5bc6\u7801\u91cd\u7f6e\u6210\u529f\uff0c\u8bf7\u4f7f\u7528\u65b0\u5bc6\u7801\u767b\u5f55\');\n }}\n />\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n',scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]}]}}},90542(e,t,n){n.d(t,{A:()=>l});var o=n(12028),a=n(1784),r=n(13050),d=n(94679),s=n(55199);const l={name:"Admin",summary:"<p>\u7ba1\u7406\u540e\u53f0\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u7ba1\u7406\u548c\u7cfb\u7edf\u521d\u59cb\u5316\u529f\u80fd\u3002\u5305\u542b\u7528\u6237\u5217\u8868\u3001\u6dfb\u52a0\u7528\u6237\u3001\u7f16\u8f91\u7528\u6237\u3001\u4fee\u6539\u5bc6\u7801\u3001\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\u7b49\u5b8c\u6574\u7684\u7ba1\u7406\u529f\u80fd\u3002</p>",api:'<h2>Admin \u7ec4\u4ef6</h2>\n<p>\u7ba1\u7406\u540e\u53f0\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u7ba1\u7406\u548c\u7cfb\u7edf\u521d\u59cb\u5316\u529f\u80fd\u3002\u5305\u542b\u8def\u7531\u7ba1\u7406\u548c\u4e0a\u4e0b\u6587\u7ba1\u7406\u3002</p>\n<h3>\u4e3b\u7ec4\u4ef6\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u7ba1\u7406\u540e\u53f0\u7684\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>...props</td>\n<td>\u5176\u4ed6\u5c5e\u6027\u4f1a\u901a\u8fc7 Context \u4f20\u9012\u7ed9\u5b50\u7ec4\u4ef6</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u5b50\u7ec4\u4ef6</h3>\n<h4>User \u7528\u6237\u7ba1\u7406\u7ec4\u4ef6</h4>\n<p>\u7528\u6237\u7ba1\u7406\u9875\u9762\uff0c\u63d0\u4f9b\u7528\u6237\u5217\u8868\u5c55\u793a\u3001\u6dfb\u52a0\u7528\u6237\u3001\u7f16\u8f91\u7528\u6237\u3001\u4fee\u6539\u5bc6\u7801\u3001\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\u3001\u8bbe\u7f6e\u72b6\u6001\u7b49\u529f\u80fd\u3002</p>\n<p><strong>\u6570\u636e\u7ed3\u6784</strong></p>\n<table>\n<thead>\n<tr>\n<th>\u5b57\u6bb5\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u793a\u4f8b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>\u7528\u6237ID</td>\n<td>number</td>\n<td>1</td>\n</tr>\n<tr>\n<td>avatar</td>\n<td>\u7528\u6237\u5934\u50cfURL</td>\n<td>string</td>\n<td>"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan"</td>\n</tr>\n<tr>\n<td>nickname</td>\n<td>\u7528\u6237\u6635\u79f0</td>\n<td>string</td>\n<td>"\u5f20\u4e09"</td>\n</tr>\n<tr>\n<td>email</td>\n<td>\u7528\u6237\u90ae\u7bb1</td>\n<td>string</td>\n<td>"zhangsan@example.com"</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>\u7528\u6237\u624b\u673a\u53f7</td>\n<td>string</td>\n<td>"+86138001380001"</td>\n</tr>\n<tr>\n<td>isSuperAdmin</td>\n<td>\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>status</td>\n<td>\u7528\u6237\u72b6\u6001</td>\n<td>number</td>\n<td>0-\u6b63\u5e38, 10-\u672a\u6fc0\u6d3b, 11-\u7981\u7528, 12-\u5173\u95ed</td>\n</tr>\n<tr>\n<td>description</td>\n<td>\u7528\u6237\u63cf\u8ff0</td>\n<td>string</td>\n<td>"\u7cfb\u7edf\u8d85\u7ea7\u7ba1\u7406\u5458"</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>\u6027\u522b</td>\n<td>string</td>\n<td>"M"-\u7537, "F"-\u5973</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u72b6\u6001\u8bf4\u660e</strong></p>\n<table>\n<thead>\n<tr>\n<th>\u72b6\u6001\u503c</th>\n<th>\u8bf4\u660e</th>\n<th>\u989c\u8272</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>0</td>\n<td>\u6b63\u5e38</td>\n<td>success\uff08\u7eff\u8272\uff09</td>\n</tr>\n<tr>\n<td>10</td>\n<td>\u672a\u6fc0\u6d3b</td>\n<td>default\uff08\u7070\u8272\uff09</td>\n</tr>\n<tr>\n<td>11</td>\n<td>\u7981\u7528</td>\n<td>danger\uff08\u7ea2\u8272\uff09</td>\n</tr>\n<tr>\n<td>12</td>\n<td>\u5173\u95ed</td>\n<td>danger\uff08\u7ea2\u8272\uff09</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u529f\u80fd\u5217\u8868</strong></p>\n<ul>\n<li>\u6dfb\u52a0\u7528\u6237\uff1a\u521b\u5efa\u65b0\u7528\u6237\u8d26\u53f7</li>\n<li>\u7f16\u8f91\u7528\u6237\uff1a\u4fee\u6539\u7528\u6237\u4fe1\u606f</li>\n<li>\u4fee\u6539\u5bc6\u7801\uff1a\u91cd\u7f6e\u7528\u6237\u5bc6\u7801</li>\n<li>\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\uff1a\u8bbe\u7f6e/\u53d6\u6d88\u7528\u6237\u7684\u8d85\u7ea7\u7ba1\u7406\u5458\u6743\u9650</li>\n<li>\u8bbe\u7f6e\u6b63\u5e38\uff1a\u5c06\u7528\u6237\u72b6\u6001\u8bbe\u7f6e\u4e3a\u6b63\u5e38</li>\n<li>\u5173\u95ed\u7528\u6237\uff1a\u5173\u95ed\u7528\u6237\u8d26\u53f7</li>\n</ul>\n<p><strong>\u7b5b\u9009\u529f\u80fd</strong></p>\n<ul>\n<li>\u90ae\u7bb1\u7b5b\u9009\uff1a\u6309\u90ae\u7bb1\u5730\u5740\u7b5b\u9009</li>\n<li>\u624b\u673a\u53f7\u7b5b\u9009\uff1a\u6309\u624b\u673a\u53f7\u7b5b\u9009</li>\n<li>\u72b6\u6001\u7b5b\u9009\uff1a\u6309\u7528\u6237\u72b6\u6001\u7b5b\u9009</li>\n<li>\u7ba1\u7406\u5458\u7b5b\u9009\uff1a\u6309\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458\u7b5b\u9009</li>\n</ul>\n<p><strong>\u641c\u7d22\u529f\u80fd</strong></p>\n<ul>\n<li>\u6635\u79f0\u641c\u7d22\uff1a\u6309\u7528\u6237\u6635\u79f0\u641c\u7d22</li>\n</ul>\n<h4>InitAdmin \u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458\u7ec4\u4ef6</h4>\n<p>\u7cfb\u7edf\u521d\u59cb\u5316\u7ec4\u4ef6\uff0c\u7528\u4e8e\u9996\u6b21\u4f7f\u7528\u65f6\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458\u8d26\u53f7\u3002</p>\n<p><strong>\u529f\u80fd\u8bf4\u660e</strong></p>\n<ul>\n<li>\u81ea\u52a8\u8c03\u7528\u521d\u59cb\u5316\u63a5\u53e3\u521b\u5efa\u8d85\u7ea7\u7ba1\u7406\u5458</li>\n<li>\u521d\u59cb\u5316\u6210\u529f\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u7ba1\u7406\u540e\u53f0\u9996\u9875</li>\n<li>\u663e\u793a\u521d\u59cb\u5316\u8fdb\u884c\u4e2d\u7684\u63d0\u793a\u4fe1\u606f</li>\n</ul>\n<h3>Context API</h3>\n<p>Admin \u7ec4\u4ef6\u63d0\u4f9b\u4e86 Context \u7528\u4e8e\u5728\u5b50\u7ec4\u4ef6\u4e2d\u8bbf\u95ee\u5171\u4eab\u6570\u636e\uff1a</p>\n<h4>useBaseUrl</h4>\n<p>\u83b7\u53d6\u7ba1\u7406\u540e\u53f0\u7684\u57fa\u7840\u8def\u7531\u8def\u5f84\u3002</p>\n<pre><code class="language-javascript">import { useBaseUrl } from \'@components/Admin\';\n\nconst MyComponent = () =&gt; {\n const baseUrl = useBaseUrl();\n // \u4f7f\u7528 baseUrl...\n};\n</code></pre>\n<h4>useProps</h4>\n<p>\u83b7\u53d6 Admin \u7ec4\u4ef6\u4f20\u9012\u7684\u6240\u6709\u5c5e\u6027\u3002</p>\n<pre><code class="language-javascript">import { useProps } from \'@components/Admin\';\n\nconst MyComponent = () =&gt; {\n const props = useProps();\n // props \u5305\u542b baseUrl \u548c\u5176\u4ed6\u4f20\u5165\u7684\u5c5e\u6027\n};\n</code></pre>\n<h3>\u4f9d\u8d56\u7ec4\u4ef6</h3>\n<ul>\n<li><code>@kne/remote-loader</code> - \u8fdc\u7a0b\u7ec4\u4ef6\u52a0\u8f7d\u5668</li>\n<li><code>components-core:Layout@TablePage</code> - \u8868\u683c\u9875\u9762\u5e03\u5c40</li>\n<li><code>components-core:Filter</code> - \u7b5b\u9009\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u9884\u8bbe</li>\n</ul>\n<h3>\u56fd\u9645\u5316\u652f\u6301</h3>\n<p>\u7ec4\u4ef6\u652f\u6301\u4e2d\u82f1\u6587\u5207\u6362\uff0c\u901a\u8fc7 <code>@kne/react-intl</code> \u5b9e\u73b0\uff1a</p>\n<ul>\n<li><code>zh-CN</code> - \u4e2d\u6587\u7b80\u4f53</li>\n<li><code>en-US</code> - \u82f1\u6587</li>\n</ul>\n<h3>API \u63a5\u53e3</h3>\n<table>\n<thead>\n<tr>\n<th>\u63a5\u53e3\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u65b9\u6cd5</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>admin.getUserList</td>\n<td>\u83b7\u53d6\u7528\u6237\u5217\u8868</td>\n<td>GET</td>\n</tr>\n<tr>\n<td>admin.addUser</td>\n<td>\u6dfb\u52a0\u7528\u6237</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.saveUser</td>\n<td>\u4fdd\u5b58\u7528\u6237\u4fe1\u606f</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.resetUserPassword</td>\n<td>\u91cd\u7f6e\u7528\u6237\u5bc6\u7801</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.setSuperAdmin</td>\n<td>\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.setUserNormal</td>\n<td>\u8bbe\u7f6e\u7528\u6237\u6b63\u5e38</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.setUserClose</td>\n<td>\u5173\u95ed\u7528\u6237</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.getSuperAdminInfo</td>\n<td>\u83b7\u53d6\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f</td>\n<td>GET</td>\n</tr>\n<tr>\n<td>admin.initSuperAdmin</td>\n<td>\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>POST</td>\n</tr>\n</tbody>\n</table>',example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"Admin \u7ec4\u4ef6\u7684\u5b8c\u6574\u529f\u80fd\u5c55\u793a\uff0c\u5305\u542b\u7528\u6237\u7ba1\u7406\u5b50\u8def\u7531\u548c\u8def\u7531\u5bfc\u822a\u529f\u80fd",code:'const { default: Admin } = _Admin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Route, Routes, Navigate, useNavigate, Button, Flex } = { ...reactRouterDom, ...antd };\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n const navigate = useNavigate();\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path="/Admin/admin/*"\n element={\n <Admin\n baseUrl="/Admin/admin"\n pageProps={{\n menuFixed: false\n }}\n />\n }\n />\n <Route path="*" element={<Navigate to="/Admin/admin/user" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_Admin",packageName:"@components/Admin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d},{name:"antd",packageName:"antd",component:s}]},{title:"\u7528\u6237\u7ba1\u7406",description:"\u5355\u72ec\u5c55\u793a User \u5b50\u7ec4\u4ef6\uff0c\u5305\u542b\u7528\u6237\u5217\u8868\u3001\u6dfb\u52a0\u7528\u6237\u3001\u7f16\u8f91\u7528\u6237\u3001\u4fee\u6539\u5bc6\u7801\u3001\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\u7b49\u5b8c\u6574\u529f\u80fd",code:"const { default: Admin } = _Admin;\nconst { User } = Admin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst UserExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <User pageProps={{ menuFixed: false }} />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<UserExample />);\n\n",scope:[{name:"_Admin",packageName:"@components/Admin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458",description:"InitAdmin \u7ec4\u4ef6\u7528\u4e8e\u7cfb\u7edf\u9996\u6b21\u4f7f\u7528\u65f6\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458\u8d26\u53f7\uff0c\u521d\u59cb\u5316\u6210\u529f\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u7ba1\u7406\u540e\u53f0",code:"const { InitAdmin } = _Admin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst InitAdminExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <InitAdmin baseUrl=\"/Admin/admin\" />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<InitAdminExample />);\n\n",scope:[{name:"_Admin",packageName:"@components/Admin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]}]}}},82046(e,t,n){n.d(t,{A:()=>s});var o=n(53106),a=n(1784),r=n(13050),d=n(55199);const s={name:"Authenticate",summary:"<p>\u7528\u6237\u6743\u9650\u548c\u7528\u6237\u4fe1\u606f\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u4fe1\u606f\u83b7\u53d6\u3001\u767b\u5f55\u540e\u5e03\u5c40\u3001\u7528\u6237\u4fe1\u606f\u7f16\u8f91\u7b49\u529f\u80fd\u3002\u652f\u6301\u666e\u901a\u7528\u6237\u3001\u7ba1\u7406\u5458\u548c\u81ea\u5b9a\u4e49\u7528\u6237\u573a\u666f\u3002</p>",api:'<h2>Authenticate \u7ec4\u4ef6</h2>\n<p>\u7528\u6237\u6743\u9650\u548c\u7528\u6237\u4fe1\u606f\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u4fe1\u606f\u83b7\u53d6\u3001\u767b\u5f55\u540e\u5e03\u5c40\u3001\u7528\u6237\u4fe1\u606f\u7f16\u8f91\u7b49\u529f\u80fd\u3002</p>\n<h3>\u4e3b\u8981\u7ec4\u4ef6</h3>\n<h4>UserInfo</h4>\n<p>\u83b7\u53d6\u666e\u901a\u7528\u6237\u4fe1\u606f\u7684\u7ec4\u4ef6\uff0c\u81ea\u52a8\u4ece API \u52a0\u8f7d\u7528\u6237\u4fe1\u606f\u5e76\u8bbe\u7f6e\u5230\u5168\u5c40\u4e0a\u4e0b\u6587\u4e2d\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u8d26\u6237\u72b6\u6001\u68c0\u67e5\u65f6\u7684\u8df3\u8f6c</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>\u7f13\u5b58\u952e\u540d</td>\n<td>string</td>\n<td>\'user-info\'</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>SuperAdminInfo</h4>\n<p>\u83b7\u53d6\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f\u7684\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>CustomUserInfo</h4>\n<p>\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f\u83b7\u53d6\u7ec4\u4ef6\uff0c\u652f\u6301\u81ea\u5b9a\u4e49 API\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>\u7f13\u5b58\u952e\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49 API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u5e03\u5c40\u7ec4\u4ef6</h3>\n<h4>AfterUserLoginLayout</h4>\n<p>\u7528\u6237\u767b\u5f55\u540e\u7684\u5e03\u5c40\u7ec4\u4ef6\uff0c\u5305\u542b\u9876\u90e8\u5bfc\u822a\u680f\u548c\u7528\u6237\u5de5\u5177\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterUserLogin</h4>\n<p>\u7528\u6237\u767b\u5f55\u540e\u7684\u7b80\u5355\u5305\u88c5\u7ec4\u4ef6\uff0c\u4e0d\u5305\u542b\u5e03\u5c40\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterAdminUserLoginLayout</h4>\n<p>\u7ba1\u7406\u5458\u767b\u5f55\u540e\u7684\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterCustomUserLoginLayout</h4>\n<p>\u81ea\u5b9a\u4e49\u7528\u6237\u767b\u5f55\u540e\u7684\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f API</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterCustomUserLogin</h4>\n<p>\u81ea\u5b9a\u4e49\u7528\u6237\u767b\u5f55\u540e\u7684\u7b80\u5355\u5305\u88c5\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f API</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>BeforeLoginLayout</h4>\n<p>\u767b\u5f55\u524d\u7684\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>MainLayout</h4>\n<p>\u4e3b\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u7528\u6237\u4fe1\u606f\u7ec4\u4ef6</h3>\n<h4>SaveUserInfo</h4>\n<p>\u4fdd\u5b58\u7528\u6237\u4fe1\u606f\u7684\u7ec4\u4ef6\uff0c\u901a\u8fc7\u70b9\u51fb\u4e8b\u4ef6\u89e6\u53d1\u8868\u5355\u5f39\u7a97\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>children</td>\n<td>\u6e32\u67d3\u51fd\u6570\uff0c\u63a5\u6536 { onClick } \u53c2\u6570</td>\n<td>(props) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u4f7f\u7528\u793a\u4f8b</strong>\uff1a</p>\n<pre><code class="language-jsx">&lt;SaveUserInfo&gt;\n {({ onClick }) =&gt; (\n &lt;Button onClick={onClick}&gt;\u7f16\u8f91\u7528\u6237\u4fe1\u606f&lt;/Button&gt;\n )}\n&lt;/SaveUserInfo&gt;\n</code></pre>\n<h4>UserInfoFormInner</h4>\n<p>\u7528\u6237\u4fe1\u606f\u8868\u5355\u5185\u90e8\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>column</td>\n<td>\u8868\u5355\u5217\u6570</td>\n<td>number</td>\n<td>1</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u8868\u5355\u5b57\u6bb5</strong>\uff1a</p>\n<ul>\n<li><code>avatar</code> - \u7528\u6237\u5934\u50cf</li>\n<li><code>email</code> - \u90ae\u7bb1\uff08\u5fc5\u586b\uff09</li>\n<li><code>nickname</code> - \u6635\u79f0</li>\n<li><code>description</code> - \u63cf\u8ff0</li>\n</ul>\n<h4>RightOptions</h4>\n<p>\u53f3\u4fa7\u5de5\u5177\u680f\u7ec4\u4ef6\uff0c\u663e\u793a\u8bed\u8a00\u5207\u6362\u548c\u7528\u6237\u5de5\u5177\u3002</p>\n<h3>\u6570\u636e\u7ed3\u6784</h3>\n<h4>UserInfo \u6570\u636e\u7ed3\u6784</h4>\n<table>\n<thead>\n<tr>\n<th>\u5b57\u6bb5\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u793a\u4f8b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>\u7528\u6237ID</td>\n<td>number</td>\n<td>1</td>\n</tr>\n<tr>\n<td>email</td>\n<td>\u90ae\u7bb1</td>\n<td>string</td>\n<td>"zhangsan@example.com"</td>\n</tr>\n<tr>\n<td>nickname</td>\n<td>\u6635\u79f0</td>\n<td>string</td>\n<td>"\u5f20\u4e09"</td>\n</tr>\n<tr>\n<td>avatar</td>\n<td>\u5934\u50cfURL</td>\n<td>string</td>\n<td>"https://api.dicebear.com/7.x/avataaars/svg?seed=xxx"</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>\u624b\u673a\u53f7</td>\n<td>string</td>\n<td>"+86138001380001"</td>\n</tr>\n<tr>\n<td>description</td>\n<td>\u63cf\u8ff0</td>\n<td>string</td>\n<td>"\u8d44\u6df1\u524d\u7aef\u5de5\u7a0b\u5e08"</td>\n</tr>\n<tr>\n<td>status</td>\n<td>\u72b6\u6001</td>\n<td>number</td>\n<td>0-\u6b63\u5e38, 1-\u5f85\u5b8c\u5584</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>\u6027\u522b</td>\n<td>string</td>\n<td>"M"-\u7537, "F"-\u5973</td>\n</tr>\n<tr>\n<td>isSuperAdmin</td>\n<td>\u662f\u5426\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n</tbody>\n</table>\n<h3>\u8d26\u6237\u72b6\u6001\u8bf4\u660e</h3>\n<table>\n<thead>\n<tr>\n<th>\u72b6\u6001\u503c</th>\n<th>\u8bf4\u660e</th>\n<th>\u884c\u4e3a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>0</td>\n<td>\u6b63\u5e38</td>\n<td>\u6b63\u5e38\u663e\u793a\u5185\u5bb9</td>\n</tr>\n<tr>\n<td>1</td>\n<td>\u5f85\u5b8c\u5584\u4fe1\u606f</td>\n<td>\u81ea\u52a8\u8df3\u8f6c\u5230\u4fe1\u606f\u5b8c\u5584\u9875\u9762</td>\n</tr>\n</tbody>\n</table>\n<h3>\u4f9d\u8d56\u7ec4\u4ef6</h3>\n<ul>\n<li><code>@kne/remote-loader</code> - \u8fdc\u7a0b\u7ec4\u4ef6\u52a0\u8f7d\u5668</li>\n<li><code>components-core:Layout</code> - \u5e03\u5c40\u7ec4\u4ef6</li>\n<li><code>components-core:Global@SetGlobal</code> - \u5168\u5c40\u72b6\u6001\u8bbe\u7f6e</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u9884\u8bbe</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>@components/UserTool</code> - \u7528\u6237\u5de5\u5177\u7ec4\u4ef6</li>\n<li><code>@components/Account/Language</code> - \u8bed\u8a00\u5207\u6362\u7ec4\u4ef6</li>\n</ul>\n<h3>\u56fd\u9645\u5316\u652f\u6301</h3>\n<p>\u7ec4\u4ef6\u652f\u6301\u4e2d\u82f1\u6587\u5207\u6362\uff1a</p>\n<ul>\n<li><code>zh-CN</code> - \u4e2d\u6587\u7b80\u4f53</li>\n<li><code>en-US</code> - \u82f1\u6587</li>\n</ul>\n<h3>API \u63a5\u53e3</h3>\n<table>\n<thead>\n<tr>\n<th>\u63a5\u53e3\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u65b9\u6cd5</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>user.getUserInfo</td>\n<td>\u83b7\u53d6\u7528\u6237\u4fe1\u606f</td>\n<td>GET</td>\n</tr>\n<tr>\n<td>user.saveUserInfo</td>\n<td>\u4fdd\u5b58\u7528\u6237\u4fe1\u606f</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.getSuperAdminInfo</td>\n<td>\u83b7\u53d6\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f</td>\n<td>GET</td>\n</tr>\n</tbody>\n</table>',example:{isFull:!0,className:"",style:"",list:[{title:"\u7528\u6237\u767b\u5f55\u540e\u5e03\u5c40",description:"AfterUserLoginLayout \u7ec4\u4ef6\u5c55\u793a\u7528\u6237\u767b\u5f55\u540e\u7684\u5b8c\u6574\u5e03\u5c40\uff0c\u5305\u542b\u9876\u90e8\u5bfc\u822a\u680f\u548c\u7528\u6237\u5de5\u5177",code:"const { AfterUserLoginLayout } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Typography, Card } = antd;\n\nconst { Title, Paragraph } = Typography;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <AfterUserLoginLayout \n title=\"\u7528\u6237\u4e2d\u5fc3\"\n navigation={{ isFixed: false }}\n >\n <Card>\n <Title level={4}>\u6b22\u8fce\u4f7f\u7528\u7528\u6237\u4e2d\u5fc3</Title>\n <Paragraph>\n \u8fd9\u662f\u4e00\u4e2a\u7528\u6237\u767b\u5f55\u540e\u7684\u5e03\u5c40\u793a\u4f8b\u3002\u9876\u90e8\u5bfc\u822a\u680f\u663e\u793a\u7528\u6237\u4fe1\u606f\u548c\u8bed\u8a00\u5207\u6362\u529f\u80fd\u3002\n </Paragraph>\n </Card>\n </AfterUserLoginLayout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]},{title:"\u7528\u6237\u4fe1\u606f\u83b7\u53d6",description:"UserInfo \u7ec4\u4ef6\u83b7\u53d6\u7528\u6237\u4fe1\u606f\u5e76\u5c55\u793a\uff0c\u7528\u6237\u4fe1\u606f\u4f1a\u88ab\u8bbe\u7f6e\u5230\u5168\u5c40\u4e0a\u4e0b\u6587\u4e2d\u4f9b\u5176\u4ed6\u7ec4\u4ef6\u4f7f\u7528",code:"const { UserInfo } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst UserInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Global@GlobalValue']\n})(({ remoteModules }) => {\n const [PureGlobal, GlobalValue] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <UserInfo>\n <GlobalValue globalKey=\"userInfo\">\n {({ value }) => {\n const { nickname, email, avatar, description } = Object.assign({}, value?.value);\n return (\n <div style={{ padding: 20 }}>\n <h3>\u7528\u6237\u4fe1\u606f</h3>\n <p><strong>\u5934\u50cf\uff1a</strong><img src={avatar} alt=\"avatar\" style={{ width: 40, height: 40, borderRadius: '50%' }} /></p>\n <p><strong>\u6635\u79f0\uff1a</strong>{nickname}</p>\n <p><strong>\u90ae\u7bb1\uff1a</strong>{email}</p>\n <p><strong>\u63cf\u8ff0\uff1a</strong>{description}</p>\n </div>\n );\n }}\n </GlobalValue>\n </UserInfo>\n </PureGlobal>\n );\n});\n\nrender(<UserInfoExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u7f16\u8f91\u7528\u6237\u4fe1\u606f",description:"SaveUserInfo \u7ec4\u4ef6\u63d0\u4f9b\u7528\u6237\u4fe1\u606f\u7f16\u8f91\u529f\u80fd\uff0c\u70b9\u51fb\u6309\u94ae\u5f39\u51fa\u8868\u5355\u8fdb\u884c\u7f16\u8f91",code:"const { SaveUserInfo, UserInfo } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Button, Card, Space, Typography } = antd;\n\nconst { Title } = Typography;\n\nconst SaveUserInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <UserInfo>\n <Card style={{ maxWidth: 600, margin: '20px auto' }}>\n <Title level={4}>\u7f16\u8f91\u7528\u6237\u4fe1\u606f</Title>\n <Space direction=\"vertical\" style={{ width: '100%' }}>\n <p>\u70b9\u51fb\u4e0b\u65b9\u6309\u94ae\u53ef\u4ee5\u7f16\u8f91\u7528\u6237\u4fe1\u606f\uff0c\u5305\u62ec\u5934\u50cf\u3001\u6635\u79f0\u3001\u63cf\u8ff0\u7b49\u3002</p>\n <SaveUserInfo>\n {({ onClick }) => (\n <Button type=\"primary\" onClick={onClick}>\n \u7f16\u8f91\u7528\u6237\u4fe1\u606f\n </Button>\n )}\n </SaveUserInfo>\n </Space>\n </Card>\n </UserInfo>\n </PureGlobal>\n );\n});\n\nrender(<SaveUserInfoExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]},{title:"\u7ba1\u7406\u5458\u767b\u5f55\u540e\u5e03\u5c40",description:"AfterAdminUserLoginLayout \u7ec4\u4ef6\u5c55\u793a\u7ba1\u7406\u5458\u767b\u5f55\u540e\u7684\u5e03\u5c40\uff0c\u4f7f\u7528\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f",code:"const { AfterAdminUserLoginLayout } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Typography, Card } = antd;\n\nconst { Title, Paragraph } = Typography;\n\nconst AdminLayoutExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <AfterAdminUserLoginLayout \n title=\"\u7ba1\u7406\u540e\u53f0\"\n navigation={{ isFixed: false }}\n >\n <Card>\n <Title level={4}>\u7ba1\u7406\u5458\u63a7\u5236\u53f0</Title>\n <Paragraph>\n \u8fd9\u662f\u7ba1\u7406\u5458\u767b\u5f55\u540e\u7684\u5e03\u5c40\u793a\u4f8b\u3002\u9876\u90e8\u663e\u793a\u7ba1\u7406\u5458\u4fe1\u606f\u548c\u7cfb\u7edf\u7ba1\u7406\u529f\u80fd\u5165\u53e3\u3002\n </Paragraph>\n </Card>\n </AfterAdminUserLoginLayout>\n </PureGlobal>\n );\n});\n\nrender(<AdminLayoutExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]},{title:"\u81ea\u5b9a\u4e49\u7528\u6237\u767b\u5f55\u5e03\u5c40",description:"AfterCustomUserLoginLayout \u7ec4\u4ef6\u652f\u6301\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f API\uff0c\u9002\u7528\u4e8e\u81ea\u5b9a\u4e49\u7528\u6237\u7cfb\u7edf",code:"const { AfterCustomUserLoginLayout } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Typography, Card } = antd;\n\nconst { Title, Paragraph } = Typography;\n\nconst CustomUserExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Global@usePreset']\n})(({ remoteModules }) => {\n const [PureGlobal, usePreset] = remoteModules;\n \n const InnerComponent = () => {\n const { apis } = usePreset();\n \n return (\n <AfterCustomUserLoginLayout \n title=\"\u81ea\u5b9a\u4e49\u7528\u6237\u4e2d\u5fc3\" \n api={apis.user.getUserInfo}\n navigation={{ isFixed: false }}\n >\n <Card>\n <Title level={4}>\u81ea\u5b9a\u4e49\u7528\u6237\u7cfb\u7edf</Title>\n <Paragraph>\n \u8fd9\u662f\u4f7f\u7528\u81ea\u5b9a\u4e49 API \u83b7\u53d6\u7528\u6237\u4fe1\u606f\u7684\u5e03\u5c40\u793a\u4f8b\u3002\u53ef\u4ee5\u7075\u6d3b\u914d\u7f6e\u7528\u6237\u4fe1\u606f\u63a5\u53e3\u3002\n </Paragraph>\n </Card>\n </AfterCustomUserLoginLayout>\n );\n };\n \n return (\n <PureGlobal preset={mockPreset}>\n <InnerComponent />\n </PureGlobal>\n );\n});\n\nrender(<CustomUserExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]}]}}},33286(e,t,n){n.d(t,{A:()=>d});var o=n(53856),a=n(1784),r=n(13050);const d={name:"BizUnit",summary:"<p>BizUnit \u662f\u4e00\u4e2a\u9ad8\u5ea6\u5c01\u88c5\u7684 CRUD \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6\uff0c\u5185\u7f6e\u5217\u8868\u5c55\u793a\u3001\u5173\u952e\u5b57\u641c\u7d22\u3001\u7b5b\u9009\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u72b6\u6001\u5207\u6362\u7b49\u5b8c\u6574\u529f\u80fd\u3002\u901a\u8fc7\u914d\u7f6e\u5316\u7684\u65b9\u5f0f\u5feb\u901f\u5b9e\u73b0\u6807\u51c6\u4e1a\u52a1\u6a21\u5757\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u5217\u914d\u7f6e\u3001\u8868\u5355\u5b57\u6bb5\u3001\u64cd\u4f5c\u6309\u94ae\u7b49\uff0c\u5927\u5e45\u63d0\u5347\u5f00\u53d1\u6548\u7387\u3002</p>",api:"<h1>BizUnit API \u6587\u6863</h1>\n<h2>BizUnit \u4e3b\u7ec4\u4ef6</h2>\n<p>\u9ad8\u5ea6\u5c01\u88c5\u7684 CRUD \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6\uff0c\u5185\u7f6e\u5217\u8868\u3001\u641c\u7d22\u3001\u7b5b\u9009\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u72b6\u6001\u5207\u6362\u7b49\u529f\u80fd\u3002</p>\n<h3>\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API\u914d\u7f6e\u5bf9\u8c61</td>\n<td>Object</td>\n<td>{}</td>\n</tr>\n<tr>\n<td>getColumns</td>\n<td>\u5217\u914d\u7f6e\u51fd\u6570\uff0c\u8fd4\u56de\u5217\u6570\u7ec4</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getFormInner</td>\n<td>\u8868\u5355\u5185\u5bb9\u51fd\u6570\uff0c\u8fd4\u56de\u8868\u5355JSX</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getActionList</td>\n<td>\u64cd\u4f5c\u5217\u8868\u51fd\u6570\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>name</td>\n<td>\u8868\u683c\u540d\u79f0\uff08\u7528\u4e8e\u7f13\u5b58\u7b49\uff09</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>options</td>\n<td>\u914d\u7f6e\u9009\u9879</td>\n<td>Object</td>\n<td>{}</td>\n</tr>\n<tr>\n<td>filterList</td>\n<td>\u7b5b\u9009\u5217\u8868\u914d\u7f6e</td>\n<td>Array</td>\n<td>[]</td>\n</tr>\n<tr>\n<td>allowKeywordSearch</td>\n<td>\u662f\u5426\u5141\u8bb8\u5173\u952e\u5b57\u641c\u7d22</td>\n<td>Boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>topOptionsSize</td>\n<td>\u9876\u90e8\u64cd\u4f5c\u6309\u94ae\u5c3a\u5bf8</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>titleExtra</td>\n<td>\u6807\u9898\u989d\u5916\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>null</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onMount</td>\n<td>\u7ec4\u4ef6\u6302\u8f7d\u56de\u8c03</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>apis \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>list</td>\n<td>\u5217\u8868\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>create</td>\n<td>\u521b\u5efa\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>save</td>\n<td>\u7f16\u8f91\u4fdd\u5b58\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>remove</td>\n<td>\u5220\u9664\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>setStatus</td>\n<td>\u72b6\u6001\u5207\u6362\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n</tbody>\n</table>\n<h3>options \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bizName</td>\n<td>\u4e1a\u52a1\u540d\u79f0\uff08\u7528\u4e8e\u56fd\u9645\u5316\u63d0\u793a\uff09</td>\n<td>String</td>\n<td>''</td>\n</tr>\n<tr>\n<td>createButtonProps</td>\n<td>\u521b\u5efa\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u6dfb\u52a0', type: 'primary' }</td>\n</tr>\n<tr>\n<td>editButtonProps</td>\n<td>\u7f16\u8f91\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u7f16\u8f91' }</td>\n</tr>\n<tr>\n<td>removeButtonProps</td>\n<td>\u5220\u9664\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u5220\u9664' }</td>\n</tr>\n<tr>\n<td>openButtonProps</td>\n<td>\u5f00\u542f\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u5f00\u542f' }</td>\n</tr>\n<tr>\n<td>closeButtonProps</td>\n<td>\u5173\u95ed\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u5173\u95ed' }</td>\n</tr>\n<tr>\n<td>tableProps</td>\n<td>\u8868\u683c\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ pagination: { paramsType: 'params' } }</td>\n</tr>\n<tr>\n<td>keywordFilterName</td>\n<td>\u5173\u952e\u5b57\u7b5b\u9009\u5b57\u6bb5\u540d</td>\n<td>String</td>\n<td>'keyword'</td>\n</tr>\n<tr>\n<td>keywordFilterLabel</td>\n<td>\u5173\u952e\u5b57\u7b5b\u9009\u6807\u7b7e</td>\n<td>String</td>\n<td>'\u5173\u952e\u5b57'</td>\n</tr>\n<tr>\n<td>formSize</td>\n<td>\u8868\u5355\u5f39\u7a97\u5c3a\u5bf8</td>\n<td>String</td>\n<td>'small'</td>\n</tr>\n<tr>\n<td>formProps</td>\n<td>\u8868\u5355\u5c5e\u6027</td>\n<td>Object/Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>formModalProps</td>\n<td>\u8868\u5355\u5f39\u7a97\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>createFormModalProps</td>\n<td>\u521b\u5efa\u8868\u5355\u5f39\u7a97\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>editFormModalProps</td>\n<td>\u7f16\u8f91\u8868\u5355\u5f39\u7a97\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>openStatus</td>\n<td>\u5f00\u542f\u72b6\u6001\u503c</td>\n<td>String</td>\n<td>'open'</td>\n</tr>\n<tr>\n<td>closedStatus</td>\n<td>\u5173\u95ed\u72b6\u6001\u503c</td>\n<td>String</td>\n<td>'closed'</td>\n</tr>\n<tr>\n<td>removeMessage</td>\n<td>\u5220\u9664\u786e\u8ba4\u63d0\u793a\u4fe1\u606f</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>closeMessage</td>\n<td>\u5173\u95ed\u786e\u8ba4\u63d0\u793a\u4fe1\u606f</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>saveData</td>\n<td>\u7f16\u8f91\u65f6\u6570\u636e\u5904\u7406\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getFilterValue</td>\n<td>\u7b5b\u9009\u503c\u8f6c\u6362\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>getColumns \u51fd\u6570</h3>\n<p>\u8fd4\u56de\u5217\u914d\u7f6e\u6570\u7ec4\uff0c\u5e38\u7528\u5217\u7c7b\u578b\uff1a</p>\n<table>\n<thead>\n<tr>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n<th>\u7279\u6b8a\u914d\u7f6e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>serialNumber</td>\n<td>\u5e8f\u53f7\u5217</td>\n<td>primary, hover</td>\n</tr>\n<tr>\n<td>mainInfo</td>\n<td>\u4e3b\u4fe1\u606f\u5217</td>\n<td>primary, hover</td>\n</tr>\n<tr>\n<td>tag</td>\n<td>\u6807\u7b7e\u5217</td>\n<td>valueOf \u8fd4\u56de { type, text }</td>\n</tr>\n<tr>\n<td>description</td>\n<td>\u63cf\u8ff0\u5217</td>\n<td>ellipsis</td>\n</tr>\n<tr>\n<td>avatar</td>\n<td>\u5934\u50cf\u5217</td>\n<td>valueOf \u8fd4\u56de { id }</td>\n</tr>\n<tr>\n<td>datetime</td>\n<td>\u65e5\u671f\u65f6\u95f4\u5217</td>\n<td>format</td>\n</tr>\n<tr>\n<td>other</td>\n<td>\u5176\u4ed6\u666e\u901a\u5217</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>getFormInner \u51fd\u6570</h3>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>action</td>\n<td>\u64cd\u4f5c\u7c7b\u578b</td>\n<td>'create' | 'edit'</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API\u914d\u7f6e\u5bf9\u8c61</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>options</td>\n<td>\u914d\u7f6e\u9009\u9879</td>\n<td>Object</td>\n</tr>\n</tbody>\n</table>\n<h3>getActionList \u51fd\u6570</h3>\n<p>\u8fd4\u56de\u64cd\u4f5c\u6309\u94ae\u6570\u7ec4\uff0c\u652f\u6301\u4ee5\u4e0b\u683c\u5f0f\uff1a</p>\n<pre><code class=\"language-javascript\">// \u4f7f\u7528\u5185\u7f6e\u6309\u94ae\n{ name: 'remove', reset: (config) =&gt; ({ ...config, hidden: true }) }\n\n// \u81ea\u5b9a\u4e49\u6309\u94ae\n{ buttonComponent: CustomComponent, children: '\u6309\u94ae\u6587\u5b57', hidden: false }\n</code></pre>\n<p><strong>\u5185\u7f6e\u6309\u94ae\u540d\u79f0\uff1a</strong></p>\n<ul>\n<li><code>remove</code> - \u5220\u9664\u6309\u94ae</li>\n<li><code>save</code> - \u7f16\u8f91\u6309\u94ae</li>\n<li><code>setStatusOpen</code> - \u5f00\u542f\u6309\u94ae</li>\n<li><code>setStatusClose</code> - \u5173\u95ed\u6309\u94ae</li>\n</ul>\n<hr>\n<h2>Actions \u5b50\u7ec4\u4ef6</h2>\n<p>\u64cd\u4f5c\u6309\u94ae\u7ec4\u4ef6\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u8868\u683c\u64cd\u4f5c\u5217\u3002</p>\n<h3>\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>moreType</td>\n<td>\u66f4\u591a\u6309\u94ae\u7c7b\u578b</td>\n<td>String</td>\n<td>'link'</td>\n</tr>\n<tr>\n<td>itemClassName</td>\n<td>\u6309\u94ae\u9879\u6837\u5f0f\u7c7b\u540d</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getActionList</td>\n<td>\u64cd\u4f5c\u5217\u8868\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getFormInner</td>\n<td>\u8868\u5355\u5185\u5bb9\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>data</td>\n<td>\u5f53\u524d\u884c\u6570\u636e</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API\u914d\u7f6e\u5bf9\u8c61</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>options</td>\n<td>\u914d\u7f6e\u9009\u9879</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u64cd\u4f5c\u6210\u529f\u56de\u8c03</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>TablePageRender \u5b50\u7ec4\u4ef6</h2>\n<p>\u8868\u683c\u9875\u9762\u6e32\u67d3\u7ec4\u4ef6\uff0c\u7528\u4e8e\u9875\u9762\u7ea7\u522b\u7684\u8868\u683c\u5c55\u793a\u3002</p>\n<h3>\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>filter</td>\n<td>\u7b5b\u9009\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>titleExtra</td>\n<td>\u6807\u9898\u989d\u5916\u5185\u5bb9</td>\n<td>ReactNode</td>\n</tr>\n<tr>\n<td>tableOptions</td>\n<td>\u8868\u683c\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n</tbody>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a BizUnit \u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u5305\u542b\u5b8c\u6574\u7684 CRUD \u529f\u80fd\uff1a\u5217\u8868\u5c55\u793a\u3001\u5173\u952e\u5b57\u641c\u7d22\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u548c\u72b6\u6001\u5207\u6362\u3002\u901a\u8fc7\u914d\u7f6e apis\u3001getColumns\u3001getFormInner \u7b49\u5c5e\u6027\u5feb\u901f\u5b9e\u73b0\u4e1a\u52a1\u6a21\u5757\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useState } = React;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n const { Input, TextArea } = FormInfo.fields;\n const [refreshKey, setRefreshKey] = useState(0);\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u89d2\u8272\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u89d2\u8272\u7f16\u7801' },\n { \n name: 'status', \n title: '\u72b6\u6001', \n type: 'tag',\n valueOf: ({ status }) => ({\n type: status === 'open' ? 'success' : 'default',\n text: status === 'open' ? '\u5df2\u542f\u7528' : '\u5df2\u7981\u7528'\n })\n },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo column={1} list={[\n <Input name=\"name\" label=\"\u89d2\u8272\u540d\u79f0\" rule=\"REQ LEN-2-50\" />,\n <Input name=\"code\" label=\"\u89d2\u8272\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <TextArea name=\"description\" label=\"\u63cf\u8ff0\" />\n ]} />\n );\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u7cfb\u7edf\u7ba1\u7406\u5458', code: 'admin', status: 'open', description: '\u62e5\u6709\u7cfb\u7edf\u6240\u6709\u6743\u9650\uff0c\u53ef\u8fdb\u884c\u7cfb\u7edf\u914d\u7f6e\u548c\u7528\u6237\u7ba1\u7406' },\n { id: 2, name: '\u90e8\u95e8\u7ecf\u7406', code: 'manager', status: 'open', description: '\u7ba1\u7406\u672c\u90e8\u95e8\u4eba\u5458\u548c\u9879\u76ee\uff0c\u5ba1\u6279\u90e8\u95e8\u5185\u4e8b\u52a1' },\n { id: 3, name: '\u666e\u901a\u5458\u5de5', code: 'employee', status: 'closed', description: '\u57fa\u7840\u8bbf\u95ee\u6743\u9650\uff0c\u53ef\u67e5\u770b\u548c\u7f16\u8f91\u4e2a\u4eba\u76f8\u5173\u6570\u636e' },\n { id: 4, name: '\u8bbf\u5ba2', code: 'guest', status: 'open', description: '\u53ea\u8bfb\u6743\u9650\uff0c\u4ec5\u53ef\u67e5\u770b\u516c\u5f00\u4fe1\u606f' }\n ],\n totalCount: 4\n })\n },\n create: { loader: () => ({ code: 0, data: { id: Date.now() } }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n return (\n <PureGlobal preset={{\n ...preset,\n apis: {\n role: apis\n }\n }}>\n <BizUnit\n key={refreshKey}\n name=\"role-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n options={{ bizName: '\u89d2\u8272' }}\n />\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae",description:"\u901a\u8fc7 getActionList \u51fd\u6570\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u3002\u652f\u6301\u91cd\u7f6e\u5185\u7f6e\u6309\u94ae\u914d\u7f6e\uff08\u5982\u6839\u636e\u6761\u4ef6\u9690\u85cf\u7cfb\u7edf\u7c7b\u578b\u89d2\u8272\u7684\u5220\u9664\u6309\u94ae\uff09\uff0c\u4ee5\u53ca\u6dfb\u52a0\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u7ec4\u4ef6\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst CustomAction = createWithRemoteLoader({\n modules: ['components-core:Modal@useModal']\n})(({ remoteModules, data, ...props }) => {\n const [useModal] = remoteModules;\n const modal = useModal();\n return (\n <a {...props} onClick={() => {\n modal({\n title: '\u67e5\u770b\u6743\u9650',\n size: 'small',\n children: `\u5f53\u524d\u89d2\u8272\u3010${data.name}\u3011\u62e5\u6709\u4ee5\u4e0b\u6743\u9650\uff1a\n- \u7528\u6237\u7ba1\u7406\n- \u89d2\u8272\u7ba1\u7406\n- \u7cfb\u7edf\u8bbe\u7f6e`\n });\n }}>\n \u67e5\u770b\u6743\u9650\n </a>\n );\n});\n\nconst CustomActionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n const { Input, TextArea } = FormInfo.fields;\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u89d2\u8272\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u89d2\u8272\u7f16\u7801' },\n {\n name: 'type',\n title: '\u7c7b\u578b',\n type: 'tag',\n valueOf: ({ type }) => ({\n type: type === 'system' ? 'default' : 'info',\n text: type === 'system' ? '\u7cfb\u7edf' : '\u81ea\u5b9a\u4e49'\n })\n },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo column={1} list={[\n <Input name=\"name\" label=\"\u89d2\u8272\u540d\u79f0\" rule=\"REQ LEN-2-50\" />,\n <Input name=\"code\" label=\"\u89d2\u8272\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <TextArea name=\"description\" label=\"\u63cf\u8ff0\" />\n ]} />\n );\n\n const getActionList = ({ data, ...props }) => {\n return ['remove', 'setStatusOpen', 'setStatusClose', 'save']\n .map(name => ({\n name,\n reset: ({ hidden }) => ({ name, hidden: hidden || data.type === 'system' })\n }))\n .concat([\n {\n ...props,\n buttonComponent: CustomAction,\n data,\n hidden: data.code === 'admin'\n }\n ]);\n };\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u7cfb\u7edf\u7ba1\u7406\u5458', code: 'admin', type: 'system', status: 'open', description: '\u62e5\u6709\u7cfb\u7edf\u6240\u6709\u6743\u9650' },\n { id: 2, name: '\u90e8\u95e8\u7ecf\u7406', code: 'manager', type: 'custom', status: 'open', description: '\u7ba1\u7406\u672c\u90e8\u95e8\u4eba\u5458' },\n { id: 3, name: '\u666e\u901a\u5458\u5de5', code: 'employee', type: 'custom', status: 'closed', description: '\u57fa\u7840\u8bbf\u95ee\u6743\u9650' },\n { id: 4, name: '\u8bbf\u5ba2', code: 'guest', type: 'custom', status: 'open', description: '\u53ea\u8bfb\u6743\u9650' }\n ],\n totalCount: 4\n })\n },\n create: { loader: () => ({ code: 0 }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n return (\n <PureGlobal preset={{ ...preset, apis: { role: apis } }}>\n <BizUnit\n name=\"role-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n getActionList={getActionList}\n options={{ bizName: '\u89d2\u8272' }}\n />\n </PureGlobal>\n );\n});\n\nrender(<CustomActionsExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5e26\u7b5b\u9009\u6761\u4ef6",description:"\u901a\u8fc7 filterList \u5c5e\u6027\u6dfb\u52a0\u7b5b\u9009\u6761\u4ef6\uff0c\u914d\u5408 Filter \u7ec4\u4ef6\u7684 SelectItem \u5b9e\u73b0\u4e0b\u62c9\u7b5b\u9009\u3002\u9002\u7528\u4e8e\u9700\u8981\u591a\u6761\u4ef6\u7b5b\u9009\u7684\u4e1a\u52a1\u573a\u666f\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst WithFilterExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo', 'components-core:Filter']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo, Filter] = remoteModules;\n const { Input, TextArea, SuperSelect } = FormInfo.fields;\n const { SuperSelectFilterItem } = Filter.fields;\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u90e8\u95e8\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u90e8\u95e8\u7f16\u7801' },\n {\n name: 'status',\n title: '\u72b6\u6001',\n type: 'tag',\n valueOf: ({ status }) => ({\n type: status === 'active' ? 'success' : 'warning',\n text: status === 'active' ? '\u8fd0\u8425\u4e2d' : '\u5df2\u6682\u505c'\n })\n },\n { name: 'memberCount', title: '\u6210\u5458\u6570\u91cf' },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo\n column={1}\n list={[\n <Input name=\"name\" label=\"\u90e8\u95e8\u540d\u79f0\" rule=\"REQ LEN-2-50\" />,\n <Input name=\"code\" label=\"\u90e8\u95e8\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <SuperSelect\n name=\"parentId\"\n label=\"\u4e0a\u7ea7\u90e8\u95e8\"\n api={{ loader: () => ({ pageData: [{ id: 1, name: '\u603b\u516c\u53f8' }], totalCount: 1 }) }}\n valueKey=\"id\"\n labelKey=\"name\"\n single\n />,\n <TextArea name=\"description\" label=\"\u63cf\u8ff0\" />\n ]}\n />\n );\n\n const filterList = [\n [\n <SuperSelectFilterItem\n name=\"status\"\n label=\"\u72b6\u6001\"\n options={[\n { value: 'active', label: '\u8fd0\u8425\u4e2d' },\n { value: 'paused', label: '\u5df2\u6682\u505c' }\n ]}\n />,\n <SuperSelectFilterItem\n name=\"type\"\n label=\"\u7c7b\u578b\"\n options={[\n { value: 'tech', label: '\u6280\u672f\u90e8\u95e8' },\n { value: 'business', label: '\u4e1a\u52a1\u90e8\u95e8' },\n { value: 'support', label: '\u652f\u6301\u90e8\u95e8' }\n ]}\n />\n ]\n ];\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u6280\u672f\u7814\u53d1\u90e8', code: 'tech', status: 'active', memberCount: 45, description: '\u8d1f\u8d23\u4ea7\u54c1\u6280\u672f\u7814\u53d1\u548c\u521b\u65b0' },\n { id: 2, name: '\u4ea7\u54c1\u8bbe\u8ba1\u90e8', code: 'design', status: 'active', memberCount: 18, description: '\u8d1f\u8d23\u4ea7\u54c1UI/UX\u8bbe\u8ba1' },\n { id: 3, name: '\u5e02\u573a\u8425\u9500\u90e8', code: 'marketing', status: 'active', memberCount: 25, description: '\u8d1f\u8d23\u5e02\u573a\u63a8\u5e7f\u548c\u54c1\u724c\u5efa\u8bbe' },\n { id: 4, name: '\u5ba2\u6237\u670d\u52a1\u90e8', code: 'service', status: 'paused', memberCount: 30, description: '\u8d1f\u8d23\u5ba2\u6237\u652f\u6301\u548c\u552e\u540e\u670d\u52a1' },\n { id: 5, name: '\u4eba\u529b\u8d44\u6e90\u90e8', code: 'hr', status: 'active', memberCount: 12, description: '\u8d1f\u8d23\u4eba\u624d\u62db\u8058\u548c\u5458\u5de5\u5173\u7cfb' }\n ],\n totalCount: 5\n })\n },\n create: { loader: () => ({ code: 0 }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n return (\n <PureGlobal preset={{ ...preset, apis: { dept: apis } }}>\n <BizUnit\n name=\"dept-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n filterList={filterList}\n options={{ bizName: '\u90e8\u95e8' }}\n />\n </PureGlobal>\n );\n});\n\nrender(<WithFilterExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u72b6\u6001\u63a7\u5236\u914d\u7f6e",description:"\u901a\u8fc7 options \u914d\u7f6e\u81ea\u5b9a\u4e49\u72b6\u6001\u63a7\u5236\u6309\u94ae\u3002\u652f\u6301\u81ea\u5b9a\u4e49\u72b6\u6001\u503c\u3001\u6309\u94ae\u6587\u6848\u548c\u786e\u8ba4\u63d0\u793a\u4fe1\u606f\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u4e1a\u52a1\u573a\u666f\u7684\u72b6\u6001\u7ba1\u7406\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst StatusControlExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n const { Input, TextArea } = FormInfo.fields;\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u9879\u76ee\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u9879\u76ee\u7f16\u7801' },\n {\n name: 'status',\n title: '\u72b6\u6001',\n type: 'tag',\n valueOf: ({ status }) => {\n const statusMap = {\n active: { type: 'success', text: '\u8fdb\u884c\u4e2d' },\n paused: { type: 'warning', text: '\u5df2\u6682\u505c' },\n completed: { type: 'default', text: '\u5df2\u5b8c\u6210' }\n };\n return statusMap[status] || { type: 'default', text: status };\n }\n },\n { name: 'progress', title: '\u8fdb\u5ea6' },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo column={1} list={[\n <Input name=\"name\" label=\"\u9879\u76ee\u540d\u79f0\" rule=\"REQ LEN-2-100\" />,\n <Input name=\"code\" label=\"\u9879\u76ee\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <TextArea name=\"description\" label=\"\u9879\u76ee\u63cf\u8ff0\" />\n ]} />\n );\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u4f01\u4e1a\u5b98\u7f51\u91cd\u6784', code: 'web-rebuild', status: 'active', progress: '75%', description: '\u5168\u65b0\u4f01\u4e1a\u5b98\u7f51\u8bbe\u8ba1\u4e0e\u5f00\u53d1' },\n { id: 2, name: '\u79fb\u52a8\u7aefAPP\u5f00\u53d1', code: 'mobile-app', status: 'active', progress: '45%', description: 'iOS\u548cAndroid\u53cc\u7aef\u5e94\u7528\u5f00\u53d1' },\n { id: 3, name: '\u6570\u636e\u5206\u6790\u5e73\u53f0', code: 'data-platform', status: 'paused', progress: '30%', description: '\u4f01\u4e1a\u7ea7\u6570\u636e\u5206\u6790\u4e0e\u53ef\u89c6\u5316\u5e73\u53f0' },\n { id: 4, name: '\u5ba2\u6237\u7ba1\u7406\u7cfb\u7edf', code: 'crm', status: 'completed', progress: '100%', description: '\u5ba2\u6237\u5173\u7cfb\u7ba1\u7406\u7cfb\u7edf\u5347\u7ea7' },\n { id: 5, name: '\u5185\u90e8OA\u7cfb\u7edf', code: 'oa-system', status: 'active', progress: '60%', description: '\u529e\u516c\u81ea\u52a8\u5316\u7cfb\u7edf\u5efa\u8bbe' }\n ],\n totalCount: 5\n })\n },\n create: { loader: () => ({ code: 0 }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: {\n loader: () => ({ code: 0 })\n }\n };\n\n return (\n <PureGlobal preset={{ ...preset, apis: { project: apis } }}>\n <BizUnit\n name=\"project-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n options={{\n bizName: '\u9879\u76ee',\n openStatus: 'active',\n closedStatus: 'paused',\n openButtonProps: { children: '\u542f\u52a8' },\n closeButtonProps: { children: '\u6682\u505c' },\n closeMessage: '\u786e\u5b9a\u8981\u6682\u505c\u8be5\u9879\u76ee\u5417\uff1f\u6682\u505c\u540e\u9879\u76ee\u5c06\u505c\u6b62\u6240\u6709\u81ea\u52a8\u4efb\u52a1\u3002'\n }}\n />\n </PureGlobal>\n );\n});\n\nrender(<StatusControlExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"Actions \u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528",description:"Actions \u7ec4\u4ef6\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u573a\u666f\u4e0b\u7684\u64cd\u4f5c\u6309\u94ae\u533a\u57df\u3002\u9700\u8981\u5305\u88f9 PureGlobal \u63d0\u4f9b\u56fd\u9645\u5316\u4e0a\u4e0b\u6587\u3002\u5c55\u793a\u5982\u4f55\u5728\u4e0d\u4f7f\u7528 BizUnit \u5b8c\u6574\u529f\u80fd\u65f6\uff0c\u5355\u72ec\u4f7f\u7528\u64cd\u4f5c\u6309\u94ae\u7ec4\u4ef6\u3002",code:"const { default: BizUnit, Actions } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Flex, Tag } = antd;\n\n// Actions \u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528\u793a\u4f8b\nconst ActionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n \n const mockData = { id: 1, name: '\u6d4b\u8bd5\u89d2\u8272', status: 'open' };\n \n const mockApis = {\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n const mockOptions = {\n bizName: '\u89d2\u8272',\n openStatus: 'open',\n closedStatus: 'closed'\n };\n\n const mockGetFormInner = () => (\n <FormInfo column={1} list={[\n <FormInfo.fields.Input name=\"name\" label=\"\u540d\u79f0\" rule=\"REQ\" />\n ]} />\n );\n\n return (\n <PureGlobal preset={preset}>\n <Flex vertical gap={16}>\n <div>Actions \u7ec4\u4ef6\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u533a\u57df\uff1a</div>\n <Flex gap={8} align=\"center\">\n <Tag>\u64cd\u4f5c\u793a\u4f8b\uff1a</Tag>\n <Actions\n moreType=\"link\"\n data={mockData}\n apis={mockApis}\n options={mockOptions}\n getFormInner={mockGetFormInner}\n onSuccess={() => console.log('\u64cd\u4f5c\u6210\u529f')}\n />\n </Flex>\n <Flex gap={8} align=\"center\">\n <Tag>\u5df2\u5173\u95ed\u72b6\u6001\uff1a</Tag>\n <Actions\n moreType=\"link\"\n data={{ id: 2, name: '\u5df2\u7981\u7528\u89d2\u8272', status: 'closed' }}\n apis={mockApis}\n options={mockOptions}\n getFormInner={mockGetFormInner}\n onSuccess={() => console.log('\u64cd\u4f5c\u6210\u529f')}\n />\n </Flex>\n </Flex>\n </PureGlobal>\n );\n});\n\nrender(<ActionsExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]}]}}},40394(e,t,n){n.d(t,{A:()=>r});var o=n(13851),a=n(13050);const r={name:"Editor",summary:"<p>\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u5b57\u6bb5\u7ec4\u4ef6\uff0c\u57fa\u4e8e CKEditor \u5c01\u88c5\uff0c\u4f5c\u4e3a FormInfo \u7684\u5b57\u6bb5\u7ec4\u4ef6\u4f7f\u7528\uff0c\u652f\u6301\u6587\u672c\u683c\u5f0f\u5316\u3001\u56fe\u7247\u4e0a\u4f20\u3001\u8868\u683c\u63d2\u5165\u7b49\u5bcc\u6587\u672c\u7f16\u8f91\u529f\u80fd\u3002</p>",api:'<h2>Editor \u7ec4\u4ef6</h2>\n<p>\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u5b57\u6bb5\u7ec4\u4ef6\uff0c\u57fa\u4e8e CKEditor \u5c01\u88c5\uff0c\u4f5c\u4e3a FormInfo \u7684\u8868\u5355\u5b57\u6bb5\u7ec4\u4ef6\u4f7f\u7528\uff0c\u652f\u6301\u5bcc\u6587\u672c\u7f16\u8f91\u3001\u56fe\u7247\u4e0a\u4f20\u7b49\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>\u5b57\u6bb5\u540d\uff08\u5fc5\u586b\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>label</td>\n<td>\u5b57\u6bb5\u6807\u7b7e</td>\n<td>string | ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rule</td>\n<td>\u6821\u9a8c\u89c4\u5219\uff0c\u5982 "REQ" \u8868\u793a\u5fc5\u586b</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>\u5360\u4f4d\u7b26\u6587\u672c</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>disabled</td>\n<td>\u662f\u5426\u7981\u7528</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>readOnly</td>\n<td>\u662f\u5426\u53ea\u8bfb</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>value</td>\n<td>\u7f16\u8f91\u5668\u5185\u5bb9\uff08\u53d7\u63a7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>defaultValue</td>\n<td>\u9ed8\u8ba4\u5185\u5bb9\uff08\u975e\u53d7\u63a7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onChange</td>\n<td>\u5185\u5bb9\u53d8\u5316\u56de\u8c03</td>\n<td>function(value)</td>\n<td>-</td>\n</tr>\n<tr>\n<td>height</td>\n<td>\u7f16\u8f91\u5668\u9ad8\u5ea6</td>\n<td>number | string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>maxLength</td>\n<td>\u6700\u5927\u5b57\u7b26\u957f\u5ea6</td>\n<td>number</td>\n<td>-</td>\n</tr>\n<tr>\n<td>tips</td>\n<td>\u63d0\u793a\u4fe1\u606f</td>\n<td>string | ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>block</td>\n<td>\u662f\u5426\u5360\u6ee1\u6574\u884c</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>labelHidden</td>\n<td>\u662f\u5426\u9690\u85cf\u6807\u7b7e</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>display</td>\n<td>\u6761\u4ef6\u663e\u793a\u51fd\u6570</td>\n<td>function({ formData }) =&gt; boolean</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u4f7f\u7528\u8bf4\u660e</h2>\n<h3>\u4f5c\u4e3a\u8868\u5355\u5b57\u6bb5\u4f7f\u7528</h3>\n<p>Editor \u7ec4\u4ef6\u5fc5\u987b\u5728 FormInfo \u7684 Form \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u4f5c\u4e3a\u72ec\u7acb\u7684\u5b57\u6bb5\u7ec4\u4ef6\u5bfc\u5165\uff1a</p>\n<pre><code class="language-jsx">import { createWithRemoteLoader } from \'@kne/remote-loader\';\nimport Editor from \'@components/Editor\';\n\nconst FormExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\']\n})(({ remoteModules }) =&gt; {\n const [FormInfo] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n &lt;Form onSubmit={(data) =&gt; console.log(data)}&gt;\n &lt;Editor \n name="content" \n label="\u5185\u5bb9" \n rule="REQ" \n placeholder="\u8bf7\u8f93\u5165\u5185\u5bb9"\n /&gt;\n &lt;SubmitButton&gt;\u63d0\u4ea4&lt;/SubmitButton&gt;\n &lt;/Form&gt;\n );\n});\n</code></pre>\n<h3>\u56fe\u7247\u4e0a\u4f20\u529f\u80fd</h3>\n<p>Editor \u7ec4\u4ef6\u5185\u7f6e\u56fe\u7247\u4e0a\u4f20\u529f\u80fd\uff0c\u901a\u8fc7 <code>apis.file.uploadForEditor</code> \u914d\u7f6e\u4e0a\u4f20\u63a5\u53e3\u3002\u9700\u8981\u5728\u5168\u5c40 preset \u4e2d\u914d\u7f6e\u76f8\u5e94\u7684 API\u3002</p>\n<h3>\u5bcc\u6587\u672c\u529f\u80fd</h3>\n<p>\u652f\u6301\u5e38\u89c1\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u529f\u80fd\uff1a</p>\n<ul>\n<li>\u6587\u672c\u683c\u5f0f\u5316\uff08\u52a0\u7c97\u3001\u659c\u4f53\u3001\u4e0b\u5212\u7ebf\u3001\u5220\u9664\u7ebf\uff09</li>\n<li>\u6bb5\u843d\u683c\u5f0f\uff08\u6807\u9898\u3001\u5f15\u7528\u3001\u4ee3\u7801\u5757\uff09</li>\n<li>\u5217\u8868\uff08\u6709\u5e8f\u5217\u8868\u3001\u65e0\u5e8f\u5217\u8868\uff09</li>\n<li>\u5bf9\u9f50\u65b9\u5f0f</li>\n<li>\u94fe\u63a5\u63d2\u5165</li>\n<li>\u56fe\u7247\u63d2\u5165\uff08\u9700\u8981\u914d\u7f6e\u4e0a\u4f20\u63a5\u53e3\uff09</li>\n<li>\u8868\u683c\u63d2\u5165</li>\n<li>\u64a4\u9500/\u91cd\u505a</li>\n</ul>\n<h2>\u4f9d\u8d56\u6a21\u5757</h2>\n<ul>\n<li><code>components-thirdparty:CKEditor</code> - CKEditor \u7f16\u8f91\u5668\u6838\u5fc3</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e\uff08\u7528\u4e8e\u83b7\u53d6\u4e0a\u4f20\u63a5\u53e3\uff09</li>\n</ul>',example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a Editor \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u5305\u542b\u5fc5\u586b\u6821\u9a8c\u548c\u9ad8\u5ea6\u8bbe\u7f6e",code:'const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n <PureGlobal>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u5185\u5bb9:\', data);\n }}\n >\n <Editor\n name="content"\n label="\u6587\u7ae0\u5185\u5bb9"\n rule="REQ"\n placeholder="\u8bf7\u8f93\u5165\u6587\u7ae0\u5185\u5bb9..."\n height={300}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]},{title:"\u8868\u5355\u5b57\u6bb5\u4f7f\u7528",description:"\u5728\u8868\u5355\u4e2d\u914d\u5408\u5176\u4ed6\u5b57\u6bb5\u7ec4\u4ef6\u4f7f\u7528 Editor\uff0c\u5c55\u793a\u5b8c\u6574\u7684\u6587\u7ae0\u7f16\u8f91\u8868\u5355\u573a\u666f",code:"const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst FormFieldExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input, Select } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n title: '\u5982\u4f55\u4f7f\u7528\u5bcc\u6587\u672c\u7f16\u8f91\u5668',\n category: 'tutorial',\n content: '<h2>\u6b22\u8fce\u4f7f\u7528\u5bcc\u6587\u672c\u7f16\u8f91\u5668</h2><p>\u8fd9\u662f\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u7ec4\u4ef6\u3002</p><ul><li>\u652f\u6301\u6587\u672c\u683c\u5f0f\u5316</li><li>\u652f\u6301\u56fe\u7247\u4e0a\u4f20</li><li>\u652f\u6301\u8868\u683c\u63d2\u5165</li></ul>'\n }}\n onSubmit={(data) => {\n console.log('\u6587\u7ae0\u6570\u636e:', data);\n }}\n >\n <FormInfo\n title=\"\u6587\u7ae0\u4fe1\u606f\"\n column={2}\n list={[\n <Input name=\"title\" label=\"\u6587\u7ae0\u6807\u9898\" rule=\"REQ\" placeholder=\"\u8bf7\u8f93\u5165\u6587\u7ae0\u6807\u9898\" />,\n <Select\n name=\"category\"\n label=\"\u6587\u7ae0\u5206\u7c7b\"\n rule=\"REQ\"\n options={[\n { label: '\u6559\u7a0b', value: 'tutorial' },\n { label: '\u6280\u672f\u5206\u4eab', value: 'tech' },\n { label: '\u4ea7\u54c1\u4ecb\u7ecd', value: 'product' },\n { label: '\u65b0\u95fb\u52a8\u6001', value: 'news' }\n ]}\n />\n ]}\n />\n <Editor\n name=\"content\"\n label=\"\u6587\u7ae0\u5185\u5bb9\"\n rule=\"REQ\"\n placeholder=\"\u8bf7\u8f93\u5165\u6587\u7ae0\u5185\u5bb9\uff0c\u652f\u6301\u5bcc\u6587\u672c\u683c\u5f0f...\"\n height={400}\n block\n />\n <div style={{ marginTop: 24, textAlign: 'center' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type=\"primary\">\u53d1\u5e03\u6587\u7ae0</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<FormFieldExample />);\n\n",scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:n(1784)},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]},{title:"\u53ea\u8bfb\u6a21\u5f0f",description:"\u5c55\u793a Editor \u7684\u53ea\u8bfb\u6a21\u5f0f\uff0c\u901a\u5e38\u7528\u4e8e\u5185\u5bb9\u9884\u89c8\u6216\u8be6\u60c5\u5c55\u793a",code:'const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst ReadonlyExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, fields } = FormInfo;\n const { Input } = fields;\n\n const articleContent = `\n<h2>\u4ea7\u54c1\u53d1\u5e03\u516c\u544a</h2>\n<p>\u6211\u4eec\u5f88\u9ad8\u5174\u5730\u5ba3\u5e03\uff0c\u65b0\u7248\u672c\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u5df2\u7ecf\u4e0a\u7ebf\uff01</p>\n<h3>\u4e3b\u8981\u529f\u80fd</h3>\n<ul>\n <li><strong>\u6587\u672c\u683c\u5f0f\u5316</strong>\uff1a\u652f\u6301\u52a0\u7c97\u3001\u659c\u4f53\u3001\u4e0b\u5212\u7ebf\u7b49\u6837\u5f0f</li>\n <li><strong>\u6bb5\u843d\u6392\u7248</strong>\uff1a\u6807\u9898\u3001\u5f15\u7528\u3001\u4ee3\u7801\u5757\u7b49</li>\n <li><strong>\u5217\u8868\u652f\u6301</strong>\uff1a\u6709\u5e8f\u5217\u8868\u548c\u65e0\u5e8f\u5217\u8868</li>\n <li><strong>\u56fe\u7247\u4e0a\u4f20</strong>\uff1a\u652f\u6301\u62d6\u62fd\u6216\u7c98\u8d34\u4e0a\u4f20\u56fe\u7247</li>\n <li><strong>\u8868\u683c\u63d2\u5165</strong>\uff1a\u65b9\u4fbf\u5730\u521b\u5efa\u548c\u7f16\u8f91\u8868\u683c</li>\n</ul>\n<h3>\u4f7f\u7528\u793a\u4f8b</h3>\n<blockquote>\n <p>\u8fd9\u662f\u4e00\u4e2a\u5f15\u7528\u6587\u672c\uff0c\u901a\u5e38\u7528\u4e8e\u5f3a\u8c03\u91cd\u8981\u5185\u5bb9\u3002</p>\n</blockquote>\n<p>\u611f\u8c22\u60a8\u7684\u4f7f\u7528\uff0c\u5982\u6709\u95ee\u9898\u8bf7\u8054\u7cfb\u5ba2\u670d\u3002</p>\n `.trim();\n\n return (\n <PureGlobal>\n <Form data={{ title: \'\u4ea7\u54c1\u53d1\u5e03\u516c\u544a\', content: articleContent }}>\n <FormInfo\n title="\u6587\u7ae0\u8be6\u60c5\uff08\u53ea\u8bfb\u6a21\u5f0f\uff09"\n column={1}\n list={[\n <Input name="title" label="\u6587\u7ae0\u6807\u9898" disabled />\n ]}\n />\n <Editor name="content" label="\u6587\u7ae0\u5185\u5bb9" readOnly height={400} block />\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ReadonlyExample />);\n\n',scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]},{title:"\u8868\u5355\u6821\u9a8c",description:"\u5c55\u793a Editor \u5728\u8868\u5355\u4e2d\u7684\u6821\u9a8c\u529f\u80fd\uff0c\u652f\u6301\u5fc5\u586b\u548c\u957f\u5ea6\u6821\u9a8c",code:'const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst ValidationExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u5e26\u6821\u9a8c\u89c4\u5219\u7684\u8868\u5355"\n column={1}\n list={[\n <Input name="title" label="\u6807\u9898" rule="REQ LEN-5-50" placeholder="\u6807\u9898\u957f\u5ea65-50\u4e2a\u5b57\u7b26" />\n ]}\n />\n <Editor\n name="content"\n label="\u5185\u5bb9"\n rule="REQ"\n placeholder="\u8bf7\u8f93\u5165\u5185\u5bb9\uff0c\u5fc5\u586b\u5b57\u6bb5"\n height={250}\n tips="\u5185\u5bb9\u4e3a\u5fc5\u586b\u9879\uff0c\u8bf7\u8f93\u5165\u6587\u7ae0\u6b63\u6587"\n block\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ValidationExample />);\n\n',scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]}]}}},3870(e,t,n){n.d(t,{A:()=>d});var o=n(40409),a=n(1784),r=n(13050);const d={name:"GroupSelect",summary:"<p>\u5206\u7ec4\u6807\u7b7e\u9009\u62e9\u5668\u7ec4\u4ef6\uff0c\u57fa\u4e8e SuperSelectTableList \u5c01\u88c5\uff0c\u652f\u6301\u641c\u7d22\u3001\u5206\u9875\u3001\u6dfb\u52a0\u548c\u5220\u9664\u6807\u7b7e\u529f\u80fd\uff0c\u9002\u7528\u4e8e\u6280\u80fd\u6807\u7b7e\u3001\u5206\u7c7b\u6807\u7b7e\u7b49\u573a\u666f\u7684\u8868\u5355\u5b57\u6bb5\u3002</p>",api:'<h2>GroupSelect \u7ec4\u4ef6</h2>\n<p>\u5206\u7ec4\u6807\u7b7e\u9009\u62e9\u5668\u7ec4\u4ef6\uff0c\u57fa\u4e8e SuperSelectTableList \u5c01\u88c5\uff0c\u7528\u4e8e\u9009\u62e9\u548c\u7ba1\u7406\u6280\u80fd\u6807\u7b7e\u6216\u5176\u4ed6\u5206\u7ec4\u6570\u636e\uff0c\u652f\u6301\u641c\u7d22\u3001\u5206\u9875\u3001\u6dfb\u52a0\u548c\u5220\u9664\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>\u5b57\u6bb5\u540d\uff08\u5fc5\u586b\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>label</td>\n<td>\u5b57\u6bb5\u6807\u7b7e</td>\n<td>string | ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rule</td>\n<td>\u6821\u9a8c\u89c4\u5219</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e\u5bf9\u8c61</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis.list</td>\n<td>\u5217\u8868\u67e5\u8be2\u63a5\u53e3\u914d\u7f6e\uff08\u5fc5\u586b\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis.create</td>\n<td>\u521b\u5efa\u6807\u7b7e\u63a5\u53e3\u914d\u7f6e\uff08\u4f20\u5165\u5219\u663e\u793a\u6dfb\u52a0\u6309\u94ae\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis.remove</td>\n<td>\u5220\u9664\u6807\u7b7e\u63a5\u53e3\u914d\u7f6e\uff08\u4f20\u5165\u5219\u663e\u793a\u5220\u9664\u6309\u94ae\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>valueKey</td>\n<td>\u503c\u5b57\u6bb5\u540d</td>\n<td>string</td>\n<td>\'code\'</td>\n</tr>\n<tr>\n<td>labelKey</td>\n<td>\u6807\u7b7e\u5b57\u6bb5\u540d</td>\n<td>string</td>\n<td>\'name\'</td>\n</tr>\n<tr>\n<td>single</td>\n<td>\u662f\u5426\u5355\u9009</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>\u5360\u4f4d\u7b26</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>disabled</td>\n<td>\u662f\u5426\u7981\u7528</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>groupName</td>\n<td>\u6807\u7b7e\u540d\u79f0\uff0c\u7528\u4e8e\u663e\u793a\u6dfb\u52a0/\u5220\u9664\u7b49\u64cd\u4f5c\u6587\u6848</td>\n<td>string</td>\n<td>\'\u6807\u7b7e\'</td>\n</tr>\n</tbody>\n</table>\n<h2>\u529f\u80fd\u7279\u6027</h2>\n<h3>1. \u8868\u683c\u5217\u8868\u5c55\u793a</h3>\n<ul>\n<li>\u4ee5\u8868\u683c\u5f62\u5f0f\u5c55\u793a\u6807\u7b7e\u5217\u8868\uff0c\u5305\u542b\u7f16\u7801\u3001\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f</li>\n<li>\u652f\u6301\u5206\u9875\u663e\u793a</li>\n</ul>\n<h3>2. \u641c\u7d22\u529f\u80fd</h3>\n<ul>\n<li>\u652f\u6301\u5173\u952e\u5b57\u641c\u7d22\u6807\u7b7e</li>\n<li>\u5b9e\u65f6\u8fc7\u6ee4\u641c\u7d22\u7ed3\u679c</li>\n</ul>\n<h3>3. \u6dfb\u52a0\u6807\u7b7e</h3>\n<ul>\n<li>\u70b9\u51fb\u5e95\u90e8"\u6dfb\u52a0\u6807\u7b7e"\u6309\u94ae\u53ef\u6dfb\u52a0\u65b0\u6807\u7b7e</li>\n<li>\u5f39\u51fa\u8868\u5355\u586b\u5199\u7f16\u7801\u3001\u540d\u79f0\u3001\u63cf\u8ff0\u4fe1\u606f</li>\n<li>\u4ec5\u5f53\u4f20\u5165 <code>apis.create</code> \u6216\u5168\u5c40\u914d\u7f6e <code>preset.apis.group.create</code> \u65f6\u663e\u793a</li>\n</ul>\n<h3>4. \u5220\u9664\u6807\u7b7e</h3>\n<ul>\n<li>\u6bcf\u884c\u663e\u793a\u5220\u9664\u64cd\u4f5c\u6309\u94ae</li>\n<li>\u5220\u9664\u524d\u9700\u786e\u8ba4</li>\n<li>\u5982\u679c\u6807\u7b7e\u5df2\u88ab\u9009\u4e2d\uff0c\u4f1a\u81ea\u52a8\u4ece\u5df2\u9009\u5217\u8868\u4e2d\u79fb\u9664</li>\n<li>\u4ec5\u5f53\u4f20\u5165 <code>apis.remove</code> \u6216\u5168\u5c40\u914d\u7f6e <code>preset.apis.group.remove</code> \u65f6\u663e\u793a</li>\n</ul>\n<h3>5. \u591a\u9009/\u5355\u9009</h3>\n<ul>\n<li>\u9ed8\u8ba4\u652f\u6301\u591a\u9009</li>\n<li>\u8bbe\u7f6e <code>single={true}</code> \u5207\u6362\u4e3a\u5355\u9009\u6a21\u5f0f</li>\n</ul>\n<h2>\u4f7f\u7528\u8bf4\u660e</h2>\n<h3>\u57fa\u672c\u7528\u6cd5</h3>\n<pre><code class="language-jsx">import { createWithRemoteLoader } from \'@kne/remote-loader\';\nimport GroupSelect from \'@components/GroupSelect\';\n\nconst FormExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\']\n})(({ remoteModules }) =&gt; {\n const [FormInfo] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n &lt;Form onSubmit={(data) =&gt; console.log(data)}&gt;\n &lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n rule="REQ"\n /&gt;\n &lt;SubmitButton&gt;\u63d0\u4ea4&lt;/SubmitButton&gt;\n &lt;/Form&gt;\n );\n});\n</code></pre>\n<h3>\u81ea\u5b9a\u4e49\u6807\u7b7e\u540d\u79f0</h3>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n groupName="\u6280\u80fd\u6807\u7b7e"\n/&gt;\n</code></pre>\n<h3>\u81ea\u5b9a\u4e49 API</h3>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n apis={{\n list: { url: \'/api/groups\', method: \'GET\' },\n create: { url: \'/api/groups\', method: \'POST\' },\n remove: { url: \'/api/groups/remove\', method: \'POST\' }\n }}\n/&gt;\n</code></pre>\n<h3>\u5355\u9009\u6a21\u5f0f</h3>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="primaryGroup"\n label="\u4e3b\u6280\u80fd\u6807\u7b7e"\n single\n/&gt;\n</code></pre>\n<h3>\u53ea\u8bfb\u6a21\u5f0f\uff08\u4e0d\u663e\u793a\u6dfb\u52a0/\u5220\u9664\u6309\u94ae\uff09</h3>\n<p>\u5f53\u53ea\u4f20\u5165 <code>apis.list</code> \u800c\u4e0d\u4f20\u5165 <code>create</code> \u548c <code>remove</code> \u65f6\uff0c\u7ec4\u4ef6\u5c06\u53ea\u63d0\u4f9b\u9009\u62e9\u529f\u80fd\uff0c\u4e0d\u663e\u793a\u6dfb\u52a0\u548c\u5220\u9664\u6309\u94ae\uff1a</p>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n apis={{\n list: { url: \'/api/groups\', method: \'GET\' }\n // \u4e0d\u4f20 create\uff0c\u9690\u85cf\u6dfb\u52a0\u6309\u94ae\n // \u4e0d\u4f20 remove\uff0c\u9690\u85cf\u5220\u9664\u6309\u94ae\n }}\n/&gt;\n</code></pre>\n<h2>\u4f9d\u8d56\u6a21\u5757</h2>\n<ul>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo@useFormModal</code> - \u8868\u5355\u5f39\u7a97</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e\uff08\u7528\u4e8e\u83b7\u53d6\u9ed8\u8ba4 API\uff09</li>\n</ul>\n<h2>\u9ed8\u8ba4 API \u914d\u7f6e</h2>\n<p>\u7ec4\u4ef6\u9ed8\u8ba4\u4f7f\u7528 <code>apis.group</code> \u4e2d\u7684\u63a5\u53e3\u914d\u7f6e\uff1a</p>\n<pre><code class="language-javascript">{\n list: { /* \u5217\u8868\u67e5\u8be2\u63a5\u53e3 */ },\n create: { /* \u521b\u5efa\u6807\u7b7e\u63a5\u53e3 */ },\n remove: { /* \u5220\u9664\u6807\u7b7e\u63a5\u53e3 */ }\n}\n</code></pre>\n<p>\u9700\u8981\u5728\u5168\u5c40 preset \u4e2d\u914d\u7f6e\u76f8\u5e94\u7684 API\uff0c\u6216\u901a\u8fc7 <code>apis</code> \u5c5e\u6027\u4f20\u5165\u3002</p>',example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a GroupSelect \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u652f\u6301\u591a\u9009\u3001\u641c\u7d22\u3001\u6dfb\u52a0\u548c\u5220\u9664\u6807\u7b7e",code:'const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u6280\u80fd\u6807\u7b7e\u9009\u62e9"\n column={1}\n list={[\n <Input name="name" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u6280\u80fd\u6807\u7b7e"\n groupName="\u6280\u80fd\u6807\u7b7e"\n />\n <div style={{ marginTop: 24, textAlign: \'center\' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type="primary">\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5355\u9009\u6a21\u5f0f",description:"\u5c55\u793a GroupSelect \u7684\u5355\u9009\u6a21\u5f0f\uff0c\u9002\u7528\u4e8e\u53ea\u9700\u9009\u62e9\u4e00\u4e2a\u6807\u7b7e\u7684\u573a\u666f",code:'const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst SingleSelectExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n name: \'\u6570\u636e\u5206\u6790\u9879\u76ee\',\n primaryGroup: \'ai\'\n }}\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u4e3b\u6280\u80fd\u6807\u7b7e\u9009\u62e9"\n column={1}\n list={[\n <Input name="name" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <GroupSelect\n name="primaryGroup"\n label="\u4e3b\u6280\u80fd\u6807\u7b7e"\n single\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u4e00\u4e2a\u4e3b\u6280\u80fd\u6807\u7b7e"\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<SingleSelectExample />);\n\n',scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5e26\u521d\u59cb\u503c",description:"\u5c55\u793a GroupSelect \u5e26\u521d\u59cb\u503c\u7684\u4f7f\u7528\u65b9\u5f0f\uff0c\u7528\u4e8e\u7f16\u8f91\u573a\u666f",code:"const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst WithInitialValueExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n name: '\u5168\u6808\u5f00\u53d1\u9879\u76ee',\n groups: [\n { code: 'frontend', name: '\u524d\u7aef\u5f00\u53d1' },\n { code: 'backend', name: '\u540e\u7aef\u5f00\u53d1' },\n { code: 'database', name: '\u6570\u636e\u5e93' }\n ]\n }}\n onSubmit={(data) => {\n console.log('\u63d0\u4ea4\u6570\u636e:', data);\n }}\n >\n <FormInfo\n title=\"\u7f16\u8f91\u9879\u76ee\u6280\u80fd\u6807\u7b7e\"\n column={1}\n list={[\n <Input name=\"name\" label=\"\u9879\u76ee\u540d\u79f0\" rule=\"REQ\" placeholder=\"\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0\" />\n ]}\n />\n <GroupSelect\n name=\"groups\"\n label=\"\u6280\u80fd\u6807\u7b7e\"\n placeholder=\"\u8bf7\u9009\u62e9\u6280\u80fd\u6807\u7b7e\"\n />\n <div style={{ marginTop: 24, textAlign: 'center' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type=\"primary\">\u4fdd\u5b58</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<WithInitialValueExample />);\n\n",scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u53ea\u8bfb\u6a21\u5f0f",description:"\u4e0d\u4f20 create \u548c remove \u63a5\u53e3\u65f6\uff0c\u9690\u85cf\u6dfb\u52a0\u548c\u5220\u9664\u6309\u94ae\uff0c\u9002\u7528\u4e8e\u53ea\u505a\u9009\u62e9\u7684\u573a\u666f",code:'const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset, groupList } = _mockPreset;\n\nconst ReadonlyExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n name: \'\u53ea\u8bfb\u9879\u76ee\',\n groups: [\n { code: \'frontend\', name: \'\u524d\u7aef\u5f00\u53d1\' },\n { code: \'backend\', name: \'\u540e\u7aef\u5f00\u53d1\' }\n ]\n }}\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u53ea\u8bfb\u6807\u7b7e\u9009\u62e9\uff08\u65e0\u6dfb\u52a0/\u5220\u9664\u529f\u80fd\uff09"\n column={1}\n list={[\n <Input name="name" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n placeholder="\u8bf7\u9009\u62e9\u6280\u80fd\u6807\u7b7e"\n groupName="\u6280\u80fd\u6807\u7b7e"\n apis={{\n // \u53ea\u4f20 list \u63a5\u53e3\uff0c\u4e0d\u4f20 create \u548c remove\uff0c\u9690\u85cf\u6dfb\u52a0\u548c\u5220\u9664\u6309\u94ae\n list: {\n loader: () => groupList.data\n }\n }}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ReadonlyExample />);\n\n',scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},28537(e,t,n){n.d(t,{A:()=>d});var o=n(52751),a=n(1784),r=n(13050);const d={name:"IntlAdmin",summary:"<p>\u56fd\u9645\u5316\u8bed\u8a00\u5305\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u8bed\u8a00\u7c7b\u578b\u548c\u8bed\u8a00\u5e93\u7684\u5b8c\u6574\u7ba1\u7406\u529f\u80fd\uff0c\u652f\u6301\u591a\u8bed\u8a00\u7ffb\u8bd1\u6587\u672c\u7684\u589e\u5220\u6539\u67e5\u548c\u5ba1\u6838\u6d41\u7a0b\u3002</p>",api:'<h2>IntlAdmin \u7ec4\u4ef6</h2>\n<p>\u56fd\u9645\u5316\u8bed\u8a00\u5305\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u8bed\u8a00\u7c7b\u578b\u548c\u8bed\u8a00\u5e93\u7684\u7ba1\u7406\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u5b50\u7ec4\u4ef6</h2>\n<h3>LangType \u5b50\u7ec4\u4ef6</h3>\n<p>\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406\u7ec4\u4ef6\uff0c\u7ba1\u7406\u652f\u6301\u7684\u8bed\u8a00\u79cd\u7c7b\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>menu</td>\n<td>\u83dc\u5355\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u529f\u80fd\u8bf4\u660e\uff1a</strong></p>\n<ul>\n<li>\u8bed\u8a00\u7c7b\u578b\u5217\u8868\u5c55\u793a</li>\n<li>\u521b\u5efa\u65b0\u7684\u8bed\u8a00\u7c7b\u578b</li>\n<li>\u7f16\u8f91\u8bed\u8a00\u7c7b\u578b\u4fe1\u606f</li>\n<li>\u5220\u9664\u8bed\u8a00\u7c7b\u578b</li>\n<li>\u542f\u7528/\u7981\u7528\u8bed\u8a00\u7c7b\u578b</li>\n</ul>\n<p><strong>\u6570\u636e\u7ed3\u6784\uff1a</strong></p>\n<pre><code class="language-javascript">{\n id: number, // ID\n name: string, // \u540d\u79f0\uff08\u5982\uff1a\u4e2d\u6587\uff08\u7b80\u4f53\uff09\uff09\n code: string, // \u7f16\u7801\uff08\u5982\uff1azh-CN\uff09\n params: string, // \u7ffb\u8bd1\u53c2\u6570\n description: string, // \u63cf\u8ff0\n status: string // \u72b6\u6001\uff1aopen-\u542f\u7528\uff0cclosed-\u7981\u7528\n}\n</code></pre>\n<h3>LangLib \u5b50\u7ec4\u4ef6</h3>\n<p>\u8bed\u8a00\u5e93\u7ba1\u7406\u7ec4\u4ef6\uff0c\u7ba1\u7406\u5404\u8bed\u8a00\u7684\u7ffb\u8bd1\u6587\u672c\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>menu</td>\n<td>\u83dc\u5355\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u529f\u80fd\u8bf4\u660e\uff1a</strong></p>\n<ul>\n<li>\u8bed\u8a00\u5e93\u5217\u8868\u5c55\u793a</li>\n<li>\u6dfb\u52a0\u8bed\u8a00\u5305</li>\n<li>\u7f16\u8f91\u7ffb\u8bd1\u6587\u672c</li>\n<li>\u542f\u7528/\u7981\u7528\u8bed\u8a00\u5305</li>\n</ul>\n<p><strong>\u6570\u636e\u7ed3\u6784\uff1a</strong></p>\n<pre><code class="language-javascript">{\n id: number, // ID\n namespace: string, // \u547d\u540d\u7a7a\u95f4\uff08\u5982\uff1acomponents-admin:User\uff09\n locale: string, // \u8bed\u8a00\uff08\u5982\uff1azh-CN\uff09\n code: string, // \u7f16\u7801\uff08\u5982\uff1aAddUser\uff09\n target: string, // \u76ee\u6807\u503c\uff08\u7ffb\u8bd1\u6587\u672c\uff09\n reviewStatus: string, // \u5ba1\u6838\u72b6\u6001\uff1aapproved-\u5df2\u901a\u8fc7\uff0cpending-\u5f85\u5ba1\u6838\uff0crejected-\u5df2\u62d2\u7edd\n status: string // \u72b6\u6001\uff1aopen-\u542f\u7528\uff0cclosed-\u7981\u7528\n}\n</code></pre>\n<h2>BizUnit \u914d\u7f6e</h2>\n<p>LangType \u548c LangLib \u5b50\u7ec4\u4ef6\u90fd\u57fa\u4e8e BizUnit \u5b9e\u73b0\uff0c\u5177\u6709\u4ee5\u4e0b\u6807\u51c6\u529f\u80fd\uff1a</p>\n<h3>LangType \u914d\u7f6e</h3>\n<ul>\n<li><strong>apis</strong>: list, create, save, remove, setStatus</li>\n<li><strong>options.bizName</strong>: \'\u8bed\u8a00\u79cd\u7c7b\'</li>\n<li><strong>\u5217\u914d\u7f6e</strong>: ID\u3001\u540d\u79f0\u3001\u7f16\u7801\u3001\u7ffb\u8bd1\u53c2\u6570\u3001\u63cf\u8ff0\u3001\u72b6\u6001</li>\n</ul>\n<h3>LangLib \u914d\u7f6e</h3>\n<ul>\n<li><strong>apis</strong>: list, create, save, setStatus</li>\n<li><strong>\u5217\u914d\u7f6e</strong>: ID\u3001\u547d\u540d\u7a7a\u95f4\u3001\u8bed\u8a00\u3001\u7f16\u7801\u3001\u76ee\u6807\u503c\u3001\u5ba1\u6838\u72b6\u6001\u3001\u72b6\u6001</li>\n</ul>\n<h2>\u4f9d\u8d56\u7ec4\u4ef6</h2>\n<p>IntlAdmin \u7ec4\u4ef6\u4f9d\u8d56\u4ee5\u4e0b\u6a21\u5757\uff1a</p>\n<ul>\n<li><code>@components/BizUnit</code> - \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6</li>\n<li><code>components-core:Menu</code> - \u83dc\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e</li>\n<li><code>components-core:Layout@TablePage</code> - \u8868\u683c\u9875\u9762\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n</ul>\n<h2>\u8def\u7531\u7ed3\u6784</h2>\n<pre><code>/IntlAdmin -&gt; LangType \u7ec4\u4ef6\uff08\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406\uff09\n/IntlAdmin/lang-lib -&gt; LangLib \u7ec4\u4ef6\uff08\u8bed\u8a00\u5e93\u7ba1\u7406\uff09\n</code></pre>',example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"IntlAdmin \u7ec4\u4ef6\u7684\u5b8c\u6574\u529f\u80fd\u5c55\u793a\uff0c\u5305\u542b\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406\u548c\u8bed\u8a00\u5e93\u7ba1\u7406\u4e24\u4e2a\u5b50\u6a21\u5757\uff0c\u901a\u8fc7\u5de6\u4fa7\u83dc\u5355\u8fdb\u884c\u5207\u6362",code:'const { default: IntlAdmin } = _IntlAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useNavigate, Navigate } = reactRouterDom;\nconst { Route, Routes } = reactRouterDom;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n const navigate = useNavigate();\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path="/IntlAdmin/*"\n element={\n <IntlAdmin\n baseUrl="/IntlAdmin"\n pageProps={{\n menuFixed: false\n }}\n />\n }\n />\n <Route path="/*" element={<Navigate to="/IntlAdmin" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_IntlAdmin",packageName:"@components/IntlAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:n(94679)}]},{title:"\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406",description:"LangType \u5b50\u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528\uff0c\u5c55\u793a\u8bed\u8a00\u7c7b\u578b\u7684\u5217\u8868\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u548c\u72b6\u6001\u5207\u6362\u529f\u80fd",code:"const { default: IntlAdmin } = _IntlAdmin;\nconst { LangType } = IntlAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst LangTypeExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <LangType\n pageProps={{\n menuFixed: false\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<LangTypeExample />);\n\n",scope:[{name:"_IntlAdmin",packageName:"@components/IntlAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u8bed\u8a00\u5e93\u7ba1\u7406",description:"LangLib \u5b50\u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528\uff0c\u5c55\u793a\u8bed\u8a00\u5e93\u7684\u5217\u8868\u3001\u6dfb\u52a0\u548c\u7f16\u8f91\u7ffb\u8bd1\u6587\u672c\u529f\u80fd",code:"const { default: IntlAdmin } = _IntlAdmin;\nconst { LangLib } = IntlAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst LangLibExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <LangLib\n pageProps={{\n menuFixed: false\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<LangLibExample />);\n\n",scope:[{name:"_IntlAdmin",packageName:"@components/IntlAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},19319(e,t,n){n.d(t,{A:()=>o});const o={name:"Language",summary:"<p>\u5207\u6362\u7cfb\u7edf\u8bed\u8a00</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!1,className:"Language_4994a",style:".Language_4994a .example-driver-preview {\n background: #999;\n}",list:[{title:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u6807\u9898",description:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u8bf4\u660e",code:"const { default: Language } = _Language;\nconst BaseExample = () => {\n return (\n <>\n <Language list={[\n { label: '\u4e2d\u6587', value: 'zh-CN' },\n { label: 'EN', value: 'en-US' },\n { label: '\u7e41\u4f53\u4e2d\u6587', value: 'zh-TW' },\n { label: '\u65e5\u672c\u8a9e', value: 'ja-JP' }\n ]}/>\n <Language\n colorful={false}\n list={[\n { label: '\u4e2d\u6587', value: 'zh-CN' },\n { label: 'EN', value: 'en-US' },\n { label: '\u7e41\u4f53\u4e2d\u6587', value: 'zh-TW' },\n { label: '\u65e5\u672c\u8a9e', value: 'ja-JP' }\n ]}\n />\n </>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Language",packageName:"@components/Language",component:n(35795)}]}]}}},1266(e,t,n){n.d(t,{A:()=>o});const o={name:"LoginIllustration",summary:"<p>\u7528\u6765\u5b9e\u73b0\u4e00\u4e9b\u7cbe\u7f8e\u7684\u767b\u5f55\u52a8\u753b</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u6807\u9898",description:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u8bf4\u660e",code:"const { default: LoginIllustration } = _LoginIllustration;\nconst BaseExample = () => {\n return (\n <div style={{ width: '400px', height: '500px' }}>\n <LoginIllustration />\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_LoginIllustration",packageName:"@components/LoginIllustration",component:n(64948)}]}]}}},82984(e,t,n){n.d(t,{A:()=>o});const o={name:"MessageManger",summary:"<p>\u6d88\u606f\u7ba1\u7406</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u6807\u9898",description:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u8bf4\u660e",code:"const {default:MessageManger} = _MessageManger;\nconst BaseExample = ()=>{\n return <MessageManger />;\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_MessageManger",packageName:"@components/MessageManger",component:n(97594)}]}]}}},48537(e,t,n){n.d(t,{A:()=>d});var o=n(71859),a=n(1784),r=n(13050);const d={name:"Signature",summary:"<p>\u7b7e\u540d\u5bc6\u94a5\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7b7e\u540d\u5bc6\u94a5\u7684\u521b\u5efa\u3001\u9a8c\u8bc1\u3001\u542f\u7528/\u7981\u7528\u548c\u5220\u9664\u529f\u80fd\uff0c\u652f\u6301\u5bc6\u94a5\u5217\u8868\u5c55\u793a\u548c\u7528\u6237\u5173\u8054\u7ba1\u7406\u3002</p>",api:"<h2>Signature \u7ec4\u4ef6</h2>\n<p>\u7b7e\u540d\u5bc6\u94a5\u7ba1\u7406\u7ec4\u4ef6\uff0c\u57fa\u4e8e BizUnit \u5c01\u88c5\uff0c\u63d0\u4f9b\u7b7e\u540d\u5bc6\u94a5\u7684\u5217\u8868\u5c55\u793a\u3001\u521b\u5efa\u3001\u9a8c\u8bc1\u3001\u542f\u7528/\u7981\u7528\u548c\u5220\u9664\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\u65e0</td>\n<td>Signature \u7ec4\u4ef6\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u9875\u9762\u7ec4\u4ef6\uff0c\u4e0d\u9700\u8981\u4f20\u5165\u5c5e\u6027</td>\n<td>-</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u529f\u80fd\u8bf4\u660e</h2>\n<p>Signature \u7ec4\u4ef6\u57fa\u4e8e BizUnit \u5b9e\u73b0\uff0c\u5305\u542b\u4ee5\u4e0b\u6838\u5fc3\u529f\u80fd\uff1a</p>\n<h3>1. \u5bc6\u94a5\u5217\u8868\u5c55\u793a</h3>\n<ul>\n<li>\u663e\u793a\u6240\u6709\u7b7e\u540d\u5bc6\u94a5\u7684\u5217\u8868</li>\n<li>\u5305\u542b AppId\u3001SecretKey\u3001\u6240\u5c5e\u7528\u6237\u3001\u63cf\u8ff0\u3001\u6700\u540e\u8bbf\u95ee\u65f6\u95f4\u3001\u72b6\u6001\u3001\u521b\u5efa\u65f6\u95f4\u7b49\u4fe1\u606f</li>\n<li>\u652f\u6301\u5206\u9875\u5c55\u793a</li>\n</ul>\n<h3>2. \u6dfb\u52a0\u5bc6\u94a5</h3>\n<ul>\n<li>\u9009\u62e9\u5bc6\u94a5\u6240\u5c5e\u7528\u6237</li>\n<li>\u586b\u5199\u5bc6\u94a5\u63cf\u8ff0\uff08\u6700\u591a100\u5b57\u7b26\uff09</li>\n<li>\u521b\u5efa\u6210\u529f\u540e\u5f39\u7a97\u5c55\u793a AppId \u548c SecretKey\uff0c\u9700\u59a5\u5584\u4fdd\u5b58</li>\n</ul>\n<h3>3. \u9a8c\u8bc1\u5bc6\u94a5</h3>\n<ul>\n<li>\u8f93\u5165\u7b7e\u540d\u5185\u5bb9</li>\n<li>\u8f93\u5165\u65f6\u95f4\u6233\uff08\u6570\u5b57\uff09</li>\n<li>\u8f93\u5165\u8fc7\u671f\u65f6\u95f4\uff08\u6570\u5b57\uff09</li>\n<li>\u9a8c\u8bc1\u5bc6\u94a5\u662f\u5426\u6709\u6548</li>\n</ul>\n<h3>4. \u542f\u7528/\u7981\u7528\u5bc6\u94a5</h3>\n<ul>\n<li>\u7981\u7528\u5bc6\u94a5\u540e\u5c06\u62d2\u7edd\u8be5\u5bc6\u94a5\u7684\u6240\u6709\u8bf7\u6c42</li>\n<li>\u542f\u7528\u5bc6\u94a5\u540e\u5c06\u5141\u8bb8\u8be5\u5bc6\u94a5\u8bbf\u95ee\u8bf7\u6c42</li>\n</ul>\n<h3>5. \u5220\u9664\u5bc6\u94a5</h3>\n<ul>\n<li>\u53ea\u80fd\u5220\u9664\u5df2\u7981\u7528\u7684\u5bc6\u94a5</li>\n<li>\u5220\u9664\u64cd\u4f5c\u9700\u8981\u786e\u8ba4</li>\n</ul>\n<h2>getColumns \u51fd\u6570</h2>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>formatMessage</td>\n<td>\u56fd\u9645\u5316\u683c\u5f0f\u5316\u51fd\u6570</td>\n<td>(descriptor) =&gt; string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p>\u8fd4\u56de\u503c\uff1aTablePage \u7684 columns \u914d\u7f6e\u6570\u7ec4</p>\n<h2>\u6570\u636e\u7ed3\u6784</h2>\n<h3>\u5bc6\u94a5\u6570\u636e\u5bf9\u8c61</h3>\n<pre><code class=\"language-javascript\">{\n appId: string, // \u5e94\u7528ID\n secretKey: string, // \u5bc6\u94a5\n user: { // \u6240\u5c5e\u7528\u6237\n id: number,\n nickname: string,\n email: string,\n phone: string\n },\n description: string, // \u63cf\u8ff0\n lastVisitedAt: string, // \u6700\u540e\u8bbf\u95ee\u65f6\u95f4\n status: number, // \u72b6\u6001\uff1a0-\u542f\u7528\uff0c1-\u7981\u7528\n createdAt: string // \u521b\u5efa\u65f6\u95f4\n}\n</code></pre>\n<h2>BizUnit \u914d\u7f6e</h2>\n<p>Signature \u7ec4\u4ef6\u4f7f\u7528\u4ee5\u4e0b BizUnit \u914d\u7f6e\uff1a</p>\n<h3>apis \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>list</td>\n<td>\u5217\u8868\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>remove</td>\n<td>\u5220\u9664\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>setStatus</td>\n<td>\u72b6\u6001\u5207\u6362\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n</tbody>\n</table>\n<h3>options \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bizName</td>\n<td>\u4e1a\u52a1\u540d\u79f0</td>\n<td>string</td>\n<td>'\u5bc6\u94a5'</td>\n</tr>\n<tr>\n<td>openStatus</td>\n<td>\u542f\u7528\u72b6\u6001\u503c</td>\n<td>number</td>\n<td>0</td>\n</tr>\n<tr>\n<td>closedStatus</td>\n<td>\u7981\u7528\u72b6\u6001\u503c</td>\n<td>number</td>\n<td>1</td>\n</tr>\n<tr>\n<td>openButtonProps</td>\n<td>\u542f\u7528\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>closeButtonProps</td>\n<td>\u7981\u7528\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>closeMessage</td>\n<td>\u7981\u7528\u786e\u8ba4\u63d0\u793a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>removeMessage</td>\n<td>\u5220\u9664\u786e\u8ba4\u63d0\u793a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae</h3>\n<p>\u901a\u8fc7 <code>getActionList</code> \u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\uff1a</p>\n<ul>\n<li><strong>\u9a8c\u8bc1\u6309\u94ae</strong> - \u81ea\u5b9a\u4e49\u7684\u9a8c\u8bc1\u5bc6\u94a5\u529f\u80fd\u6309\u94ae</li>\n<li><strong>\u542f\u7528/\u7981\u7528\u6309\u94ae</strong> - \u57fa\u4e8e BizUnit \u5185\u7f6e\u7684\u72b6\u6001\u5207\u6362\u529f\u80fd</li>\n<li><strong>\u5220\u9664\u6309\u94ae</strong> - \u57fa\u4e8e BizUnit \u5185\u7f6e\u7684\u5220\u9664\u529f\u80fd\uff0c\u4ec5\u5bf9\u5df2\u7981\u7528\u5bc6\u94a5\u663e\u793a</li>\n</ul>\n<h2>\u4f9d\u8d56\u7ec4\u4ef6</h2>\n<p>Signature \u7ec4\u4ef6\u4f9d\u8d56\u4ee5\u4e0b\u6a21\u5757\uff1a</p>\n<ul>\n<li><code>@components/BizUnit</code> - \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo@useFormModal</code> - \u8868\u5355\u5f39\u7a97</li>\n<li><code>components-core:InfoPage@CentralContent</code> - \u4fe1\u606f\u5c55\u793a\u7ec4\u4ef6</li>\n</ul>\n<h2>\u56fd\u9645\u5316</h2>\n<p>\u7ec4\u4ef6\u652f\u6301\u4e2d\u82f1\u6587\u56fd\u9645\u5316\uff0c\u9ed8\u8ba4\u8bed\u8a00\u4e3a\u4e2d\u6587\u3002</p>\n<h3>\u53ef\u7528\u7684\u56fd\u9645\u5316 key</h3>\n<ul>\n<li><code>AddSecretKey</code> - \u6dfb\u52a0\u5bc6\u94a5</li>\n<li><code>Verify</code> - \u9a8c\u8bc1</li>\n<li><code>Enabled</code> - \u542f\u7528</li>\n<li><code>Disabled</code> - \u7981\u7528</li>\n<li><code>BelongUser</code> - \u6240\u5c5e\u7528\u6237</li>\n<li><code>Description</code> - \u63cf\u8ff0</li>\n<li><code>Status</code> - \u72b6\u6001</li>\n<li><code>CreatedAt</code> - \u521b\u5efa\u65f6\u95f4</li>\n<li><code>LastVisitedAt</code> - \u6700\u540e\u8bbf\u95ee\u65f6\u95f4</li>\n<li><code>SecretKeyGenerated</code> - \u5bc6\u94a5\u751f\u6210\u6210\u529f</li>\n<li><code>SaveSecretKeyWarning</code> - \u4fdd\u5b58\u5bc6\u94a5\u8b66\u544a</li>\n<li><code>VerifySuccess</code> - \u9a8c\u8bc1\u6210\u529f</li>\n<li><code>VerifyFailed</code> - \u9a8c\u8bc1\u5931\u8d25</li>\n<li><code>DisableSecretKeyMessage</code> - \u7981\u7528\u5bc6\u94a5\u786e\u8ba4\u63d0\u793a</li>\n</ul>",example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"Signature \u7ec4\u4ef6\u7684\u5b8c\u6574\u529f\u80fd\u5c55\u793a\uff0c\u5305\u62ec\u5bc6\u94a5\u5217\u8868\u3001\u6dfb\u52a0\u5bc6\u94a5\u3001\u9a8c\u8bc1\u5bc6\u94a5\u3001\u542f\u7528/\u7981\u7528\u548c\u5220\u9664\u5bc6\u94a5\u7b49\u529f\u80fd",code:"const { default: Signature } = _Signature;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Signature />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Signature",packageName:"@components/Signature",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u8868\u683c\u5217\u914d\u7f6e",description:"\u4f7f\u7528 getColumns \u51fd\u6570\u83b7\u53d6\u7b7e\u540d\u5217\u8868\u7684\u8868\u683c\u5217\u914d\u7f6e\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u56fd\u9645\u5316\u5c55\u793a",code:"const { default: mockPreset } = _mockPreset;\nconst { getColumns } = _Signature;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Table } = antd;\n\nconst GetColumnsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n \n // \u6a21\u62df\u56fd\u9645\u5316\u51fd\u6570\n const formatMessage = ({ id }) => {\n const messages = {\n 'BelongUser': '\u6240\u5c5e\u7528\u6237',\n 'Description': '\u63cf\u8ff0',\n 'LastVisitedAt': '\u6700\u540e\u8bbf\u95ee\u65f6\u95f4',\n 'Status': '\u72b6\u6001',\n 'CreatedAt': '\u521b\u5efa\u65f6\u95f4',\n 'Enabled': '\u542f\u7528',\n 'Disabled': '\u7981\u7528'\n };\n return messages[id] || id;\n };\n\n // \u83b7\u53d6\u8868\u683c\u5217\u914d\u7f6e\n const columns = getColumns({ formatMessage });\n\n // \u6a21\u62df\u6570\u636e\n const data = [\n {\n id: 1,\n appId: 'app_20240308001',\n secretKey: 'sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6',\n user: {\n nickname: '\u5f20\u4e09',\n email: 'zhangsan@example.com',\n phone: '138****1234'\n },\n description: '\u7528\u4e8eAPI\u5bf9\u63a5\u7684\u4e3b\u5bc6\u94a5',\n lastVisitedAt: '2024-03-08 14:30:00',\n status: 0,\n createdAt: '2024-03-01 09:00:00'\n },\n {\n id: 2,\n appId: 'app_20240305002',\n secretKey: 'sk_z9y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4',\n user: {\n nickname: '\u674e\u56db',\n email: 'lisi@example.com',\n phone: '139****5678'\n },\n description: '\u6d4b\u8bd5\u73af\u5883\u4f7f\u7528\u7684\u7b7e\u540d\u5bc6\u94a5',\n lastVisitedAt: '2024-03-05 16:20:00',\n status: 1,\n createdAt: '2024-02-28 11:00:00'\n }\n ];\n\n return (\n <PureGlobal preset={mockPreset}>\n <Table\n dataSource={data}\n columns={columns.map(col => ({\n ...col,\n key: col.name,\n dataIndex: col.name,\n title: col.title,\n render: col.type === 'tag' \n ? (value, record) => {\n const tagData = col.valueOf(record, { name: col.name });\n return <span style={{ color: tagData.type === 'success' ? '#52c41a' : '#ff4d4f' }}>{tagData.text}</span>;\n }\n : col.type === 'datetime'\n ? (value) => value\n : col.type === 'other' && col.valueOf\n ? (value, record) => col.valueOf(record)\n : (value) => value\n }))}\n pagination={false}\n />\n </PureGlobal>\n );\n});\n\nrender(<GetColumnsExample />);\n\n",scope:[{name:"_Signature",packageName:"@components/Signature",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]}]}}},37726(e,t,n){n.d(t,{A:()=>l});var o=n(45272),a=n(1784),r=n(13050),d=n(94679),s=n(55199);const l={name:"Task",summary:"<p>\u4efb\u52a1\u7ba1\u7406\u7ec4\u4ef6\uff0c\u7528\u4e8e\u5c55\u793a\u548c\u7ba1\u7406\u7cfb\u7edf\u4e2d\u7684\u5f02\u6b65\u4efb\u52a1\u3002\u652f\u6301\u67e5\u770b\u6211\u7684\u4efb\u52a1\u548c\u5168\u90e8\u4efb\u52a1\uff0c\u63d0\u4f9b\u4efb\u52a1\u7b5b\u9009\u3001\u6392\u5e8f\u3001\u6279\u91cf\u64cd\u4f5c\u7b49\u529f\u80fd\u3002\u5305\u542b\u4efb\u52a1\u53d6\u6d88\u3001\u91cd\u8bd5\u3001\u67e5\u770b\u9519\u8bef\u8be6\u60c5\u548c\u7ed3\u679c\u8be6\u60c5\u7b49\u64cd\u4f5c\u3002</p>",api:"<h2>Task \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u83dc\u5355\u5bfc\u822a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570\uff0c\u63a5\u6536\u4efb\u52a1\u6570\u636e\u8fd4\u56de\u6309\u94ae\u7ec4\u4ef6</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>MyTask \u5b50\u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u83dc\u5355\u5bfc\u822a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>AllTask \u5b50\u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u83dc\u5355\u5bfc\u822a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>Actions \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u64cd\u4f5c\u6210\u529f\u540e\u7684\u56de\u8c03\u51fd\u6570</td>\n<td>() =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u6309\u94ae\u7c7b\u578b</td>\n<td>'default' | 'primary' | 'link'</td>\n<td>'default'</td>\n</tr>\n<tr>\n<td>moreType</td>\n<td>\u66f4\u591a\u6309\u94ae\u7684\u7c7b\u578b</td>\n<td>'default' | 'primary' | 'link'</td>\n<td>'link'</td>\n</tr>\n<tr>\n<td>itemClassName</td>\n<td>\u6309\u94ae\u9879\u7684\u81ea\u5b9a\u4e49\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3\u51fd\u6570\uff0c\u63a5\u6536\u64cd\u4f5c\u5217\u8868</td>\n<td>({ list }) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>CancelTask \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u53d6\u6d88\u6210\u529f\u540e\u7684\u56de\u8c03\u51fd\u6570</td>\n<td>() =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>RetryTask \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u5355\u4e2a\u4efb\u52a1\u6570\u636e\u5bf9\u8c61\uff08\u5355\u4e2a\u91cd\u8bd5\u65f6\u4f7f\u7528\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>taskIds</td>\n<td>\u4efb\u52a1ID\u6570\u7ec4\uff08\u6279\u91cf\u91cd\u8bd5\u65f6\u4f7f\u7528\uff09</td>\n<td>number[]</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u91cd\u8bd5\u6210\u529f\u540e\u7684\u56de\u8c03\u51fd\u6570</td>\n<td>() =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>ErrorDetail \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61\uff0c\u5305\u542binput\u548cerror\u5b57\u6bb5</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>ResultDetail \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61\uff0c\u5305\u542binput\u548coutput\u5b57\u6bb5</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>getColumns \u51fd\u6570</h2>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>formatMessage</td>\n<td>\u56fd\u9645\u5316\u683c\u5f0f\u5316\u51fd\u6570</td>\n<td>(descriptor) =&gt; string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p>\u8fd4\u56de\u503c\uff1aTablePage \u7684 columns \u914d\u7f6e\u6570\u7ec4</p>\n<h2>enums \u679a\u4e3e</h2>\n<h3>taskStatus</h3>\n<p>\u4efb\u52a1\u72b6\u6001\u679a\u4e3e\uff0c\u5305\u542b\u4ee5\u4e0b\u503c\uff1a</p>\n<ul>\n<li>pending: \u7b49\u5f85\u6267\u884c</li>\n<li>running: \u6267\u884c\u4e2d</li>\n<li>waiting: \u7b49\u5f85\u64cd\u4f5c</li>\n<li>success: \u6210\u529f</li>\n<li>failed: \u5931\u8d25</li>\n<li>canceled: \u53d6\u6d88</li>\n</ul>",example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"Task \u7ec4\u4ef6\u7684\u57fa\u7840\u4f7f\u7528\u65b9\u5f0f\uff0c\u5c55\u793a\u6211\u7684\u4efb\u52a1\u5217\u8868\uff0c\u5305\u542b\u4efb\u52a1\u7b5b\u9009\u3001\u6392\u5e8f\u548c\u64cd\u4f5c\u529f\u80fd",code:"const { default: Task } = _Task;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useNavigate, Navigate } = reactRouterDom;\nconst { Button, Flex } = antd;\nconst { Route, Routes } = reactRouterDom;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n const navigate = useNavigate();\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path=\"/Task/task/*\"\n element={\n <Task\n baseUrl=\"/Task\"\n pageProps={{\n menuFixed: false\n }}>\n <Flex gap={8}>\n <Button\n onClick={() => {\n navigate('/Task/task');\n }}>\n \u6211\u7684\u4efb\u52a1\n </Button>\n <Button\n onClick={() => {\n navigate('/Task/task/all');\n }}>\n \u5168\u90e8\u4efb\u52a1\n </Button>\n </Flex>\n </Task>\n }\n />\n <Route path=\"*\" element={<Navigate to=\"/Task/task\" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d},{name:"antd",packageName:"antd",component:s}]},{title:"\u6211\u7684\u4efb\u52a1",description:"\u5c55\u793a\u6211\u7684\u4efb\u52a1\u5217\u8868\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u624b\u52a8\u4efb\u52a1\u7684\u64cd\u4f5c\u6309\u94ae\uff0c\u53ea\u663e\u793a\u624b\u52a8\u6267\u884c\u7684\u4efb\u52a1",code:"const { MyTask } = _Task;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { BrowserRouter } = reactRouterDom;\nconst { Button } = antd;\n\nconst MyTaskExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n\n // \u81ea\u5b9a\u4e49\u624b\u52a8\u4efb\u52a1\u7684\u64cd\u4f5c\u6309\u94ae\n const getManualTaskAction = data => {\n return props => (\n <Button\n {...props}\n onClick={() => {\n console.log('\u5b8c\u6210\u4efb\u52a1:', data);\n props.onSuccess?.();\n }}>\n \u5b8c\u6210\u4efb\u52a1\n </Button>\n );\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <MyTask\n baseUrl=\"/Task\"\n getManualTaskAction={getManualTaskAction}\n pageProps={{\n menuOpen: false,\n menuFixed: false,\n menu: null\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<MyTaskExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d},{name:"antd",packageName:"antd",component:s}]},{title:"\u5168\u90e8\u4efb\u52a1",description:"\u5c55\u793a\u5168\u90e8\u4efb\u52a1\u5217\u8868\uff0c\u5305\u542b\u624b\u52a8\u6267\u884c\u548c\u81ea\u52a8\u6267\u884c\u7684\u4efb\u52a1\uff0c\u652f\u6301\u6279\u91cf\u91cd\u8bd5\u5931\u8d25\u7684\u4efb\u52a1",code:"const { AllTask } = _Task;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { BrowserRouter, Routes, Route } = reactRouterDom;\n\nconst AllTaskExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <AllTask\n baseUrl=\"/Task\"\n pageProps={{\n menu: null,\n menuOpen: false,\n menuFixed: false\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<AllTaskExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]},{title:"\u4efb\u52a1\u64cd\u4f5c\u6309\u94ae",description:"Actions \u7ec4\u4ef6\u6839\u636e\u4efb\u52a1\u72b6\u6001\u81ea\u52a8\u663e\u793a\u76f8\u5e94\u7684\u64cd\u4f5c\u6309\u94ae\uff0c\u5982\u53d6\u6d88\u3001\u91cd\u8bd5\u3001\u67e5\u770b\u9519\u8bef\u8be6\u60c5\u3001\u67e5\u770b\u7ed3\u679c\u7b49",code:"const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Space, Button } = antd;\n\nconst ActionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n const { useState } = React;\n const [refreshKey, setRefreshKey] = useState(0);\n\n // \u83b7\u53d6\u4e0d\u540c\u72b6\u6001\u7684\u4efb\u52a1\u6570\u636e\n const pendingTask = taskList.data.pageData.find(task => task.status === 'pending');\n const runningTask = taskList.data.pageData.find(task => task.status === 'running');\n const failedTask = taskList.data.pageData.find(task => task.status === 'failed');\n const successTask = taskList.data.pageData.find(task => task.status === 'success');\n const canceledTask = taskList.data.pageData.find(task => task.status === 'canceled');\n\n const handleSuccess = () => {\n console.log('\u64cd\u4f5c\u6210\u529f');\n setRefreshKey(prev => prev + 1);\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction=\"vertical\" size=\"large\" style={{ width: '100%' }}>\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u7b49\u5f85\u6267\u884c\u7684\u624b\u52a8\u4efb\u52a1\uff08\u663e\u793a\u5b8c\u6210\u548c\u53d6\u6d88\u6309\u94ae\uff09\uff1a</div>\n <Actions\n data={pendingTask}\n type=\"primary\"\n onSuccess={handleSuccess}\n getManualTaskAction={data => {\n return props => (\n <Button\n {...props}\n onClick={() => {\n console.log('\u5b8c\u6210\u4efb\u52a1:', data);\n props.onSuccess?.();\n }}>\n \u5b8c\u6210\n </Button>\n );\n }}\n />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u6267\u884c\u4e2d\u7684\u4efb\u52a1\uff08\u663e\u793a\u53d6\u6d88\u6309\u94ae\uff09\uff1a</div>\n <Actions data={runningTask} type=\"default\" onSuccess={handleSuccess} />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u5931\u8d25\u7684\u4efb\u52a1\uff08\u663e\u793a\u91cd\u8bd5\u548c\u9519\u8bef\u8be6\u60c5\u6309\u94ae\uff09\uff1a</div>\n <Actions data={failedTask} type=\"link\" onSuccess={handleSuccess} />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u6210\u529f\u7684\u4efb\u52a1\uff08\u663e\u793a\u67e5\u770b\u7ed3\u679c\u6309\u94ae\uff09\uff1a</div>\n <Actions data={successTask} type=\"link\" onSuccess={handleSuccess} />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u5df2\u53d6\u6d88\u7684\u4efb\u52a1\uff08\u663e\u793a\u91cd\u8bd5\u6309\u94ae\uff09\uff1a</div>\n <Actions data={canceledTask} type=\"default\" onSuccess={handleSuccess} />\n </div>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<ActionsExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u53d6\u6d88\u4efb\u52a1",description:"\u5c55\u793a\u53d6\u6d88\u4efb\u52a1\u529f\u80fd\uff0c\u652f\u6301\u53d6\u6d88\u7b49\u5f85\u6267\u884c\u548c\u6267\u884c\u4e2d\u7684\u4efb\u52a1",code:'const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Space, Card } = antd;\n\nconst CancelTaskExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n const { useState } = React;\n\n // \u83b7\u53d6\u53ef\u4ee5\u53d6\u6d88\u7684\u4efb\u52a1\n const pendingTask = taskList.data.pageData.find(task => task.status === \'pending\');\n const runningTask = taskList.data.pageData.find(task => task.status === \'running\');\n\n const handleSuccess = () => {\n console.log(\'\u4efb\u52a1\u5df2\u53d6\u6d88\');\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction="vertical" size="middle" style={{ width: \'100%\' }}>\n <Card title="\u7b49\u5f85\u6267\u884c\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{pendingTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{pendingTask.status}\n </div>\n <Actions data={pendingTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n\n <Card title="\u6267\u884c\u4e2d\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{runningTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{runningTask.status}\n </div>\n <Actions data={runningTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<CancelTaskExample />);\n\n',scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u91cd\u8bd5\u4efb\u52a1",description:"\u5c55\u793a\u91cd\u8bd5\u4efb\u52a1\u529f\u80fd\uff0c\u652f\u6301\u91cd\u8bd5\u5931\u8d25\u548c\u5df2\u53d6\u6d88\u7684\u4efb\u52a1",code:'const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Space, Card } = antd;\n\nconst RetryTaskExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n // \u83b7\u53d6\u53ef\u4ee5\u91cd\u8bd5\u7684\u4efb\u52a1\n const failedTask = taskList.data.pageData.find(task => task.status === \'failed\');\n const canceledTask = taskList.data.pageData.find(task => task.status === \'canceled\');\n\n const handleSuccess = () => {\n console.log(\'\u4efb\u52a1\u5df2\u91cd\u65b0\u63d0\u4ea4\u6267\u884c\');\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction="vertical" size="middle" style={{ width: \'100%\' }}>\n <Card title="\u5931\u8d25\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{failedTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{failedTask.status}\n </div>\n <div style={{ marginBottom: 8, color: \'#ff4d4f\' }}>\n \u9519\u8bef\u4fe1\u606f\uff1a{failedTask.error.message}\n </div>\n <Actions data={failedTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n\n <Card title="\u5df2\u53d6\u6d88\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{canceledTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{canceledTask.status}\n </div>\n <Actions data={canceledTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<RetryTaskExample />);\n\n',scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u9519\u8bef\u8be6\u60c5",description:"\u5c55\u793a\u5931\u8d25\u4efb\u52a1\u7684\u9519\u8bef\u8be6\u60c5\uff0c\u5305\u62ec\u8f93\u5165\u53c2\u6570\u548c\u9519\u8bef\u4fe1\u606f",code:"const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card } = antd;\n\nconst ErrorDetailExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n // \u83b7\u53d6\u5931\u8d25\u7684\u4efb\u52a1\n const failedTask = taskList.data.pageData.find(task => task.status === 'failed');\n\n return (\n <PureGlobal preset={mockPreset}>\n <Card title=\"\u5931\u8d25\u4efb\u52a1\u8be6\u60c5\" size=\"small\">\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1ID\uff1a</strong>{failedTask.id}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u540d\u79f0\uff1a</strong>{failedTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u7c7b\u578b\uff1a</strong>{failedTask.type}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u72b6\u6001\uff1a</strong>\n <span style={{ color: '#ff4d4f' }}>{failedTask.status}</span>\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u9519\u8bef\u4ee3\u7801\uff1a</strong>{failedTask.error.code}\n </div>\n <div style={{ marginBottom: 16 }}>\n <strong>\u9519\u8bef\u4fe1\u606f\uff1a</strong>{failedTask.error.message}\n </div>\n <Actions data={failedTask} type=\"primary\" />\n </Card>\n </PureGlobal>\n );\n});\n\nrender(<ErrorDetailExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u7ed3\u679c\u8be6\u60c5",description:"\u5c55\u793a\u6210\u529f\u4efb\u52a1\u7684\u7ed3\u679c\u8be6\u60c5\uff0c\u5305\u62ec\u8f93\u5165\u53c2\u6570\u548c\u8f93\u51fa\u7ed3\u679c",code:"const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card } = antd;\n\nconst ResultDetailExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n // \u83b7\u53d6\u6210\u529f\u7684\u4efb\u52a1\n const successTask = taskList.data.pageData.find(task => task.status === 'success');\n\n return (\n <PureGlobal preset={mockPreset}>\n <Card title=\"\u6210\u529f\u4efb\u52a1\u8be6\u60c5\" size=\"small\">\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1ID\uff1a</strong>{successTask.id}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u540d\u79f0\uff1a</strong>{successTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u7c7b\u578b\uff1a</strong>{successTask.type}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u72b6\u6001\uff1a</strong>\n <span style={{ color: '#52c41a' }}>{successTask.status}</span>\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u521b\u5efa\u65f6\u95f4\uff1a</strong>{successTask.createdAt}\n </div>\n <div style={{ marginBottom: 16 }}>\n <strong>\u5b8c\u6210\u65f6\u95f4\uff1a</strong>{successTask.completedAt}\n </div>\n <Actions data={successTask} type=\"primary\" />\n </Card>\n </PureGlobal>\n );\n});\n\nrender(<ResultDetailExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u8868\u683c\u5217\u914d\u7f6e",description:"\u4f7f\u7528 getColumns \u51fd\u6570\u83b7\u53d6\u4efb\u52a1\u5217\u8868\u7684\u8868\u683c\u5217\u914d\u7f6e\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u56fd\u9645\u5316",code:"const { getColumns } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst GetColumnsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout@TablePage', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, TablePage, Layout] = remoteModules;\n\n // \u6a21\u62df\u56fd\u9645\u5316\u51fd\u6570\n const formatMessage = ({ id }) => {\n const messages = {\n ID: 'ID',\n Type: '\u7c7b\u578b',\n Status: '\u72b6\u6001',\n TargetName: '\u76ee\u6807\u540d\u79f0',\n ExecutionMode: '\u6267\u884c\u65b9\u5f0f',\n CreatedAt: '\u521b\u5efa\u65f6\u95f4',\n CompletedAt: '\u5b8c\u6210\u65f6\u95f4',\n UpdatedAt: '\u66f4\u65b0\u65f6\u95f4',\n ManualExecution: '\u624b\u52a8\u6267\u884c',\n AutomaticExecution: '\u81ea\u52a8\u6267\u884c'\n };\n return messages[id] || id;\n };\n\n const columns = getColumns({ formatMessage });\n\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <TablePage\n loader={() => {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(taskList.data);\n }, 500);\n });\n }}\n columns={columns}\n pagination={{ paramsType: 'params' }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<GetColumnsExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u679a\u4e3e\u503c",description:"\u5c55\u793a Task \u7ec4\u4ef6\u63d0\u4f9b\u7684\u679a\u4e3e\u503c\uff0c\u5305\u62ec\u4efb\u52a1\u72b6\u6001\u679a\u4e3e",code:"const { enums } = _Task;\nconst { Space, Tag } = antd;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst EnumsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Enum']\n})(({ remoteModules }) => {\n const [PureGlobal, Enum] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction=\"vertical\" size=\"large\" style={{ width: '100%' }}>\n <div>\n <h4>\u4efb\u52a1\u72b6\u6001\u679a\u4e3e\uff08taskStatus\uff09</h4>\n <Space wrap>\n <Enum moduleName=\"taskStatus\">\n {taskStatusList => {\n return taskStatusList.map(status => (\n <Tag\n key={status.value}\n color={\n status.type === 'success'\n ? 'green'\n : status.type === 'danger'\n ? 'red'\n : status.type === 'progress'\n ? 'blue'\n : status.type === 'info'\n ? 'default'\n : 'default'\n }>\n {status.value}: {status.description}\n </Tag>\n ));\n }}\n </Enum>\n </Space>\n </div>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<EnumsExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]}]}}},56585(e,t,n){n.d(t,{A:()=>d});var o=n(4836),a=n(1784),r=n(13050);const d={name:"Tenant",summary:"<p>\u79df\u6237\u7ba1\u7406\u7cfb\u7edf\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u516c\u53f8\u4fe1\u606f\u7ba1\u7406\u3001\u7ec4\u7ec7\u67b6\u6784\u7ba1\u7406\u3001\u7528\u6237\u7ba1\u7406\u3001\u89d2\u8272\u6743\u9650\u7ba1\u7406\u7b49\u5b8c\u6574\u7684\u79df\u6237\u7ba1\u7406\u529f\u80fd\u3002</p>",api:"<h2>Tenant \u7ec4\u4ef6</h2>\n<p>\u79df\u6237\u7ba1\u7406\u7cfb\u7edf\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u79df\u6237\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u62ec\u516c\u53f8\u4fe1\u606f\u7ba1\u7406\u3001\u7ec4\u7ec7\u67b6\u6784\u7ba1\u7406\u3001\u7528\u6237\u7ba1\u7406\u3001\u89d2\u8272\u6743\u9650\u7ba1\u7406\u7b49\u3002</p>\n<h2>\u4e3b\u7ec4\u4ef6 Tenant</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u8def\u7531\u57fa\u7840\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>{}</td>\n</tr>\n<tr>\n<td>list</td>\n<td>\u81ea\u5b9a\u4e49\u8def\u7531\u914d\u7f6e</td>\n<td>array</td>\n<td>[]</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u5143\u7d20</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u5b50\u7ec4\u4ef6</h2>\n<h3>CompanyInfo \u516c\u53f8\u4fe1\u606f</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u516c\u53f8\u6570\u636e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u63d0\u4ea4\u56de\u8c03</td>\n<td>function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>hasEdit</td>\n<td>\u662f\u5426\u663e\u793a\u7f16\u8f91\u6309\u94ae</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>OrgInfo \u7ec4\u7ec7\u67b6\u6784</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u7ec4\u7ec7\u5217\u8868\u6570\u636e</td>\n<td>array</td>\n<td>[]</td>\n</tr>\n<tr>\n<td>companyName</td>\n<td>\u516c\u53f8\u540d\u79f0</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u64cd\u4f5c\u6210\u529f\u56de\u8c03</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>UserList \u7528\u6237\u5217\u8868</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>topOptionsSize</td>\n<td>\u9876\u90e8\u64cd\u4f5c\u6309\u94ae\u5c3a\u5bf8</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onMount</td>\n<td>\u6302\u8f7d\u56de\u8c03</td>\n<td>function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Role \u89d2\u8272\u7ba1\u7406</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Permission \u6743\u9650\u7ba1\u7406</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>LoginTenant \u79df\u6237\u767b\u5f55</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>tenantPath</td>\n<td>\u767b\u5f55\u6210\u529f\u8df3\u8f6c\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>JoinInvitation \u9080\u8bf7\u52a0\u5165</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u5f84</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Setting \u7cfb\u7edf\u8bbe\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>API \u914d\u7f6e\u8bf4\u660e</h2>\n<pre><code class=\"language-javascript\">const apis = {\n tenant: {\n // \u7528\u6237\u76f8\u5173\n getUserInfo: { /* \u83b7\u53d6\u5f53\u524d\u7528\u6237\u4fe1\u606f */ },\n getOrgList: { /* \u83b7\u53d6\u7ec4\u7ec7\u5217\u8868 */ },\n saveOrg: { /* \u4fdd\u5b58\u7ec4\u7ec7 */ },\n createOrg: { /* \u521b\u5efa\u7ec4\u7ec7 */ },\n removeOrg: { /* \u5220\u9664\u7ec4\u7ec7 */ },\n getUserList: { /* \u83b7\u53d6\u7528\u6237\u5217\u8868 */ },\n createUser: { /* \u521b\u5efa\u7528\u6237 */ },\n saveUser: { /* \u4fdd\u5b58\u7528\u6237 */ },\n removeUser: { /* \u5220\u9664\u7528\u6237 */ },\n // \u89d2\u8272\u76f8\u5173\n getRoleList: { /* \u83b7\u53d6\u89d2\u8272\u5217\u8868 */ },\n createRole: { /* \u521b\u5efa\u89d2\u8272 */ },\n saveRole: { /* \u4fdd\u5b58\u89d2\u8272 */ },\n removeRole: { /* \u5220\u9664\u89d2\u8272 */ },\n permissionSave: { /* \u4fdd\u5b58\u89d2\u8272\u6743\u9650 */ },\n // \u79df\u6237\u76f8\u5173\n getTenantList: { /* \u83b7\u53d6\u79df\u6237\u5217\u8868 */ },\n getPermissionList: { /* \u83b7\u53d6\u6743\u9650\u5217\u8868 */ },\n savePermission: { /* \u4fdd\u5b58\u6743\u9650 */ },\n // \u9080\u8bf7\u76f8\u5173\n parseJoinToken: { /* \u89e3\u6790\u9080\u8bf7\u4ee4\u724c */ },\n join: { /* \u52a0\u5165\u79df\u6237 */ }\n }\n};\n</code></pre>\n<h2>\u4f9d\u8d56\u6a21\u5757</h2>\n<ul>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:Layout</code> - \u5e03\u5c40\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e</li>\n<li><code>components-admin:Authenticate@AfterUserLoginLayout</code> - \u7528\u6237\u767b\u5f55\u540e\u5e03\u5c40</li>\n</ul>",example:{isFull:!0,className:"",style:"",list:[{title:"\u516c\u53f8\u4fe1\u606f",description:"CompanyInfo \u7ec4\u4ef6\u7528\u4e8e\u5c55\u793a\u548c\u7f16\u8f91\u516c\u53f8\u57fa\u672c\u4fe1\u606f\uff0c\u5305\u62ec\u516c\u53f8\u7b80\u4ecb\u3001\u53d1\u5c55\u5386\u7a0b\u3001\u56e2\u961f\u4ecb\u7ecd\u7b49",code:"const { CompanyInfo } = _Tenant;\nconst { default: mockPreset, tenantData } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst CompanyInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <CompanyInfo\n data={tenantData.company}\n hasEdit={true}\n apis={{\n save: { loader: () => ({ code: 0 }) }\n }}\n onSubmit={(data) => {\n console.log('\u4fdd\u5b58\u516c\u53f8\u4fe1\u606f:', data);\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<CompanyInfoExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u7ec4\u7ec7\u67b6\u6784",description:"OrgInfo \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u7ec4\u7ec7\u67b6\u6784\uff0c\u652f\u6301\u6811\u5f62\u548c\u56fe\u5f62\u4e24\u79cd\u5c55\u793a\u6a21\u5f0f\uff0c\u53ef\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u7ec4\u7ec7\u8282\u70b9",code:"const { OrgInfo } = _Tenant;\nconst { default: mockPreset, tenantData } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst OrgInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <OrgInfo\n data={tenantData.orgList}\n companyName={tenantData.company.name}\n apis={{\n create: { loader: () => ({ id: `dept-${Date.now()}` }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) }\n }}\n onSuccess={() => {\n console.log('\u64cd\u4f5c\u6210\u529f');\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<OrgInfoExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u7528\u6237\u5217\u8868",description:"UserList \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u79df\u6237\u7528\u6237\uff0c\u652f\u6301\u641c\u7d22\u3001\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u7528\u6237",code:"const { UserList } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst UserListExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <UserList\n apis={{\n list: mockPreset.apis.tenant.getUserList,\n create: mockPreset.apis.tenant.createUser,\n save: mockPreset.apis.tenant.saveUser,\n remove: mockPreset.apis.tenant.removeUser\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<UserListExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u89d2\u8272\u7ba1\u7406",description:"Role \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u89d2\u8272\uff0c\u652f\u6301\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u89d2\u8272\uff0c\u5e76\u53ef\u4e3a\u89d2\u8272\u5206\u914d\u6743\u9650",code:"const { Role } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst RoleExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Role\n apis={{\n list: mockPreset.apis.tenant.getRoleList,\n create: mockPreset.apis.tenant.createRole,\n save: mockPreset.apis.tenant.saveRole,\n remove: mockPreset.apis.tenant.removeRole,\n permissionSave: mockPreset.apis.tenant.savePermission,\n permissionList: mockPreset.apis.tenant.getPermissionList\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<RoleExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u6743\u9650\u7ba1\u7406",description:"Permission \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u6743\u9650\uff0c\u5305\u542b\u79df\u6237\u6743\u9650\u3001\u89d2\u8272\u7ba1\u7406\u548c\u5171\u4eab\u7fa4\u7ec4\u4e09\u4e2a\u5b50\u6a21\u5757",code:"const { Permission } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst PermissionExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Permission\n apis={{\n permission: {\n list: mockPreset.apis.tenant.getPermissionList,\n save: mockPreset.apis.tenant.savePermission\n },\n role: {\n list: mockPreset.apis.tenant.getRoleList,\n create: mockPreset.apis.tenant.createRole,\n save: mockPreset.apis.tenant.saveRole,\n remove: mockPreset.apis.tenant.removeRole,\n permissionSave: mockPreset.apis.tenant.savePermission,\n permissionList: mockPreset.apis.tenant.getPermissionList\n }\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<PermissionExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u79df\u6237\u767b\u5f55",description:"LoginTenant \u7ec4\u4ef6\u7528\u4e8e\u79df\u6237\u9009\u62e9\u767b\u5f55\uff0c\u5c55\u793a\u7528\u6237\u53ef\u8bbf\u95ee\u7684\u79df\u6237\u5217\u8868",code:"const { LoginTenant } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst LoginTenantExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <LoginTenant tenantPath=\"/tenant\" />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<LoginTenantExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u52a0\u5165\u9080\u8bf7",description:"JoinInvitation \u7ec4\u4ef6\u7528\u4e8e\u5904\u7406\u79df\u6237\u9080\u8bf7\u52a0\u5165\u6d41\u7a0b\uff0c\u5c55\u793a\u516c\u53f8\u4fe1\u606f\u786e\u8ba4\u548c\u5458\u5de5\u4fe1\u606f\u786e\u8ba4\u6b65\u9aa4",code:'const { JoinInvitation } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card, Flex } = antd;\n\nconst JoinInvitationExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Flex vertical gap={24}>\n <Card title="\u6210\u529f\u793a\u4f8b\uff08\u6709\u6548token\uff09">\n <JoinInvitation baseUrl="" token="valid" />\n </Card>\n <Card title="\u5931\u8d25\u793a\u4f8b\uff08\u65e0\u6548token\uff09">\n <JoinInvitation baseUrl="" token="invalid" />\n </Card>\n </Flex>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<JoinInvitationExample />);\n\n',scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"\u7cfb\u7edf\u8bbe\u7f6e",description:"Setting \u7ec4\u4ef6\u662f\u7cfb\u7edf\u8bbe\u7f6e\u7684\u5165\u53e3\uff0c\u5305\u542b\u516c\u53f8\u4fe1\u606f\u3001\u7ec4\u7ec7\u67b6\u6784\u3001\u6743\u9650\u7ba1\u7406\u3001\u7528\u6237\u7ba1\u7406\u56db\u4e2a\u8bbe\u7f6e\u6a21\u5757",code:'const { Setting } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useNavigate, Navigate } = reactRouterDom;\nconst { Route, Routes } = reactRouterDom;\n\nconst SettingExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path="/Tenant/setting/*"\n element={\n <Setting\n pageProps={{\n menuFixed: false\n }}\n baseUrl="/Tenant"\n apis={{\n user: {\n list: mockPreset.apis.tenant.getUserList,\n create: mockPreset.apis.tenant.createUser,\n save: mockPreset.apis.tenant.saveUser,\n remove: mockPreset.apis.tenant.removeUser\n },\n permission: {\n list: mockPreset.apis.tenant.getPermissionList,\n save: mockPreset.apis.tenant.savePermission\n },\n role: {\n list: mockPreset.apis.tenant.getRoleList,\n create: mockPreset.apis.tenant.createRole,\n save: mockPreset.apis.tenant.saveRole,\n remove: mockPreset.apis.tenant.removeRole,\n permissionSave: mockPreset.apis.tenant.savePermission,\n permissionList: mockPreset.apis.tenant.getPermissionList\n }\n }}\n />\n }\n />\n <Route path="/Tenant/*" element={<Navigate to="/Tenant/setting" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<SettingExample />);\n\n',scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:n(94679)}]}]}}},55702(e,t,n){n.d(t,{A:()=>s});var o=n(17517),a=n(1784),r=n(13050),d=n(94679);const s={name:"TenantAdmin",summary:"<p>\u79df\u6237\u7ba1\u7406</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!0,className:"",style:"",list:[{title:"\u79df\u6237\u5217\u8868",description:"\u79df\u6237\u5217\u8868\u9875\u9762\uff0c\u652f\u6301\u72b6\u6001\u7b5b\u9009\u3001\u5173\u952e\u5b57\u641c\u7d22\u3001\u6dfb\u52a0\u79df\u6237\u3001\u7f16\u8f91\u3001\u5f00\u542f/\u5173\u95ed\u3001\u5220\u9664\u7b49\u64cd\u4f5c",code:"const { List } = _TenantAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Routes, Route } = reactRouterDom;\n\nconst ListExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <List />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<ListExample />);\n\n",scope:[{name:"_TenantAdmin",packageName:"@components/TenantAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]},{title:"\u8868\u5355\u5b57\u6bb5",description:"\u79df\u6237\u8868\u5355\u5b57\u6bb5\u7ec4\u4ef6\uff0c\u5305\u542b\u79df\u6237\u540d\u79f0\u3001\u8d26\u53f7\u6570\u91cf\u3001\u670d\u52a1\u65f6\u95f4\u3001Logo\u3001\u4e3b\u9898\u8272\u3001\u63cf\u8ff0\u7b49\u5b57\u6bb5",code:"const { FormInner } = _TenantAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card } = antd;\n\nconst FormInnerExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo@Form', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [Form, PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Card title=\"\u79df\u6237\u8868\u5355\u5b57\u6bb5\">\n <Form onSubmit={(data) => console.log(data)}>\n <FormInner />\n </Form>\n </Card>\n </PureGlobal>\n );\n});\n\nrender(<FormInnerExample />);\n\n",scope:[{name:"_TenantAdmin",packageName:"@components/TenantAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"Tab\u8be6\u60c5\u9875",description:"\u5e26Tab\u5207\u6362\u7684\u79df\u6237\u8be6\u60c5\u9875\uff0c\u5305\u542b\u516c\u53f8\u4fe1\u606f\u3001\u7ec4\u7ec7\u67b6\u6784\u3001\u6743\u9650\u3001\u7528\u6237\u5217\u8868\u3001\u8bbe\u7f6e\u7b49Tab\u9875",code:'const { TabDetail } = _TenantAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Routes, Route, Navigate } = reactRouterDom;\n\nconst TabDetailExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route path="/detail" element={<TabDetail optionFixed={false} />} />\n <Route path="*" element={<Navigate to="/detail?id=tenant-001" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<TabDetailExample />);\n\n',scope:[{name:"_TenantAdmin",packageName:"@components/TenantAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]}]}}},1740(e,t,n){n.d(t,{A:()=>d});var o=n(98889),a=n(1784),r=n(13050);const d={name:"UserSelect",summary:"<p>\u7528\u6237\u9009\u62e9\u7ec4\u4ef6\uff0c\u7528\u4e8e\u5728\u8868\u5355\u4e2d\u9009\u62e9\u7528\u6237\u3002\u652f\u6301\u5355\u9009\u548c\u591a\u9009\u6a21\u5f0f\uff0c\u652f\u6301\u6309\u7528\u6237\u72b6\u6001\u7b5b\u9009\uff0c\u652f\u6301\u641c\u7d22\u7528\u6237\u3002\u57fa\u4e8e SuperSelectUser \u5c01\u88c5\uff0c\u81ea\u52a8\u5904\u7406\u7528\u6237\u6570\u636e\u7684\u8f6c\u6362\u548c\u52a0\u8f7d\u3002</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>\u8868\u5355\u5b57\u6bb5\u540d\u79f0</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>label</td>\n<td>\u8868\u5355\u6807\u7b7e</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rule</td>\n<td>\u6821\u9a8c\u89c4\u5219\uff0c\u5982 'REQ' \u8868\u793a\u5fc5\u586b</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>\u5360\u4f4d\u6587\u672c</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>status</td>\n<td>\u7528\u6237\u72b6\u6001\u7b5b\u9009\uff0c0 \u8868\u793a\u6d3b\u8dc3\u7528\u6237\uff0cnull \u8868\u793a\u4e0d\u7b5b\u9009</td>\n<td>number</td>\n<td>null</td>\n</tr>\n<tr>\n<td>single</td>\n<td>\u662f\u5426\u5355\u9009\uff0ctrue \u4e3a\u5355\u9009\uff0cfalse \u4e3a\u591a\u9009</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>disabled</td>\n<td>\u662f\u5426\u7981\u7528</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49 API \u914d\u7f6e\uff0c\u4f1a\u8986\u76d6\u9ed8\u8ba4\u7684 getUserList \u63a5\u53e3</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a UserSelect \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u652f\u6301\u641c\u7d22\u548c\u9009\u62e9\u7528\u6237",code:'const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u7528\u6237\u9009\u62e9\u793a\u4f8b"\n column={1}\n list={[\n <Input name="projectName" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <UserSelect\n name="userId"\n label="\u8d1f\u8d23\u4eba"\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u8d1f\u8d23\u4eba"\n />\n <div style={{ marginTop: 24, textAlign: \'center\' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type="primary">\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u591a\u9009\u6a21\u5f0f",description:"\u5c55\u793a UserSelect \u7684\u591a\u9009\u6a21\u5f0f\uff0c\u9002\u7528\u4e8e\u9009\u62e9\u591a\u4e2a\u7528\u6237\u7684\u573a\u666f",code:'const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst MultipleExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton } = FormInfo;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u56e2\u961f\u6210\u5458\u9009\u62e9"\n column={1}\n />\n <UserSelect\n name="memberIds"\n label="\u56e2\u961f\u6210\u5458"\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u56e2\u961f\u6210\u5458"\n single={false}\n />\n <div style={{ marginTop: 24, textAlign: \'center\' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type="primary">\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<MultipleExample />);\n\n',scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5e26\u521d\u59cb\u503c",description:"\u5c55\u793a UserSelect \u5e26\u521d\u59cb\u503c\u7684\u4f7f\u7528\u65b9\u5f0f\uff0c\u7528\u4e8e\u7f16\u8f91\u573a\u666f",code:"const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst WithInitialValueExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton } = FormInfo;\n\n // \u6a21\u62df\u7f16\u8f91\u573a\u666f\u7684\u521d\u59cb\u6570\u636e\uff08\u521d\u59cb\u503c\u5fc5\u987b\u5305\u542b value \u548c label\uff09\n const initialValue = {\n projectName: '\u667a\u80fd\u529e\u516c\u7cfb\u7edf V2.0',\n ownerId: { value: 2, label: '\u674e\u56db' },\n memberIds: [\n { value: 3, label: '\u738b\u4e94' },\n { value: 6, label: '\u5b59\u516b' },\n { value: 7, label: '\u5468\u4e5d' }\n ]\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={initialValue}\n onSubmit={(data) => {\n console.log('\u63d0\u4ea4\u6570\u636e:', data);\n }}\n >\n <FormInfo\n title=\"\u7f16\u8f91\u9879\u76ee\"\n column={1}\n />\n <UserSelect\n name=\"ownerId\"\n label=\"\u9879\u76ee\u8d1f\u8d23\u4eba\"\n rule=\"REQ\"\n placeholder=\"\u8bf7\u9009\u62e9\u9879\u76ee\u8d1f\u8d23\u4eba\"\n />\n <UserSelect\n name=\"memberIds\"\n label=\"\u9879\u76ee\u6210\u5458\"\n placeholder=\"\u8bf7\u9009\u62e9\u9879\u76ee\u6210\u5458\"\n single={false}\n />\n <div style={{ marginTop: 24, textAlign: 'center' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type=\"primary\">\u4fdd\u5b58</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<WithInitialValueExample />);\n\n",scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u72b6\u6001\u7b5b\u9009",description:"\u901a\u8fc7 status \u53c2\u6570\u7b5b\u9009\u7528\u6237\uff0c\u53ef\u8bbe\u7f6e\u53ea\u663e\u793a\u7279\u5b9a\u72b6\u6001\u7684\u7528\u6237",code:'const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\nconst { Space } = antd;\n\nconst StatusFilterExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction="vertical" size="large" style={{ width: \'100%\' }}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u6d3b\u8dc3\u7528\u6237:\', data);\n }}\n >\n <FormInfo title="\u4ec5\u9009\u62e9\u6d3b\u8dc3\u7528\u6237" column={1} />\n <UserSelect\n name="activeUserId"\n label="\u6d3b\u8dc3\u7528\u6237"\n placeholder="\u4ec5\u663e\u793a\u72b6\u6001\u6b63\u5e38\u7684\u7528\u6237"\n status={0}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton size="small" type="primary">\u786e\u8ba4</SubmitButton>\n </div>\n </Form>\n\n <Form\n onSubmit={(data) => {\n console.log(\'\u5168\u90e8\u7528\u6237:\', data);\n }}\n >\n <FormInfo title="\u9009\u62e9\u5168\u90e8\u7528\u6237\uff08\u4e0d\u9650\u72b6\u6001\uff09" column={1} />\n <UserSelect\n name="allUserId"\n label="\u5168\u90e8\u7528\u6237"\n placeholder="\u663e\u793a\u6240\u6709\u72b6\u6001\u7684\u7528\u6237"\n status={null}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton size="small" type="primary">\u786e\u8ba4</SubmitButton>\n </div>\n </Form>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<StatusFilterExample />);\n\n',scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"\u53ea\u8bfb\u6a21\u5f0f",description:"\u5c55\u793a UserSelect \u7684\u53ea\u8bfb\u6a21\u5f0f\uff0c\u9002\u7528\u4e8e\u67e5\u770b\u573a\u666f",code:"const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst ReadonlyExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form } = FormInfo;\n\n // \u6a21\u62df\u53ea\u8bfb\u573a\u666f\u7684\u521d\u59cb\u6570\u636e\uff08\u521d\u59cb\u503c\u5fc5\u987b\u5305\u542b value \u548c label\uff09\n const initialValue = {\n projectName: '\u4f01\u4e1a\u534f\u540c\u5e73\u53f0',\n ownerId: { value: 1, label: '\u5f20\u4e09' },\n memberIds: [\n { value: 2, label: '\u674e\u56db' },\n { value: 3, label: '\u738b\u4e94' },\n { value: 6, label: '\u5b59\u516b' }\n ]\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form data={initialValue}>\n <FormInfo\n title=\"\u9879\u76ee\u8be6\u60c5\uff08\u53ea\u8bfb\uff09\"\n column={1}\n />\n <UserSelect\n name=\"ownerId\"\n label=\"\u9879\u76ee\u8d1f\u8d23\u4eba\"\n disabled\n />\n <UserSelect\n name=\"memberIds\"\n label=\"\u9879\u76ee\u6210\u5458\"\n disabled\n single={false}\n />\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ReadonlyExample />);\n\n",scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},88358(e,t,n){n.d(t,{A:()=>d});var o=n(2),a=n(1784),r=n(13050);const d={name:"UserTool",summary:"<p>\u7528\u6237\u5de5\u5177\u7ec4\u4ef6\uff0c\u663e\u793a\u7528\u6237\u5934\u50cf\u548c\u540d\u79f0\uff0c\u70b9\u51fb\u5c55\u5f00\u4e0b\u62c9\u83dc\u5355\uff0c\u5305\u542b\u7528\u6237\u4fe1\u606f\u3001\u81ea\u5b9a\u4e49\u64cd\u4f5c\u5217\u8868\u548c\u9000\u51fa\u767b\u5f55\u529f\u80fd\u3002\u9002\u7528\u4e8e\u7cfb\u7edf\u9876\u90e8\u5bfc\u822a\u680f\u7684\u7528\u6237\u533a\u57df\u3002\u540c\u65f6\u63d0\u4f9b RightOptions \u7ec4\u5408\u7ec4\u4ef6\uff0c\u5305\u542b\u8bed\u8a00\u5207\u6362\u548c\u7528\u6237\u5de5\u5177\u3002</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>avatar</td>\n<td>\u7528\u6237\u5934\u50cf URL</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>name</td>\n<td>\u7528\u6237\u540d\u79f0\uff0c\u4e0d\u4f20\u6216\u4e3a\u7a7a\u65f6\u663e\u793a\"\u672a\u547d\u540d\"</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>email</td>\n<td>\u7528\u6237\u90ae\u7bb1</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>list</td>\n<td>\u64cd\u4f5c\u5217\u8868\uff0c\u6bcf\u9879\u5305\u542b iconType\u3001label\u3001onClick</td>\n<td>Array&lt;{iconType: string, label: string, onClick: function}&gt;</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u5b50\u5143\u7d20\uff0c\u663e\u793a\u5728\u4e0b\u62c9\u83dc\u5355\u7684\u7528\u6237\u4fe1\u606f\u548c\u64cd\u4f5c\u5217\u8868\u4e4b\u95f4</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>storeKeys</td>\n<td>\u9000\u51fa\u767b\u5f55\u65f6\u6e05\u9664\u7684\u5b58\u50a8 key</td>\n<td>object</td>\n<td>{ token: 'X-User-Token' }</td>\n</tr>\n<tr>\n<td>domain</td>\n<td>\u9000\u51fa\u767b\u5f55\u65f6\u8df3\u8f6c\u7684\u57df\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a UserTool \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u70b9\u51fb\u663e\u793a\u7528\u6237\u4fe1\u606f\u548c\u64cd\u4f5c\u83dc\u5355",code:"const { default: UserTool } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n const handleEditProfile = () => {\n console.log('\u7f16\u8f91\u4e2a\u4eba\u8d44\u6599');\n };\n\n const handleChangePassword = () => {\n console.log('\u4fee\u6539\u5bc6\u7801');\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#f5f5f5' }}>\n <UserTool\n avatar=\"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan\"\n name=\"\u5f20\u4e09\"\n email=\"zhangsan@example.com\"\n list={[\n { iconType: 'icon-gerenziliao', label: '\u4e2a\u4eba\u8d44\u6599', onClick: handleEditProfile },\n { iconType: 'icon-xiugaimima', label: '\u4fee\u6539\u5bc6\u7801', onClick: handleChangePassword }\n ]}\n />\n </div>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u81ea\u5b9a\u4e49\u5b50\u5143\u7d20",description:"\u901a\u8fc7 children \u5728\u4e0b\u62c9\u83dc\u5355\u4e2d\u6dfb\u52a0\u81ea\u5b9a\u4e49\u5185\u5bb9\uff0c\u5982\u5347\u7ea7\u63d0\u793a\u3001VIP \u6807\u8bc6\u7b49",code:"const { default: UserTool } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\nconst { Button } = antd;\n\nconst WithChildrenExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#f5f5f5' }}>\n <UserTool\n avatar=\"https://api.dicebear.com/7.x/avataaars/svg?seed=lisi\"\n name=\"\u674e\u56db\"\n email=\"lisi@tech-innovation.com\"\n >\n <div style={{ padding: '8px 0' }}>\n <Button type=\"primary\" block size=\"small\">\n \u5347\u7ea7\u5230\u4e13\u4e1a\u7248\n </Button>\n </div>\n </UserTool>\n </div>\n </PureGlobal>\n );\n});\n\nrender(<WithChildrenExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"\u53f3\u4fa7\u9009\u9879\u7ec4\u5408",description:"RightOptions \u7ec4\u4ef6\uff0c\u7ec4\u5408\u4e86\u8bed\u8a00\u5207\u6362\u548c UserTool\uff0c\u9002\u7528\u4e8e\u9876\u90e8\u5bfc\u822a\u680f\u53f3\u4fa7",code:"const { RightOptions } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst RightOptionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#1890ff' }}>\n <RightOptions />\n </div>\n </PureGlobal>\n );\n});\n\nrender(<RightOptionsExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u6700\u5c0f\u914d\u7f6e",description:"\u4ec5\u4f20\u5165\u5934\u50cf\uff0c\u540d\u79f0\u548c\u90ae\u7bb1\u4e0d\u4f20\u6216\u4e3a\u7a7a\u65f6\u663e\u793a\u9ed8\u8ba4\u6587\u6848",code:"const { default: UserTool } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst MinimalExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#f5f5f5' }}>\n <UserTool\n avatar=\"https://api.dicebear.com/7.x/avataaars/svg?seed=wangwu\"\n />\n </div>\n </PureGlobal>\n );\n});\n\nrender(<MinimalExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},12028(e,t,n){n.r(t),n.d(t,{InitAdmin:()=>L,User:()=>f,default:()=>T});var o=n(94679),a=n(73884);const r=(0,a.createContext)("/"),{Provider:d}=r;var s=n(13050),l=n(55199),i=n(52526);const c={Avatar:"\u5934\u50cf",Nickname:"\u6635\u79f0",Email:"\u90ae\u7bb1",Phone:"\u7535\u8bdd",IsSuperAdmin:"\u662f\u5426\u8d85\u7ea7\u7ba1\u7406\u5458",Status:"\u72b6\u6001",Description:"\u4e2a\u4eba\u7b80\u4ecb",Yes:"\u662f",No:"\u5426",Normal:"\u6b63\u5e38",NotActivated:"\u521d\u59cb\u5316\u672a\u6fc0\u6d3b",Disabled:"\u5df2\u7981\u7528",Closed:"\u5df2\u5173\u95ed",Other:"\u5176\u4ed6",AddUser:"\u6dfb\u52a0\u7528\u6237",AddSuccess:"\u6dfb\u52a0\u6210\u529f",EditUser:"\u7f16\u8f91\u7528\u6237",EditUserInfo:"\u7f16\u8f91\u7528\u6237\u4fe1\u606f",DeleteSuccess:"\u5220\u9664\u6210\u529f",SaveSuccess:"\u4fdd\u5b58\u6210\u529f",Operation:"\u64cd\u4f5c",Keyword:"\u5173\u952e\u5b57",UserAvatar:"\u5934\u50cf",UserNickname:"\u6635\u79f0",UserEmail:"\u90ae\u7bb1",UserPhone:"\u624b\u673a",UserDescription:"\u4e2a\u4eba\u7b80\u4ecb",Password:"\u5bc6\u7801",RepeatPassword:"\u91cd\u590d\u5bc6\u7801",ResetPassword:"\u91cd\u7f6e\u5bc6\u7801",ModifyPassword:"\u4fee\u6539\u5bc6\u7801",ModifyPasswordSuccess:"\u4fee\u6539\u5bc6\u7801\u6210\u529f",SetSuperAdmin:"\u8bbe\u7f6e\u8d85\u7ba1",CancelSuperAdmin:"\u53d6\u6d88\u8d85\u7ba1",SetSuperAdminConfirm:"\u786e\u5b9a\u8981\u8bbe\u7f6e\u8d26\u53f7\u4e3a\u8d85\u7ba1\u5417\uff1f",CancelSuperAdminConfirm:"\u786e\u5b9a\u8981\u53d6\u6d88\u8d26\u53f7\u7684\u8d85\u7ba1\u6743\u9650\u5417\uff1f",SetNormal:"\u8bbe\u7f6e\u4e3a\u6b63\u5e38",SetNormalConfirm:"\u786e\u5b9a\u8981\u8bbe\u7f6e\u8d26\u53f7\u4e3a\u6b63\u5e38\u5417\uff1f",SetNormalSuccess:"\u8d26\u53f7\u5df2\u5f00\u542f",CloseUser:"\u5173\u95ed",CloseUserConfirm:"\u786e\u5b9a\u8981\u5173\u95ed\u8be5\u8d26\u53f7\u5417\uff1f",CloseUserSuccess:"\u8d26\u53f7\u5df2\u5173\u95ed",SetStatusSuccess:"\u8bbe\u7f6e\u6210\u529f",FilterEmail:"\u90ae\u7bb1",FilterPhone:"\u7535\u8bdd",FilterStatus:"\u72b6\u6001",FilterIsAdmin:"\u662f\u5426\u7ba1\u7406\u5458",Confirm:"\u786e\u8ba4",InitSystem:"\u521d\u59cb\u5316\u7cfb\u7edf",InitSystemDesc:"\u5f53\u524d\u7528\u6237\u5c06\u88ab\u521d\u59cb\u5316\u4e3a\u7cfb\u7edf\u7684\u8d85\u7ea7\u7ba1\u7406\u5458\uff0c\u672c\u64cd\u4f5c\u53ea\u80fd\u6267\u884c\u4e00\u6b21\uff0c\u6267\u884c\u5b8c\u6210\u540e\u7531\u8be5\u7528\u6237\u6765\u6267\u884c\u5176\u4ed6\u7684\u7ba1\u7406\u64cd\u4f5c\u3002",InitSuccess:"\u521d\u59cb\u5316\u7ba1\u7406\u5458\u6210\u529f\uff01"},m={Avatar:"Avatar",Nickname:"Nickname",Email:"Email",Phone:"Phone",IsSuperAdmin:"Is Super Admin",Status:"Status",Description:"Description",Yes:"Yes",No:"No",Normal:"Normal",NotActivated:"Not Activated",Disabled:"Disabled",Closed:"Closed",Other:"Other",AddUser:"Add User",AddSuccess:"Added successfully",EditUser:"Edit User",EditUserInfo:"Edit User Info",DeleteSuccess:"Deleted successfully",SaveSuccess:"Saved successfully",Operation:"Operation",Keyword:"Keyword",UserAvatar:"Avatar",UserNickname:"Nickname",UserEmail:"Email",UserPhone:"Phone",UserDescription:"Description",Password:"Password",RepeatPassword:"Repeat Password",ResetPassword:"Reset Password",ModifyPassword:"Modify Password",ModifyPasswordSuccess:"Password modified successfully",SetSuperAdmin:"Set Super Admin",CancelSuperAdmin:"Cancel Super Admin",SetSuperAdminConfirm:"Are you sure to set this account as super admin?",CancelSuperAdminConfirm:"Are you sure to cancel super admin permission for this account?",SetNormal:"Set Normal",SetNormalConfirm:"Are you sure to set this account as normal?",SetNormalSuccess:"Account has been opened",CloseUser:"Close",CloseUserConfirm:"Are you sure to close this account?",CloseUserSuccess:"Account has been closed",SetStatusSuccess:"Set status successfully",FilterEmail:"Email",FilterPhone:"Phone",FilterStatus:"Status",FilterIsAdmin:"Is Admin",Confirm:"Confirm",InitSystem:"Initialize System",InitSystemDesc:"The current user will be initialized as the super administrator of the system. This operation can only be performed once. After completion, the user will perform other management operations.",InitSuccess:"Initialized administrator successfully!"},p=(0,i.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":c,"en-US":m},namespace:"components-admin:Admin"}),u=e=>{let{formatMessage:t}=e;return[{name:"avatar",title:t({id:"Avatar"}),type:"avatar",valueOf:(e,t)=>{let{name:n}=t;return Object.assign({},{gender:e.gender||"M"},{id:e[n]})}},{name:"nickname",title:t({id:"Nickname"}),type:"mainInfo"},{name:"email",title:t({id:"Email"}),type:"other"},{name:"phone",title:t({id:"Phone"}),type:"serialNumber"},{name:"isSuperAdmin",title:t({id:"IsSuperAdmin"}),type:"other",valueOf:(e,n)=>{let{name:o}=n;return!0===e[o]?t({id:"Yes"}):t({id:"No"})}},{name:"status",title:t({id:"Status"}),type:"tag",valueOf:(e,n)=>{let{name:o}=n;return 0===e[o]?{type:"success",text:t({id:"Normal"})}:10===e[o]?{text:t({id:"NotActivated"})}:11===e[o]?{type:"danger",text:t({id:"Disabled"})}:12===e[o]?{type:"danger",text:t({id:"Closed"})}:{text:t({id:"Other"})}}},{name:"description",title:t({id:"Description"}),type:"description"}]};var h=n(70579);const g=(0,s.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@formModule"]})(p(e=>{let{remoteModules:t}=e;const[n,o]=t,{formatMessage:a}=(0,i.useIntl)(),{Input:r,TextArea:d,PhoneNumber:s,Avatar:l}=o;return(0,h.jsx)(n,{column:1,list:[(0,h.jsx)(l,{name:"avatar",label:a({id:"UserAvatar"}),labelHidden:!0,interceptor:"photo-string"}),(0,h.jsx)(r,{name:"nickname",label:a({id:"UserNickname"}),rule:"LEN-0-100"}),(0,h.jsx)(r,{name:"email",label:a({id:"UserEmail"}),rule:"EMAIL ACCOUNT_IS_EXISTS",realtime:!0}),(0,h.jsx)(s,{name:"phone",label:a({id:"UserPhone"}),rule:"ACCOUNT_IS_EXISTS",format:"string"}),(0,h.jsx)(d,{name:"description",label:a({id:"UserDescription"})})]})})),b=(0,s.createWithRemoteLoader)({modules:["components-core:FormInfo"]})(p(e=>{let{remoteModules:t}=e;const[n]=t,{formatMessage:o}=(0,i.useIntl)(),{Input:a}=n.fields;return(0,h.jsx)(n,{column:1,list:[(0,h.jsx)(a.Password,{name:"password",label:o({id:"Password"}),rule:"REQ LEN-6-50"}),(0,h.jsx)(a.Password,{name:"repeatPwd",label:o({id:"RepeatPassword"}),rule:"REQ LEN-6-50 REPEAT-password"})]})}));var v=n(80700),k=n.n(v),y=n(33097),P=n.n(y);const f=p((0,s.createWithRemoteLoader)({modules:["components-core:Layout@TablePage","components-core:Filter","components-core:FormInfo@useFormModal","components-core:Global@usePreset"]})(e=>{let{remoteModules:t,pageProps:n}=e;const[o,d,s,c]=t,{formatMessage:m}=(0,i.useIntl)(),p=(0,a.useContext)(r),v=Object.assign({},null===p||void 0===p?void 0:p.pageProps,n),[y,f]=(0,a.useState)([]),{SearchInput:S,getFilterValue:L,fields:x}=d,{InputFilterItem:T,AdvancedSelectFilterItem:I}=x,{ajax:A,apis:N}=c(),U=s(),{message:G}=l.App.useApp(),R=(0,a.useRef)(null),C=L(y);return(0,h.jsx)(o,{...Object.assign({},N.admin.getUserList,{params:{filter:C}}),pagination:{paramsType:"params"},name:"user-list",ref:R,menuFixed:null===v||void 0===v?void 0:v.menuFixed,columns:[...u({formatMessage:m}),{name:"options",title:m({id:"Operation"}),type:"options",fixed:"right",valueOf:e=>[{children:m({id:"EditUser"}),onClick:()=>{const t=U({title:m({id:"EditUserInfo"}),size:"small",children:(0,h.jsx)(g,{}),formProps:{data:Object.assign({},e),onSubmit:async n=>{const{data:o}=await A(Object.assign({},N.admin.saveUser,{data:Object.assign({},n,{id:e.id})}));0===o.code&&(G.success(m({id:"SaveSuccess"})),R.current.reload(),t.close())}}})}},{children:m({id:"ModifyPassword"}),onClick:()=>{const t=U({title:m({id:"ModifyPassword"}),size:"small",children:(0,h.jsx)(b,{}),formProps:{onSubmit:async n=>{const{data:o}=await A(Object.assign({},N.admin.resetUserPassword,{data:{password:k()(n.password),userId:e.id}}));0===o.code&&(G.success(m({id:"ModifyPasswordSuccess"})),t.close())}}})}},!0===P()(e,"isSuperAdmin")?{children:m({id:"CancelSuperAdmin"}),message:m({id:"CancelSuperAdminConfirm"}),isDelete:!1,onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setSuperAdmin,{data:{status:!1,userId:e.id}}));0===t.code&&(G.success(m({id:"SetStatusSuccess"})),R.current.reload())}}:{children:m({id:"SetSuperAdmin"}),message:m({id:"SetSuperAdminConfirm"}),isDelete:!1,onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setSuperAdmin,{data:{status:!0,userId:e.id}}));0===t.code&&(G.success(m({id:"SetStatusSuccess"})),R.current.reload())}},...(()=>{const t=[];return 0!==e.status&&t.push({confirm:!0,children:m({id:"SetNormal"}),message:m({id:"SetNormalConfirm"}),isDelete:!1,onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setUserNormal,{data:{id:e.id}}));0===t.code&&(G.success(m({id:"SetNormalSuccess"})),R.current.reload())}}),12!==e.status&&t.push({isDelete:!0,confirm:!0,children:m({id:"CloseUser"}),message:m({id:"CloseUserConfirm"}),okText:m({id:"Confirm"}),onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setUserClose,{data:{id:e.id}}));0===t.code&&(G.success(m({id:"CloseUserSuccess"})),R.current.reload())}}),t})()]}],page:{filter:{value:y,onChange:f,list:[[(0,h.jsx)(T,{label:m({id:"FilterEmail"}),name:"email"}),(0,h.jsx)(T,{label:m({id:"FilterPhone"}),name:"phone"}),(0,h.jsx)(I,{label:m({id:"FilterStatus"}),name:"status",single:!0,api:{loader:()=>({pageData:[{label:m({id:"Normal"}),value:0},{label:m({id:"NotActivated"}),value:10},{label:m({id:"Closed"}),value:12}]})}}),(0,h.jsx)(I,{label:m({id:"FilterIsAdmin"}),name:"isSuperAdmin",single:!0,api:{loader:()=>({pageData:[{label:m({id:"Yes"}),value:!0},{label:m({id:"No"}),value:!1}]})}})]]},titleExtra:(0,h.jsxs)(l.Space,{align:"center",children:[(0,h.jsx)(S,{name:"nickname",label:m({id:"Nickname"})}),(0,h.jsx)(l.Button,{type:"primary",onClick:()=>{const e=U({title:m({id:"AddUser"}),size:"small",children:(0,h.jsx)(g,{}),formProps:{onSubmit:async t=>{const{data:n}=await A(Object.assign({},N.admin.addUser,{data:Object.assign({},t)}));0===n.code&&(G.success(m({id:"AddSuccess"})),R.current.reload(),e.close())}}})},children:m({id:"AddUser"})})]})}})}));var S=n(96418);const L=p((0,s.createWithRemoteLoader)({modules:["components-core:Global@usePreset"]})(e=>{let{remoteModules:t,baseUrl:n="/admin"}=e;const[r]=t,{ajax:d,apis:s}=r(),{message:c}=l.App.useApp(),{formatMessage:m}=(0,i.useIntl)(),p=(0,o.useNavigate)(),u=(0,S.default)(async()=>{const{data:e}=await d(Object.assign({},s.admin.initSuperAdmin));0===e.code&&(c.success(m({id:"InitSuccess"})),p(n,{replace:!0}))});return(0,a.useEffect)(()=>{u()},[u]),(0,h.jsx)(l.Result,{status:"warning",title:m({id:"InitSystem"}),subTitle:m({id:"InitSystemDesc"})})})),x=e=>{let{baseUrl:t,pageProps:n,...a}=e;return(0,h.jsx)(d,{value:{baseUrl:t,pageProps:n,...a},children:(0,h.jsxs)(o.Routes,{children:[(0,h.jsx)(o.Route,{path:"user",element:(0,h.jsx)(f,{pageProps:n})}),(0,h.jsx)(o.Route,{element:(0,h.jsx)(o.Navigate,{to:`${t}/user`,replace:!0})})]})})};x.User=f;const T=x},71394(e,t,n){n.d(t,{A:()=>o});const o=e=>{const{prefix:t}=Object.assign({},{prefix:"/api/v1"},e);return{user:{getUserInfo:{url:`${t}/user/getUserInfo`,method:"GET",cache:"get-user-info"},saveUserInfo:{url:`${t}/user/saveUserInfo`,method:"POST"}},account:{sendSMSCode:{url:`${t}/account/sendSMSCode`,method:"POST"},sendEmailCode:{url:`${t}/account/sendEmailCode`,method:"POST"},register:{url:`${t}/account/register`,method:"POST"},login:{url:`${t}/account/login`,method:"POST"},modifyPassword:{url:`${t}/account/modifyPassword`,method:"POST"},forgetPwd:{url:`${t}/account/forgetPwd`,method:"POST"},parseResetToken:{url:`${t}/account/parseResetToken`,method:"POST"},resetPassword:{url:`${t}/account/resetPassword`,method:"POST"},validateCode:{url:`${t}/account/validateCode`,method:"POST"},accountIsExists:{url:`${t}/account/accountIsExists`,method:"POST"}},admin:{getSuperAdminInfo:{url:`${t}/admin/getSuperAdminInfo`,method:"GET"},initSuperAdmin:{url:`${t}/admin/initSuperAdmin`,method:"POST"},getUserList:{url:`${t}/admin/getUserList`,method:"GET"},saveUser:{url:`${t}/admin/saveUser`,method:"POST"},addUser:{url:`${t}/admin/addUser`,method:"POST"},resetUserPassword:{url:`${t}/admin/resetUserPassword`,method:"POST"},setSuperAdmin:{url:`${t}/admin/setSuperAdmin`,method:"POST"},setUserClose:{url:`${t}/admin/setUserClose`,method:"POST"},setUserNormal:{url:`${t}/admin/setUserNormal`,method:"POST"}},signature:{list:{method:"GET",url:`${t}/signature/list`},create:{method:"POST",url:`${t}/signature/create`},update:{method:"POST",url:`${t}/signature/update`},remove:{method:"POST",url:`${t}/signature/remove`},verify:{method:"POST",url:`${t}/signature/verify`}},webhook:{list:{url:`${t}/webhook/list`,method:"GET"},create:{url:`${t}/webhook/create`,method:"POST"},setStatus:{url:`${t}/webhook/set-status`,method:"POST"},invoke:{url:`${t}/webhook/invoke`,method:"POST"},invokeRecord:{url:`${t}/webhook/invoke-record`,method:"GET"},remove:{url:`${t}/webhook/remove`,method:"POST"}},task:{complete:{url:`${t}/task/complete`,method:"POST"},cancel:{url:`${t}/task/cancel`,method:"POST"},list:{url:`${t}/task/list`,method:"GET"},retry:{url:`${t}/task/retry`,method:"POST"}},tenantAdmin:{create:{url:`${t}/tenant/admin/create`,method:"POST"},list:{url:`${t}/tenant/admin/list`,method:"GET"},save:{url:`${t}/tenant/admin/save`,method:"POST"},setStatus:{url:`${t}/tenant/admin/set-status`,method:"POST"},remove:{url:`${t}/tenant/admin/remove`,method:"POST"},detail:{url:`${t}/tenant/admin/detail`,method:"GET"},companyDetail:{url:`${t}/tenant/admin/company-detail`,method:"GET"},companySave:{url:`${t}/tenant/admin/company-save`,method:"POST"},orgList:{url:`${t}/tenant/admin/org-list`,method:"GET"},orgCreate:{url:`${t}/tenant/admin/org-create`,method:"POST"},orgSave:{url:`${t}/tenant/admin/org-save`,method:"POST"},orgRemove:{url:`${t}/tenant/admin/org-remove`,method:"POST"},userList:{url:`${t}/tenant/admin/user-list`,method:"GET"},userCreate:{url:`${t}/tenant/admin/user-create`,method:"POST"},userSetStatus:{url:`${t}/tenant/admin/user-set-status`,method:"POST"},userSave:{url:`${t}/tenant/admin/user-save`,method:"POST"},userRemove:{url:`${t}/tenant/admin/user-remove`,method:"POST"},userInviteToken:{url:`${t}/tenant/admin/user-invite-token`,method:"GET"},userInviteMessage:{url:`${t}/tenant/admin/send-invite-message`,method:"POST"},appendArgs:{url:`${t}/tenant/admin/append-args`,method:"POST"},appendCustomComponent:{url:`${t}/tenant/admin/append-custom-component`,method:"POST"},removeCustomComponent:{url:`${t}/tenant/admin/remove-custom-component`,method:"POST"},saveCustomComponent:{url:`${t}/tenant/admin/save-custom-component`,method:"POST"},copyCustomComponent:{url:`${t}/tenant/admin/copy-custom-component`,method:"POST"},customComponentDetail:{url:`${t}/tenant/admin/custom-component-detail`,method:"GET"},removeArg:{url:`${t}/tenant/admin/remove-arg`,method:"POST"},role:{create:{url:`${t}/tenant/admin/role/create`,method:"POST"},list:{url:`${t}/tenant/admin/role/list`,method:"GET"},save:{url:`${t}/tenant/admin/role/save`,method:"POST"},setStatus:{url:`${t}/tenant/admin/role/set-status`,method:"POST"},remove:{url:`${t}/tenant/admin/role/remove`,method:"POST"},permissionList:{url:`${t}/tenant/admin/role/permission-list`,method:"GET"},permissionSave:{url:`${t}/tenant/admin/role/save-permission`,method:"POST"}},permission:{list:{url:`${t}/tenant/admin/permission/list`,method:"GET"},save:{url:`${t}/tenant/admin/permission/save`,method:"POST"}}},tenant:{parseJoinToken:{url:`${t}/tenant/parse-join-token`,method:"POST"},join:{url:`${t}/tenant/join`,method:"POST"},availableList:{url:`${t}/tenant/available-list`,method:"GET"},switchDefaultTenant:{url:`${t}/tenant/switch-default-tenant`,method:"POST"},getUserInfo:{url:`${t}/tenant/getUserInfo`,method:"GET"},companyDetail:{url:`${t}/tenant/company-detail`,method:"GET"},companySave:{url:`${t}/tenant/company-save`,method:"POST"},orgList:{url:`${t}/tenant/org-list`,method:"GET"},orgCreate:{url:`${t}/tenant/org-create`,method:"POST"},orgSave:{url:`${t}/tenant/org-save`,method:"POST"},orgRemove:{url:`${t}/tenant/org-remove`,method:"POST"},userList:{url:`${t}/tenant/user-list`,method:"GET"},userCreate:{url:`${t}/tenant/user-create`,method:"POST"},userSetStatus:{url:`${t}/tenant/user-set-status`,method:"POST"},userSave:{url:`${t}/tenant/user-save`,method:"POST"},userRemove:{url:`${t}/tenant/user-remove`,method:"POST"},userInviteToken:{url:`${t}/tenant/user-invite-token`,method:"GET"},userInviteMessage:{url:`${t}/tenant/send-invite-message`,method:"POST"},customComponentDetail:{url:`${t}/tenant/custom-component-detail`,method:"GET"},role:{create:{url:`${t}/tenant/role/create`,method:"POST"},list:{url:`${t}/tenant/role/list`,method:"GET"},save:{url:`${t}/tenant/role/save`,method:"POST"},setStatus:{url:`${t}/tenant/role/set-status`,method:"POST"},remove:{url:`${t}/tenant/role/remove`,method:"POST"},permissionList:{url:`${t}/tenant/role/permission-list`,method:"GET"},permissionSave:{url:`${t}/tenant/role/save-permission`,method:"POST"}},permission:{list:{url:`${t}/tenant/permission/list`,method:"GET"}}},intlAdmin:{langType:{list:{loader:()=>({totalCount:0,pageData:[]}),url:`${t}/intl-admin/lang-type/list`,method:"GET"},create:{url:`${t}/intl-admin/lang-type/create`,method:"POST"},save:{url:`${t}/intl-admin/lang-type/save`,method:"POST"},remove:{url:`${t}/intl-admin/lang-type/remove`,method:"POST"},setStatus:{url:`${t}/intl-admin/lang-type/set-status`,method:"POST"}},langLib:{list:{loader:()=>({totalCount:0,pageData:[]}),url:`${t}/intl-admin/lang-lib/list`,method:"GET"},create:{url:`${t}/intl-admin/lang-lib/add-package`,method:"POST"},save:{url:`${t}/intl-admin/lang-lib/save`,method:"POST"},setStatus:{url:`${t}/intl-admin/lang-lib/set-status`,method:"POST"},remove:{url:`${t}/intl-admin/lang-lib/remove`,method:"POST"}}}}}},53106(e,t,n){n.r(t),n.d(t,{AfterAdminUserLoginLayout:()=>P,AfterCustomUserLogin:()=>v,AfterCustomUserLoginLayout:()=>b,AfterUserLogin:()=>y,AfterUserLoginLayout:()=>k,BeforeLoginLayout:()=>f,CustomUserInfo:()=>l,MainLayout:()=>h,RightOptions:()=>g,SaveUserInfo:()=>A,SuperAdminInfo:()=>c,UserInfo:()=>i,UserInfoFormInner:()=>I});var o=n(13050),a=n(94679),r=n(87558),d=n(70579);const s=e=>{let{data:t,baseUrl:n,children:o}=e;const r=(0,a.useLocation)();return 1===t.userInfo.status?(0,d.jsx)(a.Navigate,{to:`${n||""}/modify/${encodeURIComponent(t.userInfo.email)}?referer=${encodeURIComponent(r.pathname+r.search)}`,replace:!0}):o},l=(0,o.createWithRemoteLoader)({modules:["components-core:Global@SetGlobal"]})(e=>{let{remoteModules:t,cache:n,baseUrl:o,children:a,api:l}=e;const[i]=t;return(0,d.jsx)(r.default,{cache:n,...Object.assign({},l),render:e=>{let{data:t,reload:n}=e;return(0,d.jsx)(s,{baseUrl:o,data:t,children:(0,d.jsx)(i,{globalKey:"userInfo",value:{value:t.userInfo,reload:n},needReady:!0,children:a})})}})}),i=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset"]})(e=>{let{remoteModules:t,...n}=e;const[o]=t,{apis:a}=o();return(0,d.jsx)(l,{...n,api:a.user.getUserInfo,cache:"user-info"})}),c=(0,o.createWithRemoteLoader)({modules:["components-core:Global@SetGlobal","components-core:Global@usePreset"]})(e=>{let{remoteModules:t,children:n}=e;const[o,a]=t,{apis:s}=a();return(0,d.jsx)(r.default,{cache:"super-admin-info",...Object.assign({},s.admin.getSuperAdminInfo),render:e=>{let{data:t,reload:a}=e;return(0,d.jsx)(o,{globalKey:"userInfo",value:{value:t.userInfo,reload:a},needReady:!0,children:n})}})});var m=n(2),p=n(68743),u=n(55199);const h=(0,o.createWithRemoteLoader)({modules:["components-core:Layout"]})(e=>{let{remoteModules:t,navigation:n,title:o,children:a}=e;const[r]=t;return(0,d.jsx)(r,{navigation:{defaultTitle:o,...Object.assign({},n)},children:a})}),g=(0,o.createWithRemoteLoader)({modules:["components-core:Global@GlobalValue"]})(e=>{let{remoteModules:t}=e;const[n]=t;return(0,d.jsxs)(u.Flex,{gap:8,children:[(0,d.jsx)(p.A,{}),(0,d.jsx)(n,{globalKey:"userInfo",children:e=>{let{value:t}=e;const{nickname:n,avatar:o,email:a}=Object.assign({},null===t||void 0===t?void 0:t.value);return(0,d.jsx)(m.default,{name:n,email:a,avatar:o})}})]})}),b=e=>{let{baseUrl:t,navigation:n,api:o,children:r,...s}=e;return(0,d.jsx)(l,{baseUrl:t||"/account",api:o,children:(0,d.jsx)(h,{...s,navigation:Object.assign({},{rightOptions:(0,d.jsx)(g,{})},n),children:r||(0,d.jsx)(a.Outlet,{})})})},v=e=>{let{baseUrl:t,api:n,children:o,...r}=e;return(0,d.jsx)(l,{baseUrl:t||"/account",api:n,children:o||(0,d.jsx)(a.Outlet,{})})},k=e=>{let{baseUrl:t,navigation:n,children:o,...r}=e;return(0,d.jsx)(i,{baseUrl:t||"/account",children:(0,d.jsx)(h,{...r,navigation:Object.assign({},{rightOptions:(0,d.jsx)(g,{})},n),children:o||(0,d.jsx)(a.Outlet,{})})})},y=e=>{let{baseUrl:t,children:n,...o}=e;return(0,d.jsx)(i,{baseUrl:t||"/account",children:n||(0,d.jsx)(a.Outlet,{})})},P=e=>{let{navigation:t,children:n,...o}=e;return(0,d.jsx)(c,{children:(0,d.jsx)(h,{...o,navigation:Object.assign({},{rightOptions:(0,d.jsx)(g,{})},t),children:n||(0,d.jsx)(a.Outlet,{})})})},f=e=>{let{children:t,...n}=e;return(0,d.jsx)(d.Fragment,{children:t||(0,d.jsx)(a.Outlet,{})})};var S=n(52526);const L={Avatar:"\u5934\u50cf",Email:"\u90ae\u7bb1",Nickname:"\u6635\u79f0",Description:"\u7b80\u4ecb",EditUserInfo:"\u7f16\u8f91\u4e2a\u4eba\u57fa\u672c\u4fe1\u606f",SaveSuccess:"\u4fdd\u5b58\u6210\u529f"},x={Avatar:"Avatar",Email:"Email",Nickname:"Nickname",Description:"Description",EditUserInfo:"Edit Personal Info",SaveSuccess:"Saved successfully"},T=(0,S.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":L,"en-US":x},namespace:"components-admin:Authenticate"}),I=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo"]})(T(e=>{let{remoteModules:t,...n}=e;const[o]=t,{formatMessage:a}=(0,S.useIntl)(),{Avatar:r,Input:s,TextArea:l}=o.fields;return(0,d.jsx)(o,{...n,list:[(0,d.jsx)(u.Flex,{justify:"center",children:(0,d.jsx)(r,{name:"avatar",label:a({id:"Avatar"}),labelHidden:!0,interceptor:"photo-string"})}),(0,d.jsx)(s,{name:"email",label:a({id:"Email"}),rule:"REQ"}),(0,d.jsx)(s,{name:"nickname",label:a({id:"Nickname"})}),(0,d.jsx)(l,{name:"description",label:a({id:"Description"}),rule:"LEN-0-500"})]})})),A=T((0,o.createWithRemoteLoader)({modules:["components-core:FormInfo@useFormModal","components-core:Global@usePreset","components-core:Global@useGlobalContext"]})(e=>{let{remoteModules:t,children:n}=e;const[o,a,r]=t,s=o(),{global:l}=r("userInfo"),{apis:i,ajax:c}=a(),{message:m}=u.App.useApp(),{formatMessage:p}=(0,S.useIntl)();return n({onClick:()=>{const e=s({title:p({id:"EditUserInfo"}),size:"small",formProps:{data:l.value,onSubmit:async t=>{const{data:n}=await c(Object.assign({},i.user.saveUserInfo,{data:t}));0===n.code&&(m.success(p({id:"SaveSuccess"})),l.reload(),e.close())}},children:(0,d.jsx)(I,{column:1})})}})}))},13851(e,t,n){n.r(t),n.d(t,{default:()=>d});var o=n(13050),a=n(73884),r=n(70579);const d=(0,o.createWithRemoteLoader)({modules:["components-thirdparty:CKEditor","components-core:Global@usePreset"]})(e=>{var t;let{remoteModules:n,...o}=e;const[d,s]=n,{apis:l}=s(),i=(0,a.useMemo)(()=>{var e;return{upload:null===l||void 0===l||null===(e=l.file)||void 0===e?void 0:e.uploadForEditor}},[null===l||void 0===l||null===(t=l.file)||void 0===t?void 0:t.uploadForEditor]);return(0,r.jsx)(d,{...o,uploadAdapter:i})})},40409(e,t,n){n.r(t),n.d(t,{default:()=>d});var o=n(13050),a=n(55199),r=n(70579);const d=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@useFormModal","components-core:Global@usePreset"]})(e=>{var t,n,o;let{remoteModules:d,name:s,label:l,rule:i,apis:c,valueKey:m="code",labelKey:p="name",single:u,placeholder:h,disabled:g,groupName:b="\u6807\u7b7e",...v}=e;const[k,y,P]=d,{fields:f}=k,{SuperSelectTableList:S}=f,{ajax:L,apis:x}=P(),{message:T,modal:I}=a.App.useApp(),A=y(),N=void 0!==c,U=N?!(null===c||void 0===c||!c.create):!(null===x||void 0===x||null===(t=x.group)||void 0===t||!t.create),G=N?!(null===c||void 0===c||!c.remove):!(null===x||void 0===x||null===(n=x.group)||void 0===n||!n.remove),R=[{title:"\u7f16\u7801",name:"code",span:4},{title:"\u540d\u79f0",name:"name",span:6},{title:"\u63cf\u8ff0",name:"description",span:G?10:14}];return G&&R.push({title:"\u64cd\u4f5c",name:"options",span:4,getValueOf:(e,t)=>{let{context:n}=t;const{fetchApi:o,value:a,setValue:d}=n;return(0,r.jsx)("span",{onClick:e=>e.stopPropagation(),children:(0,r.jsx)("a",{onClick:()=>{I.confirm({title:"\u786e\u8ba4\u5220\u9664",content:`\u786e\u5b9a\u8981\u5220\u9664${b}"${e.name}"\u5417\uff1f`,okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onOk:()=>(async(e,t)=>{let{fetchApi:n,value:o,setValue:a}=t;try{var r;const{data:t}=await L(Object.assign({},(null===c||void 0===c?void 0:c.remove)||(null===x||void 0===x||null===(r=x.group)||void 0===r?void 0:r.remove),{data:{id:e.id,code:e.code}}));if(0!==t.code)return;if(T.success(`\u5220\u9664${b}\u6210\u529f`),n.reload(),o&&o.length>0&&o.find(t=>e[m]===t[m])){const t=o.findIndex(t=>e[m]===t[m]),n=o.slice(0);n.splice(t,1),a(n)}}catch(d){T.error(`\u5220\u9664${b}\u5931\u8d25`)}})(e,{fetchApi:o,value:a,setValue:d})})},children:"\u5220\u9664"})})}}),(0,r.jsx)(S,{name:s,label:l,rule:i,placeholder:h,disabled:g,single:u,valueKey:m,labelKey:p,api:(null===c||void 0===c?void 0:c.list)||(null===x||void 0===x||null===(o=x.group)||void 0===o?void 0:o.list),getSearchProps:e=>{let{searchText:t}=e;return{filter:{keyword:t}}},pagination:{paramsType:"params"},columns:R,isPopup:!1,footer:U?e=>{let{reload:t}=e;return(0,r.jsx)(a.Button,{type:"link",onClick:()=>(e=>{let{reload:t}=e;A({title:`\u6dfb\u52a0${b}`,size:"small",formProps:{onSubmit:async e=>{var n;const{data:o}=await L(Object.assign({},(null===c||void 0===c?void 0:c.create)||(null===x||void 0===x||null===(n=x.group)||void 0===n?void 0:n.create),{data:e}));if(0!==o.code)return!1;T.success(`\u6dfb\u52a0${b}\u6210\u529f`),t()}},children:(0,r.jsx)(k,{column:1,list:[(0,r.jsx)(k.fields.Input,{name:"code",label:"\u7f16\u7801",rule:"REQ",placeholder:"\u8bf7\u8f93\u5165\u552f\u4e00\u7f16\u7801"}),(0,r.jsx)(k.fields.Input,{name:"name",label:"\u540d\u79f0",rule:"REQ",placeholder:`\u8bf7\u8f93\u5165${b}\u540d\u79f0`}),(0,r.jsx)(k.fields.TextArea,{name:"description",label:"\u63cf\u8ff0",placeholder:`\u8bf7\u8f93\u5165${b}\u63cf\u8ff0`})]})})})({reload:t}),children:`\u6dfb\u52a0${b}`})}:null,...v})})},87114(e,t,n){n.r(t),n.d(t,{default:()=>s});var o=n(13050),a=n(53856);const r=()=>[{name:"id",title:"ID",type:"serialNumber",hover:!1,primary:!1},{name:"namespace",title:"\u547d\u540d\u7a7a\u95f4",type:"mainInfo",hover:!1,primary:!1},{name:"locale",title:"\u8bed\u8a00"},{name:"code",title:"\u7f16\u7801"},{name:"target",title:"\u76ee\u6807\u503c"},{name:"reviewStatus",title:"\u5ba1\u6838\u72b6\u6001",type:"tag",valueOf:e=>{let{reviewStatus:t}=e;return t&&{isEnum:!0,moduleName:"reviewStatus",name:t}}},{name:"status",title:"\u72b6\u6001",type:"tag",valueOf:e=>{let{status:t}=e;return t&&{isEnum:!0,moduleName:"openStatus",name:t}}}];var d=n(70579);const s=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset","components-core:Layout@TablePage"]})(e=>{let{remoteModules:t,menu:n,pageProps:o={}}=e;const[s,l]=t,{apis:i}=s();return(0,d.jsx)(a.default,{name:"langLib",apis:i.intlAdmin.langLib,getColumns:r,children:e=>{let{filter:t,topOptions:a,titleExtra:r,tableOptions:s}=e;return(0,d.jsx)(l,{...Object.assign({},s),page:{...o,menu:n,filter:t,titleExtra:r,topOptions:a}})}})})},62730(e,t,n){n.r(t),n.d(t,{default:()=>l});var o=n(13050),a=n(53856);const r=()=>[{name:" id",title:"ID",type:"serialNumber",hover:!1,primary:!1},{name:"name",title:"\u540d\u79f0",type:"mainInfo",hover:!1,primary:!1},{name:"code",title:"\u7f16\u7801"},{name:"params",title:"\u7ffb\u8bd1\u53c2\u6570"},{name:"description",title:"\u63cf\u8ff0",type:"description",ellipsis:!0},{name:"status",title:"\u72b6\u6001",type:"tag",valueOf:e=>{let{status:t}=e;return t&&{isEnum:!0,moduleName:"openStatus",name:t}}}];var d=n(70579);const s=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo"]})(e=>{let{remoteModules:t,...n}=e;const[o]=t,{Input:a,TextArea:r}=o.fields;return(0,d.jsx)(o,{column:1,...n,list:[(0,d.jsx)(a,{name:"name",label:"\u540d\u79f0",rule:"REQ LEN-0-100"}),(0,d.jsx)(a,{name:"code",label:"\u7f16\u7801",rule:"REQ LEN-0-100"}),(0,d.jsx)(r,{name:"params",label:"\u7ffb\u8bd1\u53c2\u6570",rule:"LEN-0-1000"}),(0,d.jsx)(r,{name:"description",label:"\u63cf\u8ff0",rule:"LEN-0-1000"})]})}),l=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset","components-core:Layout@TablePage"]})(e=>{let{remoteModules:t,menu:n,pageProps:o={}}=e;const[l,i]=t,{apis:c}=l();return(0,d.jsx)(a.default,{name:"langType",apis:c.intlAdmin.langType,getColumns:r,getFormInner:e=>(0,d.jsx)(s,{...e}),options:{bizName:"\u8bed\u8a00\u79cd\u7c7b"},children:e=>{let{filter:t,topOptions:a,titleExtra:r,tableOptions:s}=e;return(0,d.jsx)(i,{...Object.assign({},s),page:{...o,menu:n,filter:t,titleExtra:r,topOptions:a}})}})})},52751(e,t,n){n.r(t),n.d(t,{LangLib:()=>d.default,LangType:()=>r.default,default:()=>c,enums:()=>s});var o=n(56973),a=n(13050),r=n(62730),d=n(87114);const s={reviewStatus:[{value:"approved",description:"\u5df2\u901a\u8fc7"},{value:"pending",description:"\u5f85\u5ba1\u6838"},{value:"rejected",description:"\u5df2\u62d2\u7edd"}]};var l=n(70579);const i=(0,a.createWithRemoteLoader)({modules:["components-core:Menu"]})(e=>{let{remoteModules:t,baseUrl:a,pageProps:r,...d}=e;const[s]=t,i=(0,l.jsx)(s,{items:[{path:`${a}`,label:"\u8bed\u8a00\u7c7b\u578b"},{path:`${a}/lang-lib`,label:"\u8bed\u8a00\u5e93"}]});return(0,l.jsx)(o.default,{...d,baseUrl:a,list:[{index:!0,loader:()=>Promise.resolve().then(n.bind(n,62730)),elementProps:{menu:i,pageProps:r}},{path:"lang-lib",loader:()=>Promise.resolve().then(n.bind(n,87114)),elementProps:{menu:i,pageProps:r}}]})});i.LangType=r.default,i.LangLib=d.default;const c=i},97594(e,t,n){n.r(t),n.d(t,{default:()=>a});var o=n(70579);const a=()=>(0,o.jsx)("div",{children:"unleash creativity"})},71859(e,t,n){n.r(t),n.d(t,{default:()=>b,getColumns:()=>a});var o=n(13050);const a=e=>{let{formatMessage:t}=e;return[{name:"appId",title:"AppId",type:"other"},{name:"secretKey",title:"SecretKey",type:"other"},{name:"user",title:t({id:"BelongUser"}),type:"other",valueOf:e=>{let{user:t}=e;return t.nickname||t.email||t.phone}},{name:"description",title:t({id:"Description"}),type:"description"},{name:"lastVisitedAt",title:t({id:"LastVisitedAt"}),type:"datetime"},{name:"status",title:t({id:"Status"}),type:"tag",valueOf:(e,n)=>{let{name:o}=n;return 0===e[o]?{type:"success",text:t({id:"Enabled"})}:{type:"danger",text:t({id:"Disabled"})}}},{name:"createdAt",title:t({id:"CreatedAt"}),type:"datetime"}]};var r=n(55199),d=n(98889),s=n(52526);const l={AppId:"AppId",SecretKey:"SecretKey",BelongUser:"\u6240\u5c5e\u7528\u6237",Description:"\u63cf\u8ff0",LastVisitedAt:"\u6700\u540e\u8bbf\u95ee\u65f6\u95f4",Status:"\u72b6\u6001",CreatedAt:"\u521b\u5efa\u65f6\u95f4",Enabled:"\u542f\u7528",Disabled:"\u7981\u7528",AddSecretKey:"\u6dfb\u52a0\u5bc6\u94a5",Verify:"\u9a8c\u8bc1",Operation:"\u64cd\u4f5c",VerifySecretKey:"\u9a8c\u8bc1\u5bc6\u94a5",Signature:"\u7b7e\u540d",Timestamp:"\u65f6\u95f4\u6233",ExpireTime:"\u8fc7\u671f\u65f6\u95f4",SecretKeyGenerated:"\u5bc6\u94a5\u751f\u6210\u6210\u529f",SaveSecretKeyWarning:"\u8bf7\u59a5\u5584\u4fdd\u5b58\u5f53\u524d\u5bc6\u94a5\uff0c\u5173\u95ed\u7a97\u53e3\u540e\u5c06\u4e0d\u80fd\u518d\u83b7\u53d6\u5230\uff0c\u8bf7\u52ff\u6cc4\u6f0f",VerifySuccess:"\u9a8c\u8bc1\u6210\u529f",VerifyFailed:"\u9a8c\u8bc1\u5931\u8d25",OperationSuccess:"\u64cd\u4f5c\u6210\u529f",DeleteSuccess:"\u5220\u9664\u6210\u529f",DisableSecretKeyTitle:"\u6e29\u99a8\u63d0\u793a",DisableSecretKeyMessage:"\u7981\u7528\u6b64\u5bc6\u94a5\u540e\uff0c\u5c06\u62d2\u7edd\u6b64\u5bc6\u94a5\u7684\u6240\u6709\u8bf7\u6c42\u3002\u662f\u5426\u786e\u5b9a\u8981\u7981\u7528\u6b64\u5bc6\u94a5\uff1f",EnableSecretKeyMessage:"\u542f\u7528\u6b64\u5bc6\u94a5\u540e\uff0c\u5c06\u5141\u8bb8\u6b64\u5bc6\u94a5\u8bbf\u95ee\u8bf7\u6c42\u3002\u662f\u5426\u786e\u5b9a\u8981\u542f\u7528\u6b64\u5bc6\u94a5\uff1f",InputNumber:"\u8bf7\u8f93\u5165\u6570\u5b57"},i={AppId:"AppId",SecretKey:"SecretKey",BelongUser:"Belong User",Description:"Description",LastVisitedAt:"Last Visited At",Status:"Status",CreatedAt:"Created At",Enabled:"Enabled",Disabled:"Disabled",AddSecretKey:"Add Secret Key",Verify:"Verify",Operation:"Operation",VerifySecretKey:"Verify Secret Key",Signature:"Signature",Timestamp:"Timestamp",ExpireTime:"Expire Time",SecretKeyGenerated:"Secret key generated successfully",SaveSecretKeyWarning:"Please save the current secret key properly. You will not be able to retrieve it after closing this window. Do not disclose it.",VerifySuccess:"Verify successful",VerifyFailed:"Verify failed",OperationSuccess:"Operation successful",DeleteSuccess:"Deleted successfully",DisableSecretKeyTitle:"Friendly Reminder",DisableSecretKeyMessage:"After disabling this secret key, all requests using this key will be rejected. Are you sure you want to disable this secret key?",EnableSecretKeyMessage:"After enabling this secret key, it will be allowed to access requests. Are you sure you want to enable this secret key?",InputNumber:"Please enter a number"},c=(0,s.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":l,"en-US":i},namespace:"components-admin:Signature"});var m=n(53856),p=n(73884),u=n(70579);const h=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@useFormModal","components-core:Global@usePreset"]})(e=>{let{remoteModules:t,data:n}=e;const[o,a,d]=t,{formatMessage:l}=(0,s.useIntl)(),{ajax:i,apis:c}=d(),{TextArea:m,Input:p}=o.fields,h=a(),{message:g}=r.App.useApp();return(0,u.jsx)("a",{onClick:()=>{h({title:l({id:"VerifySecretKey"}),size:"small",saveText:l({id:"Verify"}),formProps:{rules:{NUM:e=>/^[0-9]+$/.test(e)?{result:!0,errMsg:""}:{result:!1,errMsg:l({id:"InputNumber"})}},data:{appId:n.appId},onSubmit:async e=>{const{data:t}=await i(Object.assign({},c.signature.verify,{data:{appId:n.appId,...e}}));0===t.code&&(t.data.result?g.success(l({id:"VerifySuccess"})):g.error(`${l({id:"VerifyFailed"})},${t.data.message}`))}},children:(0,u.jsx)(o,{column:1,list:[(0,u.jsx)(m,{name:"signature",label:l({id:"Signature"}),rule:"REQ"}),(0,u.jsx)(p,{name:"timestamp",label:l({id:"Timestamp"}),rule:"REQ NUM"}),(0,u.jsx)(p,{name:"expire",label:l({id:"ExpireTime"}),rule:"REQ NUM"})]})})},children:l({id:"Verify"})})}),g=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@useFormModal","components-core:Global@usePreset","components-core:InfoPage@CentralContent"]})(e=>{let{remoteModules:t,onSuccess:n}=e;const[o,a,l,i]=t,{formatMessage:c}=(0,s.useIntl)(),{ajax:m,apis:p}=l(),{TextArea:h}=o.fields,g=a(),{modal:b}=r.App.useApp();return(0,u.jsx)(r.Button,{type:"primary",onClick:()=>{const e=g({title:c({id:"AddSecretKey"}),size:"small",formProps:{onSubmit:async t=>{const{data:o}=await m(Object.assign({},p.signature.create,{data:t}));0===o.code&&(n&&n(),e.close(),b.info({icon:null,size:"large",width:"800px",title:c({id:"SecretKeyGenerated"}),content:(0,u.jsxs)(r.Flex,{vertical:!0,gap:10,children:[(0,u.jsx)(r.Alert,{type:"error",message:c({id:"SaveSecretKeyWarning"})}),(0,u.jsx)(i,{dataSource:o.data,col:1,columns:[{name:"appId",title:"AppId"},{name:"secretKey",title:"SecretKey"}]})]})}))}},children:(0,u.jsx)(o,{column:1,list:[(0,u.jsx)(d.default,{name:"userId",label:c({id:"BelongUser"}),single:!0,interceptor:"object-output-value"}),(0,u.jsx)(h,{name:"description",label:c({id:"Description"}),maxLength:100})]})})},children:c({id:"AddSecretKey"})})}),b=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset"]})(c(e=>{let{remoteModules:t}=e;const[n]=t,{apis:o}=n(),{formatMessage:r}=(0,s.useIntl)(),d=(0,p.useRef)(null),l={list:o.signature.list,remove:o.signature.remove,setStatus:o.signature.update},i={bizName:"\u5bc6\u94a5",openStatus:0,closedStatus:1,openButtonProps:{children:r({id:"Enabled"})},closeButtonProps:{children:r({id:"Disabled"})},closeMessage:r({id:"DisableSecretKeyMessage"}),removeMessage:r({id:"ConfirmDelete"},{bizName:"\u5bc6\u94a5"})};return(0,u.jsx)(m.default,{name:"signature-list",apis:l,getColumns:()=>a({formatMessage:r}),getActionList:e=>{let{data:t,...n}=e;const o=["setStatusOpen","setStatusClose","remove"].map(e=>({name:e,reset:n=>"remove"===e||"setStatusOpen"===e?{...n,hidden:0===t.status}:"setStatusClose"===e?{...n,hidden:1===t.status}:n}));return[{...n,buttonComponent:h,data:t},...o]},options:i,allowKeywordSearch:!1,onMount:e=>{let{tableOptions:t}=e;d.current=t.ref.current},titleExtra:(0,u.jsx)(g,{onSuccess:()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.reload()}})})}))},98889(e,t,n){n.r(t),n.d(t,{default:()=>r});var o=n(13050),a=n(70579);const r=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset","components-core:FormInfo"]})(e=>{let{remoteModules:t,status:n=0,api:o,...r}=e;const[d,s]=t,{apis:l}=d(),{SuperSelectUser:i}=s.fields;return(0,a.jsx)(i,{...r,api:Object.assign({},l.admin.getUserList,{data:{filter:Object.assign({},Number.isInteger(n)&&{status:n})},transformData:e=>Object.assign({},e,{pageData:(e.pageData||[]).map(e=>Object.assign({},e,{value:e.id,label:e.nickname||e.email||e.phone}))})},o)})})},2(e,t,n){n.r(t),n.d(t,{RightOptions:()=>L,default:()=>f});var o=n(13050),a=n(55199),r=n(98406);const d="style_icon__KSAP2__ALHcP",s="style_content__akCc4__ALHcP",l="style_overlay__IH+0B__ALHcP",i="style_info__5uvqI__ALHcP",c="style_user-tool__CBaDm__ALHcP",m="style_divider__jcjqI__ALHcP",p="style_options-list__RHknC__ALHcP",u="style_options-list-item__IOziy__ALHcP",h="style_user-name__q7lY4__ALHcP",g="style_line__rOiNk__ALHcP";var b=n(52526);const v={UserToolUnnamed:"\u672a\u547d\u540d",UserToolLogout:"\u9000\u51fa\u767b\u5f55"},k={UserToolUnnamed:"Unnamed",UserToolLogout:"Logout"},y=(0,b.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":v,"en-US":k},namespace:"components-admin:UserTool"});var P=n(70579);const f=(0,o.createWithRemoteLoader)({modules:["components-core:Image","components-core:Icon"]})(y(e=>{let{remoteModules:t,avatar:n,name:o,email:v,storeKeys:k={token:"X-User-Token"},domain:y,list:f,children:S=null}=e;const[L,x]=t,T=(0,r.useLogout)({storeKeys:k,domain:y}),{formatMessage:I}=(0,b.useIntl)();return(0,P.jsx)(a.Dropdown,{trigger:"click",rootClassName:l,popupRender:()=>(0,P.jsxs)(a.Space,{direction:"vertical",className:s,children:[(0,P.jsxs)(a.Space,{className:i,children:[(0,P.jsx)(L.Avatar,{id:n,size:48}),(0,P.jsxs)("div",{children:[(0,P.jsx)("div",{className:g,children:o||I({id:"UserToolUnnamed"})}),(0,P.jsx)("div",{className:g,children:v||"-"})]})]}),(0,P.jsx)(a.Divider,{className:m}),S,(0,P.jsxs)(a.List,{className:p,children:[f&&f.length>0&&f.map((e,t)=>(0,P.jsx)(a.List.Item,{className:u,onClick:e.onClick,children:(0,P.jsxs)(a.Flex,{gap:8,flex:1,children:[e.iconType&&(0,P.jsx)(x,{type:e.iconType}),(0,P.jsx)(a.Flex,{flex:1,children:e.label})]})},t)),(0,P.jsx)(a.List.Item,{className:u,onClick:T,children:(0,P.jsxs)(a.Flex,{gap:8,flex:1,children:[(0,P.jsx)(x,{type:"icon-tuichudenglu"}),(0,P.jsx)("span",{children:I({id:"UserToolLogout"})})]})})]})]}),arrow:!1,transitionName:"ant-slide-up",children:(0,P.jsxs)(a.Space,{className:c,children:[(0,P.jsx)(L.Avatar,{id:n,size:32}),(0,P.jsx)("div",{className:h,children:o||I({id:"UserToolUnnamed"})}),(0,P.jsx)(x,{className:d,type:"triangle-down",size:12})]})})}));var S=n(68743);const L=(0,o.createWithRemoteLoader)({modules:["components-core:Global@GlobalValue"]})(e=>{let{remoteModules:t}=e;const[n]=t;return(0,P.jsxs)(a.Flex,{gap:8,children:[(0,P.jsx)(S.A,{}),(0,P.jsx)(n,{globalKey:"userInfo",children:e=>{let{value:t}=e;if(!t)return null;const{userInfo:n,tenantUser:o,tenant:a}=t;return(0,P.jsx)(f,{avatar:o?o.avatar:n.avatar,name:o?o.name:n.nickname,email:o?o.email:n.email,tenant:a,orgName:o&&((null===o||void 0===o?void 0:o.tenantOrgs)||[]).map(e=>e.name).join(",")})}})]})})},1784(e,t,n){n.r(t),n.d(t,{adminUserList:()=>p,default:()=>k,groupList:()=>g,intlAdminData:()=>m,signatureList:()=>c,superAdminInfo:()=>h,taskList:()=>i,tenantAdminData:()=>v,tenantData:()=>b,userInfo:()=>u});var o=n(11125),a=n(71394),r=n(45272),d=n(52751),s=n(34677),l=n.n(s),i=n(49827),c=n(75480),m=n(80527),p=n(10015),u=n(87841),h=n(13889),g=n(11435),b=n(36264),v=n(48666);const k={ajax:async e=>{let{loader:t,...n}=e;if(!t&&n.url){const{ajax:e}=await(0,o.U)();return e({loader:t,...n})}return Promise.resolve({data:t?{code:0,data:t()}:{code:0,data:{}}})},apis:l()({},(0,a.A)(),{task:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,49827,19)).then(e=>{let{default:t}=e;return t.data})},cancel:{loader:()=>({code:0,data:{success:!0}})},retry:{loader:()=>({code:0,data:{success:!0}})}},signature:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,75480,19)).then(e=>{let{default:t}=e;return t.data})},create:{loader:()=>({appId:`app_${Date.now()}`,secretKey:`sk_${Math.random().toString(36).substr(2,32)}`})},update:{loader:()=>({success:!0})},remove:{loader:()=>({success:!0})},verify:{loader:()=>({result:!0,message:"\u9a8c\u8bc1\u6210\u529f"})}},intlAdmin:{langType:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,80527,19)).then(e=>{let{default:t}=e;return t.langType})},create:{loader:()=>({id:Date.now()})},save:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})}},langLib:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,80527,19)).then(e=>{let{default:t}=e;return t.langLib})},create:{loader:()=>({id:Date.now()})},save:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})}}},admin:{getUserList:{loader:()=>Promise.resolve().then(n.t.bind(n,10015,19)).then(e=>{let{default:t}=e;return t})},addUser:{loader:()=>({id:Date.now()})},saveUser:{loader:()=>({code:0})},resetUserPassword:{loader:()=>({code:0})},setSuperAdmin:{loader:()=>({code:0})},setUserNormal:{loader:()=>({code:0})},setUserClose:{loader:()=>({code:0})},getSuperAdminInfo:{loader:()=>Promise.resolve().then(n.t.bind(n,13889,19)).then(e=>{let{default:t}=e;return t.data})},initSuperAdmin:{loader:()=>({code:0})}},user:{getUserInfo:{loader:()=>Promise.resolve().then(n.t.bind(n,87841,19)).then(e=>{let{default:t}=e;return t.data})},saveUserInfo:{loader:()=>({code:0})}},group:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,11435,19)).then(e=>{let{default:t}=e;return t.data})},create:{loader:()=>({id:Date.now(),code:Date.now()})},remove:{loader:()=>({code:0})}},tenant:{availableList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.availableTenantList})},switchDefaultTenant:{loader:()=>({code:0})},getUserInfo:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return{tenantUserInfo:t.tenantUserInfo,company:t.company,tenant:t.tenantList.pageData[0],userInfo:t.tenantUserInfo}})},companyDetail:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.company})},companySave:{loader:()=>({code:0})},orgList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.orgList})},orgCreate:{loader:()=>({id:`dept-${Date.now()}`})},orgSave:{loader:()=>({code:0})},orgRemove:{loader:()=>({code:0})},userList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.userList})},userCreate:{loader:()=>({id:`user-${Date.now()}`})},userSave:{loader:()=>({code:0})},userRemove:{loader:()=>({code:0})},userSetStatus:{loader:()=>({code:0})},userInviteToken:{loader:()=>({token:`invite_${Date.now()}`})},userInviteMessage:{loader:()=>({code:0})},role:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.roleList})},create:{loader:()=>({id:`role-${Date.now()}`})},save:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},permissionList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},permissionSave:{loader:()=>({code:0})}},permission:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})}},getUserList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.userList})},createUser:{loader:()=>({id:`user-${Date.now()}`})},saveUser:{loader:()=>({code:0})},removeUser:{loader:()=>({code:0})},getRoleList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.roleList})},createRole:{loader:()=>({id:`role-${Date.now()}`})},saveRole:{loader:()=>({code:0})},removeRole:{loader:()=>({code:0})},getPermissionList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},savePermission:{loader:()=>({code:0})},parseJoinToken:{loader:e=>{let{data:t}=e;return t&&t.token&&"invalid"!==t.token?Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return{tenant:t.tenantList.pageData[0],tenantUser:t.tenantUserInfo,company:t.company}}):null}},join:{loader:()=>({code:0})}},file:{getUrl:{loader:e=>{let{params:t}=e;return t&&t.id?t.id:"https://picsum.photos/200/200"}}},tenantAdmin:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,48666,19)).then(e=>{let{default:t}=e;return t.tenantList})},detail:{loader:()=>Promise.resolve().then(n.t.bind(n,48666,19)).then(e=>{let{default:t}=e;return t.tenantDetail})},create:{loader:()=>({id:`tenant-${Date.now()}`})},save:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})},companyDetail:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.company})},companySave:{loader:()=>({code:0})},orgList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.orgList})},orgCreate:{loader:()=>({id:`dept-${Date.now()}`})},orgSave:{loader:()=>({code:0})},orgRemove:{loader:()=>({code:0})},userList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.userList})},userCreate:{loader:()=>({id:`user-${Date.now()}`})},userSave:{loader:()=>({code:0})},userSetStatus:{loader:()=>({code:0})},userInviteToken:{loader:()=>({token:`invite_${Date.now()}`})},userInviteMessage:{loader:()=>({code:0})},role:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.roleList})},create:{loader:()=>({id:`role-${Date.now()}`})},save:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})},permissionList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},permissionSave:{loader:()=>({code:0})}},permission:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},save:{loader:()=>({code:0})}},appendArgs:{loader:()=>({code:0})},removeArg:{loader:()=>({code:0})},appendCustomComponent:{loader:()=>({code:0})},customComponentDetail:{loader:()=>({content:"<div>Custom Component</div>"})},saveCustomComponent:{loader:()=>({code:0})},copyCustomComponent:{loader:()=>({code:0})},removeCustomComponent:{loader:()=>({code:0})}}}),enums:Object.assign({},r.enums,d.enums,{taskType:[{value:"interview_report",description:"\u9762\u8bd5\u62a5\u544a"},{value:"data_export",description:"\u6570\u636e\u5bfc\u51fa"},{value:"email_notification",description:"\u90ae\u4ef6\u901a\u77e5"},{value:"video_processing",description:"\u89c6\u9891\u5904\u7406"},{value:"data_sync",description:"\u6570\u636e\u540c\u6b65"},{value:"report_generation",description:"\u62a5\u8868\u751f\u6210"}]}),global:b.global}},11125(e,t,n){n.d(t,{U:()=>c});n(73884);var o=n(87558),a=n(55199),r=n(89946),d=n(13050),s=n(1488),l=n.n(s),i=n(70579);window.PUBLIC_URL=window.runtimePublicUrl||"components-admin";const c=async()=>{const e=(()=>{const e=r.default.create({validateStatus:function(){return!0}});return e.interceptors.response.use(e=>{var t;200!==e.status&&(!1!==e.showError&&!1!==e.config.showError&&a.message.error((null===e||void 0===e||null===(t=e.data)||void 0===t?void 0:t.msg)||"\u8bf7\u6c42\u53d1\u751f\u9519\u8bef"));return e},e=>(a.message.error(e.message||"\u8bf7\u6c42\u53d1\u751f\u9519\u8bef"),Promise.reject(e))),t=>t.hasOwnProperty("loader")&&"function"===typeof t.loader?Promise.resolve(t.loader(l()(t,["loader"]))).then(e=>({data:{code:0,data:e}})).catch(e=>(a.message.error(e.message||"\u8bf7\u6c42\u53d1\u751f\u9519\u8bef"),{data:{code:500,msg:e.message}})):e(t)})();(0,o.preset)({ajax:e,loading:(0,i.jsx)(a.Spin,{delay:500,style:{position:"absolute",left:"50%",padding:"10px",transform:"translateX(-50%)"}}),error:null,empty:(0,i.jsx)(a.Empty,{}),transformResponse:e=>{const{data:t}=e;return e.data={code:0===t.code?200:t.code,msg:t.msg,results:t.data},e}});const t={url:"https://cdn.leapin-ai.com",tpl:"{{url}}/components/@kne-components/{{remote}}/{{version}}/build"},n={...t,remote:"components-core",defaultVersion:"0.4.64"};return(0,d.preset)({remotes:{default:n,"components-core":n,"components-iconfont":{...t,remote:"components-iconfont",defaultVersion:"0.1.8"},"components-thirdparty":{...t,remote:"components-thirdparty",defaultVersion:"0.1.12"},"components-admin":{...t,remote:"components-admin",defaultVersion:"1.1.25"}}}),{ajax:e,themeToken:{colorPrimary:"#4183F0"}}}},10015(e){e.exports=JSON.parse('{"totalCount":8,"pageData":[{"id":1,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan","nickname":"\u5f20\u4e09","email":"zhangsan@example.com","phone":"+86 138001380001","isSuperAdmin":true,"status":0,"description":"\u7cfb\u7edf\u8d85\u7ea7\u7ba1\u7406\u5458\uff0c\u8d1f\u8d23\u6574\u4f53\u7cfb\u7edf\u7ef4\u62a4\u548c\u7528\u6237\u7ba1\u7406","gender":"M"},{"id":2,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=lisi","nickname":"\u674e\u56db","email":"lisi@example.com","phone":"+86 138001380002","isSuperAdmin":false,"status":0,"description":"\u6280\u672f\u90e8\u8d1f\u8d23\u4eba\uff0c\u8d1f\u8d23\u6280\u672f\u67b6\u6784\u8bbe\u8ba1\u548c\u56e2\u961f\u7ba1\u7406","gender":"M"},{"id":3,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wangwu","nickname":"\u738b\u4e94","email":"wangwu@example.com","phone":"+86 138001380003","isSuperAdmin":false,"status":0,"description":"\u4ea7\u54c1\u7ecf\u7406\uff0c\u8d1f\u8d23\u4ea7\u54c1\u89c4\u5212\u548c\u9700\u6c42\u5206\u6790","gender":"M"},{"id":4,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhaoliu","nickname":"\u8d75\u516d","email":"zhaoliu@example.com","phone":"+86 138001380004","isSuperAdmin":false,"status":10,"description":"\u65b0\u5165\u804c\u5458\u5de5\uff0c\u7b49\u5f85\u8d26\u53f7\u6fc0\u6d3b","gender":"F"},{"id":5,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=qianqi","nickname":"\u94b1\u4e03","email":"qianqi@example.com","phone":"+86 138001380005","isSuperAdmin":false,"status":12,"description":"\u5df2\u79bb\u804c\u5458\u5de5\uff0c\u8d26\u53f7\u5df2\u5173\u95ed","gender":"M"},{"id":6,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=sunba","nickname":"\u5b59\u516b","email":"sunba@example.com","phone":"+86 138001380006","isSuperAdmin":false,"status":0,"description":"\u524d\u7aef\u5f00\u53d1\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u524d\u7aef\u5f00\u53d1\u5de5\u4f5c","gender":"M"},{"id":7,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhoujiu","nickname":"\u5468\u4e5d","email":"zhoujiu@example.com","phone":"+86 138001380007","isSuperAdmin":false,"status":0,"description":"\u540e\u7aef\u5f00\u53d1\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u540e\u7aefAPI\u5f00\u53d1","gender":"M"},{"id":8,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wushi","nickname":"\u5434\u5341","email":"wushi@example.com","phone":"+86 138001380008","isSuperAdmin":true,"status":0,"description":"\u8fd0\u7ef4\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u670d\u52a1\u5668\u8fd0\u7ef4\u548c\u90e8\u7f72","gender":"F"}]}')},11435(e){e.exports=JSON.parse('{"code":0,"data":{"totalCount":12,"pageData":[{"id":1,"code":"frontend","name":"\u524d\u7aef\u5f00\u53d1","description":"\u5305\u542bHTML\u3001CSS\u3001JavaScript\u7b49\u524d\u7aef\u6280\u672f\u6808\u76f8\u5173\u6280\u80fd","createdAt":"2024-01-15T10:30:00Z"},{"id":2,"code":"backend","name":"\u540e\u7aef\u5f00\u53d1","description":"\u5305\u542bJava\u3001Python\u3001Node.js\u7b49\u540e\u7aef\u6280\u672f\u6808\u76f8\u5173\u6280\u80fd","createdAt":"2024-01-15T11:00:00Z"},{"id":3,"code":"database","name":"\u6570\u636e\u5e93","description":"\u5305\u542bMySQL\u3001PostgreSQL\u3001MongoDB\u7b49\u6570\u636e\u5e93\u6280\u672f","createdAt":"2024-01-16T09:00:00Z"},{"id":4,"code":"devops","name":"\u8fd0\u7ef4\u5f00\u53d1","description":"\u5305\u542bDocker\u3001Kubernetes\u3001CI/CD\u7b49\u8fd0\u7ef4\u6280\u672f","createdAt":"2024-01-16T10:00:00Z"},{"id":5,"code":"mobile","name":"\u79fb\u52a8\u5f00\u53d1","description":"\u5305\u542biOS\u3001Android\u3001React Native\u7b49\u79fb\u52a8\u5f00\u53d1\u6280\u672f","createdAt":"2024-01-17T09:30:00Z"},{"id":6,"code":"ai","name":"\u4eba\u5de5\u667a\u80fd","description":"\u5305\u542b\u673a\u5668\u5b66\u4e60\u3001\u6df1\u5ea6\u5b66\u4e60\u3001NLP\u7b49AI\u76f8\u5173\u6280\u672f","createdAt":"2024-01-17T14:00:00Z"},{"id":7,"code":"security","name":"\u7f51\u7edc\u5b89\u5168","description":"\u5305\u542b\u6e17\u900f\u6d4b\u8bd5\u3001\u5b89\u5168\u5ba1\u8ba1\u3001\u52a0\u5bc6\u7b97\u6cd5\u7b49\u5b89\u5168\u6280\u672f","createdAt":"2024-01-18T10:00:00Z"},{"id":8,"code":"architecture","name":"\u7cfb\u7edf\u67b6\u6784","description":"\u5305\u542b\u5fae\u670d\u52a1\u3001\u5206\u5e03\u5f0f\u7cfb\u7edf\u3001\u9ad8\u53ef\u7528\u67b6\u6784\u7b49\u6280\u672f","createdAt":"2024-01-18T11:30:00Z"},{"id":9,"code":"testing","name":"\u6d4b\u8bd5\u6280\u672f","description":"\u5305\u542b\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u5355\u5143\u6d4b\u8bd5\u7b49\u6280\u672f","createdAt":"2024-01-19T09:00:00Z"},{"id":10,"code":"cloud","name":"\u4e91\u8ba1\u7b97","description":"\u5305\u542bAWS\u3001Azure\u3001\u963f\u91cc\u4e91\u7b49\u4e91\u670d\u52a1\u6280\u672f","createdAt":"2024-01-19T10:30:00Z"},{"id":11,"code":"blockchain","name":"\u533a\u5757\u94fe","description":"\u5305\u542b\u667a\u80fd\u5408\u7ea6\u3001DApp\u5f00\u53d1\u3001\u5171\u8bc6\u7b97\u6cd5\u7b49\u6280\u672f","createdAt":"2024-01-20T09:00:00Z"},{"id":12,"code":"iot","name":"\u7269\u8054\u7f51","description":"\u5305\u542b\u5d4c\u5165\u5f0f\u5f00\u53d1\u3001\u4f20\u611f\u5668\u3001\u8fb9\u7f18\u8ba1\u7b97\u7b49\u6280\u672f","createdAt":"2024-01-20T14:00:00Z"}]}}')},80527(e){e.exports=JSON.parse('{"langType":{"pageData":[{"id":1,"name":"\u4e2d\u6587\uff08\u7b80\u4f53\uff09","code":"zh-CN","params":"count, name, date","description":"\u7b80\u4f53\u4e2d\u6587\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u4e2d\u56fd\u5927\u9646\u5730\u533a","status":"open"},{"id":2,"name":"\u4e2d\u6587\uff08\u7e41\u4f53\uff09","code":"zh-TW","params":"count, name, date","description":"\u7e41\u4f53\u4e2d\u6587\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u53f0\u6e7e\u3001\u9999\u6e2f\u5730\u533a","status":"open"},{"id":3,"name":"English","code":"en-US","params":"count, name, date","description":"\u7f8e\u5f0f\u82f1\u8bed\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u7f8e\u56fd\u5730\u533a","status":"open"},{"id":4,"name":"\u65e5\u672c\u8a9e","code":"ja-JP","params":"count, name, date","description":"\u65e5\u8bed\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u65e5\u672c\u5730\u533a","status":"closed"},{"id":5,"name":"\ud55c\uad6d\uc5b4","code":"ko-KR","params":"count, name, date","description":"\u97e9\u8bed\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u97e9\u56fd\u5730\u533a","status":"open"}],"totalCount":5},"langLib":{"pageData":[{"id":1,"namespace":"components-admin:User","locale":"zh-CN","code":"AddUser","target":"\u6dfb\u52a0\u7528\u6237","reviewStatus":"approved","status":"open"},{"id":2,"namespace":"components-admin:User","locale":"en-US","code":"AddUser","target":"Add User","reviewStatus":"approved","status":"open"},{"id":3,"namespace":"components-admin:User","locale":"zh-CN","code":"EditUser","target":"\u7f16\u8f91\u7528\u6237","reviewStatus":"approved","status":"open"},{"id":4,"namespace":"components-admin:User","locale":"en-US","code":"EditUser","target":"Edit User","reviewStatus":"pending","status":"open"},{"id":5,"namespace":"components-admin:Role","locale":"zh-CN","code":"RoleName","target":"\u89d2\u8272\u540d\u79f0","reviewStatus":"approved","status":"open"},{"id":6,"namespace":"components-admin:Role","locale":"en-US","code":"RoleName","target":"Role Name","reviewStatus":"approved","status":"open"},{"id":7,"namespace":"components-admin:Signature","locale":"zh-CN","code":"AddSecretKey","target":"\u6dfb\u52a0\u5bc6\u94a5","reviewStatus":"approved","status":"open"},{"id":8,"namespace":"components-admin:Signature","locale":"en-US","code":"AddSecretKey","target":"Add Secret Key","reviewStatus":"rejected","status":"closed"}],"totalCount":8}}')},75480(e){e.exports=JSON.parse('{"code":0,"data":{"pageData":[{"appId":"app_20240308001","secretKey":"sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6","user":{"id":1,"nickname":"\u5f20\u4e09","email":"zhangsan@example.com","phone":"138****1234"},"description":"\u7528\u4e8eAPI\u5bf9\u63a5\u7684\u4e3b\u5bc6\u94a5","lastVisitedAt":"2024-03-08 14:30:00","status":0,"createdAt":"2024-03-01 09:00:00"},{"appId":"app_20240305002","secretKey":"sk_z9y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4","user":{"id":2,"nickname":"\u674e\u56db","email":"lisi@example.com","phone":"139****5678"},"description":"\u6d4b\u8bd5\u73af\u5883\u4f7f\u7528\u7684\u7b7e\u540d\u5bc6\u94a5","lastVisitedAt":"2024-03-05 16:20:00","status":1,"createdAt":"2024-02-28 11:00:00"},{"appId":"app_20240303003","secretKey":"sk_q1w2e3r4t5y6u7i8o9p0a1s2d3f4g5h6","user":{"id":3,"nickname":"\u738b\u4e94","email":"wangwu@example.com","phone":"137****9012"},"description":"\u5185\u90e8\u7cfb\u7edf\u96c6\u6210\u4e13\u7528","lastVisitedAt":"2024-03-03 10:15:00","status":0,"createdAt":"2024-02-20 14:30:00"},{"appId":"app_20240302004","secretKey":"sk_j4k5l6m7n8o9p0q1r2s3t4u5v6w7x8y9","user":{"id":1,"nickname":"\u5f20\u4e09","email":"zhangsan@example.com","phone":"138****1234"},"description":"\u7b2c\u4e09\u65b9\u670d\u52a1\u56de\u8c03\u9a8c\u8bc1\u5bc6\u94a5","lastVisitedAt":"2024-03-02 18:45:00","status":0,"createdAt":"2024-02-15 08:00:00"},{"appId":"app_20240301005","secretKey":"sk_z0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5","user":{"id":4,"nickname":"\u8d75\u516d","email":"zhaoliu@example.com","phone":"136****3456"},"description":"\u6570\u636e\u540c\u6b65\u63a5\u53e3\u5bc6\u94a5","lastVisitedAt":"2024-03-01 20:00:00","status":1,"createdAt":"2024-01-10 10:00:00"}],"totalCount":5}}')},13889(e){e.exports=JSON.parse('{"code":0,"data":{"userInfo":{"id":1,"email":"admin@example.com","nickname":"\u8d85\u7ea7\u7ba1\u7406\u5458","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=admin","phone":"+86138001380000","description":"\u7cfb\u7edf\u8d85\u7ea7\u7ba1\u7406\u5458","status":0,"isSuperAdmin":true,"gender":"M"}}}')},49827(e){e.exports=JSON.parse('{"code":0,"data":{"pageData":[{"id":1001,"type":"interview_report","status":"success","runnerType":"manual","input":{"name":"\u5f20\u4e09\u7684\u9762\u8bd5\u62a5\u544a","candidateId":2001,"interviewId":3001},"output":{"reportId":5001,"url":"https://example.com/reports/5001.pdf"},"options":{"logs":[{"data":{"url":"https://api.example.com/v1/interview/start","method":"POST","headers":{"Content-Type":"application/json","Authorization":"Bearer xxx"},"body":"{\\"candidateId\\":2001,\\"interviewId\\":3001}"},"message":"\u5f00\u59cb\u751f\u6210\u9762\u8bd5\u62a5\u544a","time":"2024-03-08T10:30:05.000Z"},{"data":{"url":"https://api.example.com/v1/interview/process","method":"POST","body":"{\\"step\\":\\"analysis\\",\\"progress\\":50}"},"message":"\u5206\u6790\u9762\u8bd5\u6570\u636e\u4e2d","time":"2024-03-08T10:32:00.000Z"},{"data":{"reportId":5001,"url":"https://example.com/reports/5001.pdf","pageCount":12},"message":"\u62a5\u544a\u751f\u6210\u5b8c\u6210","time":"2024-03-08T10:35:00.000Z"}]},"createdAt":"2024-03-08 10:30:00","completedAt":"2024-03-08 10:35:00","updatedAt":"2024-03-08 10:35:00"},{"id":1002,"type":"data_export","status":"running","runnerType":"system","input":{"name":"\u7528\u6237\u6570\u636e\u5bfc\u51fa","exportType":"excel","dateRange":["2024-01-01","2024-03-01"]},"output":null,"createdAt":"2024-03-08 11:00:00","completedAt":null,"updatedAt":"2024-03-08 11:05:00"},{"id":1003,"type":"email_notification","status":"failed","runnerType":"system","input":{"name":"\u6279\u91cf\u90ae\u4ef6\u901a\u77e5","recipients":["user1@example.com","user2@example.com"],"subject":"\u7cfb\u7edf\u7ef4\u62a4\u901a\u77e5"},"output":null,"error":{"code":"SMTP_ERROR","message":"SMTP\u670d\u52a1\u5668\u8fde\u63a5\u5931\u8d25","details":"Connection timeout after 30s"},"createdAt":"2024-03-08 09:00:00","completedAt":"2024-03-08 09:01:00","updatedAt":"2024-03-08 09:01:00"},{"id":1004,"type":"video_processing","status":"pending","runnerType":"manual","input":{"name":"\u4ea7\u54c1\u5ba3\u4f20\u89c6\u9891\u5904\u7406","videoId":4001,"resolution":"1080p"},"output":null,"createdAt":"2024-03-08 14:20:00","completedAt":null,"updatedAt":"2024-03-08 14:20:00"},{"id":1005,"type":"data_sync","status":"canceled","runnerType":"system","input":{"name":"\u6570\u636e\u5e93\u540c\u6b65\u4efb\u52a1","sourceDb":"production","targetDb":"backup"},"output":null,"createdAt":"2024-03-07 23:00:00","completedAt":"2024-03-07 23:15:00","updatedAt":"2024-03-07 23:15:00"},{"id":1006,"type":"report_generation","status":"success","runnerType":"system","input":{"name":"\u6708\u5ea6\u8d22\u52a1\u62a5\u8868","month":"2024-02","department":"\u8d22\u52a1\u90e8"},"output":{"reportId":5002,"fileSize":"2.5MB","pageCount":45},"createdAt":"2024-03-01 08:00:00","completedAt":"2024-03-01 08:10:00","updatedAt":"2024-03-01 08:10:00"}],"totalCount":6}}')},48666(e){e.exports=JSON.parse('{"tenantList":{"totalCount":5,"pageData":[{"id":"tenant-001","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","status":"open","description":"\u4e00\u5bb6\u4e13\u6ce8\u4e8e\u4eba\u5de5\u667a\u80fd\u548c\u4e91\u8ba1\u7b97\u6280\u672f\u7814\u53d1\u7684\u9ad8\u65b0\u6280\u672f\u4f01\u4e1a\uff0c\u4e3b\u8981\u4e1a\u52a1\u5305\u62ec\u667a\u80fd\u8f6f\u4ef6\u5f00\u53d1\u3001\u6570\u636e\u5206\u6790\u670d\u52a1\u548c\u4e91\u8ba1\u7b97\u89e3\u51b3\u65b9\u6848\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","themeColor":"#1890ff","accountCount":50,"serviceStartTime":"2024-01-01","serviceEndTime":"2025-12-31","createdAt":"2024-01-15T10:30:00Z"},{"id":"tenant-002","name":"\u667a\u6167\u6559\u80b2\u96c6\u56e2","status":"open","description":"\u4e13\u6ce8\u4e8e\u5728\u7ebf\u6559\u80b2\u5e73\u53f0\u5f00\u53d1\uff0c\u4e3a\u5b66\u6821\u548c\u57f9\u8bad\u673a\u6784\u63d0\u4f9b\u5b8c\u6574\u7684\u6570\u5b57\u5316\u6559\u5b66\u89e3\u51b3\u65b9\u6848\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu","themeColor":"#52c41a","accountCount":120,"serviceStartTime":"2024-03-01","serviceEndTime":"2025-02-28","createdAt":"2024-02-20T14:15:00Z"},{"id":"tenant-003","name":"\u533b\u7597\u5065\u5eb7\u79d1\u6280","status":"closed","description":"\u533b\u7597\u4fe1\u606f\u5316\u89e3\u51b3\u65b9\u6848\u63d0\u4f9b\u5546\uff0c\u4e13\u6ce8\u4e8e\u533b\u9662\u7ba1\u7406\u7cfb\u7edf\u548c\u8fdc\u7a0b\u533b\u7597\u5e73\u53f0\u7684\u7814\u53d1\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=health","themeColor":"#722ed1","accountCount":35,"serviceStartTime":"2023-01-01","serviceEndTime":"2024-01-01","createdAt":"2023-01-10T09:00:00Z"},{"id":"tenant-004","name":"\u91d1\u878d\u6570\u636e\u670d\u52a1","status":"open","description":"\u4e3a\u91d1\u878d\u673a\u6784\u63d0\u4f9b\u6570\u636e\u5206\u6790\u548c\u98ce\u9669\u63a7\u5236\u670d\u52a1\uff0c\u62e5\u6709\u4e13\u4e1a\u7684\u91cf\u5316\u5206\u6790\u56e2\u961f\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=finance","themeColor":"#fa8c16","accountCount":80,"serviceStartTime":"2024-06-01","serviceEndTime":"2025-05-31","createdAt":"2024-05-25T16:45:00Z"},{"id":"tenant-005","name":"\u65b0\u96f6\u552e\u89e3\u51b3\u65b9\u6848","status":"open","description":"\u4e3a\u96f6\u552e\u4f01\u4e1a\u63d0\u4f9b\u5168\u6e20\u9053\u6570\u5b57\u5316\u8f6c\u578b\u670d\u52a1\uff0c\u5305\u62ec\u7535\u5546\u5e73\u53f0\u3001\u4f1a\u5458\u7cfb\u7edf\u548c\u4f9b\u5e94\u94fe\u7ba1\u7406\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=retail","themeColor":"#eb2f96","accountCount":45,"serviceStartTime":"2024-09-01","serviceEndTime":"2025-08-31","createdAt":"2024-08-15T11:20:00Z"}]},"tenantDetail":{"id":"tenant-001","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","status":"open","description":"\u4e00\u5bb6\u4e13\u6ce8\u4e8e\u4eba\u5de5\u667a\u80fd\u548c\u4e91\u8ba1\u7b97\u6280\u672f\u7814\u53d1\u7684\u9ad8\u65b0\u6280\u672f\u4f01\u4e1a\uff0c\u4e3b\u8981\u4e1a\u52a1\u5305\u62ec\u667a\u80fd\u8f6f\u4ef6\u5f00\u53d1\u3001\u6570\u636e\u5206\u6790\u670d\u52a1\u548c\u4e91\u8ba1\u7b97\u89e3\u51b3\u65b9\u6848\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","themeColor":"#1890ff","accountCount":50,"serviceStartTime":"2024-01-01T00:00:00Z","serviceEndTime":"2025-12-31T23:59:59Z","createdAt":"2024-01-15T10:30:00Z","tenantCompany":{"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech"},"tenantSetting":{"args":[{"key":"API_KEY","value":"sk-xxxx-xxxx-xxxx","secret":true},{"key":"MAX_CONNECTIONS","value":"100","secret":false},{"key":"TIMEOUT","value":"30000","secret":false}],"customComponents":[{"key":"custom-form","name":"\u81ea\u5b9a\u4e49\u8868\u5355","type":"form","description":"\u7528\u4e8e\u7279\u6b8a\u4e1a\u52a1\u573a\u666f\u7684\u81ea\u5b9a\u4e49\u8868\u5355\u7ec4\u4ef6"},{"key":"data-chart","name":"\u6570\u636e\u56fe\u8868","type":"chart","description":"\u6570\u636e\u53ef\u89c6\u5316\u56fe\u8868\u7ec4\u4ef6"}]}}}')},36264(e){e.exports=JSON.parse('{"company":{"id":1,"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=company","description":"\u4e00\u5bb6\u4e13\u6ce8\u4e8e\u4eba\u5de5\u667a\u80fd\u548c\u4e91\u8ba1\u7b97\u6280\u672f\u7814\u53d1\u7684\u9ad8\u65b0\u6280\u672f\u4f01\u4e1a","industry":"\u4fe1\u606f\u6280\u672f","scale":"100-500\u4eba","address":"\u5317\u4eac\u5e02\u6d77\u6dc0\u533a\u4e2d\u5173\u6751\u79d1\u6280\u56ed\u533a","website":"https://www.tech-innovation.com","phone":"010-12345678","email":"contact@tech-innovation.com","foundedDate":"2018-06-15","developmentHistory":[{"time":"2018-06-15","event":"\u6210\u7acb\u4e8e\u5317\u4eac\u4e2d\u5173\u6751\uff0c\u4e13\u6ce8\u4e8e\u4f01\u4e1a\u7ea7\u8f6f\u4ef6\u89e3\u51b3\u65b9\u6848"},{"time":"2020-06-01","event":"\u83b7\u5f97A\u8f6e\u878d\u8d44"},{"time":"2022-01-01","event":"\u4e1a\u52a1\u6269\u5c55\u81f3\u5168\u56fd20\u4e2a\u57ce\u5e02"}],"teamDescription":[{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=ceo","name":"\u5f20\u4f1f","role":"CEO / \u521b\u59cb\u4eba","description":"\u524dBAT\u6280\u672f\u603b\u76d1\uff0c15\u5e74\u4e92\u8054\u7f51\u4ece\u4e1a\u7ecf\u9a8c\uff0c\u4e13\u6ce8\u4e8e\u4f01\u4e1a\u7ea7\u8f6f\u4ef6\u67b6\u6784\u8bbe\u8ba1"},{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=cto","name":"\u674e\u5a1c","role":"CTO / \u6280\u672f\u526f\u603b\u88c1","description":"\u524d\u77e5\u540d\u4e92\u8054\u7f51\u516c\u53f8\u67b6\u6784\u5e08\uff0c12\u5e74\u6280\u672f\u7814\u53d1\u7ecf\u9a8c\uff0c\u4e3b\u5bfc\u591a\u4e2a\u5343\u4e07\u7ea7\u7528\u6237\u4ea7\u54c1"},{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=product","name":"\u738b\u5f3a","role":"\u4ea7\u54c1\u603b\u76d1","description":"\u524d\u77e5\u540d\u4f01\u4e1a\u4ea7\u54c1\u8d1f\u8d23\u4eba\uff0c10\u5e74\u4ea7\u54c1\u7ba1\u7406\u7ecf\u9a8c\uff0c\u64c5\u957f\u4f01\u4e1a\u7ea7\u4ea7\u54c1\u89c4\u5212"}],"banner":"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800"},"orgList":[{"id":"dept-1","name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3","description":"\u8d1f\u8d23\u516c\u53f8\u6838\u5fc3\u4ea7\u54c1\u7684\u6280\u672f\u7814\u53d1","parentId":null},{"id":"dept-2","name":"\u524d\u7aef\u5f00\u53d1\u90e8","description":"\u8d1f\u8d23Web\u548c\u79fb\u52a8\u7aef\u524d\u7aef\u5f00\u53d1","parentId":"dept-1"},{"id":"dept-3","name":"\u540e\u7aef\u5f00\u53d1\u90e8","description":"\u8d1f\u8d23\u670d\u52a1\u7aef\u67b6\u6784\u548cAPI\u5f00\u53d1","parentId":"dept-1"},{"id":"dept-4","name":"AI\u7b97\u6cd5\u90e8","description":"\u8d1f\u8d23AI\u6a21\u578b\u7814\u53d1\u548c\u4f18\u5316","parentId":"dept-1"},{"id":"dept-5","name":"\u4ea7\u54c1\u8bbe\u8ba1\u4e2d\u5fc3","description":"\u8d1f\u8d23\u4ea7\u54c1\u89c4\u5212\u548c\u7528\u6237\u4f53\u9a8c\u8bbe\u8ba1","parentId":null},{"id":"dept-6","name":"\u4ea7\u54c1\u90e8","description":"\u8d1f\u8d23\u4ea7\u54c1\u89c4\u5212\u548c\u9700\u6c42\u5206\u6790","parentId":"dept-5"},{"id":"dept-7","name":"\u8bbe\u8ba1\u90e8","description":"\u8d1f\u8d23UI/UX\u8bbe\u8ba1","parentId":"dept-5"},{"id":"dept-8","name":"\u8fd0\u8425\u4e2d\u5fc3","description":"\u8d1f\u8d23\u5e02\u573a\u8fd0\u8425\u548c\u5ba2\u6237\u670d\u52a1","parentId":null},{"id":"dept-9","name":"\u5e02\u573a\u90e8","description":"\u8d1f\u8d23\u5e02\u573a\u63a8\u5e7f\u548c\u54c1\u724c\u5efa\u8bbe","parentId":"dept-8"},{"id":"dept-10","name":"\u5ba2\u670d\u90e8","description":"\u8d1f\u8d23\u5ba2\u6237\u670d\u52a1\u548c\u6280\u672f\u652f\u6301","parentId":"dept-8"}],"userList":{"totalCount":8,"pageData":[{"id":"user-1","name":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com","phone":"13800138001","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","department":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3","position":"\u6280\u672f\u603b\u76d1","roles":[{"id":"role-1","name":"\u7ba1\u7406\u5458"}],"tenantOrg":{"id":"dept-1","name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3"},"status":"active","joinDate":"2018-07-01"},{"id":"user-2","name":"\u674e\u5a1c","email":"lina@tech-innovation.com","phone":"13800138002","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=lina","department":"\u524d\u7aef\u5f00\u53d1\u90e8","position":"\u524d\u7aef\u67b6\u6784\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-2","name":"\u524d\u7aef\u5f00\u53d1\u90e8"},"status":"active","joinDate":"2019-03-15"},{"id":"user-3","name":"\u738b\u5f3a","email":"wangqiang@tech-innovation.com","phone":"13800138003","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wangqiang","department":"\u540e\u7aef\u5f00\u53d1\u90e8","position":"\u540e\u7aef\u5f00\u53d1\u5de5\u7a0b\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-3","name":"\u540e\u7aef\u5f00\u53d1\u90e8"},"status":"active","joinDate":"2020-06-01"},{"id":"user-4","name":"\u5218\u82b3","email":"liufang@tech-innovation.com","phone":"13800138004","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=liufang","department":"\u4ea7\u54c1\u8bbe\u8ba1\u4e2d\u5fc3","position":"\u4ea7\u54c1\u7ecf\u7406","roles":[{"id":"role-2","name":"\u90e8\u95e8\u7ecf\u7406"}],"tenantOrg":{"id":"dept-5","name":"\u4ea7\u54c1\u8bbe\u8ba1\u4e2d\u5fc3"},"status":"active","joinDate":"2020-08-15"},{"id":"user-5","name":"\u9648\u660e","email":"chenming@tech-innovation.com","phone":"13800138005","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=chenming","department":"AI\u7b97\u6cd5\u90e8","position":"\u7b97\u6cd5\u5de5\u7a0b\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-4","name":"AI\u7b97\u6cd5\u90e8"},"status":"active","joinDate":"2021-01-10"},{"id":"user-6","name":"\u8d75\u9759","email":"zhaojing@tech-innovation.com","phone":"13800138006","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhaojing","department":"\u8bbe\u8ba1\u90e8","position":"UI\u8bbe\u8ba1\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-7","name":"\u8bbe\u8ba1\u90e8"},"status":"active","joinDate":"2021-05-20"},{"id":"user-7","name":"\u5468\u6d0b","email":"zhouyang@tech-innovation.com","phone":"13800138007","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhouyang","department":"\u5e02\u573a\u90e8","position":"\u5e02\u573a\u4e13\u5458","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-9","name":"\u5e02\u573a\u90e8"},"status":"inactive","joinDate":"2022-02-01"},{"id":"user-8","name":"\u5434\u654f","email":"wumin@tech-innovation.com","phone":"13800138008","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wumin","department":"\u5ba2\u670d\u90e8","position":"\u5ba2\u670d\u4e3b\u7ba1","roles":[{"id":"role-2","name":"\u90e8\u95e8\u7ecf\u7406"}],"tenantOrg":{"id":"dept-10","name":"\u5ba2\u670d\u90e8"},"status":"active","joinDate":"2022-09-15"}]},"roleList":{"totalCount":4,"pageData":[{"id":"role-1","code":"admin","name":"\u7ba1\u7406\u5458","description":"\u62e5\u6709\u7cfb\u7edf\u5168\u90e8\u6743\u9650","type":"system","status":"active","userCount":1},{"id":"role-2","code":"manager","name":"\u90e8\u95e8\u7ecf\u7406","description":"\u7ba1\u7406\u90e8\u95e8\u5185\u90e8\u4e8b\u52a1\u548c\u4eba\u5458","type":"custom","status":"active","userCount":3},{"id":"role-3","code":"employee","name":"\u666e\u901a\u5458\u5de5","description":"\u57fa\u7840\u5458\u5de5\u6743\u9650","type":"system","status":"active","userCount":15},{"id":"role-4","code":"guest","name":"\u8bbf\u5ba2","description":"\u4ec5\u53ef\u67e5\u770b\u516c\u5f00\u4fe1\u606f","type":"custom","status":"inactive","userCount":0}]},"tenantList":{"totalCount":3,"pageData":[{"id":"tenant-1","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","themeColor":"#1890ff","status":"open","serviceStartTime":"2024-01-01","serviceEndTime":"2025-12-31"},{"id":"tenant-2","name":"\u667a\u6167\u6559\u80b2\u96c6\u56e2","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu","themeColor":"#52c41a","status":"open","serviceStartTime":"2024-03-01","serviceEndTime":"2025-02-28"},{"id":"tenant-3","name":"\u533b\u7597\u5065\u5eb7\u79d1\u6280","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=health","themeColor":"#722ed1","status":"closed","serviceStartTime":"2023-01-01","serviceEndTime":"2024-01-01"}]},"availableTenantList":{"defaultTenantId":"tenant-1","list":[{"id":"tu-1","tenantId":"tenant-1","name":"\u5f20\u4f1f","status":"open","tenant":{"id":"tenant-1","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","tenantCompany":{"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech"}},"tenantOrg":{"name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3"}},{"id":"tu-2","tenantId":"tenant-2","name":"\u5f20\u4f1f","status":"open","tenant":{"id":"tenant-2","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu","tenantCompany":{"name":"\u667a\u6167\u6559\u80b2\u96c6\u56e2","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu"}},"tenantOrg":{"name":"\u6559\u5b66\u90e8"}}]},"permissionList":{"permissions":{"modules":[{"code":"user","name":"\u7528\u6237\u7ba1\u7406","permissions":[{"code":"view","name":"\u67e5\u770b\u7528\u6237"},{"code":"create","name":"\u521b\u5efa\u7528\u6237"},{"code":"edit","name":"\u7f16\u8f91\u7528\u6237"},{"code":"delete","name":"\u5220\u9664\u7528\u6237"}]},{"code":"role","name":"\u89d2\u8272\u7ba1\u7406","permissions":[{"code":"view","name":"\u67e5\u770b\u89d2\u8272"},{"code":"create","name":"\u521b\u5efa\u89d2\u8272"},{"code":"edit","name":"\u7f16\u8f91\u89d2\u8272"},{"code":"delete","name":"\u5220\u9664\u89d2\u8272"}]},{"code":"setting","name":"\u7cfb\u7edf\u8bbe\u7f6e","permissions":[{"code":"company-setting","name":"\u516c\u53f8\u8bbe\u7f6e"},{"code":"org","name":"\u7ec4\u7ec7\u67b6\u6784"},{"code":"permission","name":"\u6743\u9650\u7ba1\u7406"},{"code":"user-manager","name":"\u7528\u6237\u7ba1\u7406"}]}]},"codes":["user:view","user:create","user:edit","role:view","setting:company-setting","setting:org","setting:permission","setting:user-manager"]},"permissionPageList":{"totalCount":12,"pageData":[{"id":"perm-1","code":"user:view","name":"\u67e5\u770b\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u67e5\u770b\u7528\u6237\u5217\u8868\u548c\u8be6\u60c5"},{"id":"perm-2","code":"user:create","name":"\u521b\u5efa\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u521b\u5efa\u65b0\u7528\u6237"},{"id":"perm-3","code":"user:edit","name":"\u7f16\u8f91\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u7f16\u8f91\u7528\u6237\u4fe1\u606f"},{"id":"perm-4","code":"user:delete","name":"\u5220\u9664\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u5220\u9664\u7528\u6237"},{"id":"perm-5","code":"role:view","name":"\u67e5\u770b\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u67e5\u770b\u89d2\u8272\u5217\u8868\u548c\u8be6\u60c5"},{"id":"perm-6","code":"role:create","name":"\u521b\u5efa\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u521b\u5efa\u65b0\u89d2\u8272"},{"id":"perm-7","code":"role:edit","name":"\u7f16\u8f91\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u7f16\u8f91\u89d2\u8272\u4fe1\u606f"},{"id":"perm-8","code":"role:delete","name":"\u5220\u9664\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u5220\u9664\u89d2\u8272"},{"id":"perm-9","code":"setting:company-setting","name":"\u516c\u53f8\u8bbe\u7f6e","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u516c\u53f8\u57fa\u672c\u4fe1\u606f"},{"id":"perm-10","code":"setting:org","name":"\u7ec4\u7ec7\u67b6\u6784","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u7ec4\u7ec7\u67b6\u6784"},{"id":"perm-11","code":"setting:permission","name":"\u6743\u9650\u7ba1\u7406","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u7cfb\u7edf\u6743\u9650"},{"id":"perm-12","code":"setting:user-manager","name":"\u7528\u6237\u7ba1\u7406","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u7cfb\u7edf\u7528\u6237"}]},"tenantUserInfo":{"id":"tu-1","name":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com","phone":"13800138001","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","status":"open","permissions":["user:view","user:create","user:edit","role:view","setting:company-setting","setting:org","setting:permission","setting:user-manager"]},"global":{"userInfo":{"userInfo":{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","nickname":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com"},"tenantUser":{"id":"tu-1","name":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com","phone":"13800138001","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","tenantOrgs":[{"name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3"}]},"tenant":{"id":"tenant-1","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","tenantCompany":{"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech"}},"company":{"id":1,"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=company"}},"permissions":["setting","setting:company-setting","setting:company-setting:view","setting:company-setting:edit","setting:org","setting:org:create","setting:org:view","setting:org:edit","setting:org:remove","setting:permission","setting:permission:role","setting:permission:role:create","setting:permission:role:view","setting:permission:role:edit","setting:permission:role:remove","setting:permission:shared-group","setting:permission:shared-group:create","setting:permission:shared-group:view","setting:permission:shared-group:edit","setting:permission:shared-group:remove","setting:user-manager","setting:user-manager:create","setting:user-manager:view","setting:user-manager:edit","setting:user-manager:remove","setting:user-manager:invite"]}}')},87841(e){e.exports=JSON.parse('{"code":0,"data":{"userInfo":{"id":1,"email":"zhangsan@example.com","nickname":"\u5f20\u4e09","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan","phone":"+86138001380001","description":"\u8d44\u6df1\u524d\u7aef\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u6838\u5fc3\u4e1a\u52a1\u5f00\u53d1","status":0,"gender":"M"}}}')}}]);
2
- //# sourceMappingURL=7747.556a6701.chunk.js.map
1
+ "use strict";(globalThis.webpackChunk_kne_components_components_admin=globalThis.webpackChunk_kne_components_components_admin||[]).push([[7747],{78798(e,t,n){n.d(t,{A:()=>r});var o=n(98406),a=n(55199);const r={name:"Account",summary:"<p>Account \u7ec4\u4ef6\u63d0\u4f9b\u4e86\u5b8c\u6574\u7684\u7528\u6237\u8d26\u53f7\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u62ec\u767b\u5f55\u3001\u6ce8\u518c\u3001\u4fee\u6539\u5bc6\u7801\u3001\u5fd8\u8bb0\u5bc6\u7801\u3001\u91cd\u7f6e\u5bc6\u7801\u7b49\u529f\u80fd\u3002\u652f\u6301\u90ae\u7bb1\u548c\u624b\u673a\u53f7\u4e24\u79cd\u8d26\u53f7\u7c7b\u578b\uff0c\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684 UI \u98ce\u683c\u548c\u4ea4\u4e92\u4f53\u9a8c\u3002</p>",api:"<h3>Login \u767b\u5f55\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u767b\u5f55\u6807\u9898</td>\n<td>string</td>\n<td>'\u767b\u5f55'</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u767b\u5f55\u7c7b\u578b\uff0c\u652f\u6301\u90ae\u7bb1\u6216\u624b\u673a\u53f7</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>registerUrl</td>\n<td>\u6ce8\u518c\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>forgetUrl</td>\n<td>\u5fd8\u8bb0\u5bc6\u7801\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Register \u6ce8\u518c\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6ce8\u518c\u6807\u9898</td>\n<td>string</td>\n<td>'\u6ce8\u518c'</td>\n</tr>\n<tr>\n<td>systemName</td>\n<td>\u7cfb\u7edf\u540d\u79f0\uff0c\u663e\u793a\u5728\u9876\u90e8\u6a2a\u5e45</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u6ce8\u518c\u7c7b\u578b\uff0c\u652f\u6301\u90ae\u7bb1\u6216\u624b\u673a\u53f7</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u5f55\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>sendVerificationCode</td>\n<td>\u53d1\u9001\u9a8c\u8bc1\u7801\u56de\u8c03\u51fd\u6570</td>\n<td>({ type, data }) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>topBanner</td>\n<td>\u9876\u90e8\u6a2a\u5e45\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Modify \u4fee\u6539\u5bc6\u7801\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6807\u9898</td>\n<td>string</td>\n<td>'\u4fee\u6539\u5bc6\u7801'</td>\n</tr>\n<tr>\n<td>systemName</td>\n<td>\u7cfb\u7edf\u540d\u79f0\uff0c\u663e\u793a\u5728\u9876\u90e8\u6a2a\u5e45</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u8d26\u53f7\u7c7b\u578b</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>account</td>\n<td>\u8d26\u53f7\u4fe1\u606f\uff08\u90ae\u7bb1\u6216\u624b\u673a\u53f7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>isReset</td>\n<td>\u662f\u5426\u4e3a\u91cd\u7f6e\u5bc6\u7801\u6a21\u5f0f\uff08\u4e0d\u9700\u8981\u8f93\u5165\u65e7\u5bc6\u7801\uff09</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>header</td>\n<td>\u81ea\u5b9a\u4e49\u5934\u90e8\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>null</td>\n</tr>\n<tr>\n<td>topBanner</td>\n<td>\u9876\u90e8\u6a2a\u5e45\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>ForgetByEmail \u5fd8\u8bb0\u5bc6\u7801\uff08\u90ae\u7bb1\uff09\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6807\u9898</td>\n<td>string</td>\n<td>'\u5fd8\u8bb0\u5bc6\u7801'</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u5f55\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData, callback) =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>ResetPassword \u91cd\u7f6e\u5bc6\u7801\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u6807\u9898</td>\n<td>string</td>\n<td>'\u91cd\u7f6e\u767b\u5f55\u5bc6\u7801'</td>\n</tr>\n<tr>\n<td>systemName</td>\n<td>\u7cfb\u7edf\u540d\u79f0\uff0c\u663e\u793a\u5728\u9876\u90e8\u6a2a\u5e45</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u8d26\u53f7\u7c7b\u578b</td>\n<td>'email' | 'phone'</td>\n<td>'email'</td>\n</tr>\n<tr>\n<td>account</td>\n<td>\u8d26\u53f7\u4fe1\u606f\uff08\u90ae\u7bb1\u6216\u624b\u673a\u53f7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u5f55\u9875\u9762\u94fe\u63a5</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u8868\u5355\u63d0\u4ea4\u56de\u8c03\u51fd\u6570</td>\n<td>(formData) =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>topBanner</td>\n<td>\u9876\u90e8\u6a2a\u5e45\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>LoginOuterContainer \u767b\u5f55\u5916\u5c42\u5bb9\u5668\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>\u7cfb\u7edf\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>logo</td>\n<td>\u7cfb\u7edf Logo \u56fe\u7247\u5730\u5740</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>leftInner</td>\n<td>\u5de6\u4fa7\u81ea\u5b9a\u4e49\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u53f3\u4fa7\u5185\u5bb9\u533a\u57df</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>className</td>\n<td>\u81ea\u5b9a\u4e49\u6837\u5f0f\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Logout \u767b\u51fa\u7ec4\u4ef6</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>storeKeys</td>\n<td>Token \u5b58\u50a8\u952e\u540d\u914d\u7f6e</td>\n<td>{ token: string }</td>\n<td>{ token: 'X-User-Token' }</td>\n</tr>\n<tr>\n<td>domain</td>\n<td>Token \u5b58\u50a8\u57df\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u51fa\u540e\u8df3\u8f6c\u7684\u767b\u5f55\u9875\u9762\u5730\u5740</td>\n<td>string</td>\n<td>'/account/login'</td>\n</tr>\n<tr>\n<td>...props</td>\n<td>\u5176\u4ed6 Button \u7ec4\u4ef6\u5c5e\u6027</td>\n<td>ButtonProps</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>useLogout Hook</h3>\n<p>\u7528\u4e8e\u83b7\u53d6\u767b\u51fa\u51fd\u6570\u7684 Hook\u3002</p>\n<pre><code class=\"language-javascript\">const logout = useLogout({ storeKeys, domain, loginUrl });\n</code></pre>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>storeKeys</td>\n<td>Token \u5b58\u50a8\u952e\u540d\u914d\u7f6e</td>\n<td>{ token: string }</td>\n<td>{ token: 'X-User-Token' }</td>\n</tr>\n<tr>\n<td>domain</td>\n<td>Token \u5b58\u50a8\u57df\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>loginUrl</td>\n<td>\u767b\u51fa\u540e\u8df3\u8f6c\u7684\u767b\u5f55\u9875\u9762\u5730\u5740</td>\n<td>string</td>\n<td>'/account/login'</td>\n</tr>\n</tbody>\n</table>\n<p>\u8fd4\u56de\u503c\uff1a<code>() =&gt; void</code> - \u6267\u884c\u767b\u51fa\u64cd\u4f5c\u7684\u51fd\u6570</p>",example:{isFull:!0,className:"",style:"",list:[{title:"Login",description:"\u767b\u5f55",code:"const { LoginOuterContainer, Login } = _Account;\nconst { Flex, Radio, Space, message } = antd;\nconst { useState } = React;\n\nconst BaseExample = () => {\n const [type, setType] = useState('email');\n \n return (\n <Flex vertical gap={20}>\n <Flex justify=\"center\">\n <Space>\n <span>\u767b\u5f55\u7c7b\u578b:</span>\n <Radio.Group\n value={type}\n onChange={e => {\n setType(e.target.value);\n }}\n options={[\n { label: '\u90ae\u7bb1\u767b\u5f55', value: 'email' },\n { label: '\u624b\u673a\u767b\u5f55', value: 'phone' }\n ]}\n />\n </Space>\n </Flex>\n <LoginOuterContainer\n title=\"\u4f01\u4e1a\u7ba1\u7406\u7cfb\u7edf\"\n logo=\"https://api.dicebear.com/7.x/shapes/svg?seed=company\">\n <Login\n type={type}\n registerUrl=\"/register\"\n forgetUrl=\"/forget\"\n onSubmit={formData => {\n console.log('\u767b\u5f55\u4fe1\u606f:', formData);\n message.success(`\u767b\u5f55\u6210\u529f: ${formData[type]}`);\n }}\n />\n </LoginOuterContainer>\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"Register",description:"\u6ce8\u518c",code:"const { LoginOuterContainer, Register } = _Account;\nconst { Flex, Radio, Space, message } = antd;\nconst { useState } = React;\n\nconst BaseExample = () => {\n const [type, setType] = useState('email');\n \n return (\n <Flex vertical gap={20}>\n <Flex justify=\"center\">\n <Space>\n <span>\u6ce8\u518c\u7c7b\u578b:</span>\n <Radio.Group\n value={type}\n onChange={e => {\n setType(e.target.value);\n }}\n options={[\n { label: '\u90ae\u7bb1\u6ce8\u518c', value: 'email' },\n { label: '\u624b\u673a\u6ce8\u518c', value: 'phone' }\n ]}\n />\n </Space>\n </Flex>\n <Register\n type={type}\n loginUrl=\"/login\"\n sendVerificationCode={({ type, data }) => {\n console.log(`\u53d1\u9001\u9a8c\u8bc1\u7801\u5230 ${type}:`, data);\n message.success(`\u9a8c\u8bc1\u7801\u5df2\u53d1\u9001\u5230 ${data}`);\n return Promise.resolve();\n }}\n onSubmit={formData => {\n console.log('\u6ce8\u518c\u4fe1\u606f:', formData);\n message.success('\u6ce8\u518c\u6210\u529f');\n }}\n />\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"Modify",description:"\u4fee\u6539\u5bc6\u7801",code:"const { Modify } = _Account;\nconst { Flex, message } = antd;\n\nconst BaseExample = () => {\n return (\n <Flex vertical gap={20}>\n <Modify\n type=\"email\"\n account=\"zhangsan@company.com\"\n onSubmit={formData => {\n console.log('\u4fee\u6539\u5bc6\u7801:', formData);\n message.success('\u5bc6\u7801\u4fee\u6539\u6210\u529f');\n }}\n />\n <Modify\n type=\"phone\"\n account=\"+86 13800138000\"\n onSubmit={formData => {\n console.log('\u4fee\u6539\u5bc6\u7801:', formData);\n message.success('\u5bc6\u7801\u4fee\u6539\u6210\u529f');\n }}\n />\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"ForgetByEmail",description:"\u5fd8\u8bb0\u5bc6\u7801\uff08\u90ae\u7bb1\uff09",code:"const { LoginOuterContainer, ForgetByEmail } = _Account;\nconst { message } = antd;\n\nconst BaseExample = () => {\n return (\n <LoginOuterContainer title=\"\u4f01\u4e1a\u7ba1\u7406\u7cfb\u7edf\">\n <ForgetByEmail\n loginUrl=\"/login\"\n onSubmit={(formData, callback) => {\n console.log('\u5fd8\u8bb0\u5bc6\u7801\u90ae\u7bb1:', formData);\n // \u6a21\u62df\u53d1\u9001\u91cd\u7f6e\u5bc6\u7801\u90ae\u4ef6\n setTimeout(() => {\n callback();\n message.success('\u91cd\u7f6e\u5bc6\u7801\u94fe\u63a5\u5df2\u53d1\u9001\u5230\u60a8\u7684\u90ae\u7bb1');\n }, 1000);\n }}\n />\n </LoginOuterContainer>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]},{title:"ResetPassword",description:"\u91cd\u7f6e\u5bc6\u7801",code:'const { ResetPassword } = _Account;\nconst { Flex, message } = antd;\n\nconst BaseExample = () => {\n return (\n <Flex vertical gap={20}>\n <ResetPassword\n type="email"\n account="zhangsan@company.com"\n loginUrl="/login"\n onSubmit={formData => {\n console.log(\'\u91cd\u7f6e\u5bc6\u7801:\', formData);\n message.success(\'\u5bc6\u7801\u91cd\u7f6e\u6210\u529f\uff0c\u8bf7\u4f7f\u7528\u65b0\u5bc6\u7801\u767b\u5f55\');\n }}\n />\n <ResetPassword\n type="phone"\n account="+86 13800138000"\n loginUrl="/login"\n onSubmit={formData => {\n console.log(\'\u91cd\u7f6e\u5bc6\u7801:\', formData);\n message.success(\'\u5bc6\u7801\u91cd\u7f6e\u6210\u529f\uff0c\u8bf7\u4f7f\u7528\u65b0\u5bc6\u7801\u767b\u5f55\');\n }}\n />\n </Flex>\n );\n};\n\nrender(<BaseExample />);\n\n',scope:[{name:"_Account",packageName:"@components/Account",component:o},{name:"antd",packageName:"antd",component:a}]}]}}},90542(e,t,n){n.d(t,{A:()=>l});var o=n(12028),a=n(1784),r=n(13050),d=n(94679),s=n(55199);const l={name:"Admin",summary:"<p>\u7ba1\u7406\u540e\u53f0\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u7ba1\u7406\u548c\u7cfb\u7edf\u521d\u59cb\u5316\u529f\u80fd\u3002\u5305\u542b\u7528\u6237\u5217\u8868\u3001\u6dfb\u52a0\u7528\u6237\u3001\u7f16\u8f91\u7528\u6237\u3001\u4fee\u6539\u5bc6\u7801\u3001\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\u7b49\u5b8c\u6574\u7684\u7ba1\u7406\u529f\u80fd\u3002</p>",api:'<h2>Admin \u7ec4\u4ef6</h2>\n<p>\u7ba1\u7406\u540e\u53f0\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u7ba1\u7406\u548c\u7cfb\u7edf\u521d\u59cb\u5316\u529f\u80fd\u3002\u5305\u542b\u8def\u7531\u7ba1\u7406\u548c\u4e0a\u4e0b\u6587\u7ba1\u7406\u3002</p>\n<h3>\u4e3b\u7ec4\u4ef6\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u7ba1\u7406\u540e\u53f0\u7684\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>...props</td>\n<td>\u5176\u4ed6\u5c5e\u6027\u4f1a\u901a\u8fc7 Context \u4f20\u9012\u7ed9\u5b50\u7ec4\u4ef6</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u5b50\u7ec4\u4ef6</h3>\n<h4>User \u7528\u6237\u7ba1\u7406\u7ec4\u4ef6</h4>\n<p>\u7528\u6237\u7ba1\u7406\u9875\u9762\uff0c\u63d0\u4f9b\u7528\u6237\u5217\u8868\u5c55\u793a\u3001\u6dfb\u52a0\u7528\u6237\u3001\u7f16\u8f91\u7528\u6237\u3001\u4fee\u6539\u5bc6\u7801\u3001\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\u3001\u8bbe\u7f6e\u72b6\u6001\u7b49\u529f\u80fd\u3002</p>\n<p><strong>\u6570\u636e\u7ed3\u6784</strong></p>\n<table>\n<thead>\n<tr>\n<th>\u5b57\u6bb5\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u793a\u4f8b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>\u7528\u6237ID</td>\n<td>number</td>\n<td>1</td>\n</tr>\n<tr>\n<td>avatar</td>\n<td>\u7528\u6237\u5934\u50cfURL</td>\n<td>string</td>\n<td>"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan"</td>\n</tr>\n<tr>\n<td>nickname</td>\n<td>\u7528\u6237\u6635\u79f0</td>\n<td>string</td>\n<td>"\u5f20\u4e09"</td>\n</tr>\n<tr>\n<td>email</td>\n<td>\u7528\u6237\u90ae\u7bb1</td>\n<td>string</td>\n<td>"zhangsan@example.com"</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>\u7528\u6237\u624b\u673a\u53f7</td>\n<td>string</td>\n<td>"+86138001380001"</td>\n</tr>\n<tr>\n<td>isSuperAdmin</td>\n<td>\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>status</td>\n<td>\u7528\u6237\u72b6\u6001</td>\n<td>number</td>\n<td>0-\u6b63\u5e38, 10-\u672a\u6fc0\u6d3b, 11-\u7981\u7528, 12-\u5173\u95ed</td>\n</tr>\n<tr>\n<td>description</td>\n<td>\u7528\u6237\u63cf\u8ff0</td>\n<td>string</td>\n<td>"\u7cfb\u7edf\u8d85\u7ea7\u7ba1\u7406\u5458"</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>\u6027\u522b</td>\n<td>string</td>\n<td>"M"-\u7537, "F"-\u5973</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u72b6\u6001\u8bf4\u660e</strong></p>\n<table>\n<thead>\n<tr>\n<th>\u72b6\u6001\u503c</th>\n<th>\u8bf4\u660e</th>\n<th>\u989c\u8272</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>0</td>\n<td>\u6b63\u5e38</td>\n<td>success\uff08\u7eff\u8272\uff09</td>\n</tr>\n<tr>\n<td>10</td>\n<td>\u672a\u6fc0\u6d3b</td>\n<td>default\uff08\u7070\u8272\uff09</td>\n</tr>\n<tr>\n<td>11</td>\n<td>\u7981\u7528</td>\n<td>danger\uff08\u7ea2\u8272\uff09</td>\n</tr>\n<tr>\n<td>12</td>\n<td>\u5173\u95ed</td>\n<td>danger\uff08\u7ea2\u8272\uff09</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u529f\u80fd\u5217\u8868</strong></p>\n<ul>\n<li>\u6dfb\u52a0\u7528\u6237\uff1a\u521b\u5efa\u65b0\u7528\u6237\u8d26\u53f7</li>\n<li>\u7f16\u8f91\u7528\u6237\uff1a\u4fee\u6539\u7528\u6237\u4fe1\u606f</li>\n<li>\u4fee\u6539\u5bc6\u7801\uff1a\u91cd\u7f6e\u7528\u6237\u5bc6\u7801</li>\n<li>\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\uff1a\u8bbe\u7f6e/\u53d6\u6d88\u7528\u6237\u7684\u8d85\u7ea7\u7ba1\u7406\u5458\u6743\u9650</li>\n<li>\u8bbe\u7f6e\u6b63\u5e38\uff1a\u5c06\u7528\u6237\u72b6\u6001\u8bbe\u7f6e\u4e3a\u6b63\u5e38</li>\n<li>\u5173\u95ed\u7528\u6237\uff1a\u5173\u95ed\u7528\u6237\u8d26\u53f7</li>\n</ul>\n<p><strong>\u7b5b\u9009\u529f\u80fd</strong></p>\n<ul>\n<li>\u90ae\u7bb1\u7b5b\u9009\uff1a\u6309\u90ae\u7bb1\u5730\u5740\u7b5b\u9009</li>\n<li>\u624b\u673a\u53f7\u7b5b\u9009\uff1a\u6309\u624b\u673a\u53f7\u7b5b\u9009</li>\n<li>\u72b6\u6001\u7b5b\u9009\uff1a\u6309\u7528\u6237\u72b6\u6001\u7b5b\u9009</li>\n<li>\u7ba1\u7406\u5458\u7b5b\u9009\uff1a\u6309\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458\u7b5b\u9009</li>\n</ul>\n<p><strong>\u641c\u7d22\u529f\u80fd</strong></p>\n<ul>\n<li>\u6635\u79f0\u641c\u7d22\uff1a\u6309\u7528\u6237\u6635\u79f0\u641c\u7d22</li>\n</ul>\n<h4>InitAdmin \u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458\u7ec4\u4ef6</h4>\n<p>\u7cfb\u7edf\u521d\u59cb\u5316\u7ec4\u4ef6\uff0c\u7528\u4e8e\u9996\u6b21\u4f7f\u7528\u65f6\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458\u8d26\u53f7\u3002</p>\n<p><strong>\u529f\u80fd\u8bf4\u660e</strong></p>\n<ul>\n<li>\u81ea\u52a8\u8c03\u7528\u521d\u59cb\u5316\u63a5\u53e3\u521b\u5efa\u8d85\u7ea7\u7ba1\u7406\u5458</li>\n<li>\u521d\u59cb\u5316\u6210\u529f\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u7ba1\u7406\u540e\u53f0\u9996\u9875</li>\n<li>\u663e\u793a\u521d\u59cb\u5316\u8fdb\u884c\u4e2d\u7684\u63d0\u793a\u4fe1\u606f</li>\n</ul>\n<h3>Context API</h3>\n<p>Admin \u7ec4\u4ef6\u63d0\u4f9b\u4e86 Context \u7528\u4e8e\u5728\u5b50\u7ec4\u4ef6\u4e2d\u8bbf\u95ee\u5171\u4eab\u6570\u636e\uff1a</p>\n<h4>useBaseUrl</h4>\n<p>\u83b7\u53d6\u7ba1\u7406\u540e\u53f0\u7684\u57fa\u7840\u8def\u7531\u8def\u5f84\u3002</p>\n<pre><code class="language-javascript">import { useBaseUrl } from \'@components/Admin\';\n\nconst MyComponent = () =&gt; {\n const baseUrl = useBaseUrl();\n // \u4f7f\u7528 baseUrl...\n};\n</code></pre>\n<h4>useProps</h4>\n<p>\u83b7\u53d6 Admin \u7ec4\u4ef6\u4f20\u9012\u7684\u6240\u6709\u5c5e\u6027\u3002</p>\n<pre><code class="language-javascript">import { useProps } from \'@components/Admin\';\n\nconst MyComponent = () =&gt; {\n const props = useProps();\n // props \u5305\u542b baseUrl \u548c\u5176\u4ed6\u4f20\u5165\u7684\u5c5e\u6027\n};\n</code></pre>\n<h3>\u4f9d\u8d56\u7ec4\u4ef6</h3>\n<ul>\n<li><code>@kne/remote-loader</code> - \u8fdc\u7a0b\u7ec4\u4ef6\u52a0\u8f7d\u5668</li>\n<li><code>components-core:Layout@TablePage</code> - \u8868\u683c\u9875\u9762\u5e03\u5c40</li>\n<li><code>components-core:Filter</code> - \u7b5b\u9009\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u9884\u8bbe</li>\n</ul>\n<h3>\u56fd\u9645\u5316\u652f\u6301</h3>\n<p>\u7ec4\u4ef6\u652f\u6301\u4e2d\u82f1\u6587\u5207\u6362\uff0c\u901a\u8fc7 <code>@kne/react-intl</code> \u5b9e\u73b0\uff1a</p>\n<ul>\n<li><code>zh-CN</code> - \u4e2d\u6587\u7b80\u4f53</li>\n<li><code>en-US</code> - \u82f1\u6587</li>\n</ul>\n<h3>API \u63a5\u53e3</h3>\n<table>\n<thead>\n<tr>\n<th>\u63a5\u53e3\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u65b9\u6cd5</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>admin.getUserList</td>\n<td>\u83b7\u53d6\u7528\u6237\u5217\u8868</td>\n<td>GET</td>\n</tr>\n<tr>\n<td>admin.addUser</td>\n<td>\u6dfb\u52a0\u7528\u6237</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.saveUser</td>\n<td>\u4fdd\u5b58\u7528\u6237\u4fe1\u606f</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.resetUserPassword</td>\n<td>\u91cd\u7f6e\u7528\u6237\u5bc6\u7801</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.setSuperAdmin</td>\n<td>\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.setUserNormal</td>\n<td>\u8bbe\u7f6e\u7528\u6237\u6b63\u5e38</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.setUserClose</td>\n<td>\u5173\u95ed\u7528\u6237</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.getSuperAdminInfo</td>\n<td>\u83b7\u53d6\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f</td>\n<td>GET</td>\n</tr>\n<tr>\n<td>admin.initSuperAdmin</td>\n<td>\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>POST</td>\n</tr>\n</tbody>\n</table>',example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"Admin \u7ec4\u4ef6\u7684\u5b8c\u6574\u529f\u80fd\u5c55\u793a\uff0c\u5305\u542b\u7528\u6237\u7ba1\u7406\u5b50\u8def\u7531\u548c\u8def\u7531\u5bfc\u822a\u529f\u80fd",code:'const { default: Admin } = _Admin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Route, Routes, Navigate, useNavigate, Button, Flex } = { ...reactRouterDom, ...antd };\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n const navigate = useNavigate();\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path="/Admin/admin/*"\n element={\n <Admin\n baseUrl="/Admin/admin"\n pageProps={{\n menuFixed: false\n }}\n />\n }\n />\n <Route path="*" element={<Navigate to="/Admin/admin/user" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_Admin",packageName:"@components/Admin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d},{name:"antd",packageName:"antd",component:s}]},{title:"\u7528\u6237\u7ba1\u7406",description:"\u5355\u72ec\u5c55\u793a User \u5b50\u7ec4\u4ef6\uff0c\u5305\u542b\u7528\u6237\u5217\u8868\u3001\u6dfb\u52a0\u7528\u6237\u3001\u7f16\u8f91\u7528\u6237\u3001\u4fee\u6539\u5bc6\u7801\u3001\u8bbe\u7f6e\u8d85\u7ea7\u7ba1\u7406\u5458\u7b49\u5b8c\u6574\u529f\u80fd",code:"const { default: Admin } = _Admin;\nconst { User } = Admin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst UserExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <User pageProps={{ menuFixed: false }} />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<UserExample />);\n\n",scope:[{name:"_Admin",packageName:"@components/Admin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458",description:"InitAdmin \u7ec4\u4ef6\u7528\u4e8e\u7cfb\u7edf\u9996\u6b21\u4f7f\u7528\u65f6\u521d\u59cb\u5316\u8d85\u7ea7\u7ba1\u7406\u5458\u8d26\u53f7\uff0c\u521d\u59cb\u5316\u6210\u529f\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u7ba1\u7406\u540e\u53f0",code:"const { InitAdmin } = _Admin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst InitAdminExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <InitAdmin baseUrl=\"/Admin/admin\" />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<InitAdminExample />);\n\n",scope:[{name:"_Admin",packageName:"@components/Admin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]}]}}},82046(e,t,n){n.d(t,{A:()=>s});var o=n(53106),a=n(1784),r=n(13050),d=n(55199);const s={name:"Authenticate",summary:"<p>\u7528\u6237\u6743\u9650\u548c\u7528\u6237\u4fe1\u606f\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u4fe1\u606f\u83b7\u53d6\u3001\u767b\u5f55\u540e\u5e03\u5c40\u3001\u7528\u6237\u4fe1\u606f\u7f16\u8f91\u7b49\u529f\u80fd\u3002\u652f\u6301\u666e\u901a\u7528\u6237\u3001\u7ba1\u7406\u5458\u548c\u81ea\u5b9a\u4e49\u7528\u6237\u573a\u666f\u3002</p>",api:'<h2>Authenticate \u7ec4\u4ef6</h2>\n<p>\u7528\u6237\u6743\u9650\u548c\u7528\u6237\u4fe1\u606f\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7528\u6237\u4fe1\u606f\u83b7\u53d6\u3001\u767b\u5f55\u540e\u5e03\u5c40\u3001\u7528\u6237\u4fe1\u606f\u7f16\u8f91\u7b49\u529f\u80fd\u3002</p>\n<h3>\u4e3b\u8981\u7ec4\u4ef6</h3>\n<h4>UserInfo</h4>\n<p>\u83b7\u53d6\u666e\u901a\u7528\u6237\u4fe1\u606f\u7684\u7ec4\u4ef6\uff0c\u81ea\u52a8\u4ece API \u52a0\u8f7d\u7528\u6237\u4fe1\u606f\u5e76\u8bbe\u7f6e\u5230\u5168\u5c40\u4e0a\u4e0b\u6587\u4e2d\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u8d26\u6237\u72b6\u6001\u68c0\u67e5\u65f6\u7684\u8df3\u8f6c</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>\u7f13\u5b58\u952e\u540d</td>\n<td>string</td>\n<td>\'user-info\'</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>SuperAdminInfo</h4>\n<p>\u83b7\u53d6\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f\u7684\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>CustomUserInfo</h4>\n<p>\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f\u83b7\u53d6\u7ec4\u4ef6\uff0c\u652f\u6301\u81ea\u5b9a\u4e49 API\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>\u7f13\u5b58\u952e\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49 API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u5e03\u5c40\u7ec4\u4ef6</h3>\n<h4>AfterUserLoginLayout</h4>\n<p>\u7528\u6237\u767b\u5f55\u540e\u7684\u5e03\u5c40\u7ec4\u4ef6\uff0c\u5305\u542b\u9876\u90e8\u5bfc\u822a\u680f\u548c\u7528\u6237\u5de5\u5177\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterUserLogin</h4>\n<p>\u7528\u6237\u767b\u5f55\u540e\u7684\u7b80\u5355\u5305\u88c5\u7ec4\u4ef6\uff0c\u4e0d\u5305\u542b\u5e03\u5c40\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterAdminUserLoginLayout</h4>\n<p>\u7ba1\u7406\u5458\u767b\u5f55\u540e\u7684\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterCustomUserLoginLayout</h4>\n<p>\u81ea\u5b9a\u4e49\u7528\u6237\u767b\u5f55\u540e\u7684\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f API</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>AfterCustomUserLogin</h4>\n<p>\u81ea\u5b9a\u4e49\u7528\u6237\u767b\u5f55\u540e\u7684\u7b80\u5355\u5305\u88c5\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>\'/account\'</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f API</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>BeforeLoginLayout</h4>\n<p>\u767b\u5f55\u524d\u7684\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h4>MainLayout</h4>\n<p>\u4e3b\u5e03\u5c40\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>title</td>\n<td>\u9875\u9762\u6807\u9898</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u7528\u6237\u4fe1\u606f\u7ec4\u4ef6</h3>\n<h4>SaveUserInfo</h4>\n<p>\u4fdd\u5b58\u7528\u6237\u4fe1\u606f\u7684\u7ec4\u4ef6\uff0c\u901a\u8fc7\u70b9\u51fb\u4e8b\u4ef6\u89e6\u53d1\u8868\u5355\u5f39\u7a97\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>children</td>\n<td>\u6e32\u67d3\u51fd\u6570\uff0c\u63a5\u6536 { onClick } \u53c2\u6570</td>\n<td>(props) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u4f7f\u7528\u793a\u4f8b</strong>\uff1a</p>\n<pre><code class="language-jsx">&lt;SaveUserInfo&gt;\n {({ onClick }) =&gt; (\n &lt;Button onClick={onClick}&gt;\u7f16\u8f91\u7528\u6237\u4fe1\u606f&lt;/Button&gt;\n )}\n&lt;/SaveUserInfo&gt;\n</code></pre>\n<h4>UserInfoFormInner</h4>\n<p>\u7528\u6237\u4fe1\u606f\u8868\u5355\u5185\u90e8\u7ec4\u4ef6\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>column</td>\n<td>\u8868\u5355\u5217\u6570</td>\n<td>number</td>\n<td>1</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u8868\u5355\u5b57\u6bb5</strong>\uff1a</p>\n<ul>\n<li><code>avatar</code> - \u7528\u6237\u5934\u50cf</li>\n<li><code>email</code> - \u90ae\u7bb1\uff08\u5fc5\u586b\uff09</li>\n<li><code>nickname</code> - \u6635\u79f0</li>\n<li><code>description</code> - \u63cf\u8ff0</li>\n</ul>\n<h4>RightOptions</h4>\n<p>\u53f3\u4fa7\u5de5\u5177\u680f\u7ec4\u4ef6\uff0c\u663e\u793a\u8bed\u8a00\u5207\u6362\u548c\u7528\u6237\u5de5\u5177\u3002</p>\n<h3>\u6570\u636e\u7ed3\u6784</h3>\n<h4>UserInfo \u6570\u636e\u7ed3\u6784</h4>\n<table>\n<thead>\n<tr>\n<th>\u5b57\u6bb5\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u793a\u4f8b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>\u7528\u6237ID</td>\n<td>number</td>\n<td>1</td>\n</tr>\n<tr>\n<td>email</td>\n<td>\u90ae\u7bb1</td>\n<td>string</td>\n<td>"zhangsan@example.com"</td>\n</tr>\n<tr>\n<td>nickname</td>\n<td>\u6635\u79f0</td>\n<td>string</td>\n<td>"\u5f20\u4e09"</td>\n</tr>\n<tr>\n<td>avatar</td>\n<td>\u5934\u50cfURL</td>\n<td>string</td>\n<td>"https://api.dicebear.com/7.x/avataaars/svg?seed=xxx"</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>\u624b\u673a\u53f7</td>\n<td>string</td>\n<td>"+86138001380001"</td>\n</tr>\n<tr>\n<td>description</td>\n<td>\u63cf\u8ff0</td>\n<td>string</td>\n<td>"\u8d44\u6df1\u524d\u7aef\u5de5\u7a0b\u5e08"</td>\n</tr>\n<tr>\n<td>status</td>\n<td>\u72b6\u6001</td>\n<td>number</td>\n<td>0-\u6b63\u5e38, 1-\u5f85\u5b8c\u5584</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>\u6027\u522b</td>\n<td>string</td>\n<td>"M"-\u7537, "F"-\u5973</td>\n</tr>\n<tr>\n<td>isSuperAdmin</td>\n<td>\u662f\u5426\u8d85\u7ea7\u7ba1\u7406\u5458</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n</tbody>\n</table>\n<h3>\u8d26\u6237\u72b6\u6001\u8bf4\u660e</h3>\n<table>\n<thead>\n<tr>\n<th>\u72b6\u6001\u503c</th>\n<th>\u8bf4\u660e</th>\n<th>\u884c\u4e3a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>0</td>\n<td>\u6b63\u5e38</td>\n<td>\u6b63\u5e38\u663e\u793a\u5185\u5bb9</td>\n</tr>\n<tr>\n<td>1</td>\n<td>\u5f85\u5b8c\u5584\u4fe1\u606f</td>\n<td>\u81ea\u52a8\u8df3\u8f6c\u5230\u4fe1\u606f\u5b8c\u5584\u9875\u9762</td>\n</tr>\n</tbody>\n</table>\n<h3>\u4f9d\u8d56\u7ec4\u4ef6</h3>\n<ul>\n<li><code>@kne/remote-loader</code> - \u8fdc\u7a0b\u7ec4\u4ef6\u52a0\u8f7d\u5668</li>\n<li><code>components-core:Layout</code> - \u5e03\u5c40\u7ec4\u4ef6</li>\n<li><code>components-core:Global@SetGlobal</code> - \u5168\u5c40\u72b6\u6001\u8bbe\u7f6e</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u9884\u8bbe</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>@components/UserTool</code> - \u7528\u6237\u5de5\u5177\u7ec4\u4ef6</li>\n<li><code>@components/Account/Language</code> - \u8bed\u8a00\u5207\u6362\u7ec4\u4ef6</li>\n</ul>\n<h3>\u56fd\u9645\u5316\u652f\u6301</h3>\n<p>\u7ec4\u4ef6\u652f\u6301\u4e2d\u82f1\u6587\u5207\u6362\uff1a</p>\n<ul>\n<li><code>zh-CN</code> - \u4e2d\u6587\u7b80\u4f53</li>\n<li><code>en-US</code> - \u82f1\u6587</li>\n</ul>\n<h3>API \u63a5\u53e3</h3>\n<table>\n<thead>\n<tr>\n<th>\u63a5\u53e3\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u65b9\u6cd5</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>user.getUserInfo</td>\n<td>\u83b7\u53d6\u7528\u6237\u4fe1\u606f</td>\n<td>GET</td>\n</tr>\n<tr>\n<td>user.saveUserInfo</td>\n<td>\u4fdd\u5b58\u7528\u6237\u4fe1\u606f</td>\n<td>POST</td>\n</tr>\n<tr>\n<td>admin.getSuperAdminInfo</td>\n<td>\u83b7\u53d6\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f</td>\n<td>GET</td>\n</tr>\n</tbody>\n</table>',example:{isFull:!0,className:"",style:"",list:[{title:"\u7528\u6237\u767b\u5f55\u540e\u5e03\u5c40",description:"AfterUserLoginLayout \u7ec4\u4ef6\u5c55\u793a\u7528\u6237\u767b\u5f55\u540e\u7684\u5b8c\u6574\u5e03\u5c40\uff0c\u5305\u542b\u9876\u90e8\u5bfc\u822a\u680f\u548c\u7528\u6237\u5de5\u5177",code:"const { AfterUserLoginLayout } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Typography, Card } = antd;\n\nconst { Title, Paragraph } = Typography;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <AfterUserLoginLayout \n title=\"\u7528\u6237\u4e2d\u5fc3\"\n navigation={{ isFixed: false }}\n >\n <Card>\n <Title level={4}>\u6b22\u8fce\u4f7f\u7528\u7528\u6237\u4e2d\u5fc3</Title>\n <Paragraph>\n \u8fd9\u662f\u4e00\u4e2a\u7528\u6237\u767b\u5f55\u540e\u7684\u5e03\u5c40\u793a\u4f8b\u3002\u9876\u90e8\u5bfc\u822a\u680f\u663e\u793a\u7528\u6237\u4fe1\u606f\u548c\u8bed\u8a00\u5207\u6362\u529f\u80fd\u3002\n </Paragraph>\n </Card>\n </AfterUserLoginLayout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]},{title:"\u7528\u6237\u4fe1\u606f\u83b7\u53d6",description:"UserInfo \u7ec4\u4ef6\u83b7\u53d6\u7528\u6237\u4fe1\u606f\u5e76\u5c55\u793a\uff0c\u7528\u6237\u4fe1\u606f\u4f1a\u88ab\u8bbe\u7f6e\u5230\u5168\u5c40\u4e0a\u4e0b\u6587\u4e2d\u4f9b\u5176\u4ed6\u7ec4\u4ef6\u4f7f\u7528",code:"const { UserInfo } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst UserInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Global@GlobalValue']\n})(({ remoteModules }) => {\n const [PureGlobal, GlobalValue] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <UserInfo>\n <GlobalValue globalKey=\"userInfo\">\n {({ value }) => {\n const { nickname, email, avatar, description } = Object.assign({}, value?.value);\n return (\n <div style={{ padding: 20 }}>\n <h3>\u7528\u6237\u4fe1\u606f</h3>\n <p><strong>\u5934\u50cf\uff1a</strong><img src={avatar} alt=\"avatar\" style={{ width: 40, height: 40, borderRadius: '50%' }} /></p>\n <p><strong>\u6635\u79f0\uff1a</strong>{nickname}</p>\n <p><strong>\u90ae\u7bb1\uff1a</strong>{email}</p>\n <p><strong>\u63cf\u8ff0\uff1a</strong>{description}</p>\n </div>\n );\n }}\n </GlobalValue>\n </UserInfo>\n </PureGlobal>\n );\n});\n\nrender(<UserInfoExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u7f16\u8f91\u7528\u6237\u4fe1\u606f",description:"SaveUserInfo \u7ec4\u4ef6\u63d0\u4f9b\u7528\u6237\u4fe1\u606f\u7f16\u8f91\u529f\u80fd\uff0c\u70b9\u51fb\u6309\u94ae\u5f39\u51fa\u8868\u5355\u8fdb\u884c\u7f16\u8f91",code:"const { SaveUserInfo, UserInfo } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Button, Card, Space, Typography } = antd;\n\nconst { Title } = Typography;\n\nconst SaveUserInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <UserInfo>\n <Card style={{ maxWidth: 600, margin: '20px auto' }}>\n <Title level={4}>\u7f16\u8f91\u7528\u6237\u4fe1\u606f</Title>\n <Space direction=\"vertical\" style={{ width: '100%' }}>\n <p>\u70b9\u51fb\u4e0b\u65b9\u6309\u94ae\u53ef\u4ee5\u7f16\u8f91\u7528\u6237\u4fe1\u606f\uff0c\u5305\u62ec\u5934\u50cf\u3001\u6635\u79f0\u3001\u63cf\u8ff0\u7b49\u3002</p>\n <SaveUserInfo>\n {({ onClick }) => (\n <Button type=\"primary\" onClick={onClick}>\n \u7f16\u8f91\u7528\u6237\u4fe1\u606f\n </Button>\n )}\n </SaveUserInfo>\n </Space>\n </Card>\n </UserInfo>\n </PureGlobal>\n );\n});\n\nrender(<SaveUserInfoExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]},{title:"\u7ba1\u7406\u5458\u767b\u5f55\u540e\u5e03\u5c40",description:"AfterAdminUserLoginLayout \u7ec4\u4ef6\u5c55\u793a\u7ba1\u7406\u5458\u767b\u5f55\u540e\u7684\u5e03\u5c40\uff0c\u4f7f\u7528\u8d85\u7ea7\u7ba1\u7406\u5458\u4fe1\u606f",code:"const { AfterAdminUserLoginLayout } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Typography, Card } = antd;\n\nconst { Title, Paragraph } = Typography;\n\nconst AdminLayoutExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <AfterAdminUserLoginLayout \n title=\"\u7ba1\u7406\u540e\u53f0\"\n navigation={{ isFixed: false }}\n >\n <Card>\n <Title level={4}>\u7ba1\u7406\u5458\u63a7\u5236\u53f0</Title>\n <Paragraph>\n \u8fd9\u662f\u7ba1\u7406\u5458\u767b\u5f55\u540e\u7684\u5e03\u5c40\u793a\u4f8b\u3002\u9876\u90e8\u663e\u793a\u7ba1\u7406\u5458\u4fe1\u606f\u548c\u7cfb\u7edf\u7ba1\u7406\u529f\u80fd\u5165\u53e3\u3002\n </Paragraph>\n </Card>\n </AfterAdminUserLoginLayout>\n </PureGlobal>\n );\n});\n\nrender(<AdminLayoutExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]},{title:"\u81ea\u5b9a\u4e49\u7528\u6237\u767b\u5f55\u5e03\u5c40",description:"AfterCustomUserLoginLayout \u7ec4\u4ef6\u652f\u6301\u81ea\u5b9a\u4e49\u7528\u6237\u4fe1\u606f API\uff0c\u9002\u7528\u4e8e\u81ea\u5b9a\u4e49\u7528\u6237\u7cfb\u7edf",code:"const { AfterCustomUserLoginLayout } = _Authenticate;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Typography, Card } = antd;\n\nconst { Title, Paragraph } = Typography;\n\nconst CustomUserExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Global@usePreset']\n})(({ remoteModules }) => {\n const [PureGlobal, usePreset] = remoteModules;\n \n const InnerComponent = () => {\n const { apis } = usePreset();\n \n return (\n <AfterCustomUserLoginLayout \n title=\"\u81ea\u5b9a\u4e49\u7528\u6237\u4e2d\u5fc3\" \n api={apis.user.getUserInfo}\n navigation={{ isFixed: false }}\n >\n <Card>\n <Title level={4}>\u81ea\u5b9a\u4e49\u7528\u6237\u7cfb\u7edf</Title>\n <Paragraph>\n \u8fd9\u662f\u4f7f\u7528\u81ea\u5b9a\u4e49 API \u83b7\u53d6\u7528\u6237\u4fe1\u606f\u7684\u5e03\u5c40\u793a\u4f8b\u3002\u53ef\u4ee5\u7075\u6d3b\u914d\u7f6e\u7528\u6237\u4fe1\u606f\u63a5\u53e3\u3002\n </Paragraph>\n </Card>\n </AfterCustomUserLoginLayout>\n );\n };\n \n return (\n <PureGlobal preset={mockPreset}>\n <InnerComponent />\n </PureGlobal>\n );\n});\n\nrender(<CustomUserExample />);\n\n",scope:[{name:"_Authenticate",packageName:"@components/Authenticate",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:d}]}]}}},33286(e,t,n){n.d(t,{A:()=>d});var o=n(53856),a=n(1784),r=n(13050);const d={name:"BizUnit",summary:"<p>BizUnit \u662f\u4e00\u4e2a\u9ad8\u5ea6\u5c01\u88c5\u7684 CRUD \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6\uff0c\u5185\u7f6e\u5217\u8868\u5c55\u793a\u3001\u5173\u952e\u5b57\u641c\u7d22\u3001\u7b5b\u9009\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u72b6\u6001\u5207\u6362\u7b49\u5b8c\u6574\u529f\u80fd\u3002\u901a\u8fc7\u914d\u7f6e\u5316\u7684\u65b9\u5f0f\u5feb\u901f\u5b9e\u73b0\u6807\u51c6\u4e1a\u52a1\u6a21\u5757\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u5217\u914d\u7f6e\u3001\u8868\u5355\u5b57\u6bb5\u3001\u64cd\u4f5c\u6309\u94ae\u7b49\uff0c\u5927\u5e45\u63d0\u5347\u5f00\u53d1\u6548\u7387\u3002</p>",api:"<h1>BizUnit API \u6587\u6863</h1>\n<h2>BizUnit \u4e3b\u7ec4\u4ef6</h2>\n<p>\u9ad8\u5ea6\u5c01\u88c5\u7684 CRUD \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6\uff0c\u5185\u7f6e\u5217\u8868\u3001\u641c\u7d22\u3001\u7b5b\u9009\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u72b6\u6001\u5207\u6362\u7b49\u529f\u80fd\u3002</p>\n<h3>\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API\u914d\u7f6e\u5bf9\u8c61</td>\n<td>Object</td>\n<td>{}</td>\n</tr>\n<tr>\n<td>getColumns</td>\n<td>\u5217\u914d\u7f6e\u51fd\u6570\uff0c\u8fd4\u56de\u5217\u6570\u7ec4</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getFormInner</td>\n<td>\u8868\u5355\u5185\u5bb9\u51fd\u6570\uff0c\u8fd4\u56de\u8868\u5355JSX</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getActionList</td>\n<td>\u64cd\u4f5c\u5217\u8868\u51fd\u6570\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>name</td>\n<td>\u8868\u683c\u540d\u79f0\uff08\u7528\u4e8e\u7f13\u5b58\u7b49\uff09</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>options</td>\n<td>\u914d\u7f6e\u9009\u9879</td>\n<td>Object</td>\n<td>{}</td>\n</tr>\n<tr>\n<td>filterList</td>\n<td>\u7b5b\u9009\u5217\u8868\u914d\u7f6e</td>\n<td>Array</td>\n<td>[]</td>\n</tr>\n<tr>\n<td>allowKeywordSearch</td>\n<td>\u662f\u5426\u5141\u8bb8\u5173\u952e\u5b57\u641c\u7d22</td>\n<td>Boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>topOptionsSize</td>\n<td>\u9876\u90e8\u64cd\u4f5c\u6309\u94ae\u5c3a\u5bf8</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>titleExtra</td>\n<td>\u6807\u9898\u989d\u5916\u5185\u5bb9</td>\n<td>ReactNode</td>\n<td>null</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onMount</td>\n<td>\u7ec4\u4ef6\u6302\u8f7d\u56de\u8c03</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>apis \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>list</td>\n<td>\u5217\u8868\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>create</td>\n<td>\u521b\u5efa\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>save</td>\n<td>\u7f16\u8f91\u4fdd\u5b58\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>remove</td>\n<td>\u5220\u9664\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n<tr>\n<td>setStatus</td>\n<td>\u72b6\u6001\u5207\u6362\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object/Function</td>\n</tr>\n</tbody>\n</table>\n<h3>options \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bizName</td>\n<td>\u4e1a\u52a1\u540d\u79f0\uff08\u7528\u4e8e\u56fd\u9645\u5316\u63d0\u793a\uff09</td>\n<td>String</td>\n<td>''</td>\n</tr>\n<tr>\n<td>createButtonProps</td>\n<td>\u521b\u5efa\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u6dfb\u52a0', type: 'primary' }</td>\n</tr>\n<tr>\n<td>editButtonProps</td>\n<td>\u7f16\u8f91\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u7f16\u8f91' }</td>\n</tr>\n<tr>\n<td>removeButtonProps</td>\n<td>\u5220\u9664\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u5220\u9664' }</td>\n</tr>\n<tr>\n<td>openButtonProps</td>\n<td>\u5f00\u542f\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u5f00\u542f' }</td>\n</tr>\n<tr>\n<td>closeButtonProps</td>\n<td>\u5173\u95ed\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ children: '\u5173\u95ed' }</td>\n</tr>\n<tr>\n<td>tableProps</td>\n<td>\u8868\u683c\u5c5e\u6027</td>\n<td>Object</td>\n<td>{ pagination: { paramsType: 'params' } }</td>\n</tr>\n<tr>\n<td>keywordFilterName</td>\n<td>\u5173\u952e\u5b57\u7b5b\u9009\u5b57\u6bb5\u540d</td>\n<td>String</td>\n<td>'keyword'</td>\n</tr>\n<tr>\n<td>keywordFilterLabel</td>\n<td>\u5173\u952e\u5b57\u7b5b\u9009\u6807\u7b7e</td>\n<td>String</td>\n<td>'\u5173\u952e\u5b57'</td>\n</tr>\n<tr>\n<td>formSize</td>\n<td>\u8868\u5355\u5f39\u7a97\u5c3a\u5bf8</td>\n<td>String</td>\n<td>'small'</td>\n</tr>\n<tr>\n<td>formProps</td>\n<td>\u8868\u5355\u5c5e\u6027</td>\n<td>Object/Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>formModalProps</td>\n<td>\u8868\u5355\u5f39\u7a97\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>createFormModalProps</td>\n<td>\u521b\u5efa\u8868\u5355\u5f39\u7a97\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>editFormModalProps</td>\n<td>\u7f16\u8f91\u8868\u5355\u5f39\u7a97\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>openStatus</td>\n<td>\u5f00\u542f\u72b6\u6001\u503c</td>\n<td>String</td>\n<td>'open'</td>\n</tr>\n<tr>\n<td>closedStatus</td>\n<td>\u5173\u95ed\u72b6\u6001\u503c</td>\n<td>String</td>\n<td>'closed'</td>\n</tr>\n<tr>\n<td>removeMessage</td>\n<td>\u5220\u9664\u786e\u8ba4\u63d0\u793a\u4fe1\u606f</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>closeMessage</td>\n<td>\u5173\u95ed\u786e\u8ba4\u63d0\u793a\u4fe1\u606f</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>saveData</td>\n<td>\u7f16\u8f91\u65f6\u6570\u636e\u5904\u7406\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getFilterValue</td>\n<td>\u7b5b\u9009\u503c\u8f6c\u6362\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>getColumns \u51fd\u6570</h3>\n<p>\u8fd4\u56de\u5217\u914d\u7f6e\u6570\u7ec4\uff0c\u5e38\u7528\u5217\u7c7b\u578b\uff1a</p>\n<table>\n<thead>\n<tr>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n<th>\u7279\u6b8a\u914d\u7f6e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>serialNumber</td>\n<td>\u5e8f\u53f7\u5217</td>\n<td>primary, hover</td>\n</tr>\n<tr>\n<td>mainInfo</td>\n<td>\u4e3b\u4fe1\u606f\u5217</td>\n<td>primary, hover</td>\n</tr>\n<tr>\n<td>tag</td>\n<td>\u6807\u7b7e\u5217</td>\n<td>valueOf \u8fd4\u56de { type, text }</td>\n</tr>\n<tr>\n<td>description</td>\n<td>\u63cf\u8ff0\u5217</td>\n<td>ellipsis</td>\n</tr>\n<tr>\n<td>avatar</td>\n<td>\u5934\u50cf\u5217</td>\n<td>valueOf \u8fd4\u56de { id }</td>\n</tr>\n<tr>\n<td>datetime</td>\n<td>\u65e5\u671f\u65f6\u95f4\u5217</td>\n<td>format</td>\n</tr>\n<tr>\n<td>other</td>\n<td>\u5176\u4ed6\u666e\u901a\u5217</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>getFormInner \u51fd\u6570</h3>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>action</td>\n<td>\u64cd\u4f5c\u7c7b\u578b</td>\n<td>'create' | 'edit'</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API\u914d\u7f6e\u5bf9\u8c61</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>options</td>\n<td>\u914d\u7f6e\u9009\u9879</td>\n<td>Object</td>\n</tr>\n</tbody>\n</table>\n<h3>getActionList \u51fd\u6570</h3>\n<p>\u8fd4\u56de\u64cd\u4f5c\u6309\u94ae\u6570\u7ec4\uff0c\u652f\u6301\u4ee5\u4e0b\u683c\u5f0f\uff1a</p>\n<pre><code class=\"language-javascript\">// \u4f7f\u7528\u5185\u7f6e\u6309\u94ae\n{ name: 'remove', reset: (config) =&gt; ({ ...config, hidden: true }) }\n\n// \u81ea\u5b9a\u4e49\u6309\u94ae\n{ buttonComponent: CustomComponent, children: '\u6309\u94ae\u6587\u5b57', hidden: false }\n</code></pre>\n<p><strong>\u5185\u7f6e\u6309\u94ae\u540d\u79f0\uff1a</strong></p>\n<ul>\n<li><code>remove</code> - \u5220\u9664\u6309\u94ae</li>\n<li><code>save</code> - \u7f16\u8f91\u6309\u94ae</li>\n<li><code>setStatusOpen</code> - \u5f00\u542f\u6309\u94ae</li>\n<li><code>setStatusClose</code> - \u5173\u95ed\u6309\u94ae</li>\n</ul>\n<hr>\n<h2>Actions \u5b50\u7ec4\u4ef6</h2>\n<p>\u64cd\u4f5c\u6309\u94ae\u7ec4\u4ef6\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u8868\u683c\u64cd\u4f5c\u5217\u3002</p>\n<h3>\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>moreType</td>\n<td>\u66f4\u591a\u6309\u94ae\u7c7b\u578b</td>\n<td>String</td>\n<td>'link'</td>\n</tr>\n<tr>\n<td>itemClassName</td>\n<td>\u6309\u94ae\u9879\u6837\u5f0f\u7c7b\u540d</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getActionList</td>\n<td>\u64cd\u4f5c\u5217\u8868\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getFormInner</td>\n<td>\u8868\u5355\u5185\u5bb9\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>data</td>\n<td>\u5f53\u524d\u884c\u6570\u636e</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API\u914d\u7f6e\u5bf9\u8c61</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>options</td>\n<td>\u914d\u7f6e\u9009\u9879</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u64cd\u4f5c\u6210\u529f\u56de\u8c03</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3\u51fd\u6570</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>TablePageRender \u5b50\u7ec4\u4ef6</h2>\n<p>\u8868\u683c\u9875\u9762\u6e32\u67d3\u7ec4\u4ef6\uff0c\u7528\u4e8e\u9875\u9762\u7ea7\u522b\u7684\u8868\u683c\u5c55\u793a\u3002</p>\n<h3>\u5c5e\u6027</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>filter</td>\n<td>\u7b5b\u9009\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>titleExtra</td>\n<td>\u6807\u9898\u989d\u5916\u5185\u5bb9</td>\n<td>ReactNode</td>\n</tr>\n<tr>\n<td>tableOptions</td>\n<td>\u8868\u683c\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n</tbody>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a BizUnit \u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u5305\u542b\u5b8c\u6574\u7684 CRUD \u529f\u80fd\uff1a\u5217\u8868\u5c55\u793a\u3001\u5173\u952e\u5b57\u641c\u7d22\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u548c\u72b6\u6001\u5207\u6362\u3002\u901a\u8fc7\u914d\u7f6e apis\u3001getColumns\u3001getFormInner \u7b49\u5c5e\u6027\u5feb\u901f\u5b9e\u73b0\u4e1a\u52a1\u6a21\u5757\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useState } = React;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n const { Input, TextArea } = FormInfo.fields;\n const [refreshKey, setRefreshKey] = useState(0);\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u89d2\u8272\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u89d2\u8272\u7f16\u7801' },\n { \n name: 'status', \n title: '\u72b6\u6001', \n type: 'tag',\n valueOf: ({ status }) => ({\n type: status === 'open' ? 'success' : 'default',\n text: status === 'open' ? '\u5df2\u542f\u7528' : '\u5df2\u7981\u7528'\n })\n },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo column={1} list={[\n <Input name=\"name\" label=\"\u89d2\u8272\u540d\u79f0\" rule=\"REQ LEN-2-50\" />,\n <Input name=\"code\" label=\"\u89d2\u8272\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <TextArea name=\"description\" label=\"\u63cf\u8ff0\" />\n ]} />\n );\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u7cfb\u7edf\u7ba1\u7406\u5458', code: 'admin', status: 'open', description: '\u62e5\u6709\u7cfb\u7edf\u6240\u6709\u6743\u9650\uff0c\u53ef\u8fdb\u884c\u7cfb\u7edf\u914d\u7f6e\u548c\u7528\u6237\u7ba1\u7406' },\n { id: 2, name: '\u90e8\u95e8\u7ecf\u7406', code: 'manager', status: 'open', description: '\u7ba1\u7406\u672c\u90e8\u95e8\u4eba\u5458\u548c\u9879\u76ee\uff0c\u5ba1\u6279\u90e8\u95e8\u5185\u4e8b\u52a1' },\n { id: 3, name: '\u666e\u901a\u5458\u5de5', code: 'employee', status: 'closed', description: '\u57fa\u7840\u8bbf\u95ee\u6743\u9650\uff0c\u53ef\u67e5\u770b\u548c\u7f16\u8f91\u4e2a\u4eba\u76f8\u5173\u6570\u636e' },\n { id: 4, name: '\u8bbf\u5ba2', code: 'guest', status: 'open', description: '\u53ea\u8bfb\u6743\u9650\uff0c\u4ec5\u53ef\u67e5\u770b\u516c\u5f00\u4fe1\u606f' }\n ],\n totalCount: 4\n })\n },\n create: { loader: () => ({ code: 0, data: { id: Date.now() } }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n return (\n <PureGlobal preset={{\n ...preset,\n apis: {\n role: apis\n }\n }}>\n <BizUnit\n key={refreshKey}\n name=\"role-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n options={{ bizName: '\u89d2\u8272' }}\n />\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae",description:"\u901a\u8fc7 getActionList \u51fd\u6570\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u3002\u652f\u6301\u91cd\u7f6e\u5185\u7f6e\u6309\u94ae\u914d\u7f6e\uff08\u5982\u6839\u636e\u6761\u4ef6\u9690\u85cf\u7cfb\u7edf\u7c7b\u578b\u89d2\u8272\u7684\u5220\u9664\u6309\u94ae\uff09\uff0c\u4ee5\u53ca\u6dfb\u52a0\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u7ec4\u4ef6\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst CustomAction = createWithRemoteLoader({\n modules: ['components-core:Modal@useModal']\n})(({ remoteModules, data, ...props }) => {\n const [useModal] = remoteModules;\n const modal = useModal();\n return (\n <a {...props} onClick={() => {\n modal({\n title: '\u67e5\u770b\u6743\u9650',\n size: 'small',\n children: `\u5f53\u524d\u89d2\u8272\u3010${data.name}\u3011\u62e5\u6709\u4ee5\u4e0b\u6743\u9650\uff1a\n- \u7528\u6237\u7ba1\u7406\n- \u89d2\u8272\u7ba1\u7406\n- \u7cfb\u7edf\u8bbe\u7f6e`\n });\n }}>\n \u67e5\u770b\u6743\u9650\n </a>\n );\n});\n\nconst CustomActionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n const { Input, TextArea } = FormInfo.fields;\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u89d2\u8272\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u89d2\u8272\u7f16\u7801' },\n {\n name: 'type',\n title: '\u7c7b\u578b',\n type: 'tag',\n valueOf: ({ type }) => ({\n type: type === 'system' ? 'default' : 'info',\n text: type === 'system' ? '\u7cfb\u7edf' : '\u81ea\u5b9a\u4e49'\n })\n },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo column={1} list={[\n <Input name=\"name\" label=\"\u89d2\u8272\u540d\u79f0\" rule=\"REQ LEN-2-50\" />,\n <Input name=\"code\" label=\"\u89d2\u8272\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <TextArea name=\"description\" label=\"\u63cf\u8ff0\" />\n ]} />\n );\n\n const getActionList = ({ data, ...props }) => {\n return ['remove', 'setStatusOpen', 'setStatusClose', 'save']\n .map(name => ({\n name,\n reset: ({ hidden }) => ({ name, hidden: hidden || data.type === 'system' })\n }))\n .concat([\n {\n ...props,\n buttonComponent: CustomAction,\n data,\n hidden: data.code === 'admin'\n }\n ]);\n };\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u7cfb\u7edf\u7ba1\u7406\u5458', code: 'admin', type: 'system', status: 'open', description: '\u62e5\u6709\u7cfb\u7edf\u6240\u6709\u6743\u9650' },\n { id: 2, name: '\u90e8\u95e8\u7ecf\u7406', code: 'manager', type: 'custom', status: 'open', description: '\u7ba1\u7406\u672c\u90e8\u95e8\u4eba\u5458' },\n { id: 3, name: '\u666e\u901a\u5458\u5de5', code: 'employee', type: 'custom', status: 'closed', description: '\u57fa\u7840\u8bbf\u95ee\u6743\u9650' },\n { id: 4, name: '\u8bbf\u5ba2', code: 'guest', type: 'custom', status: 'open', description: '\u53ea\u8bfb\u6743\u9650' }\n ],\n totalCount: 4\n })\n },\n create: { loader: () => ({ code: 0 }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n return (\n <PureGlobal preset={{ ...preset, apis: { role: apis } }}>\n <BizUnit\n name=\"role-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n getActionList={getActionList}\n options={{ bizName: '\u89d2\u8272' }}\n />\n </PureGlobal>\n );\n});\n\nrender(<CustomActionsExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5e26\u7b5b\u9009\u6761\u4ef6",description:"\u901a\u8fc7 filterList \u5c5e\u6027\u6dfb\u52a0\u7b5b\u9009\u6761\u4ef6\uff0c\u914d\u5408 Filter \u7ec4\u4ef6\u7684 SelectItem \u5b9e\u73b0\u4e0b\u62c9\u7b5b\u9009\u3002\u9002\u7528\u4e8e\u9700\u8981\u591a\u6761\u4ef6\u7b5b\u9009\u7684\u4e1a\u52a1\u573a\u666f\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst WithFilterExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo', 'components-core:Filter']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo, Filter] = remoteModules;\n const { Input, TextArea, SuperSelect } = FormInfo.fields;\n const { SuperSelectFilterItem } = Filter.fields;\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u90e8\u95e8\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u90e8\u95e8\u7f16\u7801' },\n {\n name: 'status',\n title: '\u72b6\u6001',\n type: 'tag',\n valueOf: ({ status }) => ({\n type: status === 'active' ? 'success' : 'warning',\n text: status === 'active' ? '\u8fd0\u8425\u4e2d' : '\u5df2\u6682\u505c'\n })\n },\n { name: 'memberCount', title: '\u6210\u5458\u6570\u91cf' },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo\n column={1}\n list={[\n <Input name=\"name\" label=\"\u90e8\u95e8\u540d\u79f0\" rule=\"REQ LEN-2-50\" />,\n <Input name=\"code\" label=\"\u90e8\u95e8\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <SuperSelect\n name=\"parentId\"\n label=\"\u4e0a\u7ea7\u90e8\u95e8\"\n api={{ loader: () => ({ pageData: [{ id: 1, name: '\u603b\u516c\u53f8' }], totalCount: 1 }) }}\n valueKey=\"id\"\n labelKey=\"name\"\n single\n />,\n <TextArea name=\"description\" label=\"\u63cf\u8ff0\" />\n ]}\n />\n );\n\n const filterList = [\n [\n <SuperSelectFilterItem\n name=\"status\"\n label=\"\u72b6\u6001\"\n options={[\n { value: 'active', label: '\u8fd0\u8425\u4e2d' },\n { value: 'paused', label: '\u5df2\u6682\u505c' }\n ]}\n />,\n <SuperSelectFilterItem\n name=\"type\"\n label=\"\u7c7b\u578b\"\n options={[\n { value: 'tech', label: '\u6280\u672f\u90e8\u95e8' },\n { value: 'business', label: '\u4e1a\u52a1\u90e8\u95e8' },\n { value: 'support', label: '\u652f\u6301\u90e8\u95e8' }\n ]}\n />\n ]\n ];\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u6280\u672f\u7814\u53d1\u90e8', code: 'tech', status: 'active', memberCount: 45, description: '\u8d1f\u8d23\u4ea7\u54c1\u6280\u672f\u7814\u53d1\u548c\u521b\u65b0' },\n { id: 2, name: '\u4ea7\u54c1\u8bbe\u8ba1\u90e8', code: 'design', status: 'active', memberCount: 18, description: '\u8d1f\u8d23\u4ea7\u54c1UI/UX\u8bbe\u8ba1' },\n { id: 3, name: '\u5e02\u573a\u8425\u9500\u90e8', code: 'marketing', status: 'active', memberCount: 25, description: '\u8d1f\u8d23\u5e02\u573a\u63a8\u5e7f\u548c\u54c1\u724c\u5efa\u8bbe' },\n { id: 4, name: '\u5ba2\u6237\u670d\u52a1\u90e8', code: 'service', status: 'paused', memberCount: 30, description: '\u8d1f\u8d23\u5ba2\u6237\u652f\u6301\u548c\u552e\u540e\u670d\u52a1' },\n { id: 5, name: '\u4eba\u529b\u8d44\u6e90\u90e8', code: 'hr', status: 'active', memberCount: 12, description: '\u8d1f\u8d23\u4eba\u624d\u62db\u8058\u548c\u5458\u5de5\u5173\u7cfb' }\n ],\n totalCount: 5\n })\n },\n create: { loader: () => ({ code: 0 }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n return (\n <PureGlobal preset={{ ...preset, apis: { dept: apis } }}>\n <BizUnit\n name=\"dept-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n filterList={filterList}\n options={{ bizName: '\u90e8\u95e8' }}\n />\n </PureGlobal>\n );\n});\n\nrender(<WithFilterExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u72b6\u6001\u63a7\u5236\u914d\u7f6e",description:"\u901a\u8fc7 options \u914d\u7f6e\u81ea\u5b9a\u4e49\u72b6\u6001\u63a7\u5236\u6309\u94ae\u3002\u652f\u6301\u81ea\u5b9a\u4e49\u72b6\u6001\u503c\u3001\u6309\u94ae\u6587\u6848\u548c\u786e\u8ba4\u63d0\u793a\u4fe1\u606f\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u4e1a\u52a1\u573a\u666f\u7684\u72b6\u6001\u7ba1\u7406\u3002",code:"const { default: BizUnit } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst StatusControlExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n const { Input, TextArea } = FormInfo.fields;\n\n const getColumns = () => [\n { name: 'id', title: 'ID', type: 'serialNumber', primary: false, hover: false },\n { name: 'name', title: '\u9879\u76ee\u540d\u79f0', type: 'mainInfo', primary: false, hover: false },\n { name: 'code', title: '\u9879\u76ee\u7f16\u7801' },\n {\n name: 'status',\n title: '\u72b6\u6001',\n type: 'tag',\n valueOf: ({ status }) => {\n const statusMap = {\n active: { type: 'success', text: '\u8fdb\u884c\u4e2d' },\n paused: { type: 'warning', text: '\u5df2\u6682\u505c' },\n completed: { type: 'default', text: '\u5df2\u5b8c\u6210' }\n };\n return statusMap[status] || { type: 'default', text: status };\n }\n },\n { name: 'progress', title: '\u8fdb\u5ea6' },\n { name: 'description', title: '\u63cf\u8ff0', type: 'description', ellipsis: true }\n ];\n\n const getFormInner = ({ action }) => (\n <FormInfo column={1} list={[\n <Input name=\"name\" label=\"\u9879\u76ee\u540d\u79f0\" rule=\"REQ LEN-2-100\" />,\n <Input name=\"code\" label=\"\u9879\u76ee\u7f16\u7801\" rule=\"REQ LEN-2-50\" disabled={action === 'edit'} />,\n <TextArea name=\"description\" label=\"\u9879\u76ee\u63cf\u8ff0\" />\n ]} />\n );\n\n const apis = {\n list: {\n loader: () => ({\n pageData: [\n { id: 1, name: '\u4f01\u4e1a\u5b98\u7f51\u91cd\u6784', code: 'web-rebuild', status: 'active', progress: '75%', description: '\u5168\u65b0\u4f01\u4e1a\u5b98\u7f51\u8bbe\u8ba1\u4e0e\u5f00\u53d1' },\n { id: 2, name: '\u79fb\u52a8\u7aefAPP\u5f00\u53d1', code: 'mobile-app', status: 'active', progress: '45%', description: 'iOS\u548cAndroid\u53cc\u7aef\u5e94\u7528\u5f00\u53d1' },\n { id: 3, name: '\u6570\u636e\u5206\u6790\u5e73\u53f0', code: 'data-platform', status: 'paused', progress: '30%', description: '\u4f01\u4e1a\u7ea7\u6570\u636e\u5206\u6790\u4e0e\u53ef\u89c6\u5316\u5e73\u53f0' },\n { id: 4, name: '\u5ba2\u6237\u7ba1\u7406\u7cfb\u7edf', code: 'crm', status: 'completed', progress: '100%', description: '\u5ba2\u6237\u5173\u7cfb\u7ba1\u7406\u7cfb\u7edf\u5347\u7ea7' },\n { id: 5, name: '\u5185\u90e8OA\u7cfb\u7edf', code: 'oa-system', status: 'active', progress: '60%', description: '\u529e\u516c\u81ea\u52a8\u5316\u7cfb\u7edf\u5efa\u8bbe' }\n ],\n totalCount: 5\n })\n },\n create: { loader: () => ({ code: 0 }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: {\n loader: () => ({ code: 0 })\n }\n };\n\n return (\n <PureGlobal preset={{ ...preset, apis: { project: apis } }}>\n <BizUnit\n name=\"project-list\"\n apis={apis}\n getColumns={getColumns}\n getFormInner={getFormInner}\n options={{\n bizName: '\u9879\u76ee',\n openStatus: 'active',\n closedStatus: 'paused',\n openButtonProps: { children: '\u542f\u52a8' },\n closeButtonProps: { children: '\u6682\u505c' },\n closeMessage: '\u786e\u5b9a\u8981\u6682\u505c\u8be5\u9879\u76ee\u5417\uff1f\u6682\u505c\u540e\u9879\u76ee\u5c06\u505c\u6b62\u6240\u6709\u81ea\u52a8\u4efb\u52a1\u3002'\n }}\n />\n </PureGlobal>\n );\n});\n\nrender(<StatusControlExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"Actions \u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528",description:"Actions \u7ec4\u4ef6\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u573a\u666f\u4e0b\u7684\u64cd\u4f5c\u6309\u94ae\u533a\u57df\u3002\u9700\u8981\u5305\u88f9 PureGlobal \u63d0\u4f9b\u56fd\u9645\u5316\u4e0a\u4e0b\u6587\u3002\u5c55\u793a\u5982\u4f55\u5728\u4e0d\u4f7f\u7528 BizUnit \u5b8c\u6574\u529f\u80fd\u65f6\uff0c\u5355\u72ec\u4f7f\u7528\u64cd\u4f5c\u6309\u94ae\u7ec4\u4ef6\u3002",code:"const { default: BizUnit, Actions } = _BizUnit;\nconst { default: preset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Flex, Tag } = antd;\n\n// Actions \u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528\u793a\u4f8b\nconst ActionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:FormInfo']\n})(({ remoteModules }) => {\n const [PureGlobal, FormInfo] = remoteModules;\n \n const mockData = { id: 1, name: '\u6d4b\u8bd5\u89d2\u8272', status: 'open' };\n \n const mockApis = {\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) },\n setStatus: { loader: () => ({ code: 0 }) }\n };\n\n const mockOptions = {\n bizName: '\u89d2\u8272',\n openStatus: 'open',\n closedStatus: 'closed'\n };\n\n const mockGetFormInner = () => (\n <FormInfo column={1} list={[\n <FormInfo.fields.Input name=\"name\" label=\"\u540d\u79f0\" rule=\"REQ\" />\n ]} />\n );\n\n return (\n <PureGlobal preset={preset}>\n <Flex vertical gap={16}>\n <div>Actions \u7ec4\u4ef6\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\uff0c\u7528\u4e8e\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u533a\u57df\uff1a</div>\n <Flex gap={8} align=\"center\">\n <Tag>\u64cd\u4f5c\u793a\u4f8b\uff1a</Tag>\n <Actions\n moreType=\"link\"\n data={mockData}\n apis={mockApis}\n options={mockOptions}\n getFormInner={mockGetFormInner}\n onSuccess={() => console.log('\u64cd\u4f5c\u6210\u529f')}\n />\n </Flex>\n <Flex gap={8} align=\"center\">\n <Tag>\u5df2\u5173\u95ed\u72b6\u6001\uff1a</Tag>\n <Actions\n moreType=\"link\"\n data={{ id: 2, name: '\u5df2\u7981\u7528\u89d2\u8272', status: 'closed' }}\n apis={mockApis}\n options={mockOptions}\n getFormInner={mockGetFormInner}\n onSuccess={() => console.log('\u64cd\u4f5c\u6210\u529f')}\n />\n </Flex>\n </Flex>\n </PureGlobal>\n );\n});\n\nrender(<ActionsExample />);\n\n",scope:[{name:"_BizUnit",packageName:"@components/BizUnit",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]}]}}},40394(e,t,n){n.d(t,{A:()=>r});var o=n(13851),a=n(13050);const r={name:"Editor",summary:"<p>\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u5b57\u6bb5\u7ec4\u4ef6\uff0c\u57fa\u4e8e CKEditor \u5c01\u88c5\uff0c\u4f5c\u4e3a FormInfo \u7684\u5b57\u6bb5\u7ec4\u4ef6\u4f7f\u7528\uff0c\u652f\u6301\u6587\u672c\u683c\u5f0f\u5316\u3001\u56fe\u7247\u4e0a\u4f20\u3001\u8868\u683c\u63d2\u5165\u7b49\u5bcc\u6587\u672c\u7f16\u8f91\u529f\u80fd\u3002</p>",api:'<h2>Editor \u7ec4\u4ef6</h2>\n<p>\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u5b57\u6bb5\u7ec4\u4ef6\uff0c\u57fa\u4e8e CKEditor \u5c01\u88c5\uff0c\u4f5c\u4e3a FormInfo \u7684\u8868\u5355\u5b57\u6bb5\u7ec4\u4ef6\u4f7f\u7528\uff0c\u652f\u6301\u5bcc\u6587\u672c\u7f16\u8f91\u3001\u56fe\u7247\u4e0a\u4f20\u7b49\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>\u5b57\u6bb5\u540d\uff08\u5fc5\u586b\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>label</td>\n<td>\u5b57\u6bb5\u6807\u7b7e</td>\n<td>string | ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rule</td>\n<td>\u6821\u9a8c\u89c4\u5219\uff0c\u5982 "REQ" \u8868\u793a\u5fc5\u586b</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>\u5360\u4f4d\u7b26\u6587\u672c</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>disabled</td>\n<td>\u662f\u5426\u7981\u7528</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>readOnly</td>\n<td>\u662f\u5426\u53ea\u8bfb</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>value</td>\n<td>\u7f16\u8f91\u5668\u5185\u5bb9\uff08\u53d7\u63a7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>defaultValue</td>\n<td>\u9ed8\u8ba4\u5185\u5bb9\uff08\u975e\u53d7\u63a7\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onChange</td>\n<td>\u5185\u5bb9\u53d8\u5316\u56de\u8c03</td>\n<td>function(value)</td>\n<td>-</td>\n</tr>\n<tr>\n<td>height</td>\n<td>\u7f16\u8f91\u5668\u9ad8\u5ea6</td>\n<td>number | string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>maxLength</td>\n<td>\u6700\u5927\u5b57\u7b26\u957f\u5ea6</td>\n<td>number</td>\n<td>-</td>\n</tr>\n<tr>\n<td>tips</td>\n<td>\u63d0\u793a\u4fe1\u606f</td>\n<td>string | ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>block</td>\n<td>\u662f\u5426\u5360\u6ee1\u6574\u884c</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>labelHidden</td>\n<td>\u662f\u5426\u9690\u85cf\u6807\u7b7e</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>display</td>\n<td>\u6761\u4ef6\u663e\u793a\u51fd\u6570</td>\n<td>function({ formData }) =&gt; boolean</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u4f7f\u7528\u8bf4\u660e</h2>\n<h3>\u4f5c\u4e3a\u8868\u5355\u5b57\u6bb5\u4f7f\u7528</h3>\n<p>Editor \u7ec4\u4ef6\u5fc5\u987b\u5728 FormInfo \u7684 Form \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u4f5c\u4e3a\u72ec\u7acb\u7684\u5b57\u6bb5\u7ec4\u4ef6\u5bfc\u5165\uff1a</p>\n<pre><code class="language-jsx">import { createWithRemoteLoader } from \'@kne/remote-loader\';\nimport Editor from \'@components/Editor\';\n\nconst FormExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\']\n})(({ remoteModules }) =&gt; {\n const [FormInfo] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n &lt;Form onSubmit={(data) =&gt; console.log(data)}&gt;\n &lt;Editor \n name="content" \n label="\u5185\u5bb9" \n rule="REQ" \n placeholder="\u8bf7\u8f93\u5165\u5185\u5bb9"\n /&gt;\n &lt;SubmitButton&gt;\u63d0\u4ea4&lt;/SubmitButton&gt;\n &lt;/Form&gt;\n );\n});\n</code></pre>\n<h3>\u56fe\u7247\u4e0a\u4f20\u529f\u80fd</h3>\n<p>Editor \u7ec4\u4ef6\u5185\u7f6e\u56fe\u7247\u4e0a\u4f20\u529f\u80fd\uff0c\u901a\u8fc7 <code>apis.file.uploadForEditor</code> \u914d\u7f6e\u4e0a\u4f20\u63a5\u53e3\u3002\u9700\u8981\u5728\u5168\u5c40 preset \u4e2d\u914d\u7f6e\u76f8\u5e94\u7684 API\u3002</p>\n<h3>\u5bcc\u6587\u672c\u529f\u80fd</h3>\n<p>\u652f\u6301\u5e38\u89c1\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u529f\u80fd\uff1a</p>\n<ul>\n<li>\u6587\u672c\u683c\u5f0f\u5316\uff08\u52a0\u7c97\u3001\u659c\u4f53\u3001\u4e0b\u5212\u7ebf\u3001\u5220\u9664\u7ebf\uff09</li>\n<li>\u6bb5\u843d\u683c\u5f0f\uff08\u6807\u9898\u3001\u5f15\u7528\u3001\u4ee3\u7801\u5757\uff09</li>\n<li>\u5217\u8868\uff08\u6709\u5e8f\u5217\u8868\u3001\u65e0\u5e8f\u5217\u8868\uff09</li>\n<li>\u5bf9\u9f50\u65b9\u5f0f</li>\n<li>\u94fe\u63a5\u63d2\u5165</li>\n<li>\u56fe\u7247\u63d2\u5165\uff08\u9700\u8981\u914d\u7f6e\u4e0a\u4f20\u63a5\u53e3\uff09</li>\n<li>\u8868\u683c\u63d2\u5165</li>\n<li>\u64a4\u9500/\u91cd\u505a</li>\n</ul>\n<h2>\u4f9d\u8d56\u6a21\u5757</h2>\n<ul>\n<li><code>components-thirdparty:CKEditor</code> - CKEditor \u7f16\u8f91\u5668\u6838\u5fc3</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e\uff08\u7528\u4e8e\u83b7\u53d6\u4e0a\u4f20\u63a5\u53e3\uff09</li>\n</ul>',example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a Editor \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u5305\u542b\u5fc5\u586b\u6821\u9a8c\u548c\u9ad8\u5ea6\u8bbe\u7f6e",code:'const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n <PureGlobal>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u5185\u5bb9:\', data);\n }}\n >\n <Editor\n name="content"\n label="\u6587\u7ae0\u5185\u5bb9"\n rule="REQ"\n placeholder="\u8bf7\u8f93\u5165\u6587\u7ae0\u5185\u5bb9..."\n height={300}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]},{title:"\u8868\u5355\u5b57\u6bb5\u4f7f\u7528",description:"\u5728\u8868\u5355\u4e2d\u914d\u5408\u5176\u4ed6\u5b57\u6bb5\u7ec4\u4ef6\u4f7f\u7528 Editor\uff0c\u5c55\u793a\u5b8c\u6574\u7684\u6587\u7ae0\u7f16\u8f91\u8868\u5355\u573a\u666f",code:"const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst FormFieldExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input, Select } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n title: '\u5982\u4f55\u4f7f\u7528\u5bcc\u6587\u672c\u7f16\u8f91\u5668',\n category: 'tutorial',\n content: '<h2>\u6b22\u8fce\u4f7f\u7528\u5bcc\u6587\u672c\u7f16\u8f91\u5668</h2><p>\u8fd9\u662f\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u7ec4\u4ef6\u3002</p><ul><li>\u652f\u6301\u6587\u672c\u683c\u5f0f\u5316</li><li>\u652f\u6301\u56fe\u7247\u4e0a\u4f20</li><li>\u652f\u6301\u8868\u683c\u63d2\u5165</li></ul>'\n }}\n onSubmit={(data) => {\n console.log('\u6587\u7ae0\u6570\u636e:', data);\n }}\n >\n <FormInfo\n title=\"\u6587\u7ae0\u4fe1\u606f\"\n column={2}\n list={[\n <Input name=\"title\" label=\"\u6587\u7ae0\u6807\u9898\" rule=\"REQ\" placeholder=\"\u8bf7\u8f93\u5165\u6587\u7ae0\u6807\u9898\" />,\n <Select\n name=\"category\"\n label=\"\u6587\u7ae0\u5206\u7c7b\"\n rule=\"REQ\"\n options={[\n { label: '\u6559\u7a0b', value: 'tutorial' },\n { label: '\u6280\u672f\u5206\u4eab', value: 'tech' },\n { label: '\u4ea7\u54c1\u4ecb\u7ecd', value: 'product' },\n { label: '\u65b0\u95fb\u52a8\u6001', value: 'news' }\n ]}\n />\n ]}\n />\n <Editor\n name=\"content\"\n label=\"\u6587\u7ae0\u5185\u5bb9\"\n rule=\"REQ\"\n placeholder=\"\u8bf7\u8f93\u5165\u6587\u7ae0\u5185\u5bb9\uff0c\u652f\u6301\u5bcc\u6587\u672c\u683c\u5f0f...\"\n height={400}\n block\n />\n <div style={{ marginTop: 24, textAlign: 'center' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type=\"primary\">\u53d1\u5e03\u6587\u7ae0</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<FormFieldExample />);\n\n",scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:n(1784)},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]},{title:"\u53ea\u8bfb\u6a21\u5f0f",description:"\u5c55\u793a Editor \u7684\u53ea\u8bfb\u6a21\u5f0f\uff0c\u901a\u5e38\u7528\u4e8e\u5185\u5bb9\u9884\u89c8\u6216\u8be6\u60c5\u5c55\u793a",code:'const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst ReadonlyExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, fields } = FormInfo;\n const { Input } = fields;\n\n const articleContent = `\n<h2>\u4ea7\u54c1\u53d1\u5e03\u516c\u544a</h2>\n<p>\u6211\u4eec\u5f88\u9ad8\u5174\u5730\u5ba3\u5e03\uff0c\u65b0\u7248\u672c\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u5df2\u7ecf\u4e0a\u7ebf\uff01</p>\n<h3>\u4e3b\u8981\u529f\u80fd</h3>\n<ul>\n <li><strong>\u6587\u672c\u683c\u5f0f\u5316</strong>\uff1a\u652f\u6301\u52a0\u7c97\u3001\u659c\u4f53\u3001\u4e0b\u5212\u7ebf\u7b49\u6837\u5f0f</li>\n <li><strong>\u6bb5\u843d\u6392\u7248</strong>\uff1a\u6807\u9898\u3001\u5f15\u7528\u3001\u4ee3\u7801\u5757\u7b49</li>\n <li><strong>\u5217\u8868\u652f\u6301</strong>\uff1a\u6709\u5e8f\u5217\u8868\u548c\u65e0\u5e8f\u5217\u8868</li>\n <li><strong>\u56fe\u7247\u4e0a\u4f20</strong>\uff1a\u652f\u6301\u62d6\u62fd\u6216\u7c98\u8d34\u4e0a\u4f20\u56fe\u7247</li>\n <li><strong>\u8868\u683c\u63d2\u5165</strong>\uff1a\u65b9\u4fbf\u5730\u521b\u5efa\u548c\u7f16\u8f91\u8868\u683c</li>\n</ul>\n<h3>\u4f7f\u7528\u793a\u4f8b</h3>\n<blockquote>\n <p>\u8fd9\u662f\u4e00\u4e2a\u5f15\u7528\u6587\u672c\uff0c\u901a\u5e38\u7528\u4e8e\u5f3a\u8c03\u91cd\u8981\u5185\u5bb9\u3002</p>\n</blockquote>\n<p>\u611f\u8c22\u60a8\u7684\u4f7f\u7528\uff0c\u5982\u6709\u95ee\u9898\u8bf7\u8054\u7cfb\u5ba2\u670d\u3002</p>\n `.trim();\n\n return (\n <PureGlobal>\n <Form data={{ title: \'\u4ea7\u54c1\u53d1\u5e03\u516c\u544a\', content: articleContent }}>\n <FormInfo\n title="\u6587\u7ae0\u8be6\u60c5\uff08\u53ea\u8bfb\u6a21\u5f0f\uff09"\n column={1}\n list={[\n <Input name="title" label="\u6587\u7ae0\u6807\u9898" disabled />\n ]}\n />\n <Editor name="content" label="\u6587\u7ae0\u5185\u5bb9" readOnly height={400} block />\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ReadonlyExample />);\n\n',scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]},{title:"\u8868\u5355\u6821\u9a8c",description:"\u5c55\u793a Editor \u5728\u8868\u5355\u4e2d\u7684\u6821\u9a8c\u529f\u80fd\uff0c\u652f\u6301\u5fc5\u586b\u548c\u957f\u5ea6\u6821\u9a8c",code:'const { default: Editor } = _Editor;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst ValidationExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u5e26\u6821\u9a8c\u89c4\u5219\u7684\u8868\u5355"\n column={1}\n list={[\n <Input name="title" label="\u6807\u9898" rule="REQ LEN-5-50" placeholder="\u6807\u9898\u957f\u5ea65-50\u4e2a\u5b57\u7b26" />\n ]}\n />\n <Editor\n name="content"\n label="\u5185\u5bb9"\n rule="REQ"\n placeholder="\u8bf7\u8f93\u5165\u5185\u5bb9\uff0c\u5fc5\u586b\u5b57\u6bb5"\n height={250}\n tips="\u5185\u5bb9\u4e3a\u5fc5\u586b\u9879\uff0c\u8bf7\u8f93\u5165\u6587\u7ae0\u6b63\u6587"\n block\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ValidationExample />);\n\n',scope:[{name:"_Editor",packageName:"@components/Editor",component:o},{name:"remoteLoader",packageName:"@kne/remote-loader",component:a}]}]}}},3870(e,t,n){n.d(t,{A:()=>d});var o=n(40409),a=n(1784),r=n(13050);const d={name:"GroupSelect",summary:"<p>\u5206\u7ec4\u6807\u7b7e\u9009\u62e9\u5668\u7ec4\u4ef6\uff0c\u57fa\u4e8e SuperSelectTableList \u5c01\u88c5\uff0c\u652f\u6301\u641c\u7d22\u3001\u5206\u9875\u3001\u6dfb\u52a0\u548c\u5220\u9664\u6807\u7b7e\u529f\u80fd\uff0c\u9002\u7528\u4e8e\u6280\u80fd\u6807\u7b7e\u3001\u5206\u7c7b\u6807\u7b7e\u7b49\u573a\u666f\u7684\u8868\u5355\u5b57\u6bb5\u3002</p>",api:'<h2>GroupSelect \u7ec4\u4ef6</h2>\n<p>\u5206\u7ec4\u6807\u7b7e\u9009\u62e9\u5668\u7ec4\u4ef6\uff0c\u57fa\u4e8e SuperSelectTableList \u5c01\u88c5\uff0c\u7528\u4e8e\u9009\u62e9\u548c\u7ba1\u7406\u6280\u80fd\u6807\u7b7e\u6216\u5176\u4ed6\u5206\u7ec4\u6570\u636e\uff0c\u652f\u6301\u641c\u7d22\u3001\u5206\u9875\u3001\u6dfb\u52a0\u548c\u5220\u9664\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>\u5b57\u6bb5\u540d\uff08\u5fc5\u586b\uff09</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>label</td>\n<td>\u5b57\u6bb5\u6807\u7b7e</td>\n<td>string | ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rule</td>\n<td>\u6821\u9a8c\u89c4\u5219</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e\u5bf9\u8c61</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis.list</td>\n<td>\u5217\u8868\u67e5\u8be2\u63a5\u53e3\u914d\u7f6e\uff08\u5fc5\u586b\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis.create</td>\n<td>\u521b\u5efa\u6807\u7b7e\u63a5\u53e3\u914d\u7f6e\uff08\u4f20\u5165\u5219\u663e\u793a\u6dfb\u52a0\u6309\u94ae\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis.remove</td>\n<td>\u5220\u9664\u6807\u7b7e\u63a5\u53e3\u914d\u7f6e\uff08\u4f20\u5165\u5219\u663e\u793a\u5220\u9664\u6309\u94ae\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>valueKey</td>\n<td>\u503c\u5b57\u6bb5\u540d</td>\n<td>string</td>\n<td>\'code\'</td>\n</tr>\n<tr>\n<td>labelKey</td>\n<td>\u6807\u7b7e\u5b57\u6bb5\u540d</td>\n<td>string</td>\n<td>\'name\'</td>\n</tr>\n<tr>\n<td>single</td>\n<td>\u662f\u5426\u5355\u9009</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>\u5360\u4f4d\u7b26</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>disabled</td>\n<td>\u662f\u5426\u7981\u7528</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>groupName</td>\n<td>\u6807\u7b7e\u540d\u79f0\uff0c\u7528\u4e8e\u663e\u793a\u6dfb\u52a0/\u5220\u9664\u7b49\u64cd\u4f5c\u6587\u6848</td>\n<td>string</td>\n<td>\'\u6807\u7b7e\'</td>\n</tr>\n</tbody>\n</table>\n<h2>\u529f\u80fd\u7279\u6027</h2>\n<h3>1. \u8868\u683c\u5217\u8868\u5c55\u793a</h3>\n<ul>\n<li>\u4ee5\u8868\u683c\u5f62\u5f0f\u5c55\u793a\u6807\u7b7e\u5217\u8868\uff0c\u5305\u542b\u7f16\u7801\u3001\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f</li>\n<li>\u652f\u6301\u5206\u9875\u663e\u793a</li>\n</ul>\n<h3>2. \u641c\u7d22\u529f\u80fd</h3>\n<ul>\n<li>\u652f\u6301\u5173\u952e\u5b57\u641c\u7d22\u6807\u7b7e</li>\n<li>\u5b9e\u65f6\u8fc7\u6ee4\u641c\u7d22\u7ed3\u679c</li>\n</ul>\n<h3>3. \u6dfb\u52a0\u6807\u7b7e</h3>\n<ul>\n<li>\u70b9\u51fb\u5e95\u90e8"\u6dfb\u52a0\u6807\u7b7e"\u6309\u94ae\u53ef\u6dfb\u52a0\u65b0\u6807\u7b7e</li>\n<li>\u5f39\u51fa\u8868\u5355\u586b\u5199\u7f16\u7801\u3001\u540d\u79f0\u3001\u63cf\u8ff0\u4fe1\u606f</li>\n<li>\u4ec5\u5f53\u4f20\u5165 <code>apis.create</code> \u6216\u5168\u5c40\u914d\u7f6e <code>preset.apis.group.create</code> \u65f6\u663e\u793a</li>\n</ul>\n<h3>4. \u5220\u9664\u6807\u7b7e</h3>\n<ul>\n<li>\u6bcf\u884c\u663e\u793a\u5220\u9664\u64cd\u4f5c\u6309\u94ae</li>\n<li>\u5220\u9664\u524d\u9700\u786e\u8ba4</li>\n<li>\u5982\u679c\u6807\u7b7e\u5df2\u88ab\u9009\u4e2d\uff0c\u4f1a\u81ea\u52a8\u4ece\u5df2\u9009\u5217\u8868\u4e2d\u79fb\u9664</li>\n<li>\u4ec5\u5f53\u4f20\u5165 <code>apis.remove</code> \u6216\u5168\u5c40\u914d\u7f6e <code>preset.apis.group.remove</code> \u65f6\u663e\u793a</li>\n</ul>\n<h3>5. \u591a\u9009/\u5355\u9009</h3>\n<ul>\n<li>\u9ed8\u8ba4\u652f\u6301\u591a\u9009</li>\n<li>\u8bbe\u7f6e <code>single={true}</code> \u5207\u6362\u4e3a\u5355\u9009\u6a21\u5f0f</li>\n</ul>\n<h2>\u4f7f\u7528\u8bf4\u660e</h2>\n<h3>\u57fa\u672c\u7528\u6cd5</h3>\n<pre><code class="language-jsx">import { createWithRemoteLoader } from \'@kne/remote-loader\';\nimport GroupSelect from \'@components/GroupSelect\';\n\nconst FormExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\']\n})(({ remoteModules }) =&gt; {\n const [FormInfo] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n &lt;Form onSubmit={(data) =&gt; console.log(data)}&gt;\n &lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n rule="REQ"\n /&gt;\n &lt;SubmitButton&gt;\u63d0\u4ea4&lt;/SubmitButton&gt;\n &lt;/Form&gt;\n );\n});\n</code></pre>\n<h3>\u81ea\u5b9a\u4e49\u6807\u7b7e\u540d\u79f0</h3>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n groupName="\u6280\u80fd\u6807\u7b7e"\n/&gt;\n</code></pre>\n<h3>\u81ea\u5b9a\u4e49 API</h3>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n apis={{\n list: { url: \'/api/groups\', method: \'GET\' },\n create: { url: \'/api/groups\', method: \'POST\' },\n remove: { url: \'/api/groups/remove\', method: \'POST\' }\n }}\n/&gt;\n</code></pre>\n<h3>\u5355\u9009\u6a21\u5f0f</h3>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="primaryGroup"\n label="\u4e3b\u6280\u80fd\u6807\u7b7e"\n single\n/&gt;\n</code></pre>\n<h3>\u53ea\u8bfb\u6a21\u5f0f\uff08\u4e0d\u663e\u793a\u6dfb\u52a0/\u5220\u9664\u6309\u94ae\uff09</h3>\n<p>\u5f53\u53ea\u4f20\u5165 <code>apis.list</code> \u800c\u4e0d\u4f20\u5165 <code>create</code> \u548c <code>remove</code> \u65f6\uff0c\u7ec4\u4ef6\u5c06\u53ea\u63d0\u4f9b\u9009\u62e9\u529f\u80fd\uff0c\u4e0d\u663e\u793a\u6dfb\u52a0\u548c\u5220\u9664\u6309\u94ae\uff1a</p>\n<pre><code class="language-jsx">&lt;GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n apis={{\n list: { url: \'/api/groups\', method: \'GET\' }\n // \u4e0d\u4f20 create\uff0c\u9690\u85cf\u6dfb\u52a0\u6309\u94ae\n // \u4e0d\u4f20 remove\uff0c\u9690\u85cf\u5220\u9664\u6309\u94ae\n }}\n/&gt;\n</code></pre>\n<h2>\u4f9d\u8d56\u6a21\u5757</h2>\n<ul>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo@useFormModal</code> - \u8868\u5355\u5f39\u7a97</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e\uff08\u7528\u4e8e\u83b7\u53d6\u9ed8\u8ba4 API\uff09</li>\n</ul>\n<h2>\u9ed8\u8ba4 API \u914d\u7f6e</h2>\n<p>\u7ec4\u4ef6\u9ed8\u8ba4\u4f7f\u7528 <code>apis.group</code> \u4e2d\u7684\u63a5\u53e3\u914d\u7f6e\uff1a</p>\n<pre><code class="language-javascript">{\n list: { /* \u5217\u8868\u67e5\u8be2\u63a5\u53e3 */ },\n create: { /* \u521b\u5efa\u6807\u7b7e\u63a5\u53e3 */ },\n remove: { /* \u5220\u9664\u6807\u7b7e\u63a5\u53e3 */ }\n}\n</code></pre>\n<p>\u9700\u8981\u5728\u5168\u5c40 preset \u4e2d\u914d\u7f6e\u76f8\u5e94\u7684 API\uff0c\u6216\u901a\u8fc7 <code>apis</code> \u5c5e\u6027\u4f20\u5165\u3002</p>',example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a GroupSelect \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u652f\u6301\u591a\u9009\u3001\u641c\u7d22\u3001\u6dfb\u52a0\u548c\u5220\u9664\u6807\u7b7e",code:'const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u6280\u80fd\u6807\u7b7e\u9009\u62e9"\n column={1}\n list={[\n <Input name="name" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u6280\u80fd\u6807\u7b7e"\n groupName="\u6280\u80fd\u6807\u7b7e"\n />\n <div style={{ marginTop: 24, textAlign: \'center\' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type="primary">\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5355\u9009\u6a21\u5f0f",description:"\u5c55\u793a GroupSelect \u7684\u5355\u9009\u6a21\u5f0f\uff0c\u9002\u7528\u4e8e\u53ea\u9700\u9009\u62e9\u4e00\u4e2a\u6807\u7b7e\u7684\u573a\u666f",code:'const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst SingleSelectExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n name: \'\u6570\u636e\u5206\u6790\u9879\u76ee\',\n primaryGroup: \'ai\'\n }}\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u4e3b\u6280\u80fd\u6807\u7b7e\u9009\u62e9"\n column={1}\n list={[\n <Input name="name" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <GroupSelect\n name="primaryGroup"\n label="\u4e3b\u6280\u80fd\u6807\u7b7e"\n single\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u4e00\u4e2a\u4e3b\u6280\u80fd\u6807\u7b7e"\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<SingleSelectExample />);\n\n',scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5e26\u521d\u59cb\u503c",description:"\u5c55\u793a GroupSelect \u5e26\u521d\u59cb\u503c\u7684\u4f7f\u7528\u65b9\u5f0f\uff0c\u7528\u4e8e\u7f16\u8f91\u573a\u666f",code:"const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst WithInitialValueExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n name: '\u5168\u6808\u5f00\u53d1\u9879\u76ee',\n groups: [\n { code: 'frontend', name: '\u524d\u7aef\u5f00\u53d1' },\n { code: 'backend', name: '\u540e\u7aef\u5f00\u53d1' },\n { code: 'database', name: '\u6570\u636e\u5e93' }\n ]\n }}\n onSubmit={(data) => {\n console.log('\u63d0\u4ea4\u6570\u636e:', data);\n }}\n >\n <FormInfo\n title=\"\u7f16\u8f91\u9879\u76ee\u6280\u80fd\u6807\u7b7e\"\n column={1}\n list={[\n <Input name=\"name\" label=\"\u9879\u76ee\u540d\u79f0\" rule=\"REQ\" placeholder=\"\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0\" />\n ]}\n />\n <GroupSelect\n name=\"groups\"\n label=\"\u6280\u80fd\u6807\u7b7e\"\n placeholder=\"\u8bf7\u9009\u62e9\u6280\u80fd\u6807\u7b7e\"\n />\n <div style={{ marginTop: 24, textAlign: 'center' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type=\"primary\">\u4fdd\u5b58</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<WithInitialValueExample />);\n\n",scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u53ea\u8bfb\u6a21\u5f0f",description:"\u4e0d\u4f20 create \u548c remove \u63a5\u53e3\u65f6\uff0c\u9690\u85cf\u6dfb\u52a0\u548c\u5220\u9664\u6309\u94ae\uff0c\u9002\u7528\u4e8e\u53ea\u505a\u9009\u62e9\u7684\u573a\u666f",code:'const { default: GroupSelect } = _GroupSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset, groupList } = _mockPreset;\n\nconst ReadonlyExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={{\n name: \'\u53ea\u8bfb\u9879\u76ee\',\n groups: [\n { code: \'frontend\', name: \'\u524d\u7aef\u5f00\u53d1\' },\n { code: \'backend\', name: \'\u540e\u7aef\u5f00\u53d1\' }\n ]\n }}\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u53ea\u8bfb\u6807\u7b7e\u9009\u62e9\uff08\u65e0\u6dfb\u52a0/\u5220\u9664\u529f\u80fd\uff09"\n column={1}\n list={[\n <Input name="name" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <GroupSelect\n name="groups"\n label="\u6280\u80fd\u6807\u7b7e"\n placeholder="\u8bf7\u9009\u62e9\u6280\u80fd\u6807\u7b7e"\n groupName="\u6280\u80fd\u6807\u7b7e"\n apis={{\n // \u53ea\u4f20 list \u63a5\u53e3\uff0c\u4e0d\u4f20 create \u548c remove\uff0c\u9690\u85cf\u6dfb\u52a0\u548c\u5220\u9664\u6309\u94ae\n list: {\n loader: () => groupList.data\n }\n }}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton>\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ReadonlyExample />);\n\n',scope:[{name:"_GroupSelect",packageName:"@components/GroupSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},28537(e,t,n){n.d(t,{A:()=>d});var o=n(52751),a=n(1784),r=n(13050);const d={name:"IntlAdmin",summary:"<p>\u56fd\u9645\u5316\u8bed\u8a00\u5305\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u8bed\u8a00\u7c7b\u578b\u548c\u8bed\u8a00\u5e93\u7684\u5b8c\u6574\u7ba1\u7406\u529f\u80fd\uff0c\u652f\u6301\u591a\u8bed\u8a00\u7ffb\u8bd1\u6587\u672c\u7684\u589e\u5220\u6539\u67e5\u548c\u5ba1\u6838\u6d41\u7a0b\u3002</p>",api:'<h2>IntlAdmin \u7ec4\u4ef6</h2>\n<p>\u56fd\u9645\u5316\u8bed\u8a00\u5305\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u8bed\u8a00\u7c7b\u578b\u548c\u8bed\u8a00\u5e93\u7684\u7ba1\u7406\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u5b50\u7ec4\u4ef6</h2>\n<h3>LangType \u5b50\u7ec4\u4ef6</h3>\n<p>\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406\u7ec4\u4ef6\uff0c\u7ba1\u7406\u652f\u6301\u7684\u8bed\u8a00\u79cd\u7c7b\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>menu</td>\n<td>\u83dc\u5355\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u529f\u80fd\u8bf4\u660e\uff1a</strong></p>\n<ul>\n<li>\u8bed\u8a00\u7c7b\u578b\u5217\u8868\u5c55\u793a</li>\n<li>\u521b\u5efa\u65b0\u7684\u8bed\u8a00\u7c7b\u578b</li>\n<li>\u7f16\u8f91\u8bed\u8a00\u7c7b\u578b\u4fe1\u606f</li>\n<li>\u5220\u9664\u8bed\u8a00\u7c7b\u578b</li>\n<li>\u542f\u7528/\u7981\u7528\u8bed\u8a00\u7c7b\u578b</li>\n</ul>\n<p><strong>\u6570\u636e\u7ed3\u6784\uff1a</strong></p>\n<pre><code class="language-javascript">{\n id: number, // ID\n name: string, // \u540d\u79f0\uff08\u5982\uff1a\u4e2d\u6587\uff08\u7b80\u4f53\uff09\uff09\n code: string, // \u7f16\u7801\uff08\u5982\uff1azh-CN\uff09\n params: string, // \u7ffb\u8bd1\u53c2\u6570\n description: string, // \u63cf\u8ff0\n status: string // \u72b6\u6001\uff1aopen-\u542f\u7528\uff0cclosed-\u7981\u7528\n}\n</code></pre>\n<h3>LangLib \u5b50\u7ec4\u4ef6</h3>\n<p>\u8bed\u8a00\u5e93\u7ba1\u7406\u7ec4\u4ef6\uff0c\u7ba1\u7406\u5404\u8bed\u8a00\u7684\u7ffb\u8bd1\u6587\u672c\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>menu</td>\n<td>\u83dc\u5355\u7ec4\u4ef6</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p><strong>\u529f\u80fd\u8bf4\u660e\uff1a</strong></p>\n<ul>\n<li>\u8bed\u8a00\u5e93\u5217\u8868\u5c55\u793a</li>\n<li>\u6dfb\u52a0\u8bed\u8a00\u5305</li>\n<li>\u7f16\u8f91\u7ffb\u8bd1\u6587\u672c</li>\n<li>\u542f\u7528/\u7981\u7528\u8bed\u8a00\u5305</li>\n</ul>\n<p><strong>\u6570\u636e\u7ed3\u6784\uff1a</strong></p>\n<pre><code class="language-javascript">{\n id: number, // ID\n namespace: string, // \u547d\u540d\u7a7a\u95f4\uff08\u5982\uff1acomponents-admin:User\uff09\n locale: string, // \u8bed\u8a00\uff08\u5982\uff1azh-CN\uff09\n code: string, // \u7f16\u7801\uff08\u5982\uff1aAddUser\uff09\n target: string, // \u76ee\u6807\u503c\uff08\u7ffb\u8bd1\u6587\u672c\uff09\n reviewStatus: string, // \u5ba1\u6838\u72b6\u6001\uff1aapproved-\u5df2\u901a\u8fc7\uff0cpending-\u5f85\u5ba1\u6838\uff0crejected-\u5df2\u62d2\u7edd\n status: string // \u72b6\u6001\uff1aopen-\u542f\u7528\uff0cclosed-\u7981\u7528\n}\n</code></pre>\n<h2>BizUnit \u914d\u7f6e</h2>\n<p>LangType \u548c LangLib \u5b50\u7ec4\u4ef6\u90fd\u57fa\u4e8e BizUnit \u5b9e\u73b0\uff0c\u5177\u6709\u4ee5\u4e0b\u6807\u51c6\u529f\u80fd\uff1a</p>\n<h3>LangType \u914d\u7f6e</h3>\n<ul>\n<li><strong>apis</strong>: list, create, save, remove, setStatus</li>\n<li><strong>options.bizName</strong>: \'\u8bed\u8a00\u79cd\u7c7b\'</li>\n<li><strong>\u5217\u914d\u7f6e</strong>: ID\u3001\u540d\u79f0\u3001\u7f16\u7801\u3001\u7ffb\u8bd1\u53c2\u6570\u3001\u63cf\u8ff0\u3001\u72b6\u6001</li>\n</ul>\n<h3>LangLib \u914d\u7f6e</h3>\n<ul>\n<li><strong>apis</strong>: list, create, save, setStatus</li>\n<li><strong>\u5217\u914d\u7f6e</strong>: ID\u3001\u547d\u540d\u7a7a\u95f4\u3001\u8bed\u8a00\u3001\u7f16\u7801\u3001\u76ee\u6807\u503c\u3001\u5ba1\u6838\u72b6\u6001\u3001\u72b6\u6001</li>\n</ul>\n<h2>\u4f9d\u8d56\u7ec4\u4ef6</h2>\n<p>IntlAdmin \u7ec4\u4ef6\u4f9d\u8d56\u4ee5\u4e0b\u6a21\u5757\uff1a</p>\n<ul>\n<li><code>@components/BizUnit</code> - \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6</li>\n<li><code>components-core:Menu</code> - \u83dc\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e</li>\n<li><code>components-core:Layout@TablePage</code> - \u8868\u683c\u9875\u9762\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n</ul>\n<h2>\u8def\u7531\u7ed3\u6784</h2>\n<pre><code>/IntlAdmin -&gt; LangType \u7ec4\u4ef6\uff08\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406\uff09\n/IntlAdmin/lang-lib -&gt; LangLib \u7ec4\u4ef6\uff08\u8bed\u8a00\u5e93\u7ba1\u7406\uff09\n</code></pre>',example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"IntlAdmin \u7ec4\u4ef6\u7684\u5b8c\u6574\u529f\u80fd\u5c55\u793a\uff0c\u5305\u542b\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406\u548c\u8bed\u8a00\u5e93\u7ba1\u7406\u4e24\u4e2a\u5b50\u6a21\u5757\uff0c\u901a\u8fc7\u5de6\u4fa7\u83dc\u5355\u8fdb\u884c\u5207\u6362",code:'const { default: IntlAdmin } = _IntlAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useNavigate, Navigate } = reactRouterDom;\nconst { Route, Routes } = reactRouterDom;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n const navigate = useNavigate();\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path="/IntlAdmin/*"\n element={\n <IntlAdmin\n baseUrl="/IntlAdmin"\n pageProps={{\n menuFixed: false\n }}\n />\n }\n />\n <Route path="/*" element={<Navigate to="/IntlAdmin" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_IntlAdmin",packageName:"@components/IntlAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:n(94679)}]},{title:"\u8bed\u8a00\u7c7b\u578b\u7ba1\u7406",description:"LangType \u5b50\u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528\uff0c\u5c55\u793a\u8bed\u8a00\u7c7b\u578b\u7684\u5217\u8868\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u548c\u72b6\u6001\u5207\u6362\u529f\u80fd",code:"const { default: IntlAdmin } = _IntlAdmin;\nconst { LangType } = IntlAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst LangTypeExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <LangType\n pageProps={{\n menuFixed: false\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<LangTypeExample />);\n\n",scope:[{name:"_IntlAdmin",packageName:"@components/IntlAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u8bed\u8a00\u5e93\u7ba1\u7406",description:"LangLib \u5b50\u7ec4\u4ef6\u5355\u72ec\u4f7f\u7528\uff0c\u5c55\u793a\u8bed\u8a00\u5e93\u7684\u5217\u8868\u3001\u6dfb\u52a0\u548c\u7f16\u8f91\u7ffb\u8bd1\u6587\u672c\u529f\u80fd",code:"const { default: IntlAdmin } = _IntlAdmin;\nconst { LangLib } = IntlAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst LangLibExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <LangLib\n pageProps={{\n menuFixed: false\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<LangLibExample />);\n\n",scope:[{name:"_IntlAdmin",packageName:"@components/IntlAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},19319(e,t,n){n.d(t,{A:()=>o});const o={name:"Language",summary:"<p>\u5207\u6362\u7cfb\u7edf\u8bed\u8a00</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!1,className:"Language_4994a",style:".Language_4994a .example-driver-preview {\n background: #999;\n}",list:[{title:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u6807\u9898",description:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u8bf4\u660e",code:"const { default: Language } = _Language;\nconst BaseExample = () => {\n return (\n <>\n <Language list={[\n { label: '\u4e2d\u6587', value: 'zh-CN' },\n { label: 'EN', value: 'en-US' },\n { label: '\u7e41\u4f53\u4e2d\u6587', value: 'zh-TW' },\n { label: '\u65e5\u672c\u8a9e', value: 'ja-JP' }\n ]}/>\n <Language\n colorful={false}\n list={[\n { label: '\u4e2d\u6587', value: 'zh-CN' },\n { label: 'EN', value: 'en-US' },\n { label: '\u7e41\u4f53\u4e2d\u6587', value: 'zh-TW' },\n { label: '\u65e5\u672c\u8a9e', value: 'ja-JP' }\n ]}\n />\n </>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Language",packageName:"@components/Language",component:n(35795)}]}]}}},1266(e,t,n){n.d(t,{A:()=>o});const o={name:"LoginIllustration",summary:"<p>\u7528\u6765\u5b9e\u73b0\u4e00\u4e9b\u7cbe\u7f8e\u7684\u767b\u5f55\u52a8\u753b</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u6807\u9898",description:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u8bf4\u660e",code:"const { default: LoginIllustration } = _LoginIllustration;\nconst BaseExample = () => {\n return (\n <div style={{ width: '400px', height: '500px' }}>\n <LoginIllustration />\n </div>\n );\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_LoginIllustration",packageName:"@components/LoginIllustration",component:n(64948)}]}]}}},82984(e,t,n){n.d(t,{A:()=>o});const o={name:"MessageManger",summary:"<p>\u6d88\u606f\u7ba1\u7406</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u6807\u9898",description:"\u8fd9\u91cc\u586b\u5199\u793a\u4f8b\u8bf4\u660e",code:"const {default:MessageManger} = _MessageManger;\nconst BaseExample = ()=>{\n return <MessageManger />;\n};\n\nrender(<BaseExample />);\n\n",scope:[{name:"_MessageManger",packageName:"@components/MessageManger",component:n(97594)}]}]}}},48537(e,t,n){n.d(t,{A:()=>d});var o=n(71859),a=n(1784),r=n(13050);const d={name:"Signature",summary:"<p>\u7b7e\u540d\u5bc6\u94a5\u7ba1\u7406\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u7b7e\u540d\u5bc6\u94a5\u7684\u521b\u5efa\u3001\u9a8c\u8bc1\u3001\u542f\u7528/\u7981\u7528\u548c\u5220\u9664\u529f\u80fd\uff0c\u652f\u6301\u5bc6\u94a5\u5217\u8868\u5c55\u793a\u548c\u7528\u6237\u5173\u8054\u7ba1\u7406\u3002</p>",api:"<h2>Signature \u7ec4\u4ef6</h2>\n<p>\u7b7e\u540d\u5bc6\u94a5\u7ba1\u7406\u7ec4\u4ef6\uff0c\u57fa\u4e8e BizUnit \u5c01\u88c5\uff0c\u63d0\u4f9b\u7b7e\u540d\u5bc6\u94a5\u7684\u5217\u8868\u5c55\u793a\u3001\u521b\u5efa\u3001\u9a8c\u8bc1\u3001\u542f\u7528/\u7981\u7528\u548c\u5220\u9664\u529f\u80fd\u3002</p>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\u65e0</td>\n<td>Signature \u7ec4\u4ef6\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u9875\u9762\u7ec4\u4ef6\uff0c\u4e0d\u9700\u8981\u4f20\u5165\u5c5e\u6027</td>\n<td>-</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u529f\u80fd\u8bf4\u660e</h2>\n<p>Signature \u7ec4\u4ef6\u57fa\u4e8e BizUnit \u5b9e\u73b0\uff0c\u5305\u542b\u4ee5\u4e0b\u6838\u5fc3\u529f\u80fd\uff1a</p>\n<h3>1. \u5bc6\u94a5\u5217\u8868\u5c55\u793a</h3>\n<ul>\n<li>\u663e\u793a\u6240\u6709\u7b7e\u540d\u5bc6\u94a5\u7684\u5217\u8868</li>\n<li>\u5305\u542b AppId\u3001SecretKey\u3001\u6240\u5c5e\u7528\u6237\u3001\u63cf\u8ff0\u3001\u6700\u540e\u8bbf\u95ee\u65f6\u95f4\u3001\u72b6\u6001\u3001\u521b\u5efa\u65f6\u95f4\u7b49\u4fe1\u606f</li>\n<li>\u652f\u6301\u5206\u9875\u5c55\u793a</li>\n</ul>\n<h3>2. \u6dfb\u52a0\u5bc6\u94a5</h3>\n<ul>\n<li>\u9009\u62e9\u5bc6\u94a5\u6240\u5c5e\u7528\u6237</li>\n<li>\u586b\u5199\u5bc6\u94a5\u63cf\u8ff0\uff08\u6700\u591a100\u5b57\u7b26\uff09</li>\n<li>\u521b\u5efa\u6210\u529f\u540e\u5f39\u7a97\u5c55\u793a AppId \u548c SecretKey\uff0c\u9700\u59a5\u5584\u4fdd\u5b58</li>\n</ul>\n<h3>3. \u9a8c\u8bc1\u5bc6\u94a5</h3>\n<ul>\n<li>\u8f93\u5165\u7b7e\u540d\u5185\u5bb9</li>\n<li>\u8f93\u5165\u65f6\u95f4\u6233\uff08\u6570\u5b57\uff09</li>\n<li>\u8f93\u5165\u8fc7\u671f\u65f6\u95f4\uff08\u6570\u5b57\uff09</li>\n<li>\u9a8c\u8bc1\u5bc6\u94a5\u662f\u5426\u6709\u6548</li>\n</ul>\n<h3>4. \u542f\u7528/\u7981\u7528\u5bc6\u94a5</h3>\n<ul>\n<li>\u7981\u7528\u5bc6\u94a5\u540e\u5c06\u62d2\u7edd\u8be5\u5bc6\u94a5\u7684\u6240\u6709\u8bf7\u6c42</li>\n<li>\u542f\u7528\u5bc6\u94a5\u540e\u5c06\u5141\u8bb8\u8be5\u5bc6\u94a5\u8bbf\u95ee\u8bf7\u6c42</li>\n</ul>\n<h3>5. \u5220\u9664\u5bc6\u94a5</h3>\n<ul>\n<li>\u53ea\u80fd\u5220\u9664\u5df2\u7981\u7528\u7684\u5bc6\u94a5</li>\n<li>\u5220\u9664\u64cd\u4f5c\u9700\u8981\u786e\u8ba4</li>\n</ul>\n<h2>getColumns \u51fd\u6570</h2>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>formatMessage</td>\n<td>\u56fd\u9645\u5316\u683c\u5f0f\u5316\u51fd\u6570</td>\n<td>(descriptor) =&gt; string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p>\u8fd4\u56de\u503c\uff1aTablePage \u7684 columns \u914d\u7f6e\u6570\u7ec4</p>\n<h2>\u6570\u636e\u7ed3\u6784</h2>\n<h3>\u5bc6\u94a5\u6570\u636e\u5bf9\u8c61</h3>\n<pre><code class=\"language-javascript\">{\n appId: string, // \u5e94\u7528ID\n secretKey: string, // \u5bc6\u94a5\n user: { // \u6240\u5c5e\u7528\u6237\n id: number,\n nickname: string,\n email: string,\n phone: string\n },\n description: string, // \u63cf\u8ff0\n lastVisitedAt: string, // \u6700\u540e\u8bbf\u95ee\u65f6\u95f4\n status: number, // \u72b6\u6001\uff1a0-\u542f\u7528\uff0c1-\u7981\u7528\n createdAt: string // \u521b\u5efa\u65f6\u95f4\n}\n</code></pre>\n<h2>BizUnit \u914d\u7f6e</h2>\n<p>Signature \u7ec4\u4ef6\u4f7f\u7528\u4ee5\u4e0b BizUnit \u914d\u7f6e\uff1a</p>\n<h3>apis \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>list</td>\n<td>\u5217\u8868\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>remove</td>\n<td>\u5220\u9664\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n<tr>\n<td>setStatus</td>\n<td>\u72b6\u6001\u5207\u6362\u63a5\u53e3\u914d\u7f6e</td>\n<td>Object</td>\n</tr>\n</tbody>\n</table>\n<h3>options \u914d\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bizName</td>\n<td>\u4e1a\u52a1\u540d\u79f0</td>\n<td>string</td>\n<td>'\u5bc6\u94a5'</td>\n</tr>\n<tr>\n<td>openStatus</td>\n<td>\u542f\u7528\u72b6\u6001\u503c</td>\n<td>number</td>\n<td>0</td>\n</tr>\n<tr>\n<td>closedStatus</td>\n<td>\u7981\u7528\u72b6\u6001\u503c</td>\n<td>number</td>\n<td>1</td>\n</tr>\n<tr>\n<td>openButtonProps</td>\n<td>\u542f\u7528\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>closeButtonProps</td>\n<td>\u7981\u7528\u6309\u94ae\u5c5e\u6027</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>closeMessage</td>\n<td>\u7981\u7528\u786e\u8ba4\u63d0\u793a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>removeMessage</td>\n<td>\u5220\u9664\u786e\u8ba4\u63d0\u793a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae</h3>\n<p>\u901a\u8fc7 <code>getActionList</code> \u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\uff1a</p>\n<ul>\n<li><strong>\u9a8c\u8bc1\u6309\u94ae</strong> - \u81ea\u5b9a\u4e49\u7684\u9a8c\u8bc1\u5bc6\u94a5\u529f\u80fd\u6309\u94ae</li>\n<li><strong>\u542f\u7528/\u7981\u7528\u6309\u94ae</strong> - \u57fa\u4e8e BizUnit \u5185\u7f6e\u7684\u72b6\u6001\u5207\u6362\u529f\u80fd</li>\n<li><strong>\u5220\u9664\u6309\u94ae</strong> - \u57fa\u4e8e BizUnit \u5185\u7f6e\u7684\u5220\u9664\u529f\u80fd\uff0c\u4ec5\u5bf9\u5df2\u7981\u7528\u5bc6\u94a5\u663e\u793a</li>\n</ul>\n<h2>\u4f9d\u8d56\u7ec4\u4ef6</h2>\n<p>Signature \u7ec4\u4ef6\u4f9d\u8d56\u4ee5\u4e0b\u6a21\u5757\uff1a</p>\n<ul>\n<li><code>@components/BizUnit</code> - \u4e1a\u52a1\u5355\u5143\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e</li>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:FormInfo@useFormModal</code> - \u8868\u5355\u5f39\u7a97</li>\n<li><code>components-core:InfoPage@CentralContent</code> - \u4fe1\u606f\u5c55\u793a\u7ec4\u4ef6</li>\n</ul>\n<h2>\u56fd\u9645\u5316</h2>\n<p>\u7ec4\u4ef6\u652f\u6301\u4e2d\u82f1\u6587\u56fd\u9645\u5316\uff0c\u9ed8\u8ba4\u8bed\u8a00\u4e3a\u4e2d\u6587\u3002</p>\n<h3>\u53ef\u7528\u7684\u56fd\u9645\u5316 key</h3>\n<ul>\n<li><code>AddSecretKey</code> - \u6dfb\u52a0\u5bc6\u94a5</li>\n<li><code>Verify</code> - \u9a8c\u8bc1</li>\n<li><code>Enabled</code> - \u542f\u7528</li>\n<li><code>Disabled</code> - \u7981\u7528</li>\n<li><code>BelongUser</code> - \u6240\u5c5e\u7528\u6237</li>\n<li><code>Description</code> - \u63cf\u8ff0</li>\n<li><code>Status</code> - \u72b6\u6001</li>\n<li><code>CreatedAt</code> - \u521b\u5efa\u65f6\u95f4</li>\n<li><code>LastVisitedAt</code> - \u6700\u540e\u8bbf\u95ee\u65f6\u95f4</li>\n<li><code>SecretKeyGenerated</code> - \u5bc6\u94a5\u751f\u6210\u6210\u529f</li>\n<li><code>SaveSecretKeyWarning</code> - \u4fdd\u5b58\u5bc6\u94a5\u8b66\u544a</li>\n<li><code>VerifySuccess</code> - \u9a8c\u8bc1\u6210\u529f</li>\n<li><code>VerifyFailed</code> - \u9a8c\u8bc1\u5931\u8d25</li>\n<li><code>DisableSecretKeyMessage</code> - \u7981\u7528\u5bc6\u94a5\u786e\u8ba4\u63d0\u793a</li>\n</ul>",example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"Signature \u7ec4\u4ef6\u7684\u5b8c\u6574\u529f\u80fd\u5c55\u793a\uff0c\u5305\u62ec\u5bc6\u94a5\u5217\u8868\u3001\u6dfb\u52a0\u5bc6\u94a5\u3001\u9a8c\u8bc1\u5bc6\u94a5\u3001\u542f\u7528/\u7981\u7528\u548c\u5220\u9664\u5bc6\u94a5\u7b49\u529f\u80fd",code:"const { default: Signature } = _Signature;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Signature />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Signature",packageName:"@components/Signature",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u8868\u683c\u5217\u914d\u7f6e",description:"\u4f7f\u7528 getColumns \u51fd\u6570\u83b7\u53d6\u7b7e\u540d\u5217\u8868\u7684\u8868\u683c\u5217\u914d\u7f6e\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u56fd\u9645\u5316\u5c55\u793a",code:"const { default: mockPreset } = _mockPreset;\nconst { getColumns } = _Signature;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Table } = antd;\n\nconst GetColumnsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n \n // \u6a21\u62df\u56fd\u9645\u5316\u51fd\u6570\n const formatMessage = ({ id }) => {\n const messages = {\n 'BelongUser': '\u6240\u5c5e\u7528\u6237',\n 'Description': '\u63cf\u8ff0',\n 'LastVisitedAt': '\u6700\u540e\u8bbf\u95ee\u65f6\u95f4',\n 'Status': '\u72b6\u6001',\n 'CreatedAt': '\u521b\u5efa\u65f6\u95f4',\n 'Enabled': '\u542f\u7528',\n 'Disabled': '\u7981\u7528'\n };\n return messages[id] || id;\n };\n\n // \u83b7\u53d6\u8868\u683c\u5217\u914d\u7f6e\n const columns = getColumns({ formatMessage });\n\n // \u6a21\u62df\u6570\u636e\n const data = [\n {\n id: 1,\n appId: 'app_20240308001',\n secretKey: 'sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6',\n user: {\n nickname: '\u5f20\u4e09',\n email: 'zhangsan@example.com',\n phone: '138****1234'\n },\n description: '\u7528\u4e8eAPI\u5bf9\u63a5\u7684\u4e3b\u5bc6\u94a5',\n lastVisitedAt: '2024-03-08 14:30:00',\n status: 0,\n createdAt: '2024-03-01 09:00:00'\n },\n {\n id: 2,\n appId: 'app_20240305002',\n secretKey: 'sk_z9y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4',\n user: {\n nickname: '\u674e\u56db',\n email: 'lisi@example.com',\n phone: '139****5678'\n },\n description: '\u6d4b\u8bd5\u73af\u5883\u4f7f\u7528\u7684\u7b7e\u540d\u5bc6\u94a5',\n lastVisitedAt: '2024-03-05 16:20:00',\n status: 1,\n createdAt: '2024-02-28 11:00:00'\n }\n ];\n\n return (\n <PureGlobal preset={mockPreset}>\n <Table\n dataSource={data}\n columns={columns.map(col => ({\n ...col,\n key: col.name,\n dataIndex: col.name,\n title: col.title,\n render: col.type === 'tag' \n ? (value, record) => {\n const tagData = col.valueOf(record, { name: col.name });\n return <span style={{ color: tagData.type === 'success' ? '#52c41a' : '#ff4d4f' }}>{tagData.text}</span>;\n }\n : col.type === 'datetime'\n ? (value) => value\n : col.type === 'other' && col.valueOf\n ? (value, record) => col.valueOf(record)\n : (value) => value\n }))}\n pagination={false}\n />\n </PureGlobal>\n );\n});\n\nrender(<GetColumnsExample />);\n\n",scope:[{name:"_Signature",packageName:"@components/Signature",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]}]}}},37726(e,t,n){n.d(t,{A:()=>l});var o=n(45272),a=n(1784),r=n(13050),d=n(94679),s=n(55199);const l={name:"Task",summary:"<p>\u4efb\u52a1\u7ba1\u7406\u7ec4\u4ef6\uff0c\u7528\u4e8e\u5c55\u793a\u548c\u7ba1\u7406\u7cfb\u7edf\u4e2d\u7684\u5f02\u6b65\u4efb\u52a1\u3002\u652f\u6301\u67e5\u770b\u6211\u7684\u4efb\u52a1\u548c\u5168\u90e8\u4efb\u52a1\uff0c\u63d0\u4f9b\u4efb\u52a1\u7b5b\u9009\u3001\u6392\u5e8f\u3001\u6279\u91cf\u64cd\u4f5c\u7b49\u529f\u80fd\u3002\u5305\u542b\u4efb\u52a1\u53d6\u6d88\u3001\u91cd\u8bd5\u3001\u67e5\u770b\u9519\u8bef\u8be6\u60c5\u548c\u7ed3\u679c\u8be6\u60c5\u7b49\u64cd\u4f5c\u3002</p>",api:"<h2>Task \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u83dc\u5355\u5bfc\u822a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570\uff0c\u63a5\u6536\u4efb\u52a1\u6570\u636e\u8fd4\u56de\u6309\u94ae\u7ec4\u4ef6</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>MyTask \u5b50\u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u83dc\u5355\u5bfc\u822a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>AllTask \u5b50\u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u7531\u8def\u5f84\uff0c\u7528\u4e8e\u83dc\u5355\u5bfc\u822a</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>Actions \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getManualTaskAction</td>\n<td>\u624b\u52a8\u4efb\u52a1\u7684\u81ea\u5b9a\u4e49\u64cd\u4f5c\u6309\u94ae\u6e32\u67d3\u51fd\u6570</td>\n<td>(data) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u64cd\u4f5c\u6210\u529f\u540e\u7684\u56de\u8c03\u51fd\u6570</td>\n<td>() =&gt; void</td>\n<td>-</td>\n</tr>\n<tr>\n<td>type</td>\n<td>\u6309\u94ae\u7c7b\u578b</td>\n<td>'default' | 'primary' | 'link'</td>\n<td>'default'</td>\n</tr>\n<tr>\n<td>moreType</td>\n<td>\u66f4\u591a\u6309\u94ae\u7684\u7c7b\u578b</td>\n<td>'default' | 'primary' | 'link'</td>\n<td>'link'</td>\n</tr>\n<tr>\n<td>itemClassName</td>\n<td>\u6309\u94ae\u9879\u7684\u81ea\u5b9a\u4e49\u7c7b\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3\u51fd\u6570\uff0c\u63a5\u6536\u64cd\u4f5c\u5217\u8868</td>\n<td>({ list }) =&gt; ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>CancelTask \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u53d6\u6d88\u6210\u529f\u540e\u7684\u56de\u8c03\u51fd\u6570</td>\n<td>() =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>RetryTask \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u5355\u4e2a\u4efb\u52a1\u6570\u636e\u5bf9\u8c61\uff08\u5355\u4e2a\u91cd\u8bd5\u65f6\u4f7f\u7528\uff09</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>taskIds</td>\n<td>\u4efb\u52a1ID\u6570\u7ec4\uff08\u6279\u91cf\u91cd\u8bd5\u65f6\u4f7f\u7528\uff09</td>\n<td>number[]</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u91cd\u8bd5\u6210\u529f\u540e\u7684\u56de\u8c03\u51fd\u6570</td>\n<td>() =&gt; void</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>ErrorDetail \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61\uff0c\u5305\u542binput\u548cerror\u5b57\u6bb5</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>ResultDetail \u7ec4\u4ef6</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u4efb\u52a1\u6570\u636e\u5bf9\u8c61\uff0c\u5305\u542binput\u548coutput\u5b57\u6bb5</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>getColumns \u51fd\u6570</h2>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>formatMessage</td>\n<td>\u56fd\u9645\u5316\u683c\u5f0f\u5316\u51fd\u6570</td>\n<td>(descriptor) =&gt; string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<p>\u8fd4\u56de\u503c\uff1aTablePage \u7684 columns \u914d\u7f6e\u6570\u7ec4</p>\n<h2>enums \u679a\u4e3e</h2>\n<h3>taskStatus</h3>\n<p>\u4efb\u52a1\u72b6\u6001\u679a\u4e3e\uff0c\u5305\u542b\u4ee5\u4e0b\u503c\uff1a</p>\n<ul>\n<li>pending: \u7b49\u5f85\u6267\u884c</li>\n<li>running: \u6267\u884c\u4e2d</li>\n<li>waiting: \u7b49\u5f85\u64cd\u4f5c</li>\n<li>success: \u6210\u529f</li>\n<li>failed: \u5931\u8d25</li>\n<li>canceled: \u53d6\u6d88</li>\n</ul>",example:{isFull:!0,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"Task \u7ec4\u4ef6\u7684\u57fa\u7840\u4f7f\u7528\u65b9\u5f0f\uff0c\u5c55\u793a\u6211\u7684\u4efb\u52a1\u5217\u8868\uff0c\u5305\u542b\u4efb\u52a1\u7b5b\u9009\u3001\u6392\u5e8f\u548c\u64cd\u4f5c\u529f\u80fd",code:"const { default: Task } = _Task;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useNavigate, Navigate } = reactRouterDom;\nconst { Button, Flex } = antd;\nconst { Route, Routes } = reactRouterDom;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n const navigate = useNavigate();\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path=\"/Task/task/*\"\n element={\n <Task\n baseUrl=\"/Task\"\n pageProps={{\n menuFixed: false\n }}>\n <Flex gap={8}>\n <Button\n onClick={() => {\n navigate('/Task/task');\n }}>\n \u6211\u7684\u4efb\u52a1\n </Button>\n <Button\n onClick={() => {\n navigate('/Task/task/all');\n }}>\n \u5168\u90e8\u4efb\u52a1\n </Button>\n </Flex>\n </Task>\n }\n />\n <Route path=\"*\" element={<Navigate to=\"/Task/task\" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d},{name:"antd",packageName:"antd",component:s}]},{title:"\u6211\u7684\u4efb\u52a1",description:"\u5c55\u793a\u6211\u7684\u4efb\u52a1\u5217\u8868\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u624b\u52a8\u4efb\u52a1\u7684\u64cd\u4f5c\u6309\u94ae\uff0c\u53ea\u663e\u793a\u624b\u52a8\u6267\u884c\u7684\u4efb\u52a1",code:"const { MyTask } = _Task;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { BrowserRouter } = reactRouterDom;\nconst { Button } = antd;\n\nconst MyTaskExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n\n // \u81ea\u5b9a\u4e49\u624b\u52a8\u4efb\u52a1\u7684\u64cd\u4f5c\u6309\u94ae\n const getManualTaskAction = data => {\n return props => (\n <Button\n {...props}\n onClick={() => {\n console.log('\u5b8c\u6210\u4efb\u52a1:', data);\n props.onSuccess?.();\n }}>\n \u5b8c\u6210\u4efb\u52a1\n </Button>\n );\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <MyTask\n baseUrl=\"/Task\"\n getManualTaskAction={getManualTaskAction}\n pageProps={{\n menuOpen: false,\n menuFixed: false,\n menu: null\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<MyTaskExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d},{name:"antd",packageName:"antd",component:s}]},{title:"\u5168\u90e8\u4efb\u52a1",description:"\u5c55\u793a\u5168\u90e8\u4efb\u52a1\u5217\u8868\uff0c\u5305\u542b\u624b\u52a8\u6267\u884c\u548c\u81ea\u52a8\u6267\u884c\u7684\u4efb\u52a1\uff0c\u652f\u6301\u6279\u91cf\u91cd\u8bd5\u5931\u8d25\u7684\u4efb\u52a1",code:"const { AllTask } = _Task;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { BrowserRouter, Routes, Route } = reactRouterDom;\n\nconst AllTaskExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <AllTask\n baseUrl=\"/Task\"\n pageProps={{\n menu: null,\n menuOpen: false,\n menuFixed: false\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<AllTaskExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]},{title:"\u4efb\u52a1\u64cd\u4f5c\u6309\u94ae",description:"Actions \u7ec4\u4ef6\u6839\u636e\u4efb\u52a1\u72b6\u6001\u81ea\u52a8\u663e\u793a\u76f8\u5e94\u7684\u64cd\u4f5c\u6309\u94ae\uff0c\u5982\u53d6\u6d88\u3001\u91cd\u8bd5\u3001\u67e5\u770b\u9519\u8bef\u8be6\u60c5\u3001\u67e5\u770b\u7ed3\u679c\u7b49",code:"const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Space, Button } = antd;\n\nconst ActionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n const { useState } = React;\n const [refreshKey, setRefreshKey] = useState(0);\n\n // \u83b7\u53d6\u4e0d\u540c\u72b6\u6001\u7684\u4efb\u52a1\u6570\u636e\n const pendingTask = taskList.data.pageData.find(task => task.status === 'pending');\n const runningTask = taskList.data.pageData.find(task => task.status === 'running');\n const failedTask = taskList.data.pageData.find(task => task.status === 'failed');\n const successTask = taskList.data.pageData.find(task => task.status === 'success');\n const canceledTask = taskList.data.pageData.find(task => task.status === 'canceled');\n\n const handleSuccess = () => {\n console.log('\u64cd\u4f5c\u6210\u529f');\n setRefreshKey(prev => prev + 1);\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction=\"vertical\" size=\"large\" style={{ width: '100%' }}>\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u7b49\u5f85\u6267\u884c\u7684\u624b\u52a8\u4efb\u52a1\uff08\u663e\u793a\u5b8c\u6210\u548c\u53d6\u6d88\u6309\u94ae\uff09\uff1a</div>\n <Actions\n data={pendingTask}\n type=\"primary\"\n onSuccess={handleSuccess}\n getManualTaskAction={data => {\n return props => (\n <Button\n {...props}\n onClick={() => {\n console.log('\u5b8c\u6210\u4efb\u52a1:', data);\n props.onSuccess?.();\n }}>\n \u5b8c\u6210\n </Button>\n );\n }}\n />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u6267\u884c\u4e2d\u7684\u4efb\u52a1\uff08\u663e\u793a\u53d6\u6d88\u6309\u94ae\uff09\uff1a</div>\n <Actions data={runningTask} type=\"default\" onSuccess={handleSuccess} />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u5931\u8d25\u7684\u4efb\u52a1\uff08\u663e\u793a\u91cd\u8bd5\u548c\u9519\u8bef\u8be6\u60c5\u6309\u94ae\uff09\uff1a</div>\n <Actions data={failedTask} type=\"link\" onSuccess={handleSuccess} />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u6210\u529f\u7684\u4efb\u52a1\uff08\u663e\u793a\u67e5\u770b\u7ed3\u679c\u6309\u94ae\uff09\uff1a</div>\n <Actions data={successTask} type=\"link\" onSuccess={handleSuccess} />\n </div>\n\n <div>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>\u5df2\u53d6\u6d88\u7684\u4efb\u52a1\uff08\u663e\u793a\u91cd\u8bd5\u6309\u94ae\uff09\uff1a</div>\n <Actions data={canceledTask} type=\"default\" onSuccess={handleSuccess} />\n </div>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<ActionsExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u53d6\u6d88\u4efb\u52a1",description:"\u5c55\u793a\u53d6\u6d88\u4efb\u52a1\u529f\u80fd\uff0c\u652f\u6301\u53d6\u6d88\u7b49\u5f85\u6267\u884c\u548c\u6267\u884c\u4e2d\u7684\u4efb\u52a1",code:'const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Space, Card } = antd;\n\nconst CancelTaskExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n const { useState } = React;\n\n // \u83b7\u53d6\u53ef\u4ee5\u53d6\u6d88\u7684\u4efb\u52a1\n const pendingTask = taskList.data.pageData.find(task => task.status === \'pending\');\n const runningTask = taskList.data.pageData.find(task => task.status === \'running\');\n\n const handleSuccess = () => {\n console.log(\'\u4efb\u52a1\u5df2\u53d6\u6d88\');\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction="vertical" size="middle" style={{ width: \'100%\' }}>\n <Card title="\u7b49\u5f85\u6267\u884c\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{pendingTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{pendingTask.status}\n </div>\n <Actions data={pendingTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n\n <Card title="\u6267\u884c\u4e2d\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{runningTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{runningTask.status}\n </div>\n <Actions data={runningTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<CancelTaskExample />);\n\n',scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u91cd\u8bd5\u4efb\u52a1",description:"\u5c55\u793a\u91cd\u8bd5\u4efb\u52a1\u529f\u80fd\uff0c\u652f\u6301\u91cd\u8bd5\u5931\u8d25\u548c\u5df2\u53d6\u6d88\u7684\u4efb\u52a1",code:'const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Space, Card } = antd;\n\nconst RetryTaskExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n // \u83b7\u53d6\u53ef\u4ee5\u91cd\u8bd5\u7684\u4efb\u52a1\n const failedTask = taskList.data.pageData.find(task => task.status === \'failed\');\n const canceledTask = taskList.data.pageData.find(task => task.status === \'canceled\');\n\n const handleSuccess = () => {\n console.log(\'\u4efb\u52a1\u5df2\u91cd\u65b0\u63d0\u4ea4\u6267\u884c\');\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction="vertical" size="middle" style={{ width: \'100%\' }}>\n <Card title="\u5931\u8d25\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{failedTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{failedTask.status}\n </div>\n <div style={{ marginBottom: 8, color: \'#ff4d4f\' }}>\n \u9519\u8bef\u4fe1\u606f\uff1a{failedTask.error.message}\n </div>\n <Actions data={failedTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n\n <Card title="\u5df2\u53d6\u6d88\u7684\u4efb\u52a1" size="small">\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u540d\u79f0\uff1a{canceledTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n \u4efb\u52a1\u72b6\u6001\uff1a{canceledTask.status}\n </div>\n <Actions data={canceledTask} type="primary" onSuccess={handleSuccess} />\n </Card>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<RetryTaskExample />);\n\n',scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u9519\u8bef\u8be6\u60c5",description:"\u5c55\u793a\u5931\u8d25\u4efb\u52a1\u7684\u9519\u8bef\u8be6\u60c5\uff0c\u5305\u62ec\u8f93\u5165\u53c2\u6570\u548c\u9519\u8bef\u4fe1\u606f",code:"const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card } = antd;\n\nconst ErrorDetailExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n // \u83b7\u53d6\u5931\u8d25\u7684\u4efb\u52a1\n const failedTask = taskList.data.pageData.find(task => task.status === 'failed');\n\n return (\n <PureGlobal preset={mockPreset}>\n <Card title=\"\u5931\u8d25\u4efb\u52a1\u8be6\u60c5\" size=\"small\">\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1ID\uff1a</strong>{failedTask.id}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u540d\u79f0\uff1a</strong>{failedTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u7c7b\u578b\uff1a</strong>{failedTask.type}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u72b6\u6001\uff1a</strong>\n <span style={{ color: '#ff4d4f' }}>{failedTask.status}</span>\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u9519\u8bef\u4ee3\u7801\uff1a</strong>{failedTask.error.code}\n </div>\n <div style={{ marginBottom: 16 }}>\n <strong>\u9519\u8bef\u4fe1\u606f\uff1a</strong>{failedTask.error.message}\n </div>\n <Actions data={failedTask} type=\"primary\" />\n </Card>\n </PureGlobal>\n );\n});\n\nrender(<ErrorDetailExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u7ed3\u679c\u8be6\u60c5",description:"\u5c55\u793a\u6210\u529f\u4efb\u52a1\u7684\u7ed3\u679c\u8be6\u60c5\uff0c\u5305\u62ec\u8f93\u5165\u53c2\u6570\u548c\u8f93\u51fa\u7ed3\u679c",code:"const { Actions } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card } = antd;\n\nconst ResultDetailExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n // \u83b7\u53d6\u6210\u529f\u7684\u4efb\u52a1\n const successTask = taskList.data.pageData.find(task => task.status === 'success');\n\n return (\n <PureGlobal preset={mockPreset}>\n <Card title=\"\u6210\u529f\u4efb\u52a1\u8be6\u60c5\" size=\"small\">\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1ID\uff1a</strong>{successTask.id}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u540d\u79f0\uff1a</strong>{successTask.input.name}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u7c7b\u578b\uff1a</strong>{successTask.type}\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u4efb\u52a1\u72b6\u6001\uff1a</strong>\n <span style={{ color: '#52c41a' }}>{successTask.status}</span>\n </div>\n <div style={{ marginBottom: 8 }}>\n <strong>\u521b\u5efa\u65f6\u95f4\uff1a</strong>{successTask.createdAt}\n </div>\n <div style={{ marginBottom: 16 }}>\n <strong>\u5b8c\u6210\u65f6\u95f4\uff1a</strong>{successTask.completedAt}\n </div>\n <Actions data={successTask} type=\"primary\" />\n </Card>\n </PureGlobal>\n );\n});\n\nrender(<ResultDetailExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]},{title:"\u8868\u683c\u5217\u914d\u7f6e",description:"\u4f7f\u7528 getColumns \u51fd\u6570\u83b7\u53d6\u4efb\u52a1\u5217\u8868\u7684\u8868\u683c\u5217\u914d\u7f6e\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u56fd\u9645\u5316",code:"const { getColumns } = _Task;\nconst { default: mockPreset, taskList } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst GetColumnsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout@TablePage', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, TablePage, Layout] = remoteModules;\n\n // \u6a21\u62df\u56fd\u9645\u5316\u51fd\u6570\n const formatMessage = ({ id }) => {\n const messages = {\n ID: 'ID',\n Type: '\u7c7b\u578b',\n Status: '\u72b6\u6001',\n TargetName: '\u76ee\u6807\u540d\u79f0',\n ExecutionMode: '\u6267\u884c\u65b9\u5f0f',\n CreatedAt: '\u521b\u5efa\u65f6\u95f4',\n CompletedAt: '\u5b8c\u6210\u65f6\u95f4',\n UpdatedAt: '\u66f4\u65b0\u65f6\u95f4',\n ManualExecution: '\u624b\u52a8\u6267\u884c',\n AutomaticExecution: '\u81ea\u52a8\u6267\u884c'\n };\n return messages[id] || id;\n };\n\n const columns = getColumns({ formatMessage });\n\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <TablePage\n loader={() => {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(taskList.data);\n }, 500);\n });\n }}\n columns={columns}\n pagination={{ paramsType: 'params' }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<GetColumnsExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u679a\u4e3e\u503c",description:"\u5c55\u793a Task \u7ec4\u4ef6\u63d0\u4f9b\u7684\u679a\u4e3e\u503c\uff0c\u5305\u62ec\u4efb\u52a1\u72b6\u6001\u679a\u4e3e",code:"const { enums } = _Task;\nconst { Space, Tag } = antd;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst EnumsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Enum']\n})(({ remoteModules }) => {\n const [PureGlobal, Enum] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction=\"vertical\" size=\"large\" style={{ width: '100%' }}>\n <div>\n <h4>\u4efb\u52a1\u72b6\u6001\u679a\u4e3e\uff08taskStatus\uff09</h4>\n <Space wrap>\n <Enum moduleName=\"taskStatus\">\n {taskStatusList => {\n return taskStatusList.map(status => (\n <Tag\n key={status.value}\n color={\n status.type === 'success'\n ? 'green'\n : status.type === 'danger'\n ? 'red'\n : status.type === 'progress'\n ? 'blue'\n : status.type === 'info'\n ? 'default'\n : 'default'\n }>\n {status.value}: {status.description}\n </Tag>\n ));\n }}\n </Enum>\n </Space>\n </div>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<EnumsExample />);\n\n",scope:[{name:"_Task",packageName:"@components/Task",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:s}]}]}}},56585(e,t,n){n.d(t,{A:()=>d});var o=n(4836),a=n(1784),r=n(13050);const d={name:"Tenant",summary:"<p>\u79df\u6237\u7ba1\u7406\u7cfb\u7edf\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u516c\u53f8\u4fe1\u606f\u7ba1\u7406\u3001\u7ec4\u7ec7\u67b6\u6784\u7ba1\u7406\u3001\u7528\u6237\u7ba1\u7406\u3001\u89d2\u8272\u6743\u9650\u7ba1\u7406\u7b49\u5b8c\u6574\u7684\u79df\u6237\u7ba1\u7406\u529f\u80fd\u3002</p>",api:"<h2>Tenant \u7ec4\u4ef6</h2>\n<p>\u79df\u6237\u7ba1\u7406\u7cfb\u7edf\u7ec4\u4ef6\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u79df\u6237\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u62ec\u516c\u53f8\u4fe1\u606f\u7ba1\u7406\u3001\u7ec4\u7ec7\u67b6\u6784\u7ba1\u7406\u3001\u7528\u6237\u7ba1\u7406\u3001\u89d2\u8272\u6743\u9650\u7ba1\u7406\u7b49\u3002</p>\n<h2>\u4e3b\u7ec4\u4ef6 Tenant</h2>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u8def\u7531\u57fa\u7840\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>navigation</td>\n<td>\u5bfc\u822a\u914d\u7f6e</td>\n<td>object</td>\n<td>{}</td>\n</tr>\n<tr>\n<td>list</td>\n<td>\u81ea\u5b9a\u4e49\u8def\u7531\u914d\u7f6e</td>\n<td>array</td>\n<td>[]</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u5b50\u5143\u7d20</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>\u5b50\u7ec4\u4ef6</h2>\n<h3>CompanyInfo \u516c\u53f8\u4fe1\u606f</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u516c\u53f8\u6570\u636e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSubmit</td>\n<td>\u63d0\u4ea4\u56de\u8c03</td>\n<td>function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>hasEdit</td>\n<td>\u662f\u5426\u663e\u793a\u7f16\u8f91\u6309\u94ae</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>OrgInfo \u7ec4\u7ec7\u67b6\u6784</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>data</td>\n<td>\u7ec4\u7ec7\u5217\u8868\u6570\u636e</td>\n<td>array</td>\n<td>[]</td>\n</tr>\n<tr>\n<td>companyName</td>\n<td>\u516c\u53f8\u540d\u79f0</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onSuccess</td>\n<td>\u64cd\u4f5c\u6210\u529f\u56de\u8c03</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>UserList \u7528\u6237\u5217\u8868</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>topOptionsSize</td>\n<td>\u9876\u90e8\u64cd\u4f5c\u6309\u94ae\u5c3a\u5bf8</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onMount</td>\n<td>\u6302\u8f7d\u56de\u8c03</td>\n<td>function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Role \u89d2\u8272\u7ba1\u7406</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Permission \u6743\u9650\u7ba1\u7406</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>LoginTenant \u79df\u6237\u767b\u5f55</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>tenantPath</td>\n<td>\u767b\u5f55\u6210\u529f\u8df3\u8f6c\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>JoinInvitation \u9080\u8bf7\u52a0\u5165</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u5f84</td>\n<td>string</td>\n<td>''</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u6e32\u67d3</td>\n<td>function</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3>Setting \u7cfb\u7edf\u8bbe\u7f6e</h3>\n<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apis</td>\n<td>API \u914d\u7f6e</td>\n<td>object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>baseUrl</td>\n<td>\u57fa\u7840\u8def\u5f84</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h2>API \u914d\u7f6e\u8bf4\u660e</h2>\n<pre><code class=\"language-javascript\">const apis = {\n tenant: {\n // \u7528\u6237\u76f8\u5173\n getUserInfo: { /* \u83b7\u53d6\u5f53\u524d\u7528\u6237\u4fe1\u606f */ },\n getOrgList: { /* \u83b7\u53d6\u7ec4\u7ec7\u5217\u8868 */ },\n saveOrg: { /* \u4fdd\u5b58\u7ec4\u7ec7 */ },\n createOrg: { /* \u521b\u5efa\u7ec4\u7ec7 */ },\n removeOrg: { /* \u5220\u9664\u7ec4\u7ec7 */ },\n getUserList: { /* \u83b7\u53d6\u7528\u6237\u5217\u8868 */ },\n createUser: { /* \u521b\u5efa\u7528\u6237 */ },\n saveUser: { /* \u4fdd\u5b58\u7528\u6237 */ },\n removeUser: { /* \u5220\u9664\u7528\u6237 */ },\n // \u89d2\u8272\u76f8\u5173\n getRoleList: { /* \u83b7\u53d6\u89d2\u8272\u5217\u8868 */ },\n createRole: { /* \u521b\u5efa\u89d2\u8272 */ },\n saveRole: { /* \u4fdd\u5b58\u89d2\u8272 */ },\n removeRole: { /* \u5220\u9664\u89d2\u8272 */ },\n permissionSave: { /* \u4fdd\u5b58\u89d2\u8272\u6743\u9650 */ },\n // \u79df\u6237\u76f8\u5173\n getTenantList: { /* \u83b7\u53d6\u79df\u6237\u5217\u8868 */ },\n getPermissionList: { /* \u83b7\u53d6\u6743\u9650\u5217\u8868 */ },\n savePermission: { /* \u4fdd\u5b58\u6743\u9650 */ },\n // \u9080\u8bf7\u76f8\u5173\n parseJoinToken: { /* \u89e3\u6790\u9080\u8bf7\u4ee4\u724c */ },\n join: { /* \u52a0\u5165\u79df\u6237 */ }\n }\n};\n</code></pre>\n<h2>\u4f9d\u8d56\u6a21\u5757</h2>\n<ul>\n<li><code>components-core:FormInfo</code> - \u8868\u5355\u7ec4\u4ef6</li>\n<li><code>components-core:Layout</code> - \u5e03\u5c40\u7ec4\u4ef6</li>\n<li><code>components-core:Global@usePreset</code> - \u5168\u5c40\u914d\u7f6e</li>\n<li><code>components-admin:Authenticate@AfterUserLoginLayout</code> - \u7528\u6237\u767b\u5f55\u540e\u5e03\u5c40</li>\n</ul>",example:{isFull:!0,className:"",style:"",list:[{title:"\u516c\u53f8\u4fe1\u606f",description:"CompanyInfo \u7ec4\u4ef6\u7528\u4e8e\u5c55\u793a\u548c\u7f16\u8f91\u516c\u53f8\u57fa\u672c\u4fe1\u606f\uff0c\u5305\u62ec\u516c\u53f8\u7b80\u4ecb\u3001\u53d1\u5c55\u5386\u7a0b\u3001\u56e2\u961f\u4ecb\u7ecd\u7b49",code:"const { CompanyInfo } = _Tenant;\nconst { default: mockPreset, tenantData } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst CompanyInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <CompanyInfo\n data={tenantData.company}\n hasEdit={true}\n apis={{\n save: { loader: () => ({ code: 0 }) }\n }}\n onSubmit={(data) => {\n console.log('\u4fdd\u5b58\u516c\u53f8\u4fe1\u606f:', data);\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<CompanyInfoExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u7ec4\u7ec7\u67b6\u6784",description:"OrgInfo \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u7ec4\u7ec7\u67b6\u6784\uff0c\u652f\u6301\u6811\u5f62\u548c\u56fe\u5f62\u4e24\u79cd\u5c55\u793a\u6a21\u5f0f\uff0c\u53ef\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u7ec4\u7ec7\u8282\u70b9",code:"const { OrgInfo } = _Tenant;\nconst { default: mockPreset, tenantData } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst OrgInfoExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <OrgInfo\n data={tenantData.orgList}\n companyName={tenantData.company.name}\n apis={{\n create: { loader: () => ({ id: `dept-${Date.now()}` }) },\n save: { loader: () => ({ code: 0 }) },\n remove: { loader: () => ({ code: 0 }) }\n }}\n onSuccess={() => {\n console.log('\u64cd\u4f5c\u6210\u529f');\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<OrgInfoExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u7528\u6237\u5217\u8868",description:"UserList \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u79df\u6237\u7528\u6237\uff0c\u652f\u6301\u641c\u7d22\u3001\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u7528\u6237",code:"const { UserList } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst UserListExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <UserList\n apis={{\n list: mockPreset.apis.tenant.getUserList,\n create: mockPreset.apis.tenant.createUser,\n save: mockPreset.apis.tenant.saveUser,\n remove: mockPreset.apis.tenant.removeUser\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<UserListExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u89d2\u8272\u7ba1\u7406",description:"Role \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u89d2\u8272\uff0c\u652f\u6301\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u89d2\u8272\uff0c\u5e76\u53ef\u4e3a\u89d2\u8272\u5206\u914d\u6743\u9650",code:"const { Role } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst RoleExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Role\n apis={{\n list: mockPreset.apis.tenant.getRoleList,\n create: mockPreset.apis.tenant.createRole,\n save: mockPreset.apis.tenant.saveRole,\n remove: mockPreset.apis.tenant.removeRole,\n permissionSave: mockPreset.apis.tenant.savePermission,\n permissionList: mockPreset.apis.tenant.getPermissionList\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<RoleExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u6743\u9650\u7ba1\u7406",description:"Permission \u7ec4\u4ef6\u7528\u4e8e\u7ba1\u7406\u6743\u9650\uff0c\u5305\u542b\u79df\u6237\u6743\u9650\u3001\u89d2\u8272\u7ba1\u7406\u548c\u5171\u4eab\u7fa4\u7ec4\u4e09\u4e2a\u5b50\u6a21\u5757",code:"const { Permission } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst PermissionExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Permission\n apis={{\n permission: {\n list: mockPreset.apis.tenant.getPermissionList,\n save: mockPreset.apis.tenant.savePermission\n },\n role: {\n list: mockPreset.apis.tenant.getRoleList,\n create: mockPreset.apis.tenant.createRole,\n save: mockPreset.apis.tenant.saveRole,\n remove: mockPreset.apis.tenant.removeRole,\n permissionSave: mockPreset.apis.tenant.savePermission,\n permissionList: mockPreset.apis.tenant.getPermissionList\n }\n }}\n />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<PermissionExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u79df\u6237\u767b\u5f55",description:"LoginTenant \u7ec4\u4ef6\u7528\u4e8e\u79df\u6237\u9009\u62e9\u767b\u5f55\uff0c\u5c55\u793a\u7528\u6237\u53ef\u8bbf\u95ee\u7684\u79df\u6237\u5217\u8868",code:"const { LoginTenant } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\n\nconst LoginTenantExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <LoginTenant tenantPath=\"/tenant\" />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<LoginTenantExample />);\n\n",scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u52a0\u5165\u9080\u8bf7",description:"JoinInvitation \u7ec4\u4ef6\u7528\u4e8e\u5904\u7406\u79df\u6237\u9080\u8bf7\u52a0\u5165\u6d41\u7a0b\uff0c\u5c55\u793a\u516c\u53f8\u4fe1\u606f\u786e\u8ba4\u548c\u5458\u5de5\u4fe1\u606f\u786e\u8ba4\u6b65\u9aa4",code:'const { JoinInvitation } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card, Flex } = antd;\n\nconst JoinInvitationExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Flex vertical gap={24}>\n <Card title="\u6210\u529f\u793a\u4f8b\uff08\u6709\u6548token\uff09">\n <JoinInvitation baseUrl="" token="valid" />\n </Card>\n <Card title="\u5931\u8d25\u793a\u4f8b\uff08\u65e0\u6548token\uff09">\n <JoinInvitation baseUrl="" token="invalid" />\n </Card>\n </Flex>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<JoinInvitationExample />);\n\n',scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"\u7cfb\u7edf\u8bbe\u7f6e",description:"Setting \u7ec4\u4ef6\u662f\u7cfb\u7edf\u8bbe\u7f6e\u7684\u5165\u53e3\uff0c\u5305\u542b\u516c\u53f8\u4fe1\u606f\u3001\u7ec4\u7ec7\u67b6\u6784\u3001\u6743\u9650\u7ba1\u7406\u3001\u7528\u6237\u7ba1\u7406\u56db\u4e2a\u8bbe\u7f6e\u6a21\u5757",code:'const { Setting } = _Tenant;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { useNavigate, Navigate } = reactRouterDom;\nconst { Route, Routes } = reactRouterDom;\n\nconst SettingExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route\n path="/Tenant/setting/*"\n element={\n <Setting\n pageProps={{\n menuFixed: false\n }}\n baseUrl="/Tenant"\n apis={{\n user: {\n list: mockPreset.apis.tenant.getUserList,\n create: mockPreset.apis.tenant.createUser,\n save: mockPreset.apis.tenant.saveUser,\n remove: mockPreset.apis.tenant.removeUser\n },\n permission: {\n list: mockPreset.apis.tenant.getPermissionList,\n save: mockPreset.apis.tenant.savePermission\n },\n role: {\n list: mockPreset.apis.tenant.getRoleList,\n create: mockPreset.apis.tenant.createRole,\n save: mockPreset.apis.tenant.saveRole,\n remove: mockPreset.apis.tenant.removeRole,\n permissionSave: mockPreset.apis.tenant.savePermission,\n permissionList: mockPreset.apis.tenant.getPermissionList\n }\n }}\n />\n }\n />\n <Route path="/Tenant/*" element={<Navigate to="/Tenant/setting" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<SettingExample />);\n\n',scope:[{name:"_Tenant",packageName:"@components/Tenant",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:n(94679)}]}]}}},55702(e,t,n){n.d(t,{A:()=>s});var o=n(17517),a=n(1784),r=n(13050),d=n(94679);const s={name:"TenantAdmin",summary:"<p>\u79df\u6237\u7ba1\u7406</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n</table>",example:{isFull:!0,className:"",style:"",list:[{title:"\u79df\u6237\u5217\u8868",description:"\u79df\u6237\u5217\u8868\u9875\u9762\uff0c\u652f\u6301\u72b6\u6001\u7b5b\u9009\u3001\u5173\u952e\u5b57\u641c\u7d22\u3001\u6dfb\u52a0\u79df\u6237\u3001\u7f16\u8f91\u3001\u5f00\u542f/\u5173\u95ed\u3001\u5220\u9664\u7b49\u64cd\u4f5c",code:"const { List } = _TenantAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Routes, Route } = reactRouterDom;\n\nconst ListExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal', 'components-core:Layout']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <List />\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<ListExample />);\n\n",scope:[{name:"_TenantAdmin",packageName:"@components/TenantAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]},{title:"\u8868\u5355\u5b57\u6bb5",description:"\u79df\u6237\u8868\u5355\u5b57\u6bb5\u7ec4\u4ef6\uff0c\u5305\u542b\u79df\u6237\u540d\u79f0\u3001\u8d26\u53f7\u6570\u91cf\u3001\u670d\u52a1\u65f6\u95f4\u3001Logo\u3001\u4e3b\u9898\u8272\u3001\u63cf\u8ff0\u7b49\u5b57\u6bb5",code:"const { FormInner } = _TenantAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Card } = antd;\n\nconst FormInnerExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo@Form', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [Form, PureGlobal] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Card title=\"\u79df\u6237\u8868\u5355\u5b57\u6bb5\">\n <Form onSubmit={(data) => console.log(data)}>\n <FormInner />\n </Form>\n </Card>\n </PureGlobal>\n );\n});\n\nrender(<FormInnerExample />);\n\n",scope:[{name:"_TenantAdmin",packageName:"@components/TenantAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"Tab\u8be6\u60c5\u9875",description:"\u5e26Tab\u5207\u6362\u7684\u79df\u6237\u8be6\u60c5\u9875\uff0c\u5305\u542b\u516c\u53f8\u4fe1\u606f\u3001\u7ec4\u7ec7\u67b6\u6784\u3001\u6743\u9650\u3001\u7528\u6237\u5217\u8868\u3001\u8bbe\u7f6e\u7b49Tab\u9875",code:'const { TabDetail } = _TenantAdmin;\nconst { default: mockPreset } = _mockPreset;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { Routes, Route, Navigate } = reactRouterDom;\n\nconst TabDetailExample = createWithRemoteLoader({\n modules: [\'components-core:Global@PureGlobal\', \'components-core:Layout\']\n})(({ remoteModules }) => {\n const [PureGlobal, Layout] = remoteModules;\n return (\n <PureGlobal preset={mockPreset}>\n <Layout navigation={{ isFixed: false }}>\n <Routes>\n <Route path="/detail" element={<TabDetail optionFixed={false} />} />\n <Route path="*" element={<Navigate to="/detail?id=tenant-001" replace />} />\n </Routes>\n </Layout>\n </PureGlobal>\n );\n});\n\nrender(<TabDetailExample />);\n\n',scope:[{name:"_TenantAdmin",packageName:"@components/TenantAdmin",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"reactRouterDom",packageName:"react-router-dom",component:d}]}]}}},1740(e,t,n){n.d(t,{A:()=>d});var o=n(98889),a=n(1784),r=n(13050);const d={name:"UserSelect",summary:"<p>\u7528\u6237\u9009\u62e9\u7ec4\u4ef6\uff0c\u7528\u4e8e\u5728\u8868\u5355\u4e2d\u9009\u62e9\u7528\u6237\u3002\u652f\u6301\u5355\u9009\u548c\u591a\u9009\u6a21\u5f0f\uff0c\u652f\u6301\u6309\u7528\u6237\u72b6\u6001\u7b5b\u9009\uff0c\u652f\u6301\u641c\u7d22\u7528\u6237\u3002\u57fa\u4e8e SuperSelectUser \u5c01\u88c5\uff0c\u81ea\u52a8\u5904\u7406\u7528\u6237\u6570\u636e\u7684\u8f6c\u6362\u548c\u52a0\u8f7d\u3002</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>\u8868\u5355\u5b57\u6bb5\u540d\u79f0</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>label</td>\n<td>\u8868\u5355\u6807\u7b7e</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rule</td>\n<td>\u6821\u9a8c\u89c4\u5219\uff0c\u5982 'REQ' \u8868\u793a\u5fc5\u586b</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>placeholder</td>\n<td>\u5360\u4f4d\u6587\u672c</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>status</td>\n<td>\u7528\u6237\u72b6\u6001\u7b5b\u9009\uff0c0 \u8868\u793a\u6d3b\u8dc3\u7528\u6237\uff0cnull \u8868\u793a\u4e0d\u7b5b\u9009</td>\n<td>number</td>\n<td>null</td>\n</tr>\n<tr>\n<td>single</td>\n<td>\u662f\u5426\u5355\u9009\uff0ctrue \u4e3a\u5355\u9009\uff0cfalse \u4e3a\u591a\u9009</td>\n<td>boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>disabled</td>\n<td>\u662f\u5426\u7981\u7528</td>\n<td>boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>api</td>\n<td>\u81ea\u5b9a\u4e49 API \u914d\u7f6e\uff0c\u4f1a\u8986\u76d6\u9ed8\u8ba4\u7684 getUserList \u63a5\u53e3</td>\n<td>object</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a UserSelect \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u652f\u6301\u641c\u7d22\u548c\u9009\u62e9\u7528\u6237",code:'const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst BaseExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton, fields } = FormInfo;\n const { Input } = fields;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u7528\u6237\u9009\u62e9\u793a\u4f8b"\n column={1}\n list={[\n <Input name="projectName" label="\u9879\u76ee\u540d\u79f0" rule="REQ" placeholder="\u8bf7\u8f93\u5165\u9879\u76ee\u540d\u79f0" />\n ]}\n />\n <UserSelect\n name="userId"\n label="\u8d1f\u8d23\u4eba"\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u8d1f\u8d23\u4eba"\n />\n <div style={{ marginTop: 24, textAlign: \'center\' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type="primary">\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n',scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u591a\u9009\u6a21\u5f0f",description:"\u5c55\u793a UserSelect \u7684\u591a\u9009\u6a21\u5f0f\uff0c\u9002\u7528\u4e8e\u9009\u62e9\u591a\u4e2a\u7528\u6237\u7684\u573a\u666f",code:'const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst MultipleExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton } = FormInfo;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u63d0\u4ea4\u6570\u636e:\', data);\n }}\n >\n <FormInfo\n title="\u56e2\u961f\u6210\u5458\u9009\u62e9"\n column={1}\n />\n <UserSelect\n name="memberIds"\n label="\u56e2\u961f\u6210\u5458"\n rule="REQ"\n placeholder="\u8bf7\u9009\u62e9\u56e2\u961f\u6210\u5458"\n single={false}\n />\n <div style={{ marginTop: 24, textAlign: \'center\' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type="primary">\u63d0\u4ea4</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<MultipleExample />);\n\n',scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u5e26\u521d\u59cb\u503c",description:"\u5c55\u793a UserSelect \u5e26\u521d\u59cb\u503c\u7684\u4f7f\u7528\u65b9\u5f0f\uff0c\u7528\u4e8e\u7f16\u8f91\u573a\u666f",code:"const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst WithInitialValueExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton, CancelButton } = FormInfo;\n\n // \u6a21\u62df\u7f16\u8f91\u573a\u666f\u7684\u521d\u59cb\u6570\u636e\uff08\u521d\u59cb\u503c\u5fc5\u987b\u5305\u542b value \u548c label\uff09\n const initialValue = {\n projectName: '\u667a\u80fd\u529e\u516c\u7cfb\u7edf V2.0',\n ownerId: { value: 2, label: '\u674e\u56db' },\n memberIds: [\n { value: 3, label: '\u738b\u4e94' },\n { value: 6, label: '\u5b59\u516b' },\n { value: 7, label: '\u5468\u4e5d' }\n ]\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form\n data={initialValue}\n onSubmit={(data) => {\n console.log('\u63d0\u4ea4\u6570\u636e:', data);\n }}\n >\n <FormInfo\n title=\"\u7f16\u8f91\u9879\u76ee\"\n column={1}\n />\n <UserSelect\n name=\"ownerId\"\n label=\"\u9879\u76ee\u8d1f\u8d23\u4eba\"\n rule=\"REQ\"\n placeholder=\"\u8bf7\u9009\u62e9\u9879\u76ee\u8d1f\u8d23\u4eba\"\n />\n <UserSelect\n name=\"memberIds\"\n label=\"\u9879\u76ee\u6210\u5458\"\n placeholder=\"\u8bf7\u9009\u62e9\u9879\u76ee\u6210\u5458\"\n single={false}\n />\n <div style={{ marginTop: 24, textAlign: 'center' }}>\n <CancelButton style={{ marginRight: 8 }}>\u53d6\u6d88</CancelButton>\n <SubmitButton type=\"primary\">\u4fdd\u5b58</SubmitButton>\n </div>\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<WithInitialValueExample />);\n\n",scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u72b6\u6001\u7b5b\u9009",description:"\u901a\u8fc7 status \u53c2\u6570\u7b5b\u9009\u7528\u6237\uff0c\u53ef\u8bbe\u7f6e\u53ea\u663e\u793a\u7279\u5b9a\u72b6\u6001\u7684\u7528\u6237",code:'const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\nconst { Space } = antd;\n\nconst StatusFilterExample = createWithRemoteLoader({\n modules: [\'components-core:FormInfo\', \'components-core:Global@PureGlobal\']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form, SubmitButton } = FormInfo;\n\n return (\n <PureGlobal preset={mockPreset}>\n <Space direction="vertical" size="large" style={{ width: \'100%\' }}>\n <Form\n onSubmit={(data) => {\n console.log(\'\u6d3b\u8dc3\u7528\u6237:\', data);\n }}\n >\n <FormInfo title="\u4ec5\u9009\u62e9\u6d3b\u8dc3\u7528\u6237" column={1} />\n <UserSelect\n name="activeUserId"\n label="\u6d3b\u8dc3\u7528\u6237"\n placeholder="\u4ec5\u663e\u793a\u72b6\u6001\u6b63\u5e38\u7684\u7528\u6237"\n status={0}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton size="small" type="primary">\u786e\u8ba4</SubmitButton>\n </div>\n </Form>\n\n <Form\n onSubmit={(data) => {\n console.log(\'\u5168\u90e8\u7528\u6237:\', data);\n }}\n >\n <FormInfo title="\u9009\u62e9\u5168\u90e8\u7528\u6237\uff08\u4e0d\u9650\u72b6\u6001\uff09" column={1} />\n <UserSelect\n name="allUserId"\n label="\u5168\u90e8\u7528\u6237"\n placeholder="\u663e\u793a\u6240\u6709\u72b6\u6001\u7684\u7528\u6237"\n status={null}\n />\n <div style={{ marginTop: 16 }}>\n <SubmitButton size="small" type="primary">\u786e\u8ba4</SubmitButton>\n </div>\n </Form>\n </Space>\n </PureGlobal>\n );\n});\n\nrender(<StatusFilterExample />);\n\n',scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"\u53ea\u8bfb\u6a21\u5f0f",description:"\u5c55\u793a UserSelect \u7684\u53ea\u8bfb\u6a21\u5f0f\uff0c\u9002\u7528\u4e8e\u67e5\u770b\u573a\u666f",code:"const { default: UserSelect } = _UserSelect;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst ReadonlyExample = createWithRemoteLoader({\n modules: ['components-core:FormInfo', 'components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [FormInfo, PureGlobal] = remoteModules;\n const { Form } = FormInfo;\n\n // \u6a21\u62df\u53ea\u8bfb\u573a\u666f\u7684\u521d\u59cb\u6570\u636e\uff08\u521d\u59cb\u503c\u5fc5\u987b\u5305\u542b value \u548c label\uff09\n const initialValue = {\n projectName: '\u4f01\u4e1a\u534f\u540c\u5e73\u53f0',\n ownerId: { value: 1, label: '\u5f20\u4e09' },\n memberIds: [\n { value: 2, label: '\u674e\u56db' },\n { value: 3, label: '\u738b\u4e94' },\n { value: 6, label: '\u5b59\u516b' }\n ]\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <Form data={initialValue}>\n <FormInfo\n title=\"\u9879\u76ee\u8be6\u60c5\uff08\u53ea\u8bfb\uff09\"\n column={1}\n />\n <UserSelect\n name=\"ownerId\"\n label=\"\u9879\u76ee\u8d1f\u8d23\u4eba\"\n disabled\n />\n <UserSelect\n name=\"memberIds\"\n label=\"\u9879\u76ee\u6210\u5458\"\n disabled\n single={false}\n />\n </Form>\n </PureGlobal>\n );\n});\n\nrender(<ReadonlyExample />);\n\n",scope:[{name:"_UserSelect",packageName:"@components/UserSelect",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},88358(e,t,n){n.d(t,{A:()=>d});var o=n(2),a=n(1784),r=n(13050);const d={name:"UserTool",summary:"<p>\u7528\u6237\u5de5\u5177\u7ec4\u4ef6\uff0c\u663e\u793a\u7528\u6237\u5934\u50cf\u548c\u540d\u79f0\uff0c\u70b9\u51fb\u5c55\u5f00\u4e0b\u62c9\u83dc\u5355\uff0c\u5305\u542b\u7528\u6237\u4fe1\u606f\u3001\u81ea\u5b9a\u4e49\u64cd\u4f5c\u5217\u8868\u548c\u9000\u51fa\u767b\u5f55\u529f\u80fd\u3002\u9002\u7528\u4e8e\u7cfb\u7edf\u9876\u90e8\u5bfc\u822a\u680f\u7684\u7528\u6237\u533a\u57df\u3002\u540c\u65f6\u63d0\u4f9b RightOptions \u7ec4\u5408\u7ec4\u4ef6\uff0c\u5305\u542b\u8bed\u8a00\u5207\u6362\u548c\u7528\u6237\u5de5\u5177\u3002</p>",api:"<table>\n<thead>\n<tr>\n<th>\u5c5e\u6027\u540d</th>\n<th>\u8bf4\u660e</th>\n<th>\u7c7b\u578b</th>\n<th>\u9ed8\u8ba4\u503c</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>avatar</td>\n<td>\u7528\u6237\u5934\u50cf URL</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>name</td>\n<td>\u7528\u6237\u540d\u79f0\uff0c\u4e0d\u4f20\u6216\u4e3a\u7a7a\u65f6\u663e\u793a\"\u672a\u547d\u540d\"</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>email</td>\n<td>\u7528\u6237\u90ae\u7bb1</td>\n<td>string</td>\n<td>-</td>\n</tr>\n<tr>\n<td>list</td>\n<td>\u64cd\u4f5c\u5217\u8868\uff0c\u6bcf\u9879\u5305\u542b iconType\u3001label\u3001onClick</td>\n<td>Array&lt;{iconType: string, label: string, onClick: function}&gt;</td>\n<td>-</td>\n</tr>\n<tr>\n<td>children</td>\n<td>\u81ea\u5b9a\u4e49\u5b50\u5143\u7d20\uff0c\u663e\u793a\u5728\u4e0b\u62c9\u83dc\u5355\u7684\u7528\u6237\u4fe1\u606f\u548c\u64cd\u4f5c\u5217\u8868\u4e4b\u95f4</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>storeKeys</td>\n<td>\u9000\u51fa\u767b\u5f55\u65f6\u6e05\u9664\u7684\u5b58\u50a8 key</td>\n<td>object</td>\n<td>{ token: 'X-User-Token' }</td>\n</tr>\n<tr>\n<td>domain</td>\n<td>\u9000\u51fa\u767b\u5f55\u65f6\u8df3\u8f6c\u7684\u57df\u540d</td>\n<td>string</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>",example:{isFull:!1,className:"",style:"",list:[{title:"\u57fa\u7840\u7528\u6cd5",description:"\u5c55\u793a UserTool \u7ec4\u4ef6\u7684\u57fa\u672c\u4f7f\u7528\u65b9\u5f0f\uff0c\u70b9\u51fb\u663e\u793a\u7528\u6237\u4fe1\u606f\u548c\u64cd\u4f5c\u83dc\u5355",code:"const { default: UserTool } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst BaseExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n const handleEditProfile = () => {\n console.log('\u7f16\u8f91\u4e2a\u4eba\u8d44\u6599');\n };\n\n const handleChangePassword = () => {\n console.log('\u4fee\u6539\u5bc6\u7801');\n };\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#f5f5f5' }}>\n <UserTool\n avatar=\"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan\"\n name=\"\u5f20\u4e09\"\n email=\"zhangsan@example.com\"\n list={[\n { iconType: 'icon-gerenziliao', label: '\u4e2a\u4eba\u8d44\u6599', onClick: handleEditProfile },\n { iconType: 'icon-xiugaimima', label: '\u4fee\u6539\u5bc6\u7801', onClick: handleChangePassword }\n ]}\n />\n </div>\n </PureGlobal>\n );\n});\n\nrender(<BaseExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u81ea\u5b9a\u4e49\u5b50\u5143\u7d20",description:"\u901a\u8fc7 children \u5728\u4e0b\u62c9\u83dc\u5355\u4e2d\u6dfb\u52a0\u81ea\u5b9a\u4e49\u5185\u5bb9\uff0c\u5982\u5347\u7ea7\u63d0\u793a\u3001VIP \u6807\u8bc6\u7b49",code:"const { default: UserTool } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\nconst { Button } = antd;\n\nconst WithChildrenExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#f5f5f5' }}>\n <UserTool\n avatar=\"https://api.dicebear.com/7.x/avataaars/svg?seed=lisi\"\n name=\"\u674e\u56db\"\n email=\"lisi@tech-innovation.com\"\n >\n <div style={{ padding: '8px 0' }}>\n <Button type=\"primary\" block size=\"small\">\n \u5347\u7ea7\u5230\u4e13\u4e1a\u7248\n </Button>\n </div>\n </UserTool>\n </div>\n </PureGlobal>\n );\n});\n\nrender(<WithChildrenExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r},{name:"antd",packageName:"antd",component:n(55199)}]},{title:"\u53f3\u4fa7\u9009\u9879\u7ec4\u5408",description:"RightOptions \u7ec4\u4ef6\uff0c\u7ec4\u5408\u4e86\u8bed\u8a00\u5207\u6362\u548c UserTool\uff0c\u9002\u7528\u4e8e\u9876\u90e8\u5bfc\u822a\u680f\u53f3\u4fa7",code:"const { RightOptions } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst RightOptionsExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#1890ff' }}>\n <RightOptions />\n </div>\n </PureGlobal>\n );\n});\n\nrender(<RightOptionsExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]},{title:"\u6700\u5c0f\u914d\u7f6e",description:"\u4ec5\u4f20\u5165\u5934\u50cf\uff0c\u540d\u79f0\u548c\u90ae\u7bb1\u4e0d\u4f20\u6216\u4e3a\u7a7a\u65f6\u663e\u793a\u9ed8\u8ba4\u6587\u6848",code:"const { default: UserTool } = _UserTool;\nconst { createWithRemoteLoader } = remoteLoader;\nconst { default: mockPreset } = _mockPreset;\n\nconst MinimalExample = createWithRemoteLoader({\n modules: ['components-core:Global@PureGlobal']\n})(({ remoteModules }) => {\n const [PureGlobal] = remoteModules;\n\n return (\n <PureGlobal preset={mockPreset}>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: 16, background: '#f5f5f5' }}>\n <UserTool\n avatar=\"https://api.dicebear.com/7.x/avataaars/svg?seed=wangwu\"\n />\n </div>\n </PureGlobal>\n );\n});\n\nrender(<MinimalExample />);\n\n",scope:[{name:"_UserTool",packageName:"@components/UserTool",component:o},{name:"_mockPreset",packageName:"@root/mockPreset",component:a},{name:"remoteLoader",packageName:"@kne/remote-loader",component:r}]}]}}},12028(e,t,n){n.r(t),n.d(t,{InitAdmin:()=>L,User:()=>f,default:()=>T});var o=n(94679),a=n(73884);const r=(0,a.createContext)("/"),{Provider:d}=r;var s=n(13050),l=n(55199),i=n(52526);const c={Avatar:"\u5934\u50cf",Nickname:"\u6635\u79f0",Email:"\u90ae\u7bb1",Phone:"\u7535\u8bdd",IsSuperAdmin:"\u662f\u5426\u8d85\u7ea7\u7ba1\u7406\u5458",Status:"\u72b6\u6001",Description:"\u4e2a\u4eba\u7b80\u4ecb",Yes:"\u662f",No:"\u5426",Normal:"\u6b63\u5e38",NotActivated:"\u521d\u59cb\u5316\u672a\u6fc0\u6d3b",Disabled:"\u5df2\u7981\u7528",Closed:"\u5df2\u5173\u95ed",Other:"\u5176\u4ed6",AddUser:"\u6dfb\u52a0\u7528\u6237",AddSuccess:"\u6dfb\u52a0\u6210\u529f",EditUser:"\u7f16\u8f91\u7528\u6237",EditUserInfo:"\u7f16\u8f91\u7528\u6237\u4fe1\u606f",DeleteSuccess:"\u5220\u9664\u6210\u529f",SaveSuccess:"\u4fdd\u5b58\u6210\u529f",Operation:"\u64cd\u4f5c",Keyword:"\u5173\u952e\u5b57",UserAvatar:"\u5934\u50cf",UserNickname:"\u6635\u79f0",UserEmail:"\u90ae\u7bb1",UserPhone:"\u624b\u673a",UserDescription:"\u4e2a\u4eba\u7b80\u4ecb",Password:"\u5bc6\u7801",RepeatPassword:"\u91cd\u590d\u5bc6\u7801",ResetPassword:"\u91cd\u7f6e\u5bc6\u7801",ModifyPassword:"\u4fee\u6539\u5bc6\u7801",ModifyPasswordSuccess:"\u4fee\u6539\u5bc6\u7801\u6210\u529f",SetSuperAdmin:"\u8bbe\u7f6e\u8d85\u7ba1",CancelSuperAdmin:"\u53d6\u6d88\u8d85\u7ba1",SetSuperAdminConfirm:"\u786e\u5b9a\u8981\u8bbe\u7f6e\u8d26\u53f7\u4e3a\u8d85\u7ba1\u5417\uff1f",CancelSuperAdminConfirm:"\u786e\u5b9a\u8981\u53d6\u6d88\u8d26\u53f7\u7684\u8d85\u7ba1\u6743\u9650\u5417\uff1f",SetNormal:"\u8bbe\u7f6e\u4e3a\u6b63\u5e38",SetNormalConfirm:"\u786e\u5b9a\u8981\u8bbe\u7f6e\u8d26\u53f7\u4e3a\u6b63\u5e38\u5417\uff1f",SetNormalSuccess:"\u8d26\u53f7\u5df2\u5f00\u542f",CloseUser:"\u5173\u95ed",CloseUserConfirm:"\u786e\u5b9a\u8981\u5173\u95ed\u8be5\u8d26\u53f7\u5417\uff1f",CloseUserSuccess:"\u8d26\u53f7\u5df2\u5173\u95ed",SetStatusSuccess:"\u8bbe\u7f6e\u6210\u529f",FilterEmail:"\u90ae\u7bb1",FilterPhone:"\u7535\u8bdd",FilterStatus:"\u72b6\u6001",FilterIsAdmin:"\u662f\u5426\u7ba1\u7406\u5458",Confirm:"\u786e\u8ba4",InitSystem:"\u521d\u59cb\u5316\u7cfb\u7edf",InitSystemDesc:"\u5f53\u524d\u7528\u6237\u5c06\u88ab\u521d\u59cb\u5316\u4e3a\u7cfb\u7edf\u7684\u8d85\u7ea7\u7ba1\u7406\u5458\uff0c\u672c\u64cd\u4f5c\u53ea\u80fd\u6267\u884c\u4e00\u6b21\uff0c\u6267\u884c\u5b8c\u6210\u540e\u7531\u8be5\u7528\u6237\u6765\u6267\u884c\u5176\u4ed6\u7684\u7ba1\u7406\u64cd\u4f5c\u3002",InitSuccess:"\u521d\u59cb\u5316\u7ba1\u7406\u5458\u6210\u529f\uff01"},m={Avatar:"Avatar",Nickname:"Nickname",Email:"Email",Phone:"Phone",IsSuperAdmin:"Is Super Admin",Status:"Status",Description:"Description",Yes:"Yes",No:"No",Normal:"Normal",NotActivated:"Not Activated",Disabled:"Disabled",Closed:"Closed",Other:"Other",AddUser:"Add User",AddSuccess:"Added successfully",EditUser:"Edit User",EditUserInfo:"Edit User Info",DeleteSuccess:"Deleted successfully",SaveSuccess:"Saved successfully",Operation:"Operation",Keyword:"Keyword",UserAvatar:"Avatar",UserNickname:"Nickname",UserEmail:"Email",UserPhone:"Phone",UserDescription:"Description",Password:"Password",RepeatPassword:"Repeat Password",ResetPassword:"Reset Password",ModifyPassword:"Modify Password",ModifyPasswordSuccess:"Password modified successfully",SetSuperAdmin:"Set Super Admin",CancelSuperAdmin:"Cancel Super Admin",SetSuperAdminConfirm:"Are you sure to set this account as super admin?",CancelSuperAdminConfirm:"Are you sure to cancel super admin permission for this account?",SetNormal:"Set Normal",SetNormalConfirm:"Are you sure to set this account as normal?",SetNormalSuccess:"Account has been opened",CloseUser:"Close",CloseUserConfirm:"Are you sure to close this account?",CloseUserSuccess:"Account has been closed",SetStatusSuccess:"Set status successfully",FilterEmail:"Email",FilterPhone:"Phone",FilterStatus:"Status",FilterIsAdmin:"Is Admin",Confirm:"Confirm",InitSystem:"Initialize System",InitSystemDesc:"The current user will be initialized as the super administrator of the system. This operation can only be performed once. After completion, the user will perform other management operations.",InitSuccess:"Initialized administrator successfully!"},p=(0,i.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":c,"en-US":m},namespace:"components-admin:Admin"}),u=e=>{let{formatMessage:t}=e;return[{name:"avatar",title:t({id:"Avatar"}),type:"avatar",valueOf:(e,t)=>{let{name:n}=t;return Object.assign({},{gender:e.gender||"M"},{id:e[n]})}},{name:"nickname",title:t({id:"Nickname"}),type:"mainInfo"},{name:"email",title:t({id:"Email"}),type:"other"},{name:"phone",title:t({id:"Phone"}),type:"serialNumber"},{name:"isSuperAdmin",title:t({id:"IsSuperAdmin"}),type:"other",valueOf:(e,n)=>{let{name:o}=n;return!0===e[o]?t({id:"Yes"}):t({id:"No"})}},{name:"status",title:t({id:"Status"}),type:"tag",valueOf:(e,n)=>{let{name:o}=n;return 0===e[o]?{type:"success",text:t({id:"Normal"})}:10===e[o]?{text:t({id:"NotActivated"})}:11===e[o]?{type:"danger",text:t({id:"Disabled"})}:12===e[o]?{type:"danger",text:t({id:"Closed"})}:{text:t({id:"Other"})}}},{name:"description",title:t({id:"Description"}),type:"description"}]};var h=n(70579);const g=(0,s.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@formModule"]})(p(e=>{let{remoteModules:t}=e;const[n,o]=t,{formatMessage:a}=(0,i.useIntl)(),{Input:r,TextArea:d,PhoneNumber:s,Avatar:l}=o;return(0,h.jsx)(n,{column:1,list:[(0,h.jsx)(l,{name:"avatar",label:a({id:"UserAvatar"}),labelHidden:!0,interceptor:"photo-string"}),(0,h.jsx)(r,{name:"nickname",label:a({id:"UserNickname"}),rule:"LEN-0-100"}),(0,h.jsx)(r,{name:"email",label:a({id:"UserEmail"}),rule:"EMAIL ACCOUNT_IS_EXISTS",realtime:!0}),(0,h.jsx)(s,{name:"phone",label:a({id:"UserPhone"}),rule:"ACCOUNT_IS_EXISTS",format:"string"}),(0,h.jsx)(d,{name:"description",label:a({id:"UserDescription"})})]})})),b=(0,s.createWithRemoteLoader)({modules:["components-core:FormInfo"]})(p(e=>{let{remoteModules:t}=e;const[n]=t,{formatMessage:o}=(0,i.useIntl)(),{Input:a}=n.fields;return(0,h.jsx)(n,{column:1,list:[(0,h.jsx)(a.Password,{name:"password",label:o({id:"Password"}),rule:"REQ LEN-6-50"}),(0,h.jsx)(a.Password,{name:"repeatPwd",label:o({id:"RepeatPassword"}),rule:"REQ LEN-6-50 REPEAT-password"})]})}));var v=n(80700),k=n.n(v),y=n(33097),P=n.n(y);const f=p((0,s.createWithRemoteLoader)({modules:["components-core:Layout@TablePage","components-core:Filter","components-core:FormInfo@useFormModal","components-core:Global@usePreset"]})(e=>{let{remoteModules:t,pageProps:n}=e;const[o,d,s,c]=t,{formatMessage:m}=(0,i.useIntl)(),p=(0,a.useContext)(r),v=Object.assign({},null===p||void 0===p?void 0:p.pageProps,n),[y,f]=(0,a.useState)([]),{SearchInput:S,getFilterValue:L,fields:x}=d,{InputFilterItem:T,AdvancedSelectFilterItem:I}=x,{ajax:A,apis:N}=c(),U=s(),{message:G}=l.App.useApp(),R=(0,a.useRef)(null),C=L(y);return(0,h.jsx)(o,{...Object.assign({},N.admin.getUserList,{params:{filter:C}}),pagination:{paramsType:"params"},name:"user-list",ref:R,menuFixed:null===v||void 0===v?void 0:v.menuFixed,columns:[...u({formatMessage:m}),{name:"options",title:m({id:"Operation"}),type:"options",fixed:"right",valueOf:e=>[{children:m({id:"EditUser"}),onClick:()=>{const t=U({title:m({id:"EditUserInfo"}),size:"small",children:(0,h.jsx)(g,{}),formProps:{data:Object.assign({},e),onSubmit:async n=>{const{data:o}=await A(Object.assign({},N.admin.saveUser,{data:Object.assign({},n,{id:e.id})}));0===o.code&&(G.success(m({id:"SaveSuccess"})),R.current.reload(),t.close())}}})}},{children:m({id:"ModifyPassword"}),onClick:()=>{const t=U({title:m({id:"ModifyPassword"}),size:"small",children:(0,h.jsx)(b,{}),formProps:{onSubmit:async n=>{const{data:o}=await A(Object.assign({},N.admin.resetUserPassword,{data:{password:k()(n.password),userId:e.id}}));0===o.code&&(G.success(m({id:"ModifyPasswordSuccess"})),t.close())}}})}},!0===P()(e,"isSuperAdmin")?{children:m({id:"CancelSuperAdmin"}),message:m({id:"CancelSuperAdminConfirm"}),isDelete:!1,onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setSuperAdmin,{data:{status:!1,userId:e.id}}));0===t.code&&(G.success(m({id:"SetStatusSuccess"})),R.current.reload())}}:{children:m({id:"SetSuperAdmin"}),message:m({id:"SetSuperAdminConfirm"}),isDelete:!1,onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setSuperAdmin,{data:{status:!0,userId:e.id}}));0===t.code&&(G.success(m({id:"SetStatusSuccess"})),R.current.reload())}},...(()=>{const t=[];return 0!==e.status&&t.push({confirm:!0,children:m({id:"SetNormal"}),message:m({id:"SetNormalConfirm"}),isDelete:!1,onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setUserNormal,{data:{id:e.id}}));0===t.code&&(G.success(m({id:"SetNormalSuccess"})),R.current.reload())}}),12!==e.status&&t.push({isDelete:!0,confirm:!0,children:m({id:"CloseUser"}),message:m({id:"CloseUserConfirm"}),okText:m({id:"Confirm"}),onClick:async()=>{const{data:t}=await A(Object.assign({},N.admin.setUserClose,{data:{id:e.id}}));0===t.code&&(G.success(m({id:"CloseUserSuccess"})),R.current.reload())}}),t})()]}],page:{filter:{value:y,onChange:f,list:[[(0,h.jsx)(T,{label:m({id:"FilterEmail"}),name:"email"}),(0,h.jsx)(T,{label:m({id:"FilterPhone"}),name:"phone"}),(0,h.jsx)(I,{label:m({id:"FilterStatus"}),name:"status",single:!0,api:{loader:()=>({pageData:[{label:m({id:"Normal"}),value:0},{label:m({id:"NotActivated"}),value:10},{label:m({id:"Closed"}),value:12}]})}}),(0,h.jsx)(I,{label:m({id:"FilterIsAdmin"}),name:"isSuperAdmin",single:!0,api:{loader:()=>({pageData:[{label:m({id:"Yes"}),value:!0},{label:m({id:"No"}),value:!1}]})}})]]},titleExtra:(0,h.jsxs)(l.Space,{align:"center",children:[(0,h.jsx)(S,{name:"nickname",label:m({id:"Nickname"})}),(0,h.jsx)(l.Button,{type:"primary",onClick:()=>{const e=U({title:m({id:"AddUser"}),size:"small",children:(0,h.jsx)(g,{}),formProps:{onSubmit:async t=>{const{data:n}=await A(Object.assign({},N.admin.addUser,{data:Object.assign({},t)}));0===n.code&&(G.success(m({id:"AddSuccess"})),R.current.reload(),e.close())}}})},children:m({id:"AddUser"})})]})}})}));var S=n(96418);const L=p((0,s.createWithRemoteLoader)({modules:["components-core:Global@usePreset"]})(e=>{let{remoteModules:t,baseUrl:n="/admin"}=e;const[r]=t,{ajax:d,apis:s}=r(),{message:c}=l.App.useApp(),{formatMessage:m}=(0,i.useIntl)(),p=(0,o.useNavigate)(),u=(0,S.default)(async()=>{const{data:e}=await d(Object.assign({},s.admin.initSuperAdmin));0===e.code&&(c.success(m({id:"InitSuccess"})),p(n,{replace:!0}))});return(0,a.useEffect)(()=>{u()},[u]),(0,h.jsx)(l.Result,{status:"warning",title:m({id:"InitSystem"}),subTitle:m({id:"InitSystemDesc"})})})),x=e=>{let{baseUrl:t,pageProps:n,...a}=e;return(0,h.jsx)(d,{value:{baseUrl:t,pageProps:n,...a},children:(0,h.jsxs)(o.Routes,{children:[(0,h.jsx)(o.Route,{path:"user",element:(0,h.jsx)(f,{pageProps:n})}),(0,h.jsx)(o.Route,{element:(0,h.jsx)(o.Navigate,{to:`${t}/user`,replace:!0})})]})})};x.User=f;const T=x},71394(e,t,n){n.d(t,{A:()=>o});const o=e=>{const{prefix:t}=Object.assign({},{prefix:"/api/v1"},e);return{user:{getUserInfo:{url:`${t}/user/getUserInfo`,method:"GET",cache:"get-user-info"},saveUserInfo:{url:`${t}/user/saveUserInfo`,method:"POST"}},account:{sendSMSCode:{url:`${t}/account/sendSMSCode`,method:"POST"},sendEmailCode:{url:`${t}/account/sendEmailCode`,method:"POST"},register:{url:`${t}/account/register`,method:"POST"},login:{url:`${t}/account/login`,method:"POST"},modifyPassword:{url:`${t}/account/modifyPassword`,method:"POST"},forgetPwd:{url:`${t}/account/forgetPwd`,method:"POST"},parseResetToken:{url:`${t}/account/parseResetToken`,method:"POST"},resetPassword:{url:`${t}/account/resetPassword`,method:"POST"},validateCode:{url:`${t}/account/validateCode`,method:"POST"},accountIsExists:{url:`${t}/account/accountIsExists`,method:"POST"}},admin:{getSuperAdminInfo:{url:`${t}/admin/getSuperAdminInfo`,method:"GET"},initSuperAdmin:{url:`${t}/admin/initSuperAdmin`,method:"POST"},getUserList:{url:`${t}/admin/getUserList`,method:"GET"},saveUser:{url:`${t}/admin/saveUser`,method:"POST"},addUser:{url:`${t}/admin/addUser`,method:"POST"},resetUserPassword:{url:`${t}/admin/resetUserPassword`,method:"POST"},setSuperAdmin:{url:`${t}/admin/setSuperAdmin`,method:"POST"},setUserClose:{url:`${t}/admin/setUserClose`,method:"POST"},setUserNormal:{url:`${t}/admin/setUserNormal`,method:"POST"}},signature:{list:{method:"GET",url:`${t}/signature/list`},create:{method:"POST",url:`${t}/signature/create`},update:{method:"POST",url:`${t}/signature/update`},remove:{method:"POST",url:`${t}/signature/remove`},verify:{method:"POST",url:`${t}/signature/verify`}},webhook:{list:{url:`${t}/webhook/list`,method:"GET"},create:{url:`${t}/webhook/create`,method:"POST"},setStatus:{url:`${t}/webhook/set-status`,method:"POST"},invoke:{url:`${t}/webhook/invoke`,method:"POST"},invokeRecord:{url:`${t}/webhook/invoke-record`,method:"GET"},remove:{url:`${t}/webhook/remove`,method:"POST"}},task:{complete:{url:`${t}/task/complete`,method:"POST"},cancel:{url:`${t}/task/cancel`,method:"POST"},list:{url:`${t}/task/list`,method:"GET"},retry:{url:`${t}/task/retry`,method:"POST"}},tenantAdmin:{create:{url:`${t}/tenant/admin/create`,method:"POST"},list:{url:`${t}/tenant/admin/list`,method:"GET"},save:{url:`${t}/tenant/admin/save`,method:"POST"},setStatus:{url:`${t}/tenant/admin/set-status`,method:"POST"},remove:{url:`${t}/tenant/admin/remove`,method:"POST"},detail:{url:`${t}/tenant/admin/detail`,method:"GET"},companyDetail:{url:`${t}/tenant/admin/company-detail`,method:"GET"},companySave:{url:`${t}/tenant/admin/company-save`,method:"POST"},orgList:{url:`${t}/tenant/admin/org-list`,method:"GET"},orgCreate:{url:`${t}/tenant/admin/org-create`,method:"POST"},orgSave:{url:`${t}/tenant/admin/org-save`,method:"POST"},orgRemove:{url:`${t}/tenant/admin/org-remove`,method:"POST"},userList:{url:`${t}/tenant/admin/user-list`,method:"GET"},userCreate:{url:`${t}/tenant/admin/user-create`,method:"POST"},userSetStatus:{url:`${t}/tenant/admin/user-set-status`,method:"POST"},userSave:{url:`${t}/tenant/admin/user-save`,method:"POST"},userRemove:{url:`${t}/tenant/admin/user-remove`,method:"POST"},userInviteToken:{url:`${t}/tenant/admin/user-invite-token`,method:"GET"},userInviteMessage:{url:`${t}/tenant/admin/send-invite-message`,method:"POST"},appendArgs:{url:`${t}/tenant/admin/append-args`,method:"POST"},appendCustomComponent:{url:`${t}/tenant/admin/append-custom-component`,method:"POST"},removeCustomComponent:{url:`${t}/tenant/admin/remove-custom-component`,method:"POST"},saveCustomComponent:{url:`${t}/tenant/admin/save-custom-component`,method:"POST"},copyCustomComponent:{url:`${t}/tenant/admin/copy-custom-component`,method:"POST"},customComponentDetail:{url:`${t}/tenant/admin/custom-component-detail`,method:"GET"},removeArg:{url:`${t}/tenant/admin/remove-arg`,method:"POST"},role:{create:{url:`${t}/tenant/admin/role/create`,method:"POST"},list:{url:`${t}/tenant/admin/role/list`,method:"GET"},save:{url:`${t}/tenant/admin/role/save`,method:"POST"},setStatus:{url:`${t}/tenant/admin/role/set-status`,method:"POST"},remove:{url:`${t}/tenant/admin/role/remove`,method:"POST"},permissionList:{url:`${t}/tenant/admin/role/permission-list`,method:"GET"},permissionSave:{url:`${t}/tenant/admin/role/save-permission`,method:"POST"}},permission:{list:{url:`${t}/tenant/admin/permission/list`,method:"GET"},save:{url:`${t}/tenant/admin/permission/save`,method:"POST"}}},tenant:{parseJoinToken:{url:`${t}/tenant/parse-join-token`,method:"POST"},join:{url:`${t}/tenant/join`,method:"POST"},availableList:{url:`${t}/tenant/available-list`,method:"GET"},switchDefaultTenant:{url:`${t}/tenant/switch-default-tenant`,method:"POST"},getUserInfo:{url:`${t}/tenant/getUserInfo`,method:"GET"},companyDetail:{url:`${t}/tenant/company-detail`,method:"GET"},companySave:{url:`${t}/tenant/company-save`,method:"POST"},orgList:{url:`${t}/tenant/org-list`,method:"GET"},orgCreate:{url:`${t}/tenant/org-create`,method:"POST"},orgSave:{url:`${t}/tenant/org-save`,method:"POST"},orgRemove:{url:`${t}/tenant/org-remove`,method:"POST"},userList:{url:`${t}/tenant/user-list`,method:"GET"},userCreate:{url:`${t}/tenant/user-create`,method:"POST"},userSetStatus:{url:`${t}/tenant/user-set-status`,method:"POST"},userSave:{url:`${t}/tenant/user-save`,method:"POST"},userRemove:{url:`${t}/tenant/user-remove`,method:"POST"},userInviteToken:{url:`${t}/tenant/user-invite-token`,method:"GET"},userInviteMessage:{url:`${t}/tenant/send-invite-message`,method:"POST"},customComponentDetail:{url:`${t}/tenant/custom-component-detail`,method:"GET"},role:{create:{url:`${t}/tenant/role/create`,method:"POST"},list:{url:`${t}/tenant/role/list`,method:"GET"},save:{url:`${t}/tenant/role/save`,method:"POST"},setStatus:{url:`${t}/tenant/role/set-status`,method:"POST"},remove:{url:`${t}/tenant/role/remove`,method:"POST"},permissionList:{url:`${t}/tenant/role/permission-list`,method:"GET"},permissionSave:{url:`${t}/tenant/role/save-permission`,method:"POST"}},permission:{list:{url:`${t}/tenant/permission/list`,method:"GET"}}},intlAdmin:{langType:{list:{loader:()=>({totalCount:0,pageData:[]}),url:`${t}/intl-admin/lang-type/list`,method:"GET"},create:{url:`${t}/intl-admin/lang-type/create`,method:"POST"},save:{url:`${t}/intl-admin/lang-type/save`,method:"POST"},remove:{url:`${t}/intl-admin/lang-type/remove`,method:"POST"},setStatus:{url:`${t}/intl-admin/lang-type/set-status`,method:"POST"}},langLib:{list:{loader:()=>({totalCount:0,pageData:[]}),url:`${t}/intl-admin/lang-lib/list`,method:"GET"},create:{url:`${t}/intl-admin/lang-lib/add-package`,method:"POST"},save:{url:`${t}/intl-admin/lang-lib/save`,method:"POST"},setStatus:{url:`${t}/intl-admin/lang-lib/set-status`,method:"POST"},remove:{url:`${t}/intl-admin/lang-lib/remove`,method:"POST"}}}}}},53106(e,t,n){n.r(t),n.d(t,{AfterAdminUserLoginLayout:()=>P,AfterCustomUserLogin:()=>v,AfterCustomUserLoginLayout:()=>b,AfterUserLogin:()=>y,AfterUserLoginLayout:()=>k,BeforeLoginLayout:()=>f,CustomUserInfo:()=>l,MainLayout:()=>h,RightOptions:()=>g,SaveUserInfo:()=>A,SuperAdminInfo:()=>c,UserInfo:()=>i,UserInfoFormInner:()=>I});var o=n(13050),a=n(94679),r=n(87558),d=n(70579);const s=e=>{let{data:t,baseUrl:n,children:o}=e;const r=(0,a.useLocation)();return 1===t.userInfo.status?(0,d.jsx)(a.Navigate,{to:`${n||""}/modify/${encodeURIComponent(t.userInfo.email)}?referer=${encodeURIComponent(r.pathname+r.search)}`,replace:!0}):o},l=(0,o.createWithRemoteLoader)({modules:["components-core:Global@SetGlobal"]})(e=>{let{remoteModules:t,cache:n,baseUrl:o,children:a,api:l}=e;const[i]=t;return(0,d.jsx)(r.default,{cache:n,...Object.assign({},l),render:e=>{let{data:t,reload:n}=e;return(0,d.jsx)(s,{baseUrl:o,data:t,children:(0,d.jsx)(i,{globalKey:"userInfo",value:{value:t.userInfo,reload:n},needReady:!0,children:a})})}})}),i=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset"]})(e=>{let{remoteModules:t,...n}=e;const[o]=t,{apis:a}=o();return(0,d.jsx)(l,{...n,api:a.user.getUserInfo,cache:"user-info"})}),c=(0,o.createWithRemoteLoader)({modules:["components-core:Global@SetGlobal","components-core:Global@usePreset"]})(e=>{let{remoteModules:t,children:n}=e;const[o,a]=t,{apis:s}=a();return(0,d.jsx)(r.default,{cache:"super-admin-info",...Object.assign({},s.admin.getSuperAdminInfo),render:e=>{let{data:t,reload:a}=e;return(0,d.jsx)(o,{globalKey:"userInfo",value:{value:t.userInfo,reload:a},needReady:!0,children:n})}})});var m=n(2),p=n(68743),u=n(55199);const h=(0,o.createWithRemoteLoader)({modules:["components-core:Layout"]})(e=>{let{remoteModules:t,navigation:n,title:o,children:a}=e;const[r]=t;return(0,d.jsx)(r,{navigation:{defaultTitle:o,...Object.assign({},n)},children:a})}),g=(0,o.createWithRemoteLoader)({modules:["components-core:Global@GlobalValue"]})(e=>{let{remoteModules:t}=e;const[n]=t;return(0,d.jsxs)(u.Flex,{gap:8,children:[(0,d.jsx)(p.A,{}),(0,d.jsx)(n,{globalKey:"userInfo",children:e=>{let{value:t}=e;const{nickname:n,avatar:o,email:a}=Object.assign({},null===t||void 0===t?void 0:t.value);return(0,d.jsx)(m.default,{name:n,email:a,avatar:o})}})]})}),b=e=>{let{baseUrl:t,navigation:n,api:o,children:r,...s}=e;return(0,d.jsx)(l,{baseUrl:t||"/account",api:o,children:(0,d.jsx)(h,{...s,navigation:Object.assign({},{rightOptions:(0,d.jsx)(g,{})},n),children:r||(0,d.jsx)(a.Outlet,{})})})},v=e=>{let{baseUrl:t,api:n,children:o,...r}=e;return(0,d.jsx)(l,{baseUrl:t||"/account",api:n,children:o||(0,d.jsx)(a.Outlet,{})})},k=e=>{let{baseUrl:t,navigation:n,children:o,...r}=e;return(0,d.jsx)(i,{baseUrl:t||"/account",children:(0,d.jsx)(h,{...r,navigation:Object.assign({},{rightOptions:(0,d.jsx)(g,{})},n),children:o||(0,d.jsx)(a.Outlet,{})})})},y=e=>{let{baseUrl:t,children:n,...o}=e;return(0,d.jsx)(i,{baseUrl:t||"/account",children:n||(0,d.jsx)(a.Outlet,{})})},P=e=>{let{navigation:t,children:n,...o}=e;return(0,d.jsx)(c,{children:(0,d.jsx)(h,{...o,navigation:Object.assign({},{rightOptions:(0,d.jsx)(g,{})},t),children:n||(0,d.jsx)(a.Outlet,{})})})},f=e=>{let{children:t,...n}=e;return(0,d.jsx)(d.Fragment,{children:t||(0,d.jsx)(a.Outlet,{})})};var S=n(52526);const L={Avatar:"\u5934\u50cf",Email:"\u90ae\u7bb1",Nickname:"\u6635\u79f0",Description:"\u7b80\u4ecb",EditUserInfo:"\u7f16\u8f91\u4e2a\u4eba\u57fa\u672c\u4fe1\u606f",SaveSuccess:"\u4fdd\u5b58\u6210\u529f"},x={Avatar:"Avatar",Email:"Email",Nickname:"Nickname",Description:"Description",EditUserInfo:"Edit Personal Info",SaveSuccess:"Saved successfully"},T=(0,S.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":L,"en-US":x},namespace:"components-admin:Authenticate"}),I=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo"]})(T(e=>{let{remoteModules:t,...n}=e;const[o]=t,{formatMessage:a}=(0,S.useIntl)(),{Avatar:r,Input:s,TextArea:l}=o.fields;return(0,d.jsx)(o,{...n,list:[(0,d.jsx)(u.Flex,{justify:"center",children:(0,d.jsx)(r,{name:"avatar",label:a({id:"Avatar"}),labelHidden:!0,interceptor:"photo-string"})}),(0,d.jsx)(s,{name:"email",label:a({id:"Email"}),rule:"REQ"}),(0,d.jsx)(s,{name:"nickname",label:a({id:"Nickname"})}),(0,d.jsx)(l,{name:"description",label:a({id:"Description"}),rule:"LEN-0-500"})]})})),A=T((0,o.createWithRemoteLoader)({modules:["components-core:FormInfo@useFormModal","components-core:Global@usePreset","components-core:Global@useGlobalContext"]})(e=>{let{remoteModules:t,children:n}=e;const[o,a,r]=t,s=o(),{global:l}=r("userInfo"),{apis:i,ajax:c}=a(),{message:m}=u.App.useApp(),{formatMessage:p}=(0,S.useIntl)();return n({onClick:()=>{const e=s({title:p({id:"EditUserInfo"}),size:"small",formProps:{data:l.value,onSubmit:async t=>{const{data:n}=await c(Object.assign({},i.user.saveUserInfo,{data:t}));0===n.code&&(m.success(p({id:"SaveSuccess"})),l.reload(),e.close())}},children:(0,d.jsx)(I,{column:1})})}})}))},13851(e,t,n){n.r(t),n.d(t,{default:()=>d});var o=n(13050),a=n(73884),r=n(70579);const d=(0,o.createWithRemoteLoader)({modules:["components-thirdparty:CKEditor","components-core:Global@usePreset"]})(e=>{var t;let{remoteModules:n,...o}=e;const[d,s]=n,{apis:l}=s(),i=(0,a.useMemo)(()=>{var e;return{upload:null===l||void 0===l||null===(e=l.file)||void 0===e?void 0:e.uploadForEditor}},[null===l||void 0===l||null===(t=l.file)||void 0===t?void 0:t.uploadForEditor]);return(0,r.jsx)(d,{...o,uploadAdapter:i})})},40409(e,t,n){n.r(t),n.d(t,{default:()=>d});var o=n(13050),a=n(55199),r=n(70579);const d=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@useFormModal","components-core:Global@usePreset"]})(e=>{var t,n,o;let{remoteModules:d,name:s,label:l,rule:i,apis:c,valueKey:m="code",labelKey:p="name",single:u,placeholder:h,disabled:g,groupName:b="\u6807\u7b7e",...v}=e;const[k,y,P]=d,{fields:f}=k,{SuperSelectTableList:S}=f,{ajax:L,apis:x}=P(),{message:T,modal:I}=a.App.useApp(),A=y(),N=void 0!==c,U=N?!(null===c||void 0===c||!c.create):!(null===x||void 0===x||null===(t=x.group)||void 0===t||!t.create),G=N?!(null===c||void 0===c||!c.remove):!(null===x||void 0===x||null===(n=x.group)||void 0===n||!n.remove),R=[{title:"\u7f16\u7801",name:"code",span:4},{title:"\u540d\u79f0",name:"name",span:6},{title:"\u63cf\u8ff0",name:"description",span:G?10:14}];return G&&R.push({title:"\u64cd\u4f5c",name:"options",span:4,getValueOf:(e,t)=>{let{context:n}=t;const{fetchApi:o,value:a,setValue:d}=n;return(0,r.jsx)("span",{onClick:e=>e.stopPropagation(),children:(0,r.jsx)("a",{onClick:()=>{I.confirm({title:"\u786e\u8ba4\u5220\u9664",content:`\u786e\u5b9a\u8981\u5220\u9664${b}"${e.name}"\u5417\uff1f`,okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onOk:()=>(async(e,t)=>{let{fetchApi:n,value:o,setValue:a}=t;try{var r;const{data:t}=await L(Object.assign({},(null===c||void 0===c?void 0:c.remove)||(null===x||void 0===x||null===(r=x.group)||void 0===r?void 0:r.remove),{data:{id:e.id,code:e.code}}));if(0!==t.code)return;if(T.success(`\u5220\u9664${b}\u6210\u529f`),n.reload(),o&&o.length>0&&o.find(t=>e[m]===t[m])){const t=o.findIndex(t=>e[m]===t[m]),n=o.slice(0);n.splice(t,1),a(n)}}catch(d){T.error(`\u5220\u9664${b}\u5931\u8d25`)}})(e,{fetchApi:o,value:a,setValue:d})})},children:"\u5220\u9664"})})}}),(0,r.jsx)(S,{name:s,label:l,rule:i,placeholder:h,disabled:g,single:u,valueKey:m,labelKey:p,api:(null===c||void 0===c?void 0:c.list)||(null===x||void 0===x||null===(o=x.group)||void 0===o?void 0:o.list),getSearchProps:e=>{let{searchText:t}=e;return{filter:{keyword:t}}},pagination:{paramsType:"params"},columns:R,isPopup:!1,footer:U?e=>{let{reload:t}=e;return(0,r.jsx)(a.Button,{type:"link",onClick:()=>(e=>{let{reload:t}=e;A({title:`\u6dfb\u52a0${b}`,size:"small",formProps:{onSubmit:async e=>{var n;const{data:o}=await L(Object.assign({},(null===c||void 0===c?void 0:c.create)||(null===x||void 0===x||null===(n=x.group)||void 0===n?void 0:n.create),{data:e}));if(0!==o.code)return!1;T.success(`\u6dfb\u52a0${b}\u6210\u529f`),t()}},children:(0,r.jsx)(k,{column:1,list:[(0,r.jsx)(k.fields.Input,{name:"code",label:"\u7f16\u7801",rule:"REQ",placeholder:"\u8bf7\u8f93\u5165\u552f\u4e00\u7f16\u7801"}),(0,r.jsx)(k.fields.Input,{name:"name",label:"\u540d\u79f0",rule:"REQ",placeholder:`\u8bf7\u8f93\u5165${b}\u540d\u79f0`}),(0,r.jsx)(k.fields.TextArea,{name:"description",label:"\u63cf\u8ff0",placeholder:`\u8bf7\u8f93\u5165${b}\u63cf\u8ff0`})]})})})({reload:t}),children:`\u6dfb\u52a0${b}`})}:null,...v})})},87114(e,t,n){n.r(t),n.d(t,{default:()=>s});var o=n(13050),a=n(53856);const r=()=>[{name:"id",title:"ID",type:"serialNumber",hover:!1,primary:!1},{name:"namespace",title:"\u547d\u540d\u7a7a\u95f4",type:"mainInfo",hover:!1,primary:!1},{name:"locale",title:"\u8bed\u8a00"},{name:"code",title:"\u7f16\u7801"},{name:"target",title:"\u76ee\u6807\u503c"},{name:"reviewStatus",title:"\u5ba1\u6838\u72b6\u6001",type:"tag",valueOf:e=>{let{reviewStatus:t}=e;return t&&{isEnum:!0,moduleName:"reviewStatus",name:t}}},{name:"status",title:"\u72b6\u6001",type:"tag",valueOf:e=>{let{status:t}=e;return t&&{isEnum:!0,moduleName:"openStatus",name:t}}}];var d=n(70579);const s=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset","components-core:Layout@TablePage"]})(e=>{let{remoteModules:t,menu:n,pageProps:o={}}=e;const[s,l]=t,{apis:i}=s();return(0,d.jsx)(a.default,{name:"langLib",apis:i.intlAdmin.langLib,getColumns:r,children:e=>{let{filter:t,topOptions:a,titleExtra:r,tableOptions:s}=e;return(0,d.jsx)(l,{...Object.assign({},s),page:{...o,menu:n,filter:t,titleExtra:r,topOptions:a}})}})})},62730(e,t,n){n.r(t),n.d(t,{default:()=>l});var o=n(13050),a=n(53856);const r=()=>[{name:" id",title:"ID",type:"serialNumber",hover:!1,primary:!1},{name:"name",title:"\u540d\u79f0",type:"mainInfo",hover:!1,primary:!1},{name:"code",title:"\u7f16\u7801"},{name:"params",title:"\u7ffb\u8bd1\u53c2\u6570"},{name:"description",title:"\u63cf\u8ff0",type:"description",ellipsis:!0},{name:"status",title:"\u72b6\u6001",type:"tag",valueOf:e=>{let{status:t}=e;return t&&{isEnum:!0,moduleName:"openStatus",name:t}}}];var d=n(70579);const s=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo"]})(e=>{let{remoteModules:t,...n}=e;const[o]=t,{Input:a,TextArea:r}=o.fields;return(0,d.jsx)(o,{column:1,...n,list:[(0,d.jsx)(a,{name:"name",label:"\u540d\u79f0",rule:"REQ LEN-0-100"}),(0,d.jsx)(a,{name:"code",label:"\u7f16\u7801",rule:"REQ LEN-0-100"}),(0,d.jsx)(r,{name:"params",label:"\u7ffb\u8bd1\u53c2\u6570",rule:"LEN-0-1000"}),(0,d.jsx)(r,{name:"description",label:"\u63cf\u8ff0",rule:"LEN-0-1000"})]})}),l=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset","components-core:Layout@TablePage"]})(e=>{let{remoteModules:t,menu:n,pageProps:o={}}=e;const[l,i]=t,{apis:c}=l();return(0,d.jsx)(a.default,{name:"langType",apis:c.intlAdmin.langType,getColumns:r,getFormInner:e=>(0,d.jsx)(s,{...e}),options:{bizName:"\u8bed\u8a00\u79cd\u7c7b"},children:e=>{let{filter:t,topOptions:a,titleExtra:r,tableOptions:s}=e;return(0,d.jsx)(i,{...Object.assign({},s),page:{...o,menu:n,filter:t,titleExtra:r,topOptions:a}})}})})},52751(e,t,n){n.r(t),n.d(t,{LangLib:()=>d.default,LangType:()=>r.default,default:()=>c,enums:()=>s});var o=n(56973),a=n(13050),r=n(62730),d=n(87114);const s={reviewStatus:[{value:"approved",description:"\u5df2\u901a\u8fc7"},{value:"pending",description:"\u5f85\u5ba1\u6838"},{value:"rejected",description:"\u5df2\u62d2\u7edd"}]};var l=n(70579);const i=(0,a.createWithRemoteLoader)({modules:["components-core:Menu"]})(e=>{let{remoteModules:t,baseUrl:a,pageProps:r,...d}=e;const[s]=t,i=(0,l.jsx)(s,{items:[{path:`${a}`,label:"\u8bed\u8a00\u7c7b\u578b"},{path:`${a}/lang-lib`,label:"\u8bed\u8a00\u5e93"}]});return(0,l.jsx)(o.default,{...d,baseUrl:a,list:[{index:!0,loader:()=>Promise.resolve().then(n.bind(n,62730)),elementProps:{menu:i,pageProps:r}},{path:"lang-lib",loader:()=>Promise.resolve().then(n.bind(n,87114)),elementProps:{menu:i,pageProps:r}}]})});i.LangType=r.default,i.LangLib=d.default;const c=i},97594(e,t,n){n.r(t),n.d(t,{default:()=>a});var o=n(70579);const a=()=>(0,o.jsx)("div",{children:"unleash creativity"})},71859(e,t,n){n.r(t),n.d(t,{default:()=>b,getColumns:()=>a});var o=n(13050);const a=e=>{let{formatMessage:t}=e;return[{name:"appId",title:"AppId",type:"other"},{name:"secretKey",title:"SecretKey",type:"other"},{name:"user",title:t({id:"BelongUser"}),type:"other",valueOf:e=>{let{user:t}=e;return t.nickname||t.email||t.phone}},{name:"description",title:t({id:"Description"}),type:"description"},{name:"lastVisitedAt",title:t({id:"LastVisitedAt"}),type:"datetime"},{name:"status",title:t({id:"Status"}),type:"tag",valueOf:(e,n)=>{let{name:o}=n;return 0===e[o]?{type:"success",text:t({id:"Enabled"})}:{type:"danger",text:t({id:"Disabled"})}}},{name:"createdAt",title:t({id:"CreatedAt"}),type:"datetime"}]};var r=n(55199),d=n(98889),s=n(52526);const l={AppId:"AppId",SecretKey:"SecretKey",BelongUser:"\u6240\u5c5e\u7528\u6237",Description:"\u63cf\u8ff0",LastVisitedAt:"\u6700\u540e\u8bbf\u95ee\u65f6\u95f4",Status:"\u72b6\u6001",CreatedAt:"\u521b\u5efa\u65f6\u95f4",Enabled:"\u542f\u7528",Disabled:"\u7981\u7528",AddSecretKey:"\u6dfb\u52a0\u5bc6\u94a5",Verify:"\u9a8c\u8bc1",Operation:"\u64cd\u4f5c",VerifySecretKey:"\u9a8c\u8bc1\u5bc6\u94a5",Signature:"\u7b7e\u540d",Timestamp:"\u65f6\u95f4\u6233",ExpireTime:"\u8fc7\u671f\u65f6\u95f4",SecretKeyGenerated:"\u5bc6\u94a5\u751f\u6210\u6210\u529f",SaveSecretKeyWarning:"\u8bf7\u59a5\u5584\u4fdd\u5b58\u5f53\u524d\u5bc6\u94a5\uff0c\u5173\u95ed\u7a97\u53e3\u540e\u5c06\u4e0d\u80fd\u518d\u83b7\u53d6\u5230\uff0c\u8bf7\u52ff\u6cc4\u6f0f",VerifySuccess:"\u9a8c\u8bc1\u6210\u529f",VerifyFailed:"\u9a8c\u8bc1\u5931\u8d25",OperationSuccess:"\u64cd\u4f5c\u6210\u529f",DeleteSuccess:"\u5220\u9664\u6210\u529f",DisableSecretKeyTitle:"\u6e29\u99a8\u63d0\u793a",DisableSecretKeyMessage:"\u7981\u7528\u6b64\u5bc6\u94a5\u540e\uff0c\u5c06\u62d2\u7edd\u6b64\u5bc6\u94a5\u7684\u6240\u6709\u8bf7\u6c42\u3002\u662f\u5426\u786e\u5b9a\u8981\u7981\u7528\u6b64\u5bc6\u94a5\uff1f",EnableSecretKeyMessage:"\u542f\u7528\u6b64\u5bc6\u94a5\u540e\uff0c\u5c06\u5141\u8bb8\u6b64\u5bc6\u94a5\u8bbf\u95ee\u8bf7\u6c42\u3002\u662f\u5426\u786e\u5b9a\u8981\u542f\u7528\u6b64\u5bc6\u94a5\uff1f",InputNumber:"\u8bf7\u8f93\u5165\u6570\u5b57"},i={AppId:"AppId",SecretKey:"SecretKey",BelongUser:"Belong User",Description:"Description",LastVisitedAt:"Last Visited At",Status:"Status",CreatedAt:"Created At",Enabled:"Enabled",Disabled:"Disabled",AddSecretKey:"Add Secret Key",Verify:"Verify",Operation:"Operation",VerifySecretKey:"Verify Secret Key",Signature:"Signature",Timestamp:"Timestamp",ExpireTime:"Expire Time",SecretKeyGenerated:"Secret key generated successfully",SaveSecretKeyWarning:"Please save the current secret key properly. You will not be able to retrieve it after closing this window. Do not disclose it.",VerifySuccess:"Verify successful",VerifyFailed:"Verify failed",OperationSuccess:"Operation successful",DeleteSuccess:"Deleted successfully",DisableSecretKeyTitle:"Friendly Reminder",DisableSecretKeyMessage:"After disabling this secret key, all requests using this key will be rejected. Are you sure you want to disable this secret key?",EnableSecretKeyMessage:"After enabling this secret key, it will be allowed to access requests. Are you sure you want to enable this secret key?",InputNumber:"Please enter a number"},c=(0,s.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":l,"en-US":i},namespace:"components-admin:Signature"});var m=n(53856),p=n(73884),u=n(70579);const h=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@useFormModal","components-core:Global@usePreset"]})(e=>{let{remoteModules:t,data:n}=e;const[o,a,d]=t,{formatMessage:l}=(0,s.useIntl)(),{ajax:i,apis:c}=d(),{TextArea:m,Input:p}=o.fields,h=a(),{message:g}=r.App.useApp();return(0,u.jsx)("a",{onClick:()=>{h({title:l({id:"VerifySecretKey"}),size:"small",saveText:l({id:"Verify"}),formProps:{rules:{NUM:e=>/^[0-9]+$/.test(e)?{result:!0,errMsg:""}:{result:!1,errMsg:l({id:"InputNumber"})}},data:{appId:n.appId},onSubmit:async e=>{const{data:t}=await i(Object.assign({},c.signature.verify,{data:{appId:n.appId,...e}}));0===t.code&&(t.data.result?g.success(l({id:"VerifySuccess"})):g.error(`${l({id:"VerifyFailed"})},${t.data.message}`))}},children:(0,u.jsx)(o,{column:1,list:[(0,u.jsx)(m,{name:"signature",label:l({id:"Signature"}),rule:"REQ"}),(0,u.jsx)(p,{name:"timestamp",label:l({id:"Timestamp"}),rule:"REQ NUM"}),(0,u.jsx)(p,{name:"expire",label:l({id:"ExpireTime"}),rule:"REQ NUM"})]})})},children:l({id:"Verify"})})}),g=(0,o.createWithRemoteLoader)({modules:["components-core:FormInfo","components-core:FormInfo@useFormModal","components-core:Global@usePreset","components-core:InfoPage@CentralContent"]})(e=>{let{remoteModules:t,onSuccess:n}=e;const[o,a,l,i]=t,{formatMessage:c}=(0,s.useIntl)(),{ajax:m,apis:p}=l(),{TextArea:h}=o.fields,g=a(),{modal:b}=r.App.useApp();return(0,u.jsx)(r.Button,{type:"primary",onClick:()=>{const e=g({title:c({id:"AddSecretKey"}),size:"small",formProps:{onSubmit:async t=>{const{data:o}=await m(Object.assign({},p.signature.create,{data:t}));0===o.code&&(n&&n(),e.close(),b.info({icon:null,size:"large",width:"800px",title:c({id:"SecretKeyGenerated"}),content:(0,u.jsxs)(r.Flex,{vertical:!0,gap:10,children:[(0,u.jsx)(r.Alert,{type:"error",message:c({id:"SaveSecretKeyWarning"})}),(0,u.jsx)(i,{dataSource:o.data,col:1,columns:[{name:"appId",title:"AppId"},{name:"secretKey",title:"SecretKey"}]})]})}))}},children:(0,u.jsx)(o,{column:1,list:[(0,u.jsx)(d.default,{name:"userId",label:c({id:"BelongUser"}),single:!0,interceptor:"object-output-value"}),(0,u.jsx)(h,{name:"description",label:c({id:"Description"}),maxLength:100})]})})},children:c({id:"AddSecretKey"})})}),b=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset"]})(c(e=>{let{remoteModules:t}=e;const[n]=t,{apis:o}=n(),{formatMessage:r}=(0,s.useIntl)(),d=(0,p.useRef)(null),l={list:o.signature.list,remove:o.signature.remove,setStatus:o.signature.update},i={bizName:"\u5bc6\u94a5",openStatus:0,closedStatus:1,openButtonProps:{children:r({id:"Enabled"})},closeButtonProps:{children:r({id:"Disabled"})},closeMessage:r({id:"DisableSecretKeyMessage"}),removeMessage:r({id:"ConfirmDelete"},{bizName:"\u5bc6\u94a5"})};return(0,u.jsx)(m.default,{name:"signature-list",apis:l,getColumns:()=>a({formatMessage:r}),getActionList:e=>{let{data:t,...n}=e;const o=["setStatusOpen","setStatusClose","remove"].map(e=>({name:e,reset:n=>"remove"===e||"setStatusOpen"===e?{...n,hidden:0===t.status}:"setStatusClose"===e?{...n,hidden:1===t.status}:n}));return[{...n,buttonComponent:h,data:t},...o]},options:i,allowKeywordSearch:!1,onMount:e=>{let{tableOptions:t}=e;d.current=t.ref.current},titleExtra:(0,u.jsx)(g,{onSuccess:()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.reload()}})})}))},98889(e,t,n){n.r(t),n.d(t,{default:()=>r});var o=n(13050),a=n(70579);const r=(0,o.createWithRemoteLoader)({modules:["components-core:Global@usePreset","components-core:FormInfo"]})(e=>{let{remoteModules:t,status:n=0,api:o,...r}=e;const[d,s]=t,{apis:l}=d(),{SuperSelectUser:i}=s.fields;return(0,a.jsx)(i,{...r,api:Object.assign({},l.admin.getUserList,{data:{filter:Object.assign({},Number.isInteger(n)&&{status:n})},transformData:e=>Object.assign({},e,{pageData:(e.pageData||[]).map(e=>Object.assign({},e,{value:e.id,label:e.nickname||e.email||e.phone}))})},o)})})},2(e,t,n){n.r(t),n.d(t,{RightOptions:()=>L,default:()=>f});var o=n(13050),a=n(55199),r=n(98406);const d="style_icon__KSAP2__EZeXx",s="style_content__akCc4__EZeXx",l="style_overlay__IH+0B__EZeXx",i="style_info__5uvqI__EZeXx",c="style_user-tool__CBaDm__EZeXx",m="style_divider__jcjqI__EZeXx",p="style_options-list__RHknC__EZeXx",u="style_options-list-item__IOziy__EZeXx",h="style_user-name__q7lY4__EZeXx",g="style_line__rOiNk__EZeXx";var b=n(52526);const v={UserToolUnnamed:"\u672a\u547d\u540d",UserToolLogout:"\u9000\u51fa\u767b\u5f55"},k={UserToolUnnamed:"Unnamed",UserToolLogout:"Logout"},y=(0,b.createWithIntlProvider)({defaultLocale:"zh-CN",messages:{"zh-CN":v,"en-US":k},namespace:"components-admin:UserTool"});var P=n(70579);const f=(0,o.createWithRemoteLoader)({modules:["components-core:Image","components-core:Icon"]})(y(e=>{let{remoteModules:t,avatar:n,name:o,email:v,storeKeys:k={token:"X-User-Token"},domain:y,list:f,children:S=null}=e;const[L,x]=t,T=(0,r.useLogout)({storeKeys:k,domain:y}),{formatMessage:I}=(0,b.useIntl)();return(0,P.jsx)(a.Dropdown,{trigger:"click",rootClassName:l,popupRender:()=>(0,P.jsxs)(a.Space,{direction:"vertical",className:s,children:[(0,P.jsxs)(a.Space,{className:i,children:[(0,P.jsx)(L.Avatar,{id:n,size:48}),(0,P.jsxs)("div",{children:[(0,P.jsx)("div",{className:g,children:o||I({id:"UserToolUnnamed"})}),(0,P.jsx)("div",{className:g,children:v||"-"})]})]}),(0,P.jsx)(a.Divider,{className:m}),S,(0,P.jsxs)(a.List,{className:p,children:[f&&f.length>0&&f.map((e,t)=>(0,P.jsx)(a.List.Item,{className:u,onClick:e.onClick,children:(0,P.jsxs)(a.Flex,{gap:8,flex:1,children:[e.iconType&&(0,P.jsx)(x,{type:e.iconType}),(0,P.jsx)(a.Flex,{flex:1,children:e.label})]})},t)),(0,P.jsx)(a.List.Item,{className:u,onClick:T,children:(0,P.jsxs)(a.Flex,{gap:8,flex:1,children:[(0,P.jsx)(x,{type:"icon-tuichudenglu"}),(0,P.jsx)("span",{children:I({id:"UserToolLogout"})})]})})]})]}),arrow:!1,transitionName:"ant-slide-up",children:(0,P.jsxs)(a.Space,{className:c,children:[(0,P.jsx)(L.Avatar,{id:n,size:32}),(0,P.jsx)("div",{className:h,children:o||I({id:"UserToolUnnamed"})}),(0,P.jsx)(x,{className:d,type:"triangle-down",size:12})]})})}));var S=n(68743);const L=(0,o.createWithRemoteLoader)({modules:["components-core:Global@GlobalValue"]})(e=>{let{remoteModules:t}=e;const[n]=t;return(0,P.jsxs)(a.Flex,{gap:8,children:[(0,P.jsx)(S.A,{}),(0,P.jsx)(n,{globalKey:"userInfo",children:e=>{let{value:t}=e;if(!t)return null;const{userInfo:n,tenantUser:o,tenant:a}=t;return(0,P.jsx)(f,{avatar:o?o.avatar:n.avatar,name:o?o.name:n.nickname,email:o?o.email:n.email,tenant:a,orgName:o&&((null===o||void 0===o?void 0:o.tenantOrgs)||[]).map(e=>e.name).join(",")})}})]})})},1784(e,t,n){n.r(t),n.d(t,{adminUserList:()=>p,default:()=>k,groupList:()=>g,intlAdminData:()=>m,signatureList:()=>c,superAdminInfo:()=>h,taskList:()=>i,tenantAdminData:()=>v,tenantData:()=>b,userInfo:()=>u});var o=n(11125),a=n(71394),r=n(45272),d=n(52751),s=n(34677),l=n.n(s),i=n(49827),c=n(75480),m=n(80527),p=n(10015),u=n(87841),h=n(13889),g=n(11435),b=n(36264),v=n(48666);const k={ajax:async e=>{let{loader:t,...n}=e;if(!t&&n.url){const{ajax:e}=await(0,o.U)();return e({loader:t,...n})}return Promise.resolve({data:t?{code:0,data:t()}:{code:0,data:{}}})},apis:l()({},(0,a.A)(),{task:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,49827,19)).then(e=>{let{default:t}=e;return t.data})},cancel:{loader:()=>({code:0,data:{success:!0}})},retry:{loader:()=>({code:0,data:{success:!0}})}},signature:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,75480,19)).then(e=>{let{default:t}=e;return t.data})},create:{loader:()=>({appId:`app_${Date.now()}`,secretKey:`sk_${Math.random().toString(36).substr(2,32)}`})},update:{loader:()=>({success:!0})},remove:{loader:()=>({success:!0})},verify:{loader:()=>({result:!0,message:"\u9a8c\u8bc1\u6210\u529f"})}},intlAdmin:{langType:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,80527,19)).then(e=>{let{default:t}=e;return t.langType})},create:{loader:()=>({id:Date.now()})},save:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})}},langLib:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,80527,19)).then(e=>{let{default:t}=e;return t.langLib})},create:{loader:()=>({id:Date.now()})},save:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})}}},admin:{getUserList:{loader:()=>Promise.resolve().then(n.t.bind(n,10015,19)).then(e=>{let{default:t}=e;return t})},addUser:{loader:()=>({id:Date.now()})},saveUser:{loader:()=>({code:0})},resetUserPassword:{loader:()=>({code:0})},setSuperAdmin:{loader:()=>({code:0})},setUserNormal:{loader:()=>({code:0})},setUserClose:{loader:()=>({code:0})},getSuperAdminInfo:{loader:()=>Promise.resolve().then(n.t.bind(n,13889,19)).then(e=>{let{default:t}=e;return t.data})},initSuperAdmin:{loader:()=>({code:0})}},user:{getUserInfo:{loader:()=>Promise.resolve().then(n.t.bind(n,87841,19)).then(e=>{let{default:t}=e;return t.data})},saveUserInfo:{loader:()=>({code:0})}},group:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,11435,19)).then(e=>{let{default:t}=e;return t.data})},create:{loader:()=>({id:Date.now(),code:Date.now()})},remove:{loader:()=>({code:0})}},tenant:{availableList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.availableTenantList})},switchDefaultTenant:{loader:()=>({code:0})},getUserInfo:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return{tenantUserInfo:t.tenantUserInfo,company:t.company,tenant:t.tenantList.pageData[0],userInfo:t.tenantUserInfo}})},companyDetail:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.company})},companySave:{loader:()=>({code:0})},orgList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.orgList})},orgCreate:{loader:()=>({id:`dept-${Date.now()}`})},orgSave:{loader:()=>({code:0})},orgRemove:{loader:()=>({code:0})},userList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.userList})},userCreate:{loader:()=>({id:`user-${Date.now()}`})},userSave:{loader:()=>({code:0})},userRemove:{loader:()=>({code:0})},userSetStatus:{loader:()=>({code:0})},userInviteToken:{loader:()=>({token:`invite_${Date.now()}`})},userInviteMessage:{loader:()=>({code:0})},role:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.roleList})},create:{loader:()=>({id:`role-${Date.now()}`})},save:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},permissionList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},permissionSave:{loader:()=>({code:0})}},permission:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})}},getUserList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.userList})},createUser:{loader:()=>({id:`user-${Date.now()}`})},saveUser:{loader:()=>({code:0})},removeUser:{loader:()=>({code:0})},getRoleList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.roleList})},createRole:{loader:()=>({id:`role-${Date.now()}`})},saveRole:{loader:()=>({code:0})},removeRole:{loader:()=>({code:0})},getPermissionList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},savePermission:{loader:()=>({code:0})},parseJoinToken:{loader:e=>{let{data:t}=e;return t&&t.token&&"invalid"!==t.token?Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return{tenant:t.tenantList.pageData[0],tenantUser:t.tenantUserInfo,company:t.company}}):null}},join:{loader:()=>({code:0})}},file:{getUrl:{loader:e=>{let{params:t}=e;return t&&t.id?t.id:"https://picsum.photos/200/200"}}},tenantAdmin:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,48666,19)).then(e=>{let{default:t}=e;return t.tenantList})},detail:{loader:()=>Promise.resolve().then(n.t.bind(n,48666,19)).then(e=>{let{default:t}=e;return t.tenantDetail})},create:{loader:()=>({id:`tenant-${Date.now()}`})},save:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})},companyDetail:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.company})},companySave:{loader:()=>({code:0})},orgList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.orgList})},orgCreate:{loader:()=>({id:`dept-${Date.now()}`})},orgSave:{loader:()=>({code:0})},orgRemove:{loader:()=>({code:0})},userList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.userList})},userCreate:{loader:()=>({id:`user-${Date.now()}`})},userSave:{loader:()=>({code:0})},userSetStatus:{loader:()=>({code:0})},userInviteToken:{loader:()=>({token:`invite_${Date.now()}`})},userInviteMessage:{loader:()=>({code:0})},role:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.roleList})},create:{loader:()=>({id:`role-${Date.now()}`})},save:{loader:()=>({code:0})},remove:{loader:()=>({code:0})},setStatus:{loader:()=>({code:0})},permissionList:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},permissionSave:{loader:()=>({code:0})}},permission:{list:{loader:()=>Promise.resolve().then(n.t.bind(n,36264,19)).then(e=>{let{default:t}=e;return t.permissionList})},save:{loader:()=>({code:0})}},appendArgs:{loader:()=>({code:0})},removeArg:{loader:()=>({code:0})},appendCustomComponent:{loader:()=>({code:0})},customComponentDetail:{loader:()=>({content:"<div>Custom Component</div>"})},saveCustomComponent:{loader:()=>({code:0})},copyCustomComponent:{loader:()=>({code:0})},removeCustomComponent:{loader:()=>({code:0})}}}),enums:Object.assign({},r.enums,d.enums,{taskType:[{value:"interview_report",description:"\u9762\u8bd5\u62a5\u544a"},{value:"data_export",description:"\u6570\u636e\u5bfc\u51fa"},{value:"email_notification",description:"\u90ae\u4ef6\u901a\u77e5"},{value:"video_processing",description:"\u89c6\u9891\u5904\u7406"},{value:"data_sync",description:"\u6570\u636e\u540c\u6b65"},{value:"report_generation",description:"\u62a5\u8868\u751f\u6210"}]}),global:b.global}},11125(e,t,n){n.d(t,{U:()=>c});n(73884);var o=n(87558),a=n(55199),r=n(89946),d=n(13050),s=n(1488),l=n.n(s),i=n(70579);window.PUBLIC_URL=window.runtimePublicUrl||"components-admin";const c=async()=>{const e=(()=>{const e=r.default.create({validateStatus:function(){return!0}});return e.interceptors.response.use(e=>{var t;200!==e.status&&(!1!==e.showError&&!1!==e.config.showError&&a.message.error((null===e||void 0===e||null===(t=e.data)||void 0===t?void 0:t.msg)||"\u8bf7\u6c42\u53d1\u751f\u9519\u8bef"));return e},e=>(a.message.error(e.message||"\u8bf7\u6c42\u53d1\u751f\u9519\u8bef"),Promise.reject(e))),t=>t.hasOwnProperty("loader")&&"function"===typeof t.loader?Promise.resolve(t.loader(l()(t,["loader"]))).then(e=>({data:{code:0,data:e}})).catch(e=>(a.message.error(e.message||"\u8bf7\u6c42\u53d1\u751f\u9519\u8bef"),{data:{code:500,msg:e.message}})):e(t)})();(0,o.preset)({ajax:e,loading:(0,i.jsx)(a.Spin,{delay:500,style:{position:"absolute",left:"50%",padding:"10px",transform:"translateX(-50%)"}}),error:null,empty:(0,i.jsx)(a.Empty,{}),transformResponse:e=>{const{data:t}=e;return e.data={code:0===t.code?200:t.code,msg:t.msg,results:t.data},e}});const t={url:"https://cdn.leapin-ai.com",tpl:"{{url}}/components/@kne-components/{{remote}}/{{version}}/build"},n={...t,remote:"components-core",defaultVersion:"0.4.64"};return(0,d.preset)({remotes:{default:n,"components-core":n,"components-iconfont":{...t,remote:"components-iconfont",defaultVersion:"0.1.8"},"components-thirdparty":{...t,remote:"components-thirdparty",defaultVersion:"0.1.12"},"components-admin":{...t,remote:"components-admin",defaultVersion:"1.1.26"}}}),{ajax:e,themeToken:{colorPrimary:"#4183F0"}}}},10015(e){e.exports=JSON.parse('{"totalCount":8,"pageData":[{"id":1,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan","nickname":"\u5f20\u4e09","email":"zhangsan@example.com","phone":"+86 138001380001","isSuperAdmin":true,"status":0,"description":"\u7cfb\u7edf\u8d85\u7ea7\u7ba1\u7406\u5458\uff0c\u8d1f\u8d23\u6574\u4f53\u7cfb\u7edf\u7ef4\u62a4\u548c\u7528\u6237\u7ba1\u7406","gender":"M"},{"id":2,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=lisi","nickname":"\u674e\u56db","email":"lisi@example.com","phone":"+86 138001380002","isSuperAdmin":false,"status":0,"description":"\u6280\u672f\u90e8\u8d1f\u8d23\u4eba\uff0c\u8d1f\u8d23\u6280\u672f\u67b6\u6784\u8bbe\u8ba1\u548c\u56e2\u961f\u7ba1\u7406","gender":"M"},{"id":3,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wangwu","nickname":"\u738b\u4e94","email":"wangwu@example.com","phone":"+86 138001380003","isSuperAdmin":false,"status":0,"description":"\u4ea7\u54c1\u7ecf\u7406\uff0c\u8d1f\u8d23\u4ea7\u54c1\u89c4\u5212\u548c\u9700\u6c42\u5206\u6790","gender":"M"},{"id":4,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhaoliu","nickname":"\u8d75\u516d","email":"zhaoliu@example.com","phone":"+86 138001380004","isSuperAdmin":false,"status":10,"description":"\u65b0\u5165\u804c\u5458\u5de5\uff0c\u7b49\u5f85\u8d26\u53f7\u6fc0\u6d3b","gender":"F"},{"id":5,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=qianqi","nickname":"\u94b1\u4e03","email":"qianqi@example.com","phone":"+86 138001380005","isSuperAdmin":false,"status":12,"description":"\u5df2\u79bb\u804c\u5458\u5de5\uff0c\u8d26\u53f7\u5df2\u5173\u95ed","gender":"M"},{"id":6,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=sunba","nickname":"\u5b59\u516b","email":"sunba@example.com","phone":"+86 138001380006","isSuperAdmin":false,"status":0,"description":"\u524d\u7aef\u5f00\u53d1\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u524d\u7aef\u5f00\u53d1\u5de5\u4f5c","gender":"M"},{"id":7,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhoujiu","nickname":"\u5468\u4e5d","email":"zhoujiu@example.com","phone":"+86 138001380007","isSuperAdmin":false,"status":0,"description":"\u540e\u7aef\u5f00\u53d1\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u540e\u7aefAPI\u5f00\u53d1","gender":"M"},{"id":8,"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wushi","nickname":"\u5434\u5341","email":"wushi@example.com","phone":"+86 138001380008","isSuperAdmin":true,"status":0,"description":"\u8fd0\u7ef4\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u670d\u52a1\u5668\u8fd0\u7ef4\u548c\u90e8\u7f72","gender":"F"}]}')},11435(e){e.exports=JSON.parse('{"code":0,"data":{"totalCount":12,"pageData":[{"id":1,"code":"frontend","name":"\u524d\u7aef\u5f00\u53d1","description":"\u5305\u542bHTML\u3001CSS\u3001JavaScript\u7b49\u524d\u7aef\u6280\u672f\u6808\u76f8\u5173\u6280\u80fd","createdAt":"2024-01-15T10:30:00Z"},{"id":2,"code":"backend","name":"\u540e\u7aef\u5f00\u53d1","description":"\u5305\u542bJava\u3001Python\u3001Node.js\u7b49\u540e\u7aef\u6280\u672f\u6808\u76f8\u5173\u6280\u80fd","createdAt":"2024-01-15T11:00:00Z"},{"id":3,"code":"database","name":"\u6570\u636e\u5e93","description":"\u5305\u542bMySQL\u3001PostgreSQL\u3001MongoDB\u7b49\u6570\u636e\u5e93\u6280\u672f","createdAt":"2024-01-16T09:00:00Z"},{"id":4,"code":"devops","name":"\u8fd0\u7ef4\u5f00\u53d1","description":"\u5305\u542bDocker\u3001Kubernetes\u3001CI/CD\u7b49\u8fd0\u7ef4\u6280\u672f","createdAt":"2024-01-16T10:00:00Z"},{"id":5,"code":"mobile","name":"\u79fb\u52a8\u5f00\u53d1","description":"\u5305\u542biOS\u3001Android\u3001React Native\u7b49\u79fb\u52a8\u5f00\u53d1\u6280\u672f","createdAt":"2024-01-17T09:30:00Z"},{"id":6,"code":"ai","name":"\u4eba\u5de5\u667a\u80fd","description":"\u5305\u542b\u673a\u5668\u5b66\u4e60\u3001\u6df1\u5ea6\u5b66\u4e60\u3001NLP\u7b49AI\u76f8\u5173\u6280\u672f","createdAt":"2024-01-17T14:00:00Z"},{"id":7,"code":"security","name":"\u7f51\u7edc\u5b89\u5168","description":"\u5305\u542b\u6e17\u900f\u6d4b\u8bd5\u3001\u5b89\u5168\u5ba1\u8ba1\u3001\u52a0\u5bc6\u7b97\u6cd5\u7b49\u5b89\u5168\u6280\u672f","createdAt":"2024-01-18T10:00:00Z"},{"id":8,"code":"architecture","name":"\u7cfb\u7edf\u67b6\u6784","description":"\u5305\u542b\u5fae\u670d\u52a1\u3001\u5206\u5e03\u5f0f\u7cfb\u7edf\u3001\u9ad8\u53ef\u7528\u67b6\u6784\u7b49\u6280\u672f","createdAt":"2024-01-18T11:30:00Z"},{"id":9,"code":"testing","name":"\u6d4b\u8bd5\u6280\u672f","description":"\u5305\u542b\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u5355\u5143\u6d4b\u8bd5\u7b49\u6280\u672f","createdAt":"2024-01-19T09:00:00Z"},{"id":10,"code":"cloud","name":"\u4e91\u8ba1\u7b97","description":"\u5305\u542bAWS\u3001Azure\u3001\u963f\u91cc\u4e91\u7b49\u4e91\u670d\u52a1\u6280\u672f","createdAt":"2024-01-19T10:30:00Z"},{"id":11,"code":"blockchain","name":"\u533a\u5757\u94fe","description":"\u5305\u542b\u667a\u80fd\u5408\u7ea6\u3001DApp\u5f00\u53d1\u3001\u5171\u8bc6\u7b97\u6cd5\u7b49\u6280\u672f","createdAt":"2024-01-20T09:00:00Z"},{"id":12,"code":"iot","name":"\u7269\u8054\u7f51","description":"\u5305\u542b\u5d4c\u5165\u5f0f\u5f00\u53d1\u3001\u4f20\u611f\u5668\u3001\u8fb9\u7f18\u8ba1\u7b97\u7b49\u6280\u672f","createdAt":"2024-01-20T14:00:00Z"}]}}')},80527(e){e.exports=JSON.parse('{"langType":{"pageData":[{"id":1,"name":"\u4e2d\u6587\uff08\u7b80\u4f53\uff09","code":"zh-CN","params":"count, name, date","description":"\u7b80\u4f53\u4e2d\u6587\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u4e2d\u56fd\u5927\u9646\u5730\u533a","status":"open"},{"id":2,"name":"\u4e2d\u6587\uff08\u7e41\u4f53\uff09","code":"zh-TW","params":"count, name, date","description":"\u7e41\u4f53\u4e2d\u6587\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u53f0\u6e7e\u3001\u9999\u6e2f\u5730\u533a","status":"open"},{"id":3,"name":"English","code":"en-US","params":"count, name, date","description":"\u7f8e\u5f0f\u82f1\u8bed\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u7f8e\u56fd\u5730\u533a","status":"open"},{"id":4,"name":"\u65e5\u672c\u8a9e","code":"ja-JP","params":"count, name, date","description":"\u65e5\u8bed\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u65e5\u672c\u5730\u533a","status":"closed"},{"id":5,"name":"\ud55c\uad6d\uc5b4","code":"ko-KR","params":"count, name, date","description":"\u97e9\u8bed\u8bed\u8a00\u5305\uff0c\u9002\u7528\u4e8e\u97e9\u56fd\u5730\u533a","status":"open"}],"totalCount":5},"langLib":{"pageData":[{"id":1,"namespace":"components-admin:User","locale":"zh-CN","code":"AddUser","target":"\u6dfb\u52a0\u7528\u6237","reviewStatus":"approved","status":"open"},{"id":2,"namespace":"components-admin:User","locale":"en-US","code":"AddUser","target":"Add User","reviewStatus":"approved","status":"open"},{"id":3,"namespace":"components-admin:User","locale":"zh-CN","code":"EditUser","target":"\u7f16\u8f91\u7528\u6237","reviewStatus":"approved","status":"open"},{"id":4,"namespace":"components-admin:User","locale":"en-US","code":"EditUser","target":"Edit User","reviewStatus":"pending","status":"open"},{"id":5,"namespace":"components-admin:Role","locale":"zh-CN","code":"RoleName","target":"\u89d2\u8272\u540d\u79f0","reviewStatus":"approved","status":"open"},{"id":6,"namespace":"components-admin:Role","locale":"en-US","code":"RoleName","target":"Role Name","reviewStatus":"approved","status":"open"},{"id":7,"namespace":"components-admin:Signature","locale":"zh-CN","code":"AddSecretKey","target":"\u6dfb\u52a0\u5bc6\u94a5","reviewStatus":"approved","status":"open"},{"id":8,"namespace":"components-admin:Signature","locale":"en-US","code":"AddSecretKey","target":"Add Secret Key","reviewStatus":"rejected","status":"closed"}],"totalCount":8}}')},75480(e){e.exports=JSON.parse('{"code":0,"data":{"pageData":[{"appId":"app_20240308001","secretKey":"sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6","user":{"id":1,"nickname":"\u5f20\u4e09","email":"zhangsan@example.com","phone":"138****1234"},"description":"\u7528\u4e8eAPI\u5bf9\u63a5\u7684\u4e3b\u5bc6\u94a5","lastVisitedAt":"2024-03-08 14:30:00","status":0,"createdAt":"2024-03-01 09:00:00"},{"appId":"app_20240305002","secretKey":"sk_z9y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4","user":{"id":2,"nickname":"\u674e\u56db","email":"lisi@example.com","phone":"139****5678"},"description":"\u6d4b\u8bd5\u73af\u5883\u4f7f\u7528\u7684\u7b7e\u540d\u5bc6\u94a5","lastVisitedAt":"2024-03-05 16:20:00","status":1,"createdAt":"2024-02-28 11:00:00"},{"appId":"app_20240303003","secretKey":"sk_q1w2e3r4t5y6u7i8o9p0a1s2d3f4g5h6","user":{"id":3,"nickname":"\u738b\u4e94","email":"wangwu@example.com","phone":"137****9012"},"description":"\u5185\u90e8\u7cfb\u7edf\u96c6\u6210\u4e13\u7528","lastVisitedAt":"2024-03-03 10:15:00","status":0,"createdAt":"2024-02-20 14:30:00"},{"appId":"app_20240302004","secretKey":"sk_j4k5l6m7n8o9p0q1r2s3t4u5v6w7x8y9","user":{"id":1,"nickname":"\u5f20\u4e09","email":"zhangsan@example.com","phone":"138****1234"},"description":"\u7b2c\u4e09\u65b9\u670d\u52a1\u56de\u8c03\u9a8c\u8bc1\u5bc6\u94a5","lastVisitedAt":"2024-03-02 18:45:00","status":0,"createdAt":"2024-02-15 08:00:00"},{"appId":"app_20240301005","secretKey":"sk_z0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5","user":{"id":4,"nickname":"\u8d75\u516d","email":"zhaoliu@example.com","phone":"136****3456"},"description":"\u6570\u636e\u540c\u6b65\u63a5\u53e3\u5bc6\u94a5","lastVisitedAt":"2024-03-01 20:00:00","status":1,"createdAt":"2024-01-10 10:00:00"}],"totalCount":5}}')},13889(e){e.exports=JSON.parse('{"code":0,"data":{"userInfo":{"id":1,"email":"admin@example.com","nickname":"\u8d85\u7ea7\u7ba1\u7406\u5458","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=admin","phone":"+86138001380000","description":"\u7cfb\u7edf\u8d85\u7ea7\u7ba1\u7406\u5458","status":0,"isSuperAdmin":true,"gender":"M"}}}')},49827(e){e.exports=JSON.parse('{"code":0,"data":{"pageData":[{"id":1001,"type":"interview_report","status":"success","runnerType":"manual","input":{"name":"\u5f20\u4e09\u7684\u9762\u8bd5\u62a5\u544a","candidateId":2001,"interviewId":3001},"output":{"reportId":5001,"url":"https://example.com/reports/5001.pdf"},"options":{"logs":[{"data":{"url":"https://api.example.com/v1/interview/start","method":"POST","headers":{"Content-Type":"application/json","Authorization":"Bearer xxx"},"body":"{\\"candidateId\\":2001,\\"interviewId\\":3001}"},"message":"\u5f00\u59cb\u751f\u6210\u9762\u8bd5\u62a5\u544a","time":"2024-03-08T10:30:05.000Z"},{"data":{"url":"https://api.example.com/v1/interview/process","method":"POST","body":"{\\"step\\":\\"analysis\\",\\"progress\\":50}"},"message":"\u5206\u6790\u9762\u8bd5\u6570\u636e\u4e2d","time":"2024-03-08T10:32:00.000Z"},{"data":{"reportId":5001,"url":"https://example.com/reports/5001.pdf","pageCount":12},"message":"\u62a5\u544a\u751f\u6210\u5b8c\u6210","time":"2024-03-08T10:35:00.000Z"}]},"createdAt":"2024-03-08 10:30:00","completedAt":"2024-03-08 10:35:00","updatedAt":"2024-03-08 10:35:00"},{"id":1002,"type":"data_export","status":"running","runnerType":"system","input":{"name":"\u7528\u6237\u6570\u636e\u5bfc\u51fa","exportType":"excel","dateRange":["2024-01-01","2024-03-01"]},"output":null,"createdAt":"2024-03-08 11:00:00","completedAt":null,"updatedAt":"2024-03-08 11:05:00"},{"id":1003,"type":"email_notification","status":"failed","runnerType":"system","input":{"name":"\u6279\u91cf\u90ae\u4ef6\u901a\u77e5","recipients":["user1@example.com","user2@example.com"],"subject":"\u7cfb\u7edf\u7ef4\u62a4\u901a\u77e5"},"output":null,"error":{"code":"SMTP_ERROR","message":"SMTP\u670d\u52a1\u5668\u8fde\u63a5\u5931\u8d25","details":"Connection timeout after 30s"},"createdAt":"2024-03-08 09:00:00","completedAt":"2024-03-08 09:01:00","updatedAt":"2024-03-08 09:01:00"},{"id":1004,"type":"video_processing","status":"pending","runnerType":"manual","input":{"name":"\u4ea7\u54c1\u5ba3\u4f20\u89c6\u9891\u5904\u7406","videoId":4001,"resolution":"1080p"},"output":null,"createdAt":"2024-03-08 14:20:00","completedAt":null,"updatedAt":"2024-03-08 14:20:00"},{"id":1005,"type":"data_sync","status":"canceled","runnerType":"system","input":{"name":"\u6570\u636e\u5e93\u540c\u6b65\u4efb\u52a1","sourceDb":"production","targetDb":"backup"},"output":null,"createdAt":"2024-03-07 23:00:00","completedAt":"2024-03-07 23:15:00","updatedAt":"2024-03-07 23:15:00"},{"id":1006,"type":"report_generation","status":"success","runnerType":"system","input":{"name":"\u6708\u5ea6\u8d22\u52a1\u62a5\u8868","month":"2024-02","department":"\u8d22\u52a1\u90e8"},"output":{"reportId":5002,"fileSize":"2.5MB","pageCount":45},"createdAt":"2024-03-01 08:00:00","completedAt":"2024-03-01 08:10:00","updatedAt":"2024-03-01 08:10:00"}],"totalCount":6}}')},48666(e){e.exports=JSON.parse('{"tenantList":{"totalCount":5,"pageData":[{"id":"tenant-001","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","status":"open","description":"\u4e00\u5bb6\u4e13\u6ce8\u4e8e\u4eba\u5de5\u667a\u80fd\u548c\u4e91\u8ba1\u7b97\u6280\u672f\u7814\u53d1\u7684\u9ad8\u65b0\u6280\u672f\u4f01\u4e1a\uff0c\u4e3b\u8981\u4e1a\u52a1\u5305\u62ec\u667a\u80fd\u8f6f\u4ef6\u5f00\u53d1\u3001\u6570\u636e\u5206\u6790\u670d\u52a1\u548c\u4e91\u8ba1\u7b97\u89e3\u51b3\u65b9\u6848\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","themeColor":"#1890ff","accountCount":50,"serviceStartTime":"2024-01-01","serviceEndTime":"2025-12-31","createdAt":"2024-01-15T10:30:00Z"},{"id":"tenant-002","name":"\u667a\u6167\u6559\u80b2\u96c6\u56e2","status":"open","description":"\u4e13\u6ce8\u4e8e\u5728\u7ebf\u6559\u80b2\u5e73\u53f0\u5f00\u53d1\uff0c\u4e3a\u5b66\u6821\u548c\u57f9\u8bad\u673a\u6784\u63d0\u4f9b\u5b8c\u6574\u7684\u6570\u5b57\u5316\u6559\u5b66\u89e3\u51b3\u65b9\u6848\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu","themeColor":"#52c41a","accountCount":120,"serviceStartTime":"2024-03-01","serviceEndTime":"2025-02-28","createdAt":"2024-02-20T14:15:00Z"},{"id":"tenant-003","name":"\u533b\u7597\u5065\u5eb7\u79d1\u6280","status":"closed","description":"\u533b\u7597\u4fe1\u606f\u5316\u89e3\u51b3\u65b9\u6848\u63d0\u4f9b\u5546\uff0c\u4e13\u6ce8\u4e8e\u533b\u9662\u7ba1\u7406\u7cfb\u7edf\u548c\u8fdc\u7a0b\u533b\u7597\u5e73\u53f0\u7684\u7814\u53d1\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=health","themeColor":"#722ed1","accountCount":35,"serviceStartTime":"2023-01-01","serviceEndTime":"2024-01-01","createdAt":"2023-01-10T09:00:00Z"},{"id":"tenant-004","name":"\u91d1\u878d\u6570\u636e\u670d\u52a1","status":"open","description":"\u4e3a\u91d1\u878d\u673a\u6784\u63d0\u4f9b\u6570\u636e\u5206\u6790\u548c\u98ce\u9669\u63a7\u5236\u670d\u52a1\uff0c\u62e5\u6709\u4e13\u4e1a\u7684\u91cf\u5316\u5206\u6790\u56e2\u961f\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=finance","themeColor":"#fa8c16","accountCount":80,"serviceStartTime":"2024-06-01","serviceEndTime":"2025-05-31","createdAt":"2024-05-25T16:45:00Z"},{"id":"tenant-005","name":"\u65b0\u96f6\u552e\u89e3\u51b3\u65b9\u6848","status":"open","description":"\u4e3a\u96f6\u552e\u4f01\u4e1a\u63d0\u4f9b\u5168\u6e20\u9053\u6570\u5b57\u5316\u8f6c\u578b\u670d\u52a1\uff0c\u5305\u62ec\u7535\u5546\u5e73\u53f0\u3001\u4f1a\u5458\u7cfb\u7edf\u548c\u4f9b\u5e94\u94fe\u7ba1\u7406\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=retail","themeColor":"#eb2f96","accountCount":45,"serviceStartTime":"2024-09-01","serviceEndTime":"2025-08-31","createdAt":"2024-08-15T11:20:00Z"}]},"tenantDetail":{"id":"tenant-001","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","status":"open","description":"\u4e00\u5bb6\u4e13\u6ce8\u4e8e\u4eba\u5de5\u667a\u80fd\u548c\u4e91\u8ba1\u7b97\u6280\u672f\u7814\u53d1\u7684\u9ad8\u65b0\u6280\u672f\u4f01\u4e1a\uff0c\u4e3b\u8981\u4e1a\u52a1\u5305\u62ec\u667a\u80fd\u8f6f\u4ef6\u5f00\u53d1\u3001\u6570\u636e\u5206\u6790\u670d\u52a1\u548c\u4e91\u8ba1\u7b97\u89e3\u51b3\u65b9\u6848\u3002","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","themeColor":"#1890ff","accountCount":50,"serviceStartTime":"2024-01-01T00:00:00Z","serviceEndTime":"2025-12-31T23:59:59Z","createdAt":"2024-01-15T10:30:00Z","tenantCompany":{"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech"},"tenantSetting":{"args":[{"key":"API_KEY","value":"sk-xxxx-xxxx-xxxx","secret":true},{"key":"MAX_CONNECTIONS","value":"100","secret":false},{"key":"TIMEOUT","value":"30000","secret":false}],"customComponents":[{"key":"custom-form","name":"\u81ea\u5b9a\u4e49\u8868\u5355","type":"form","description":"\u7528\u4e8e\u7279\u6b8a\u4e1a\u52a1\u573a\u666f\u7684\u81ea\u5b9a\u4e49\u8868\u5355\u7ec4\u4ef6"},{"key":"data-chart","name":"\u6570\u636e\u56fe\u8868","type":"chart","description":"\u6570\u636e\u53ef\u89c6\u5316\u56fe\u8868\u7ec4\u4ef6"}]}}}')},36264(e){e.exports=JSON.parse('{"company":{"id":1,"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=company","description":"\u4e00\u5bb6\u4e13\u6ce8\u4e8e\u4eba\u5de5\u667a\u80fd\u548c\u4e91\u8ba1\u7b97\u6280\u672f\u7814\u53d1\u7684\u9ad8\u65b0\u6280\u672f\u4f01\u4e1a","industry":"\u4fe1\u606f\u6280\u672f","scale":"100-500\u4eba","address":"\u5317\u4eac\u5e02\u6d77\u6dc0\u533a\u4e2d\u5173\u6751\u79d1\u6280\u56ed\u533a","website":"https://www.tech-innovation.com","phone":"010-12345678","email":"contact@tech-innovation.com","foundedDate":"2018-06-15","developmentHistory":[{"time":"2018-06-15","event":"\u6210\u7acb\u4e8e\u5317\u4eac\u4e2d\u5173\u6751\uff0c\u4e13\u6ce8\u4e8e\u4f01\u4e1a\u7ea7\u8f6f\u4ef6\u89e3\u51b3\u65b9\u6848"},{"time":"2020-06-01","event":"\u83b7\u5f97A\u8f6e\u878d\u8d44"},{"time":"2022-01-01","event":"\u4e1a\u52a1\u6269\u5c55\u81f3\u5168\u56fd20\u4e2a\u57ce\u5e02"}],"teamDescription":[{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=ceo","name":"\u5f20\u4f1f","role":"CEO / \u521b\u59cb\u4eba","description":"\u524dBAT\u6280\u672f\u603b\u76d1\uff0c15\u5e74\u4e92\u8054\u7f51\u4ece\u4e1a\u7ecf\u9a8c\uff0c\u4e13\u6ce8\u4e8e\u4f01\u4e1a\u7ea7\u8f6f\u4ef6\u67b6\u6784\u8bbe\u8ba1"},{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=cto","name":"\u674e\u5a1c","role":"CTO / \u6280\u672f\u526f\u603b\u88c1","description":"\u524d\u77e5\u540d\u4e92\u8054\u7f51\u516c\u53f8\u67b6\u6784\u5e08\uff0c12\u5e74\u6280\u672f\u7814\u53d1\u7ecf\u9a8c\uff0c\u4e3b\u5bfc\u591a\u4e2a\u5343\u4e07\u7ea7\u7528\u6237\u4ea7\u54c1"},{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=product","name":"\u738b\u5f3a","role":"\u4ea7\u54c1\u603b\u76d1","description":"\u524d\u77e5\u540d\u4f01\u4e1a\u4ea7\u54c1\u8d1f\u8d23\u4eba\uff0c10\u5e74\u4ea7\u54c1\u7ba1\u7406\u7ecf\u9a8c\uff0c\u64c5\u957f\u4f01\u4e1a\u7ea7\u4ea7\u54c1\u89c4\u5212"}],"banner":"https://images.unsplash.com/photo-1497366216548-37526070297c?w=800"},"orgList":[{"id":"dept-1","name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3","description":"\u8d1f\u8d23\u516c\u53f8\u6838\u5fc3\u4ea7\u54c1\u7684\u6280\u672f\u7814\u53d1","parentId":null},{"id":"dept-2","name":"\u524d\u7aef\u5f00\u53d1\u90e8","description":"\u8d1f\u8d23Web\u548c\u79fb\u52a8\u7aef\u524d\u7aef\u5f00\u53d1","parentId":"dept-1"},{"id":"dept-3","name":"\u540e\u7aef\u5f00\u53d1\u90e8","description":"\u8d1f\u8d23\u670d\u52a1\u7aef\u67b6\u6784\u548cAPI\u5f00\u53d1","parentId":"dept-1"},{"id":"dept-4","name":"AI\u7b97\u6cd5\u90e8","description":"\u8d1f\u8d23AI\u6a21\u578b\u7814\u53d1\u548c\u4f18\u5316","parentId":"dept-1"},{"id":"dept-5","name":"\u4ea7\u54c1\u8bbe\u8ba1\u4e2d\u5fc3","description":"\u8d1f\u8d23\u4ea7\u54c1\u89c4\u5212\u548c\u7528\u6237\u4f53\u9a8c\u8bbe\u8ba1","parentId":null},{"id":"dept-6","name":"\u4ea7\u54c1\u90e8","description":"\u8d1f\u8d23\u4ea7\u54c1\u89c4\u5212\u548c\u9700\u6c42\u5206\u6790","parentId":"dept-5"},{"id":"dept-7","name":"\u8bbe\u8ba1\u90e8","description":"\u8d1f\u8d23UI/UX\u8bbe\u8ba1","parentId":"dept-5"},{"id":"dept-8","name":"\u8fd0\u8425\u4e2d\u5fc3","description":"\u8d1f\u8d23\u5e02\u573a\u8fd0\u8425\u548c\u5ba2\u6237\u670d\u52a1","parentId":null},{"id":"dept-9","name":"\u5e02\u573a\u90e8","description":"\u8d1f\u8d23\u5e02\u573a\u63a8\u5e7f\u548c\u54c1\u724c\u5efa\u8bbe","parentId":"dept-8"},{"id":"dept-10","name":"\u5ba2\u670d\u90e8","description":"\u8d1f\u8d23\u5ba2\u6237\u670d\u52a1\u548c\u6280\u672f\u652f\u6301","parentId":"dept-8"}],"userList":{"totalCount":8,"pageData":[{"id":"user-1","name":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com","phone":"13800138001","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","department":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3","position":"\u6280\u672f\u603b\u76d1","roles":[{"id":"role-1","name":"\u7ba1\u7406\u5458"}],"tenantOrg":{"id":"dept-1","name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3"},"status":"active","joinDate":"2018-07-01"},{"id":"user-2","name":"\u674e\u5a1c","email":"lina@tech-innovation.com","phone":"13800138002","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=lina","department":"\u524d\u7aef\u5f00\u53d1\u90e8","position":"\u524d\u7aef\u67b6\u6784\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-2","name":"\u524d\u7aef\u5f00\u53d1\u90e8"},"status":"active","joinDate":"2019-03-15"},{"id":"user-3","name":"\u738b\u5f3a","email":"wangqiang@tech-innovation.com","phone":"13800138003","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wangqiang","department":"\u540e\u7aef\u5f00\u53d1\u90e8","position":"\u540e\u7aef\u5f00\u53d1\u5de5\u7a0b\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-3","name":"\u540e\u7aef\u5f00\u53d1\u90e8"},"status":"active","joinDate":"2020-06-01"},{"id":"user-4","name":"\u5218\u82b3","email":"liufang@tech-innovation.com","phone":"13800138004","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=liufang","department":"\u4ea7\u54c1\u8bbe\u8ba1\u4e2d\u5fc3","position":"\u4ea7\u54c1\u7ecf\u7406","roles":[{"id":"role-2","name":"\u90e8\u95e8\u7ecf\u7406"}],"tenantOrg":{"id":"dept-5","name":"\u4ea7\u54c1\u8bbe\u8ba1\u4e2d\u5fc3"},"status":"active","joinDate":"2020-08-15"},{"id":"user-5","name":"\u9648\u660e","email":"chenming@tech-innovation.com","phone":"13800138005","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=chenming","department":"AI\u7b97\u6cd5\u90e8","position":"\u7b97\u6cd5\u5de5\u7a0b\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-4","name":"AI\u7b97\u6cd5\u90e8"},"status":"active","joinDate":"2021-01-10"},{"id":"user-6","name":"\u8d75\u9759","email":"zhaojing@tech-innovation.com","phone":"13800138006","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhaojing","department":"\u8bbe\u8ba1\u90e8","position":"UI\u8bbe\u8ba1\u5e08","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-7","name":"\u8bbe\u8ba1\u90e8"},"status":"active","joinDate":"2021-05-20"},{"id":"user-7","name":"\u5468\u6d0b","email":"zhouyang@tech-innovation.com","phone":"13800138007","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhouyang","department":"\u5e02\u573a\u90e8","position":"\u5e02\u573a\u4e13\u5458","roles":[{"id":"role-3","name":"\u666e\u901a\u5458\u5de5"}],"tenantOrg":{"id":"dept-9","name":"\u5e02\u573a\u90e8"},"status":"inactive","joinDate":"2022-02-01"},{"id":"user-8","name":"\u5434\u654f","email":"wumin@tech-innovation.com","phone":"13800138008","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=wumin","department":"\u5ba2\u670d\u90e8","position":"\u5ba2\u670d\u4e3b\u7ba1","roles":[{"id":"role-2","name":"\u90e8\u95e8\u7ecf\u7406"}],"tenantOrg":{"id":"dept-10","name":"\u5ba2\u670d\u90e8"},"status":"active","joinDate":"2022-09-15"}]},"roleList":{"totalCount":4,"pageData":[{"id":"role-1","code":"admin","name":"\u7ba1\u7406\u5458","description":"\u62e5\u6709\u7cfb\u7edf\u5168\u90e8\u6743\u9650","type":"system","status":"active","userCount":1},{"id":"role-2","code":"manager","name":"\u90e8\u95e8\u7ecf\u7406","description":"\u7ba1\u7406\u90e8\u95e8\u5185\u90e8\u4e8b\u52a1\u548c\u4eba\u5458","type":"custom","status":"active","userCount":3},{"id":"role-3","code":"employee","name":"\u666e\u901a\u5458\u5de5","description":"\u57fa\u7840\u5458\u5de5\u6743\u9650","type":"system","status":"active","userCount":15},{"id":"role-4","code":"guest","name":"\u8bbf\u5ba2","description":"\u4ec5\u53ef\u67e5\u770b\u516c\u5f00\u4fe1\u606f","type":"custom","status":"inactive","userCount":0}]},"tenantList":{"totalCount":3,"pageData":[{"id":"tenant-1","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","themeColor":"#1890ff","status":"open","serviceStartTime":"2024-01-01","serviceEndTime":"2025-12-31"},{"id":"tenant-2","name":"\u667a\u6167\u6559\u80b2\u96c6\u56e2","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu","themeColor":"#52c41a","status":"open","serviceStartTime":"2024-03-01","serviceEndTime":"2025-02-28"},{"id":"tenant-3","name":"\u533b\u7597\u5065\u5eb7\u79d1\u6280","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=health","themeColor":"#722ed1","status":"closed","serviceStartTime":"2023-01-01","serviceEndTime":"2024-01-01"}]},"availableTenantList":{"defaultTenantId":"tenant-1","list":[{"id":"tu-1","tenantId":"tenant-1","name":"\u5f20\u4f1f","status":"open","tenant":{"id":"tenant-1","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","tenantCompany":{"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech"}},"tenantOrg":{"name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3"}},{"id":"tu-2","tenantId":"tenant-2","name":"\u5f20\u4f1f","status":"open","tenant":{"id":"tenant-2","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu","tenantCompany":{"name":"\u667a\u6167\u6559\u80b2\u96c6\u56e2","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=edu"}},"tenantOrg":{"name":"\u6559\u5b66\u90e8"}}]},"permissionList":{"permissions":{"modules":[{"code":"user","name":"\u7528\u6237\u7ba1\u7406","permissions":[{"code":"view","name":"\u67e5\u770b\u7528\u6237"},{"code":"create","name":"\u521b\u5efa\u7528\u6237"},{"code":"edit","name":"\u7f16\u8f91\u7528\u6237"},{"code":"delete","name":"\u5220\u9664\u7528\u6237"}]},{"code":"role","name":"\u89d2\u8272\u7ba1\u7406","permissions":[{"code":"view","name":"\u67e5\u770b\u89d2\u8272"},{"code":"create","name":"\u521b\u5efa\u89d2\u8272"},{"code":"edit","name":"\u7f16\u8f91\u89d2\u8272"},{"code":"delete","name":"\u5220\u9664\u89d2\u8272"}]},{"code":"setting","name":"\u7cfb\u7edf\u8bbe\u7f6e","permissions":[{"code":"company-setting","name":"\u516c\u53f8\u8bbe\u7f6e"},{"code":"org","name":"\u7ec4\u7ec7\u67b6\u6784"},{"code":"permission","name":"\u6743\u9650\u7ba1\u7406"},{"code":"user-manager","name":"\u7528\u6237\u7ba1\u7406"}]}]},"codes":["user:view","user:create","user:edit","role:view","setting:company-setting","setting:org","setting:permission","setting:user-manager"]},"permissionPageList":{"totalCount":12,"pageData":[{"id":"perm-1","code":"user:view","name":"\u67e5\u770b\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u67e5\u770b\u7528\u6237\u5217\u8868\u548c\u8be6\u60c5"},{"id":"perm-2","code":"user:create","name":"\u521b\u5efa\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u521b\u5efa\u65b0\u7528\u6237"},{"id":"perm-3","code":"user:edit","name":"\u7f16\u8f91\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u7f16\u8f91\u7528\u6237\u4fe1\u606f"},{"id":"perm-4","code":"user:delete","name":"\u5220\u9664\u7528\u6237","module":"\u7528\u6237\u7ba1\u7406","description":"\u5220\u9664\u7528\u6237"},{"id":"perm-5","code":"role:view","name":"\u67e5\u770b\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u67e5\u770b\u89d2\u8272\u5217\u8868\u548c\u8be6\u60c5"},{"id":"perm-6","code":"role:create","name":"\u521b\u5efa\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u521b\u5efa\u65b0\u89d2\u8272"},{"id":"perm-7","code":"role:edit","name":"\u7f16\u8f91\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u7f16\u8f91\u89d2\u8272\u4fe1\u606f"},{"id":"perm-8","code":"role:delete","name":"\u5220\u9664\u89d2\u8272","module":"\u89d2\u8272\u7ba1\u7406","description":"\u5220\u9664\u89d2\u8272"},{"id":"perm-9","code":"setting:company-setting","name":"\u516c\u53f8\u8bbe\u7f6e","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u516c\u53f8\u57fa\u672c\u4fe1\u606f"},{"id":"perm-10","code":"setting:org","name":"\u7ec4\u7ec7\u67b6\u6784","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u7ec4\u7ec7\u67b6\u6784"},{"id":"perm-11","code":"setting:permission","name":"\u6743\u9650\u7ba1\u7406","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u7cfb\u7edf\u6743\u9650"},{"id":"perm-12","code":"setting:user-manager","name":"\u7528\u6237\u7ba1\u7406","module":"\u7cfb\u7edf\u8bbe\u7f6e","description":"\u7ba1\u7406\u7cfb\u7edf\u7528\u6237"}]},"tenantUserInfo":{"id":"tu-1","name":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com","phone":"13800138001","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","status":"open","permissions":["user:view","user:create","user:edit","role:view","setting:company-setting","setting:org","setting:permission","setting:user-manager"]},"global":{"userInfo":{"userInfo":{"avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","nickname":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com"},"tenantUser":{"id":"tu-1","name":"\u5f20\u4f1f","email":"zhangwei@tech-innovation.com","phone":"13800138001","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangwei","tenantOrgs":[{"name":"\u6280\u672f\u7814\u53d1\u4e2d\u5fc3"}]},"tenant":{"id":"tenant-1","name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech","tenantCompany":{"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=tech"}},"company":{"id":1,"name":"\u79d1\u6280\u521b\u65b0\u6709\u9650\u516c\u53f8","logo":"https://api.dicebear.com/7.x/identicon/svg?seed=company"}},"permissions":["setting","setting:company-setting","setting:company-setting:view","setting:company-setting:edit","setting:org","setting:org:create","setting:org:view","setting:org:edit","setting:org:remove","setting:permission","setting:permission:role","setting:permission:role:create","setting:permission:role:view","setting:permission:role:edit","setting:permission:role:remove","setting:permission:shared-group","setting:permission:shared-group:create","setting:permission:shared-group:view","setting:permission:shared-group:edit","setting:permission:shared-group:remove","setting:user-manager","setting:user-manager:create","setting:user-manager:view","setting:user-manager:edit","setting:user-manager:remove","setting:user-manager:invite"]}}')},87841(e){e.exports=JSON.parse('{"code":0,"data":{"userInfo":{"id":1,"email":"zhangsan@example.com","nickname":"\u5f20\u4e09","avatar":"https://api.dicebear.com/7.x/avataaars/svg?seed=zhangsan","phone":"+86138001380001","description":"\u8d44\u6df1\u524d\u7aef\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23\u6838\u5fc3\u4e1a\u52a1\u5f00\u53d1","status":0,"gender":"M"}}}')}}]);
2
+ //# sourceMappingURL=7747.5fce18ee.chunk.js.map