m8-mcp-server 1.0.0 → 1.1.0

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 (164) hide show
  1. package/README.md +118 -32
  2. package/dist/index.d.mts +449 -0
  3. package/dist/index.d.ts +449 -0
  4. package/dist/index.js +700 -1
  5. package/dist/index.mjs +700 -0
  6. package/package.json +34 -21
  7. package/prompts/PROMPTS.md +476 -0
  8. package/bin/m8-mcp.js +0 -2
  9. package/dist/constants.js +0 -1
  10. package/dist/data/ejs-doc/api_audio/api_audio.md +0 -225
  11. package/dist/data/ejs-doc/api_auth/api_auth.md +0 -256
  12. package/dist/data/ejs-doc/api_contact/api_contact.md +0 -295
  13. package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
  14. package/dist/data/ejs-doc/api_device/api_device.md +0 -761
  15. package/dist/data/ejs-doc/api_event/api_event.md +0 -244
  16. package/dist/data/ejs-doc/api_global/api_global.md +0 -440
  17. package/dist/data/ejs-doc/api_io/api_io.md +0 -369
  18. package/dist/data/ejs-doc/api_navigator/api_navigator.md +0 -654
  19. package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
  20. package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
  21. package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
  22. package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
  23. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
  24. package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
  25. package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
  26. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
  27. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
  28. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
  29. package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
  30. package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
  31. package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
  32. package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
  33. package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
  34. package/dist/data/ejs-doc/api_page/api_page.md +0 -261
  35. package/dist/data/ejs-doc/api_runtime/api_runtime.md +0 -788
  36. package/dist/data/ejs-doc/api_storage/api_storage.md +0 -320
  37. package/dist/data/ejs-doc/api_stream/api_stream.md +0 -152
  38. package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
  39. package/dist/data/ejs-doc/api_ui/api_ui.md +0 -836
  40. package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
  41. package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
  42. package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
  43. package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
  44. package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
  45. package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
  46. package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
  47. package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
  48. package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
  49. package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
  50. package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
  51. package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
  52. package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
  53. package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
  54. package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
  55. package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
  56. package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
  57. package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
  58. package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
  59. package/dist/data/ejs-doc/api_util/api_util.md +0 -615
  60. package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
  61. package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
  62. package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
  63. package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
  64. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205.md +0 -247
  65. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205vue3.md +0 -276
  66. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244.md +0 -130
  67. package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244vue3.md +0 -115
  68. package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/000-/346/240/270/345/277/203/346/226/271/346/263/225.md +0 -398
  69. package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/001-Ajax/344/270/216/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -456
  70. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
  71. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
  72. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
  73. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
  74. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
  75. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
  76. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
  77. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
  78. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/010-Util/346/211/251/345/261/225/346/214/207/345/215/227.md +0 -76
  79. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
  80. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
  81. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
  82. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
  83. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
  84. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
  85. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
  86. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
  87. package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
  88. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/000-/347/273/204/344/273/266/345/272/223/344/270/213/350/275/275/344/275/277/347/224/250.md +0 -188
  89. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/001-actionsheet/345/212/250/344/275/234/351/235/242/346/235/277.md +0 -460
  90. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
  91. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
  92. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/008-cell/345/215/225/345/205/203/346/240/274.md +0 -213
  93. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/009-checkbox/345/244/215/351/200/211/346/241/206.md +0 -501
  94. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/010-circle/347/216/257/345/275/242/350/277/233/345/272/246/346/235/241.md +0 -168
  95. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/011-datepicker/346/227/245/346/234/237/351/200/211/346/213/251.md +0 -617
  96. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/013-field/350/276/223/345/205/245/346/241/206.md +0 -539
  97. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
  98. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/018-header/345/244/264/351/203/250/345/257/274/350/210/252/346/240/217.md +0 -150
  99. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
  100. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
  101. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/021-noticebar/351/200/232/347/237/245/346/240/217.md +0 -152
  102. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/022-numberkeyboard/346/225/260/345/255/227/351/224/256/347/233/230.md +0 -427
  103. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
  104. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
  105. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/025-passwordinput/345/257/206/347/240/201/350/276/223/345/205/245/346/241/206.md +0 -175
  106. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/026-picker/351/200/211/346/213/251/345/231/250.md +0 -519
  107. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/027-popup/345/274/271/345/207/272/345/261/202.md +0 -152
  108. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/028-progress/350/277/233/345/272/246/346/235/241.md +0 -103
  109. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/029-radio/345/215/225/351/200/211/346/241/206.md +0 -285
  110. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
  111. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
  112. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
  113. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/033-stepper/346/255/245/350/277/233/345/231/250.md +0 -340
  114. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/035-swipecell/346/273/221/345/212/250/345/215/225/345/205/203/346/240/274.md +0 -265
  115. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
  116. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/037-switchcell/345/274/200/345/205/263/345/215/225/345/205/203/346/240/274.md +0 -115
  117. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
  118. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/039-treeselect/345/210/206/347/261/273/351/200/211/346/213/251.md +0 -631
  119. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/040-uploader/346/226/207/344/273/266/344/270/212/344/274/240.md +0 -531
  120. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/041-verifycode/351/252/214/350/257/201/347/240/201.md +0 -111
  121. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/042-minirefresh/344/270/213/346/213/211/345/210/267/346/226/260.md +0 -337
  122. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
  123. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
  124. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/045-toast/350/275/273/346/217/220/347/244/272.md +0 -429
  125. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
  126. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/047-area/347/234/201/345/270/202/345/214/272/351/200/211/346/213/251.md +0 -295
  127. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/048-tab/346/240/207/347/255/276/351/241/265.md +0 -577
  128. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/049-dialog/345/274/271/345/207/272/346/241/206.md +0 -491
  129. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/050-dropdownmenu/344/270/213/346/213/211/350/217/234/345/215/225.md +0 -265
  130. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/051-notify/346/266/210/346/201/257/351/200/232/347/237/245.md +0 -203
  131. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/052-overlay/351/201/256/347/275/251/345/261/202.md +0 -139
  132. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/053-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +0 -199
  133. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
  134. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/055-countdown/345/200/222/350/256/241/346/227/266.md +0 -289
  135. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/056-divider/345/210/206/345/211/262/347/272/277.md +0 -97
  136. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/057-empty/347/251/272/347/212/266/346/200/201.md +0 -146
  137. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/058-imagepreview/345/233/276/347/211/207/351/242/204/350/247/210.md +0 -292
  138. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/059-lazyload/346/207/222/345/212/240/350/275/275.md +0 -120
  139. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/060-skeleton/351/252/250/346/236/266/345/261/217.md +0 -114
  140. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/061-steps/346/255/245/351/252/244/346/235/241.md +0 -119
  141. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/062-sticky/347/262/230/346/200/247/345/270/203/345/261/200.md +0 -208
  142. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/063-indexbar/347/264/242/345/274/225/346/240/217.md +0 -161
  143. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/064-sidebar/344/276/247/350/276/271/345/257/274/350/210/252.md +0 -248
  144. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/065-tabbar/346/240/207/347/255/276/346/240/217.md +0 -314
  145. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
  146. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/067-popover/346/260/224/346/263/241/345/274/271/345/207/272/346/241/206.md +0 -325
  147. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/068-cascader/347/272/247/350/201/224/351/200/211/346/213/251.md +0 -360
  148. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/069-selectperson/351/200/211/344/272/272/347/273/204/344/273/266.md +0 -595
  149. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
  150. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +0 -51
  151. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
  152. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/073-qrcode/344/272/214/347/273/264/347/240/201.md +0 -1538
  153. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/074-imagescale/345/233/276/347/211/207/350/243/201/345/211/252.md +0 -261
  154. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/075-dragsort/346/213/226/346/213/275/346/216/222/345/272/217.md +0 -161
  155. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
  156. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/077-rtc/351/237/263/350/247/206/351/242/221.md +0 -531
  157. package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
  158. package/dist/data/m8mpdoc-develop/012-Mock/347/232/204/344/275/277/347/224/250/Mock/347/232/204/344/275/277/347/224/250.md +0 -116
  159. package/dist/data/standards/css-style.md +0 -531
  160. package/dist/data/standards/js-style.md +0 -394
  161. package/dist/data/standards/project-structure.md +0 -325
  162. package/dist/data/standards/vue-style.md +0 -644
  163. package/dist/tools/search.js +0 -1
  164. package/dist/tools/standards.js +0 -1
@@ -1,999 +0,0 @@
1
- # 组件使用
2
-
3
- ## form 表单
4
-
5
- ### 介绍
6
-
7
- - 用于数据录入、校验,支持输入框、单选框、复选框、文件上传等类型。
8
-
9
- ### 代码演示
10
-
11
- #### 基础用法
12
-
13
- 在表单中,每个 `Field` 组件 代表一个表单项,使用 `Field` 的`rules`属性定义校验规则
14
-
15
- ```html
16
- <em-form @submit="onSubmit">
17
- <em-field
18
- v-model="username"
19
- name="用户名"
20
- label="用户名"
21
- placeholder="用户名"
22
- :rules="[{ required: true, message: '请填写用户名' }]"
23
- />
24
- <em-field
25
- v-model="password"
26
- type="password"
27
- name="密码"
28
- label="密码"
29
- placeholder="密码"
30
- :rules="[{ required: true, message: '请填写密码' }]"
31
- />
32
- <div style="margin: 16px;">
33
- <em-button round block type="info" native-type="submit">提交</em-button>
34
- </div>
35
- </em-form>
36
- ```
37
-
38
- ::: ifdef M83
39
-
40
- ```js
41
- export default {
42
- data() {
43
- return {
44
- username: '',
45
- password: ''
46
- };
47
- },
48
- methods: {
49
- onSubmit(values) {
50
- console.log('submit', values);
51
- }
52
- }
53
- };
54
- ```
55
-
56
- ::: endif
57
- ::: ifdef M84
58
-
59
- ```js
60
- import { ref } from 'vue';
61
-
62
- const username = ref('');
63
- const password = ref('');
64
-
65
- const onSubmit = (values) => {
66
- console.log('submit', values);
67
- };
68
- ```
69
-
70
- ::: endif
71
-
72
- #### 校验规则
73
-
74
- 通过`rules`定义表单校验规则,可用字段见下方表格
75
-
76
- ::: ifdef M83
77
-
78
- ```html
79
- <em-form validate-first @failed="onFailed">
80
- <!-- 通过 pattern 进行正则校验 -->
81
- <em-field
82
- v-model="value1"
83
- name="pattern"
84
- placeholder="正则校验"
85
- :rules="[{ pattern, message: '请输入正确内容' }]"
86
- />
87
- <!-- 通过 validator 进行函数校验 -->
88
- <em-field
89
- v-model="value2"
90
- name="validator"
91
- placeholder="函数校验"
92
- :rules="[{ validator, message: '请输入正确内容' }]"
93
- />
94
- <!-- 通过 validator 进行异步函数校验 -->
95
- <em-field
96
- v-model="value3"
97
- name="asyncValidator"
98
- placeholder="异步函数校验"
99
- :rules="[{ validator: asyncValidator, message: '请输入正确内容' }]"
100
- />
101
- <div style="margin: 16px;">
102
- <em-button round block type="info" native-type="submit">提交</em-button>
103
- </div>
104
- </em-form>
105
- <em-toast ref="emToast"></em-toast>
106
- ```
107
-
108
- ```js
109
- export default {
110
- data() {
111
- return {
112
- value1: '',
113
- value2: '',
114
- value3: '',
115
- pattern: /^\d{6}$/
116
- };
117
- },
118
- methods: {
119
- // 校验函数返回 true 表示校验通过,false 表示不通过
120
- validator(val) {
121
- return /^1\d{10}$/.test(val);
122
- },
123
- // 异步校验函数返回 Promise
124
- asyncValidator(val) {
125
- return new Promise((resolve) => {
126
- Toast.loading({
127
- // 加载信息
128
- message: '验证中...'
129
- });
130
- setTimeout(() => {
131
- Toast.clear();
132
- resolve(/^\d{6}$/.test(val));
133
- }, 1000);
134
- });
135
- },
136
- onFailed(errorInfo) {
137
- console.log('failed', errorInfo);
138
- }
139
- }
140
- };
141
- ```
142
-
143
- ::: endif
144
- ::: ifdef M84
145
-
146
- ```html
147
- <em-form validate-first @failed="onFailed">
148
- <!-- 通过 pattern 进行正则校验 -->
149
- <em-field
150
- v-model="value1"
151
- name="pattern"
152
- placeholder="正则校验"
153
- :rules="[{ pattern, message: '请输入正确内容' }]"
154
- />
155
- <!-- 通过 validator 进行函数校验 -->
156
- <em-field
157
- v-model="value2"
158
- name="validator"
159
- placeholder="函数校验"
160
- :rules="[{ validator, message: '请输入正确内容' }]"
161
- />
162
- <!-- 通过 validator 进行异步函数校验 -->
163
- <em-field
164
- v-model="value3"
165
- name="asyncValidator"
166
- placeholder="异步函数校验"
167
- :rules="[{ validator: asyncValidator, message: '请输入正确内容' }]"
168
- />
169
- <div style="margin: 16px;">
170
- <em-button round block type="info" native-type="submit">提交</em-button>
171
- </div>
172
- </em-form>
173
- <em-toast ref="emToastRef"></em-toast>
174
- ```
175
-
176
- ```js
177
- import { ref } from 'vue';
178
-
179
- const value1 = ref('');
180
- const value2 = ref('');
181
- const value3 = ref('');
182
- const emToastRef = ref(null);
183
-
184
- const pattern = /^d{6}$/;
185
-
186
- const validator = (val) => /^1\d{10}$/.test(val);
187
-
188
- const asyncValidator = (val) => {
189
- return new Promise((resolve) => {
190
- Toast.loading({
191
- // 加载信息
192
- message: '验证中...'
193
- });
194
- setTimeout(() => {
195
- Toast.clear();
196
- resolve(pattern.test(val));
197
- }, 1000);
198
- });
199
- };
200
-
201
- const onFailed = (errorInfo) => {
202
- console.log('failed', errorInfo);
203
- };
204
-
205
- defineExpose({
206
- emToastRef
207
- });
208
- ```
209
-
210
- ::: endif
211
-
212
- #### 脱敏
213
-
214
- ::: ifdef M83
215
-
216
- `v8.3.24`开始支持。
217
-
218
- ::: endif
219
-
220
- ::: ifdef M84
221
-
222
- `v8.4.5`开始支持。
223
-
224
- ::: endif
225
-
226
- 表单项设置 `desensitizationType`,即可实现脱敏,该属性可选值见下文 `脱敏数据类型` 说明。脱敏数据根据设置的`desensitizationType`类型进行处理。
227
-
228
- 也可以将 `desensitizationType` 设置成 `DESENDATATYPE_CUSTOM`,通过 `desensitizer`、`desensitizeReg` 设置自定义的脱敏处理方式。
229
-
230
- ```html
231
- <em-form ref="formComp" validate-first @submit="onSubmit2">
232
- <!-- 手机号,默认脱敏校验 -->
233
- <em-field
234
- v-model="valueMobile"
235
- label="手机号"
236
- name="mobile"
237
- placeholder="请输入手机号"
238
- :rules="[{ validator, message: '请输入以1开头的11位数字' }]"
239
- :desensitization-type="DESENDATATYPE_MOBILE_PHONE"
240
- />
241
- <!-- 邮箱,自定义脱敏 -->
242
- <em-field
243
- v-model="valueEmail"
244
- label="邮箱"
245
- name="email"
246
- placeholder="请输入邮箱"
247
- :rules="[{ validator: emailValidator, message: '请输入正确的邮箱格式' }]"
248
- :desensitization-type="DESENDATATYPE_CUSTOM"
249
- :desensitizer="desensitizer"
250
- />
251
- <div style="margin: 16px">
252
- <em-button round block type="info" native-type="submit">提交</em-button>
253
- </div>
254
- </em-form>
255
- ```
256
-
257
- ::: ifdef M83
258
-
259
- ```js
260
- import { DESENDATATYPE_CUSTOM, DESENDATATYPE_MOBILE_PHONE } from '@components/common/use-desensitization';
261
- export default {
262
- data() {
263
- return {
264
- valueMobile: '11111111111',
265
- valueEmail: '222@qq.com'
266
- };
267
- },
268
- computed: {
269
- DESENDATATYPE_CUSTOM() {
270
- return DESENDATATYPE_CUSTOM;
271
- },
272
- DESENDATATYPE_MOBILE_PHONE() {
273
- return DESENDATATYPE_MOBILE_PHONE;
274
- }
275
- },
276
- methods: {
277
- validator(val) {
278
- return /1\d{10}/.test(val);
279
- },
280
- emailValidator(val) {
281
- return /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(val);
282
- },
283
- desensitizer(val) {
284
- const index = val.indexOf('@');
285
-
286
- return `****${val.slice(index)}`;
287
- },
288
- onSubmit2(values) {
289
- ejs.ui.alert(JSON.stringify(values), '提交成功', '确定');
290
- // 提交成功后需要重置脱敏字段编辑状态
291
- this.$refs.formComp.resetEditState();
292
- }
293
- }
294
- };
295
- ```
296
-
297
- ::: endif
298
-
299
- ::: ifdef M84
300
-
301
- ```js
302
- import { DESENDATATYPE_CUSTOM, DESENDATATYPE_MOBILE_PHONE } from '@components/common/use-desensitization';
303
- import { ref } from 'vue';
304
-
305
- const valueMobile = ref('11111111111');
306
- const valueEmail = ref('222@qq.com');
307
- const formComp = ref();
308
-
309
- const validator = (val) => {
310
- return /1\d{10}/.test(val);
311
- };
312
- const emailValidator = (val) => {
313
- return /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(val);
314
- };
315
- const desensitizer = (val) => {
316
- const index = val.indexOf('@');
317
-
318
- return `****${val.slice(index)}`;
319
- };
320
- const onSubmit2 = (values) => {
321
- ejs.ui.alert(JSON.stringify(values), '提交成功', '确定');
322
- // 提交成功后需要重置脱敏字段编辑状态
323
- formComp.value.resetEditState();
324
- };
325
- ```
326
-
327
- ::: endif
328
-
329
- #### 表单项类型 - 输入框
330
-
331
- 在表单中使用 `Input` 组件
332
-
333
- ```html
334
- <em-field name="input" label="输入框">
335
- <template #input>
336
- <em-input v-model="input" placeholder="请输入内容" />
337
- </template>
338
- </em-field>
339
- ```
340
-
341
- ::: ifdef M83
342
-
343
- ```js
344
- export default {
345
- data() {
346
- return {
347
- input: ''
348
- };
349
- }
350
- };
351
- ```
352
-
353
- ::: endif
354
- ::: ifdef M84
355
-
356
- ```js
357
- import { ref } from 'vue';
358
-
359
- const input = ref('');
360
- ```
361
-
362
- ::: endif
363
-
364
- #### 表单项类型 - 开关
365
-
366
- 在表单中使用 `Switch` 组件
367
-
368
- ```html
369
- <em-field name="switch" label="开关">
370
- <template #input>
371
- <em-switch v-model="switchChecked" size="20" />
372
- </template>
373
- </em-field>
374
- ```
375
-
376
- ::: ifdef M83
377
-
378
- ```js
379
- export default {
380
- data() {
381
- return {
382
- switchChecked: false
383
- };
384
- }
385
- };
386
- ```
387
-
388
- ::: endif
389
- ::: ifdef M84
390
-
391
- ```js
392
- import { ref } from 'vue';
393
-
394
- const switchChecked = ref(false);
395
- ```
396
-
397
- ::: endif
398
-
399
- #### 表单项类型 - 复选框
400
-
401
- 在表单中使用 `Checkbox` 组件
402
-
403
- ```html
404
- <em-field name="checkbox" label="复选框">
405
- <template #input>
406
- <em-checkbox v-model="checkbox" shape="square" />
407
- </template>
408
- </em-field>
409
- <em-field name="checkboxGroup" label="复选框组">
410
- <template #input>
411
- <em-checkbox-group v-model="checkboxGroup" direction="horizontal">
412
- <em-checkbox name="1" shape="square">复选框 1</em-checkbox>
413
- <em-checkbox name="2" shape="square">复选框 2</em-checkbox>
414
- </em-checkbox-group>
415
- </template>
416
- </em-field>
417
- ```
418
-
419
- ::: ifdef M83
420
-
421
- ```js
422
- export default {
423
- data() {
424
- return {
425
- checkbox: false,
426
- checkboxGroup: []
427
- };
428
- }
429
- };
430
- ```
431
-
432
- ::: endif
433
- ::: ifdef M84
434
-
435
- ```js
436
- import { ref } from 'vue';
437
-
438
- const checkbox = ref(false);
439
- const checkboxGroup = ref([]);
440
- ```
441
-
442
- ::: endif
443
-
444
- #### 表单项类型 - 单选框
445
-
446
- 在表单中使用 `Radio` 组件
447
-
448
- ```html
449
- <em-field name="radio" label="单选框">
450
- <template #input>
451
- <em-radio-group v-model="radio" direction="horizontal">
452
- <em-radio name="1">单选框 1</em-radio>
453
- <em-radio name="2">单选框 2</em-radio>
454
- </em-radio-group>
455
- </template>
456
- </em-field>
457
- ```
458
-
459
- ::: ifdef M83
460
-
461
- ```js
462
- export default {
463
- data() {
464
- return {
465
- radio: '1'
466
- };
467
- }
468
- };
469
- ```
470
-
471
- ::: endif
472
- ::: ifdef M84
473
-
474
- ```js
475
- import { ref } from 'vue';
476
-
477
- const radio = ref('1');
478
- ```
479
-
480
- ::: endif
481
-
482
- #### 表单项类型 - 步进器
483
-
484
- 在表单中使用 `Stepper` 组件
485
-
486
- ```html
487
- <em-field name="stepper" label="步进器">
488
- <template #input>
489
- <em-stepper v-model="stepper" />
490
- </template>
491
- </em-field>
492
- ```
493
-
494
- ::: ifdef M83
495
-
496
- ```js
497
- export default {
498
- data() {
499
- return {
500
- stepper: 1
501
- };
502
- }
503
- };
504
- ```
505
-
506
- ::: endif
507
- ::: ifdef M84
508
-
509
- ```js
510
- import { ref } from 'vue';
511
-
512
- const stepper = ref(1);
513
- ```
514
-
515
- ::: endif
516
-
517
- #### 表单项类型 - 评分
518
-
519
- 在表单中使用 `Rate` 组件
520
-
521
- ```html
522
- <em-field name="rate" label="评分">
523
- <template #input>
524
- <em-rate v-model="rate" />
525
- </template>
526
- </em-field>
527
- ```
528
-
529
- ::: ifdef M83
530
-
531
- ```js
532
- export default {
533
- data() {
534
- return {
535
- rate: 3
536
- };
537
- }
538
- };
539
- ```
540
-
541
- ::: endif
542
- ::: ifdef M84
543
-
544
- ```js
545
- import { ref } from 'vue';
546
-
547
- const rate = ref(3);
548
- ```
549
-
550
- ::: endif
551
-
552
- #### 表单项类型 - 滑块
553
-
554
- 在表单中使用 `Slider` 组件。
555
-
556
- 在小程序下 `Slider` 组件宽度无法自动撑开,需要在外面包裹一层宽度为 `100%` 的 view 元素。
557
-
558
- ```html
559
- <em-field name="slider" label="滑块">
560
- <template #input>
561
- <view style="width: 100%;">
562
- <em-slider v-model="slider" />
563
- </view>
564
- </template>
565
- </em-field>
566
- ```
567
-
568
- ::: ifdef M83
569
-
570
- ```js
571
- export default {
572
- data() {
573
- return {
574
- slider: 50
575
- };
576
- }
577
- };
578
- ```
579
-
580
- ::: endif
581
- ::: ifdef M84
582
-
583
- ```js
584
- import { ref } from 'vue';
585
-
586
- const slider = ref(50);
587
- ```
588
-
589
- ::: endif
590
-
591
- #### 表单项类型 - 文件上传
592
-
593
- 在表单中使用 `Uploader` 组件
594
-
595
- ```html
596
- <em-field name="uploader" label="文件上传">
597
- <template #input>
598
- <em-uploader v-model="uploader" />
599
- </template>
600
- </em-field>
601
- ```
602
-
603
- ::: ifdef M83
604
-
605
- ```js
606
- export default {
607
- data() {
608
- return {
609
- uploader: [{ url: 'https://img.yzcdn.cn/vant/leaf.jpg' }]
610
- };
611
- }
612
- };
613
- ```
614
-
615
- ::: endif
616
- ::: ifdef M84
617
-
618
- ```js
619
- import { ref } from 'vue';
620
-
621
- const uploader = ref([{ url: 'https://img.yzcdn.cn/vant/leaf.jpg' }]);
622
- ```
623
-
624
- ::: endif
625
-
626
- #### 表单项类型 - 选择器
627
-
628
- 在表单中使用 `Picker` 组件
629
-
630
- ::: ifdef M83
631
-
632
- ```html
633
- <em-field
634
- readonly
635
- clickable
636
- name="picker"
637
- :value="value"
638
- label="选择器"
639
- placeholder="点击选择城市"
640
- @click="showPicker = true"
641
- />
642
- <em-picker v-model="showPicker" show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
643
- ```
644
-
645
- ```js
646
- export default {
647
- data() {
648
- return {
649
- value: '',
650
- columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
651
- showPicker: false
652
- };
653
- },
654
- methods: {
655
- onConfirm(value) {
656
- this.value = value;
657
- this.showPicker = false;
658
- }
659
- }
660
- };
661
- ```
662
-
663
- ::: endif
664
- ::: ifdef M84
665
-
666
- ```html
667
- <em-field
668
- readonly
669
- clickable
670
- name="picker"
671
- :model-value="value"
672
- label="选择器"
673
- placeholder="点击选择城市"
674
- @click="showPicker = true"
675
- />
676
- <em-picker v-model="showPicker" show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
677
- ```
678
-
679
- ```js
680
- import { ref } from 'vue';
681
- const value = ref('');
682
- const columns = ['杭州', '宁波', '温州', '嘉兴', '湖州'];
683
- const showPicker = ref(false);
684
-
685
- const onConfirm = (val) => {
686
- value.value = val;
687
- showPicker.value = false;
688
- };
689
- ```
690
-
691
- ::: endif
692
-
693
- #### 表单项类型 - 时间选择器
694
-
695
- 在表单中使用 `DatetimePicker` 组件
696
-
697
- ::: ifdef M83
698
-
699
- ```html
700
- <em-field
701
- readonly
702
- clickable
703
- name="datetimePicker"
704
- :value="value"
705
- label="时间选择"
706
- placeholder="点击选择时间"
707
- @click="showPicker = true"
708
- />
709
- <em-date-picker v-model="showPicker" basic type="time" @confirm="onConfirm" @cancel="showPicker = false" />
710
- ```
711
-
712
- ```js
713
- export default {
714
- data() {
715
- return {
716
- value: '',
717
- showPicker: false
718
- };
719
- },
720
- methods: {
721
- onConfirm(time) {
722
- this.value = time;
723
- this.showPicker = false;
724
- }
725
- }
726
- };
727
- ```
728
-
729
- ::: endif
730
- ::: ifdef M84
731
-
732
- ```html
733
- <em-field
734
- readonly
735
- clickable
736
- name="datetimePicker"
737
- :model-value="value"
738
- label="时间选择"
739
- placeholder="点击选择时间"
740
- @click="showPicker = true"
741
- />
742
- <em-date-picker v-model="showPicker" basic type="time" @confirm="onConfirm" @cancel="showPicker = false" />
743
- ```
744
-
745
- ```js
746
- import { ref } from 'vue';
747
- const value = ref('');
748
- const showPicker = ref(false);
749
-
750
- const onConfirm = (time) => {
751
- value.value = time;
752
- showPicker.value = false;
753
- };
754
- ```
755
-
756
- ::: endif
757
-
758
- #### 表单项类型 - 省市区选择器
759
-
760
- 在表单中使用 `Area` 组件
761
-
762
- ::: ifdef M83
763
-
764
- ```html
765
- <em-field
766
- readonly
767
- clickable
768
- name="area"
769
- :value="value"
770
- label="地区选择"
771
- placeholder="点击选择省市区"
772
- @click="showArea = true"
773
- />
774
- <em-area v-model="showArea" :area-list="areaList" @confirm="onConfirm" @cancel="showArea = false" />
775
- ```
776
-
777
- ```js
778
- export default {
779
- data() {
780
- return {
781
- value: '',
782
- showArea: false,
783
- areaList: {} // 数据格式见 Area 组件文档
784
- };
785
- },
786
- methods: {
787
- onConfirm(values) {
788
- this.value = values.map((item) => item.name).join('/');
789
- this.showArea = false;
790
- }
791
- }
792
- };
793
- ```
794
-
795
- ::: endif
796
- ::: ifdef M84
797
-
798
- ```html
799
- <em-field
800
- readonly
801
- clickable
802
- name="area"
803
- :model-value="value"
804
- label="地区选择"
805
- placeholder="点击选择省市区"
806
- @click="showArea = true"
807
- />
808
- <em-area v-model="showArea" :area-list="areaList" @confirm="onConfirm" @cancel="showArea = false" />
809
- ```
810
-
811
- ```js
812
- import { ref } from 'vue';
813
- const value = ref('');
814
- const showArea = ref(false);
815
- const areaList = {}; // 数据格式见 Area 组件文档
816
-
817
- const onConfirm = (values) => {
818
- value.value = values.map((item) => item.name).join('/');
819
- showArea.value = false;
820
- };
821
- ```
822
-
823
- ::: endif
824
-
825
- #### 表单项类型 - 日历
826
-
827
- 在表单中使用 `Calendar` 组件
828
-
829
- ::: ifdef M83
830
-
831
- ```html
832
- <em-field
833
- readonly
834
- clickable
835
- name="calendar"
836
- :value="value"
837
- label="日历"
838
- placeholder="点击选择日期"
839
- @click="showCalendar = true"
840
- />
841
- <em-calendar v-model="showCalendar" @confirm="onConfirm" />
842
- ```
843
-
844
- ```js
845
- export default {
846
- data() {
847
- return {
848
- value: '',
849
- showCalendar: false
850
- };
851
- },
852
- methods: {
853
- onConfirm(date) {
854
- this.value = `${date.getMonth() + 1}/${date.getDate()}`;
855
- this.showCalendar = false;
856
- }
857
- }
858
- };
859
- ```
860
-
861
- ::: endif
862
- ::: ifdef M84
863
-
864
- ```html
865
- <em-field
866
- readonly
867
- clickable
868
- name="calendar"
869
- :model-value="value"
870
- label="日历"
871
- placeholder="点击选择日期"
872
- @click="showCalendar = true"
873
- />
874
- <em-calendar v-model="showCalendar" @confirm="onConfirm" />
875
- ```
876
-
877
- ```js
878
- import { ref } from 'vue';
879
- const value = ref('');
880
- const showCalendar = ref(false);
881
-
882
- const onConfirm = (date) => {
883
- value.value = `${date.getMonth() + 1}/${date.getDate()}`;
884
- showCalendar.value = false;
885
- };
886
- ```
887
-
888
- ::: endif
889
-
890
- ### API
891
-
892
- 表单项的 `API` 参见:`Field` 组件
893
-
894
- #### Props
895
-
896
- | 参数 | 说明 | 类型 | 默认值 |
897
- | :------------------ | :--------------------------------------------------: | :------------- | :------- |
898
- | label-width | 表单项 `label` 宽度,默认单位为`px` | number /string | `96px` |
899
- | label-align | 表单项 `label` 对齐方式,可选值为 `center` `right` | string | `left` |
900
- | input-align | 输入框对齐方式,可选值为 `center` `right` `vertical` | string | `left` |
901
- | error-message-align | 错误提示文案对齐方式,可选值为 `center` `right` | string | `left` |
902
- | validate-trigger | 表单校验触发时机,可选值为`onChange` `onSubmit` | string | `onBlur` |
903
- | colon | 是否在 `label` 后面添加冒号 | boolean | `false` |
904
- | disabled | 是否禁用表单中的所有输入框 | boolean | `false` |
905
- | readonly | 是否将表单中的所有输入框设置为只读 | boolean | `false` |
906
- | validate-first | 是否在某一项校验不通过时停止校验 | boolean | `false` |
907
- | scroll-to-error | 是否在提交表单且校验不通过时滚动至错误的表单项 | boolean | `false` |
908
- | show-error | 是否在校验不通过时标红输入框 | boolean | `true` |
909
- | show-error-message | 是否在校验不通过时在输入框下方展示错误提示 | boolean | `true` |
910
-
911
- #### Rule 数据结构
912
-
913
- 使用 `Field` 的`rules`属性可以定义校验规则,可选属性如下:
914
-
915
- | 键名 | 说明 | 类型 |
916
- | :-------- | :------------------------------------------------: | :--------------------------------- |
917
- | required | 是否为必选字段 | boolean |
918
- | message | 错误提示文案 | string / (value, rule) => string |
919
- | validator | 通过函数进行校验 | (value, rule) => boolean / Promise |
920
- | pattern | 通过正则表达式进行校验(小程序下只支持正则字符串) | RegExp |
921
- | trigger | 本项规则的触发时机,可选值为`onChange`、`onBlur` | string |
922
- | formatter | 格式化函数,将表单项的值转换后进行校验 | (value, rule) => any |
923
-
924
- #### Events
925
-
926
- | 事件名 | 说明 | 回调参数 |
927
- | :----- | :------------------------: | :---------------------------------------------- |
928
- | submit | 提交表单且验证通过后触发 | values: object |
929
- | failed | 提交表单且验证不通过后触发 | errorInfo: { values: object, errors: object[] } |
930
-
931
- #### 方法
932
-
933
- 通过 `ref` 可以获取到 `Form` 实例并调用实例方法,详见组件实例方法
934
-
935
- | 方法名 | 说明 | 参数 | 返回值 |
936
- | :-------------------------------------------------------------------------------- | :-----------------------------------------------------------------------: | :-------------------------------- | :-------- |
937
- | submit | 提交表单,与点击提交按钮的效果等价 | - | - |
938
- | validate | 验证表单,支持传入`name`来验证单个或部分表单项 | name?: string / string[] | `Promise` |
939
- | resetValidation | 重置表单项的验证提示,支持传入`name`来重置单个或部分表单项 | name?: string / string[] | - |
940
- | scrollToField | 滚动到对应表单项的位置,默认滚动到顶部,第二个参数传 `false` 可滚动至底部 | name: string, alignToTop: boolean | - |
941
- | resetEditState ::: ifdef M83 `v8.3.24` ::: endif ::: ifdef M84 `v8.4.5` ::: endif | 重置脱敏字段编辑状态 | - | - |
942
-
943
- #### Slots
944
-
945
- | 名称 | 说明 |
946
- | :------ | :------: |
947
- | default | 表单内容 |
948
-
949
- #### 脱敏数据类型 ​
950
-
951
- 脱敏数据类型入参如下:
952
-
953
- | Export Const | Value | Description | Desensitization Rules |
954
- | :---------------------------- | :-------------- | :--------------------- | :----------------------------------------------------------------- |
955
- | DESENDATATYPE_ID_CARD | ID_CARD | 身份证号脱敏 | 保留后 4 位 |
956
- | DESENDATATYPE_MOBILE_PHONE | MOBILE_PHONE | 手机号脱敏 | 保留前 3 位和后 4 位,如果手机号不足 11 位,则保留前 2 位和后 2 位 |
957
- | DESENDATATYPE_CHINESE_NAME | CHINESE_NAME | 人名脱敏 | 保留后 1 位 |
958
- | DESENDATATYPE_FIXED_PHONE | FIXED_PHONE | 固定电话脱敏 | 保留后 4 位 |
959
- | DESENDATATYPE_LOGINID | LOGINID | 登录名脱敏 | 保留后 1 位 |
960
- | DESENDATATYPE_BANK_CARD | BANK_CARD | 银行卡脱敏 | 保留前 5 位和后 4 位 |
961
- | DESENDATATYPE_EMAIL | EMAIL | 电子邮箱脱敏 | 保留@及之后的信息 |
962
- | DESENDATATYPE_PASSWORD | PASSWORD | 密码脱敏 | 全部隐藏 |
963
- | DESENDATATYPE_ADDRESS | ADDRESS | 地址脱敏 | 不足 12 位保留前面不超过 50%,大于 12 位只保留前 6 位 |
964
- | DESENDATATYPE_CREDENTIAL_DATE | CREDENTIAL_DATE | 证件日期脱敏 | 保留后 4 位 |
965
- | DESENDATATYPE_INTELLIGENCE | INTELLIGENCE | 智能脱敏 | 小于 4 位的全脱,否则保留前后各 2 位 |
966
- | DESENDATATYPE_REGEXP | REGEXP | 自定义脱敏正则 | 自定义脱敏正则,使用 desensitize-reg 入参值进行匹配 |
967
- | DESENDATATYPE_CUSTOM | CUSTOM | 自定义脱敏数据处理方法 | 自定义脱敏数据处理方法,使用 desensitizer 入参方法处理原始数据 |
968
-
969
- ::: ifdef M83
970
-
971
- <iframe
972
- src="//app.epoint.com.cn/m8mpdoc/showcase/index.html#/modules/m8showcase/examples/em-form"
973
- frameborder=0
974
- allowfullscreen class="ui-showcase-iframe">
975
- </iframe>
976
- ::: endif
977
- ::: ifdef M84
978
- <iframe
979
- src="//app.epoint.com.cn/m8mpdoc/showcase/m8.4/index.html#/modules/m8showcase/examples/em-form"
980
- frameborder=0
981
- allowfullscreen class="ui-showcase-iframe">
982
- </iframe>
983
- ::: endif
984
-
985
- <style>
986
- .ui-showcase-iframe {
987
- position: fixed;
988
- right: 3.5vw;
989
- top: 17%;
990
- width: 375px;
991
- height: 75vh;
992
- box-shadow: 0 0 12px 6px #eee;
993
- border-radius: 15px;
994
- }
995
- .main .markdown-body {
996
- padding: 45px;
997
- width: calc(97vw - 661px);
998
- }
999
- </style>