tmui-cli 2.0.0 → 2.0.2
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.
- package/README.md +98 -8
- package/data/components.json +637 -0
- package/data/config.json +169 -0
- package/data/doc-index.json +61 -0
- package/data/docs/alert.md +79 -0
- package/data/docs/avatar-group.md +73 -0
- package/data/docs/badge.md +62 -0
- package/data/docs/between-time.md +76 -0
- package/data/docs/button.md +114 -0
- package/data/docs/calendar-multiple.md +90 -0
- package/data/docs/cell.md +91 -0
- package/data/docs/checkbox-group.md +62 -0
- package/data/docs/checkbox.md +74 -0
- package/data/docs/circle-progress.md +74 -0
- package/data/docs/code-input.md +77 -0
- package/data/docs/col.md +57 -0
- package/data/docs/collapse-item.md +76 -0
- package/data/docs/collapse.md +59 -0
- package/data/docs/countdown.md +79 -0
- package/data/docs/date-view.md +65 -0
- package/data/docs/drawer.md +94 -0
- package/data/docs/dropdown-item.md +68 -0
- package/data/docs/dropdown-menu.md +70 -0
- package/data/docs/echart.md +69 -0
- package/data/docs/float-drawer.md +79 -0
- package/data/docs/form-item.md +67 -0
- package/data/docs/form.md +68 -0
- package/data/docs/html.md +70 -0
- package/data/docs/icon.md +67 -0
- package/data/docs/image.md +73 -0
- package/data/docs/input.md +126 -0
- package/data/docs/modal.md +92 -0
- package/data/docs/money.md +70 -0
- package/data/docs/more.md +69 -0
- package/data/docs/navbar.md +82 -0
- package/data/docs/picker-date.md +75 -0
- package/data/docs/picker-selected.md +75 -0
- package/data/docs/picker-time.md +77 -0
- package/data/docs/picker-view.md +70 -0
- package/data/docs/picker.md +76 -0
- package/data/docs/popover.md +68 -0
- package/data/docs/progress.md +72 -0
- package/data/docs/pull-refresh.md +73 -0
- package/data/docs/radio-group.md +61 -0
- package/data/docs/radio.md +74 -0
- package/data/docs/rate.md +72 -0
- package/data/docs/row.md +61 -0
- package/data/docs/sheet.md +72 -0
- package/data/docs/sign-board.md +61 -0
- package/data/docs/skeleton.md +60 -0
- package/data/docs/sku.md +69 -0
- package/data/docs/slider-double.md +71 -0
- package/data/docs/slider-menu.md +78 -0
- package/data/docs/slider.md +71 -0
- package/data/docs/stepper.md +76 -0
- package/data/docs/steps-item.md +71 -0
- package/data/docs/steps.md +73 -0
- package/data/docs/sticky-header.md +57 -0
- package/data/docs/sticky.md +55 -0
- package/data/docs/switch-slider.md +82 -0
- package/data/docs/switch.md +68 -0
- package/data/docs/tabbar.md +83 -0
- package/data/docs/tabs.md +84 -0
- package/data/docs/tag.md +78 -0
- package/data/docs/text.md +69 -0
- package/data/docs/upload-photo.md +86 -0
- package/data/docs/upload-video.md +86 -0
- package/data/docs//346/250/241/346/235/277.md +47 -0
- package/data/examples/alert.vue +39 -0
- package/data/examples/avatar-group.vue +97 -0
- package/data/examples/badge.vue +87 -0
- package/data/examples/between-time.vue +39 -0
- package/data/examples/button.vue +70 -0
- package/data/examples/calendar-multiple.vue +57 -0
- package/data/examples/cell.vue +39 -0
- package/data/examples/checkbox.vue +71 -0
- package/data/examples/circle-progress.vue +69 -0
- package/data/examples/code-input.vue +36 -0
- package/data/examples/collapse.vue +76 -0
- package/data/examples/countdown.vue +39 -0
- package/data/examples/drawer.vue +138 -0
- package/data/examples/dropdown-menu.vue +59 -0
- package/data/examples/echart.vue +91 -0
- package/data/examples/float-drawer.vue +45 -0
- package/data/examples/form.vue +147 -0
- package/data/examples/html.vue +53 -0
- package/data/examples/icon.vue +65 -0
- package/data/examples/image.vue +38 -0
- package/data/examples/input.vue +66 -0
- package/data/examples/modal.vue +122 -0
- package/data/examples/money.vue +60 -0
- package/data/examples/more.vue +47 -0
- package/data/examples/navbar.vue +68 -0
- package/data/examples/picker-date.vue +53 -0
- package/data/examples/picker-selected.vue +35 -0
- package/data/examples/picker-time.vue +46 -0
- package/data/examples/picker-view.vue +35 -0
- package/data/examples/picker.vue +101 -0
- package/data/examples/popover.vue +130 -0
- package/data/examples/progress.vue +57 -0
- package/data/examples/pull-refresh.vue +41 -0
- package/data/examples/radio.vue +61 -0
- package/data/examples/rate.vue +35 -0
- package/data/examples/row.vue +52 -0
- package/data/examples/sheet.vue +36 -0
- package/data/examples/sign-board.vue +43 -0
- package/data/examples/skeleton.vue +45 -0
- package/data/examples/sku.vue +106 -0
- package/data/examples/slider-menu.vue +65 -0
- package/data/examples/slider.vue +51 -0
- package/data/examples/stepper.vue +44 -0
- package/data/examples/steps.vue +77 -0
- package/data/examples/sticky.vue +46 -0
- package/data/examples/switch-slider.vue +113 -0
- package/data/examples/switch.vue +62 -0
- package/data/examples/tabbar.vue +41 -0
- package/data/examples/tabs.vue +46 -0
- package/data/examples/tag.vue +69 -0
- package/data/examples/text.vue +38 -0
- package/data/examples/upload-photo.vue +39 -0
- package/data/examples/upload-video.vue +29 -0
- package/data/guides/cli.md +110 -0
- package/data/guides//344/273/213/347/273/215.md +34 -0
- package/data/guides//345/205/274/345/256/271/346/200/247.md +41 -0
- package/data/guides//345/215/225/344/275/215/346/240/207/347/255/276/350/257/264/346/230/216.md +22 -0
- package/data/guides//345/233/275/351/231/205/345/214/226.md +454 -0
- package/data/guides//345/256/211/350/243/205.md +103 -0
- package/data/guides//345/260/217/347/250/213/345/272/217/345/210/206/344/272/253.md +34 -0
- package/data/guides//345/270/270/350/247/201/351/227/256/351/242/230.md +102 -0
- package/data/guides//345/277/253/351/200/237/344/270/212/346/211/213.md +191 -0
- package/data/guides//346/233/264/346/226/260/346/227/245/345/277/227.md +155 -0
- package/data/guides//350/264/241/347/214/256/350/200/205.md +97 -0
- package/data/tmui4x/01./346/225/231/347/250/213/01./345/205/263/344/272/216.md +48 -0
- package/data/tmui4x/01./346/225/231/347/250/213/02./346/233/264/346/226/260/346/227/245/345/277/227.md +1181 -0
- package/data/tmui4x/01./346/225/231/347/250/213/03./350/201/224/347/263/273/346/210/221.md +14 -0
- package/data/tmui4x/01./346/225/231/347/250/213/04.DEMO/351/242/204/350/247/210.md +17 -0
- package/data/tmui4x/01./346/225/231/347/250/213/10./345/205/245/351/227/250/346/214/207/345/215/227/10./345/211/215/347/275/256/346/235/241/344/273/266.md +33 -0
- package/data/tmui4x/01./346/225/231/347/250/213/10./345/205/245/351/227/250/346/214/207/345/215/227/11./347/216/257/345/242/203/351/205/215/347/275/256.md +44 -0
- package/data/tmui4x/01./346/225/231/347/250/213/10./345/205/245/351/227/250/346/214/207/345/215/227/12./345/256/211/350/243/205.md +167 -0
- package/data/tmui4x/01./346/225/231/347/250/213/20./345/270/270/350/247/201/351/227/256/351/242/230.md +293 -0
- package/data/tmui4x/01./346/225/231/347/250/213/30./346/234/252/346/235/245/350/247/204/345/210/222/01./346/217/222/344/273/266/350/247/204/345/210/222.md +14 -0
- package/data/tmui4x/01./346/225/231/347/250/213/30./346/234/252/346/235/245/350/247/204/345/210/222/02./347/273/204/344/273/266/350/247/204/345/210/222.md +9 -0
- package/data/tmui4x/01./346/225/231/347/250/213/34.Pinia.md +260 -0
- package/data/tmui4x/01./346/225/231/347/250/213/35.Interface/347/261/273/345/236/213.md +1105 -0
- package/data/tmui4x/01./346/225/231/347/250/213/36./345/233/275/351/231/205/345/214/226.md +220 -0
- package/data/tmui4x/01./346/225/231/347/250/213/37./345/276/256/344/277/241/345/210/206/344/272/253.md +91 -0
- package/data/tmui4x/01./346/225/231/347/250/213/38./345/233/276/346/240/207/345/272/223.md +9 -0
- package/data/tmui4x/01./346/225/231/347/250/213/39.CSS/345/272/223.md +256 -0
- package/data/tmui4x/01./346/225/231/347/250/213/50.TMUI4x/350/222/270/346/261/275/350/256/241/345/210/222.md +46 -0
- package/data/tmui4x/01./346/225/231/347/250/213/50./344/270/273/351/242/230/351/205/215/347/275/256/01./351/205/215/347/275/256/345/217/212/345/256/236/344/276/213.md +425 -0
- package/data/tmui4x/01./346/225/231/347/250/213/50./344/270/273/351/242/230/351/205/215/347/275/256/02./345/234/250/347/272/277/351/205/215/347/275/256.md +11 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/01./346/217/222/344/273/266/347/233/256/345/275/225.md +10 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/tmOcr /347/246/273/347/272/277/346/226/207/346/241/243/350/257/206/345/210/253.md" +87 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xActionmodalS /345/272/225/351/203/250/345/206/205/345/256/271/346/212/275/345/261/211.md" +129 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xActionsheetS /345/272/225/351/203/250/345/212/250/344/275/234/350/217/234/345/215/225.md" +96 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xAddphonerepeatcalendarS /347/263/273/347/273/237/346/227/245/345/216/206.md" +129 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xAppiconS /345/272/224/347/224/250/345/233/276/346/240/207/344/270/216/350/247/222/346/240/207.md" +181 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xBluetoothS /350/223/235/347/211/231.md" +141 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xBlurU /350/203/214/346/231/257/346/257/233/347/216/273/347/222/203.md" +65 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xCamreaU /345/216/237/347/224/237/347/233/270/346/234/272.md" +106 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xChatmarkdownU AI/350/201/212/345/244/251Markdown.md" +102 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xChinesetopinyinS /344/270/255/346/226/207/350/275/254/346/213/274/351/237/263.md" +71 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xChooseFileS /346/226/207/344/273/266/351/200/211/346/213/251.md" +77 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xChooseMediaS /345/252/222/344/275/223/351/200/211/346/213/251/345/231/250.md" +109 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xCorrectS /346/226/207/346/241/243/346/240/241/346/255/243/344/270/216/350/257/206/345/210/253.md" +206 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xCryptoS /345/212/240/350/247/243/345/257/206.md" +212 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xDesktopcardS /346/241/214/351/235/242/345/215/241/347/211/207/344/270/216/345/256/236/345/206/265.md" +70 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xEditorU /345/257/214/346/226/207/346/234/254/347/274/226/350/276/221.md" +162 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xFacedetectAlibabaS /351/230/277/351/207/214/344/272/221/345/256/236/344/272/272/350/256/244/350/257/201.md" +63 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xFacerecU /347/246/273/347/272/277/344/272/272/350/204/270/350/257/206/345/210/253.md" +164 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xFfmpegS /351/237/263/350/247/206/351/242/221/345/244/204/347/220/206.md" +114 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xHtmlU HTML/345/256/211/345/205/250/346/270/262/346/237/223.md" +68 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xKeyboardS /350/275/257/351/224/256/347/233/230.md" +101 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xLoadingS /345/205/250/345/261/217/345/212/240/350/275/275.md" +97 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xLocationS /345/256/232/344/275/215.md" +104 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMakephoneS /346/213/250/346/211/223/347/224/265/350/257/235.md" +59 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMediaplayS /345/252/222/344/275/223/346/222/255/346/224/276/344/270/216/345/275/225/345/210/266.md" +151 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMimeS /346/226/207/344/273/266/347/261/273/345/236/213/345/227/205/346/216/242.md" +85 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMlkitScannigS /345/205/250/345/261/217/346/211/253/347/240/201.md" +111 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMlkitScannigU /346/211/253/347/240/201/345/256/271/345/231/250.md" +118 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMnnkitS /347/253/257/344/276/247/345/244/247/346/250/241/345/236/213.md" +119 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xModalS /345/257/271/350/257/235/346/241/206.md" +124 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMoreshareS /346/233/264/345/244/232/345/210/206/344/272/253/351/235/242/346/235/277.md" +155 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMqttS MQTT/346/266/210/346/201/257.md" +129 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xMusicnotifyS /351/200/232/347/237/245/346/240/217/351/237/263/344/271/220/346/222/255/346/224/276/345/231/250.md" +128 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xNetworkstatusS /347/275/221/347/273/234/347/212/266/346/200/201.md" +114 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xNotifyS /346/234/254/345/234/260/351/200/232/347/237/245.md" +104 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xOcrS /347/246/273/347/272/277/346/226/207/346/241/243/350/257/206/345/210/253.md" +115 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xOnnxkitS /347/246/273/347/272/277/350/257/255/351/237/263/350/257/206/345/210/253/344/270/216/345/220/210/346/210/220.md" +99 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xPdfS PDF/345/220/210/346/210/220.md" +130 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xPdfU PDF/351/242/204/350/247/210.md" +88 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xPermissionS /346/235/203/351/231/220.md" +93 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xPhonecontactS /351/200/232/350/256/257/345/275/225.md" +91 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xPhotokitS /345/233/276/347/211/207/346/260/264/345/215/260.md" +78 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xPrintS /347/263/273/347/273/237/346/211/223/345/215/260.md" +105 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xScreenshotS /346/210/252/345/233/276/344/270/216/351/230/262/346/210/252/345/261/217.md" +177 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xScreentgreyS /345/272/224/347/224/250/347/275/256/347/201/260.md" +128 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xSendsmsS /345/217/221/351/200/201/347/237/255/344/277/241.md" +84 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xShareS /347/263/273/347/273/237/345/210/206/344/272/253.md" +134 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xSkiaU Skia/347/224/273/345/270/203.md" +115 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xSqliteS SQLite/346/225/260/346/215/256/345/272/223.md" +248 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xSseS SSE/346/216/250/351/200/201.md" +127 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xStartintentS /346/211/223/345/274/200/345/215/217/350/256/256/351/223/276/346/216/245.md" +97 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xSvgU SVG/347/273/204/344/273/266.md" +26 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xSwiperU /345/216/237/347/224/237/350/275/256/346/222/255.md" +304 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xTexttovoiceS /346/226/207/346/234/254/350/275/254/350/257/255/351/237/263.md" +77 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xTianditumapU /345/244/251/345/234/260/345/233/276.md" +146 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xTipsS /346/266/210/346/201/257/346/217/220/347/244/272.md" +86 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xToastS /350/275/273/346/217/220/347/244/272.md" +98 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xUdpS UDP/351/200/232/344/277/241.md" +204 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xUtilsS Base64/344/270/216/346/226/207/344/273/266/344/272/222/350/275/254.md" +83 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xVibrateS /351/234/207/345/212/250.md" +115 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xWebviewU /346/267/267/345/220/210WebView.md" +93 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xWechatshareS /345/276/256/344/277/241/345/274/200/346/224/276/345/271/263/345/217/260.md" +139 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xYoloS YOLO/347/233/256/346/240/207/346/243/200/346/265/213.md" +125 -0
- package/data/tmui4x/10./346/217/222/344/273/266/345/272/223/xZipS ZIP/345/216/213/347/274/251/350/247/243/345/216/213.md" +126 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//344/272/214/347/273/264/347/240/201 xQrcoder.md" +187 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//345/212/250/347/224/273 xAnimation.md" +153 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//345/216/237/347/224/237/345/233/276/350/241/250 Chart.md" +97 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//345/233/276/347/211/207/350/243/201/345/211/252 xImageResizer.md" +117 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//345/233/276/350/241/250 xEchart.md" +238 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//346/200/235/347/273/264/345/257/274/345/233/276 xTreeFlat.md" +130 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//346/211/213/345/212/277/345/272/223 xFinger.md" +201 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//346/217/220/345/217/212 xMention.md" +174 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//346/235/241/347/240/201 xBarcode.md" +133 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//346/273/221/345/212/250/351/252/214/350/257/201 xSlideVerify.md" +132 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//347/255/276/345/220/215/346/235/277 xSignBoard.md" +178 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//351/242/234/350/211/262/351/200/211/346/213/251 xColorView.md" +103 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/205/266/345/256/203/347/273/204/344/273/266//351/252/214/350/257/201/347/240/201/350/276/223/345/205/245/346/241/206 xCodeInput.md" +133 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//344/270/213/346/213/211/345/210/267/346/226/260 xPullRefresh.md" +244 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//344/270/213/346/213/211/350/217/234/345/215/225 xDropdownMenu.md" +144 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//344/270/213/346/213/211/350/217/234/345/215/225/345/255/220/347/273/204/344/273/266 xDropdownItem.md" +143 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//345/212/240/350/275/275/344/270/255 xLoading.md" +113 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//345/212/250/344/275/234/350/217/234/345/215/225/351/235/242/346/235/277 xActionMenu.md" +173 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//345/257/271/350/257/235/346/241/206 xModal.md" +244 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//345/267/246/346/273/221/350/217/234/345/215/225 xSwitchSlider.md" +222 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//345/272/225/351/203/250/345/257/271/350/257/235/346/241/206 xActionModal.md" +139 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//345/274/271/345/271/225 Barrage.md" +126 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//345/274/271/345/271/225/345/255/220/350/212/202/347/202/271 xBarrageItem.md" +128 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/212/275/345/261/211 xDrawer.md" +314 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/213/226/346/213/275/346/216/222/345/272/217 xDrag.md" +256 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/213/226/346/213/275/346/216/222/345/272/217/345/255/220/347/273/204/344/273/266 xDragItem.md" +253 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/261/275/346/263/241/350/217/234/345/215/225 xPopover.md" +213 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/265/256/345/212/250/351/235/242/346/235/277 FloatDrawer.md" +166 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/265/256/347/220/203 xFloatButton.md" +143 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/266/210/346/201/257/346/235/241 xSnackbar.md" +125 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/266/210/346/201/257/346/235/241/345/255/220/350/212/202/347/202/271 xSnackbarItem.md" +123 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//346/266/210/346/201/257/351/200/232/347/237/245 xMsgNotice.md" +130 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/217/215/351/246/210/347/273/204/344/273/266//351/201/256/347/275/251 xOverlay.md" +162 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//344/276/247/350/276/271/345/210/206/347/261/273 xSliderTree.md" +242 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//344/276/247/350/276/271/345/210/206/347/261/273/345/255/220/350/212/202/347/202/271 xSliderTreeChildren.md" +238 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//344/276/247/350/276/271/350/217/234/345/215/225 xSliderMenu.md" +158 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//345/215/225/351/200/211/346/214/211/351/222/256/347/273/204 xRadioButton.md" +140 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//345/256/253/346/240/274 xGrid.md" +160 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//345/256/253/346/240/274/345/255/220/347/273/204/344/273/266 xGridItem.md" +156 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//345/272/225/351/203/250/345/257/274/350/210/252 xTabbar.md" +299 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//345/274/225/345/257/274 xGuid.md" +130 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//345/274/225/345/257/274/345/255/220/347/273/204/344/273/266 xGuidItem.md" +125 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//346/220/234/347/264/242/346/240/217 xSearch.md" +137 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//346/227/266/351/227/264/345/221/250 xWeekbar.md" +170 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//346/240/207/347/255/276/345/257/274/350/210/252 xTabs.md" +193 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//346/240/207/351/242/230/345/257/274/350/210/252 xNavbar.md" +161 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//347/262/230/346/200/247/345/270/203/345/261/200 Sticky.md" +116 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//347/264/242/345/274/225 xIndexbar.md" +113 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/257/274/350/210/252/347/273/204/344/273/266//350/277/224/345/233/236/351/241/266/351/203/250 xBacktop.md" +125 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266/markdown xCmarkdown.md" +525 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266/markdown/345/255/220/347/273/204/344/273/266 xCmarkdownItem.md" +523 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/200/222/350/256/241/346/227/266 xCountdown.md" +125 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/210/206/345/211/262/347/272/277 xDivider.md" +115 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/210/227/350/241/250 xCell.md" +154 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/212/250/346/200/201/345/205/250/345/261/217 xViewTofull.md" +164 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/215/241/347/211/207 xCard.md" +123 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/233/276/347/211/207 xImage.md" +132 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/233/276/351/233/206 xImageGroup.md" +130 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/234/206/345/275/242/350/277/233/345/272/246/347/216/257 xCircleProgress.md" +150 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/244/264/345/203/217/347/273/204 xAvatarGroup.md" +181 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//345/257/214/346/226/207/346/234/254 xMarkdown.md" +211 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/212/230/345/217/240/351/235/242/346/235/277 xCollapse.md" +152 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/212/230/345/217/240/351/235/242/346/235/277/345/255/220/347/273/204/344/273/266 xCollapseItem.md" +167 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/225/260/345/255/227/347/277/273/346/273/232 xRollingNumber.md" +129 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/237/245/347/234/213/346/233/264/345/244/232 xMore.md" +138 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/250/252/345/220/221/346/273/232/345/212/250 xScrollx.md" +135 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/255/245/351/252/244/346/235/241 xSteps.md" +153 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/255/245/351/252/244/346/235/241/345/255/220/347/273/204/344/273/266 xStepsItem.md" +150 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//346/260/264/345/215/260 xWatermark.md" +91 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//347/200/221/345/270/203/346/265/201 xWaterfall.md" +354 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//347/251/272/347/212/266/346/200/201 xEmpty.md" +116 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//350/231/232/346/213/237/345/210/227/350/241/250 xVirtualList.md" +319 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//350/241/250/346/240/274 xTable.md" +409 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//350/241/250/346/240/274/345/210/227 xTableCol.md" +384 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//350/247/222/346/240/207 xBadge.md" +173 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//350/255/246/345/221/212 xAlert.md" +131 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//350/257/215/344/272/221 xTextCloud.md" +263 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//350/277/233/345/272/246/346/235/241 xProgress.md" +149 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//351/200/232/347/237/245/346/240/217 xNotice.md" +134 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//351/207/221/351/242/235/346/240/205/346/240/274 xMoney.md" +137 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//351/223/276/346/216/245 xLink.md" +113 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/261/225/347/244/272/347/273/204/344/273/266//351/252/250/346/236/266/345/261/217 xSkeleton.md" +119 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/270/270/347/224/250/347/273/204/344/273/266//345/233/276/346/240/207 xIcon.md" +135 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/270/270/347/224/250/347/273/204/344/273/266//345/256/271/345/231/250 xSheet.md" +133 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/270/270/347/224/250/347/273/204/344/273/266//345/270/203/345/261/200 xRow.md" +181 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/270/270/347/224/250/347/273/204/344/273/266//345/270/203/345/261/200/345/255/220/347/273/204/344/273/266 xCol.md" +182 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/270/270/347/224/250/347/273/204/344/273/266//346/214/211/351/222/256 xButton.md" +209 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/270/270/347/224/250/347/273/204/344/273/266//346/226/207/346/234/254 xText.md" +132 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//345/270/270/347/224/250/347/273/204/344/273/266//346/240/207/347/255/276 xTag.md" +148 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/215/225/346/273/221/345/235/227 xSlider.md" +130 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/215/225/351/200/211/346/241/206 xRadio.md" +220 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/215/225/351/200/211/346/241/206/347/273/204 xRadioGroup.md" +207 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/217/214/345/220/221/346/273/221/345/235/227 xSliderDouble.md" +130 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/233/276/347/211/207/344/270/212/344/274/240 xUploadMedia.md" +270 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/237/216/345/270/202/351/200/211/346/213/251/345/231/250 xPickerCity.md" +132 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/244/232/351/200/211/346/227/245/345/216/206 xCalendarMultiple.md" +188 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/244/232/351/200/211/346/241/206 xCheckbox.md" +273 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/244/232/351/200/211/346/241/206/347/273/204 xCheckboxGroup.md" +260 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/257/206/347/240/201/351/224/256/347/233/230 xKeyboard.md" +151 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/257/214/346/226/207/346/234/254/347/274/226/350/276/221/345/231/250 xEditor.md" +143 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/265/214/345/205/245/345/274/217/346/227/245/346/234/237/351/200/211/346/213/251/345/231/250 xDateView.md" +135 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//345/274/200/345/205/263 xSwitch.md" +146 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/220/234/347/264/242/351/200/211/346/213/251 xpickerSelected.md" +259 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/225/260/345/255/227/351/224/256/347/233/230 xKeyboardNumber.md" +154 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/226/207/344/273/266/351/200/211/346/213/251 xUploadFile.md" +136 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/227/245/345/216/206 xCalendar.md" +179 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/227/245/346/234/237/351/200/211/346/213/251/345/231/250 xPickerDate.md" +147 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/227/266/351/227/264/345/214/272/351/227/264/351/200/211/346/213/251 xBetweenTime.md" +142 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/227/266/351/227/264/351/200/211/346/213/251/345/231/250 xPickerTime.md" +124 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/236/201/350/201/224/345/231/250 xCascader.md" +170 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/240/207/347/255/276/350/276/223/345/205/245/346/241/206 xInputTag.md" +111 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/240/221 xTree.md" +373 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//346/255/245/350/277/233/345/231/250 xStepper.md" +142 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//347/277/273/351/241/265/345/231/250 xPagination.md" +124 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//350/241/250/345/215/225 xForm.md" +330 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//350/241/250/345/215/225/345/255/220/347/273/204/344/273/266 xFormItem.md" +334 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//350/257/204/345/210/206 xRate.md" +131 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//350/272/253/344/273/275/350/257/201/351/224/256/347/233/230 xKeyboardIdcard.md" +151 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//350/275/246/347/211/214/351/224/256/347/233/230 xKeyboardCar.md" +151 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//350/276/223/345/205/245/346/241/206 xInput.md" +198 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//350/276/223/345/205/245/346/241/206 xInputNumber.md" +183 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//351/200/211/346/213/251/345/231/250 xPicker.md" +199 -0
- package/data/tmui4x/30./347/273/204/344/273/266/345/272/223//350/241/250/345/215/225/347/273/204/344/273/266//351/200/211/346/213/251/345/231/250/345/256/271/345/231/250 xPickerView.md" +242 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/01/345/274/200/345/247/213/344/275/277/347/224/250/01./345/277/253/351/200/237/344/270/212/346/211/213.md +95 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/01/345/274/200/345/247/213/344/275/277/347/224/250/02./346/225/260/346/215/256/346/240/274/345/274/217.md +61 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/02/345/237/272/347/241/200/351/205/215/347/275/256/01./346/240/207/351/242/230/344/270/216/345/233/276/344/276/213.md +45 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/02/345/237/272/347/241/200/351/205/215/347/275/256/02./345/235/220/346/240/207/350/275/264.md +71 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/02/345/237/272/347/241/200/351/205/215/347/275/256/03./346/217/220/347/244/272/346/241/206.md +37 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/01./346/212/230/347/272/277/345/233/276.md +76 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/02./346/237/261/347/212/266/345/233/276.md +89 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/03./351/245/274/345/233/276/344/270/216/347/216/257/345/233/276.md +119 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/04./351/235/242/347/247/257/345/233/276.md +38 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/05./346/225/243/347/202/271/345/233/276.md +36 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/06./351/233/267/350/276/276/345/233/276.md +46 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/07./346/274/217/346/226/227/345/233/276.md +35 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/08.K/347/272/277/345/233/276.md +44 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/09./346/227/255/346/227/245/345/233/276.md +45 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/10./347/237/251/345/275/242/346/240/221/345/233/276.md +50 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/11./345/234/260/345/233/276.md +91 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/03/345/233/276/350/241/250/347/261/273/345/236/213/12./344/273/252/350/241/250/347/233/230/345/233/276.md +89 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/04/344/272/244/344/272/222/344/270/216/351/253/230/344/272/256/01./351/253/230/344/272/256/346/240/267/345/274/217/351/205/215/347/275/256.md +47 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/05/351/253/230/347/272/247/345/212/237/350/203/275/01./346/225/260/346/215/256/347/274/251/346/224/276/344/270/216/345/271/263/347/247/273.md +93 -0
- package/data/tmui4x/31./345/216/237/347/224/237/345/233/276/350/241/250/05/351/253/230/347/272/247/345/212/237/350/203/275/02./345/212/250/346/200/201/346/233/264/346/226/260/344/270/216/345/212/250/347/224/273.md +58 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/03./350/257/267/346/261/202/345/272/223.md +484 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/04./345/212/250/347/224/273/345/272/223.md +385 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/05./346/227/245/346/234/237/345/272/223.md +657 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/01./347/224/273/345/270/203/344/273/213/347/273/215.md +37 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/02./347/224/273/345/270/203/347/261/273/345/236/213.md +266 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/10./346/241/210/344/276/213/01./346/227/213/350/275/254/345/274/200/345/205/263.md +23 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/10./346/241/210/344/276/213/02./350/277/220/345/212/250/346/211/213/347/216/257.md +23 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/10./346/241/210/344/276/213/03./350/257/255/351/237/263/345/275/225/345/210/266/346/263/242.md +23 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/10./346/241/210/344/276/213/04./350/207/252/345/212/250/346/216/222/347/211/210.md +23 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/10./346/241/210/344/276/213/05./346/265/267/346/212/245/347/273/230/345/210/266.md +23 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/20./345/205/245/351/227/250/346/225/231/347/250/213/01./345/210/233/345/273/272/347/224/273/345/270/203/345/256/236/344/276/213.md +77 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/20./345/205/245/351/227/250/346/225/231/347/250/213/05./347/224/273/345/270/203/345/261/236/346/200/247/346/226/271/346/263/225.md +153 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/20./345/205/245/351/227/250/346/225/231/347/250/213/10./345/210/233/345/273/272/345/205/203/347/264/240.md +45 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/20./345/205/245/351/227/250/346/225/231/347/250/213/20./345/205/203/347/264/240/345/261/236/346/200/247/346/226/271/346/263/225.md +10 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/25./345/212/250/347/224/273/347/263/273/347/273/237/01./345/210/233/345/273/272/345/212/250/347/224/273/345/256/236/344/276/213.md +57 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/25./345/212/250/347/224/273/347/263/273/347/273/237/02./345/212/250/347/224/273/345/261/236/346/200/247/345/217/212/346/226/271/346/263/225.md +221 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/30./350/207/252/345/212/250/346/216/222/347/211/210/01./345/210/233/345/273/272/346/216/222/347/211/210.md +74 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/30./350/207/252/345/212/250/346/216/222/347/211/210/02./346/216/222/347/211/210/345/261/236/346/200/247.md +160 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/01.Shape.md +244 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/02.IArc.md +100 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/03.ICircle.md +89 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/04.IEllipse.md +94 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/05.ImageShape.md +92 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/06.ILine.md +115 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/07.ILinePolygon.md +73 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/08.Path2DShape.md +81 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/09.IRect.md +91 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/10.IRegularPolygon.md +106 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/11.IRing.md +110 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/12.ISector.md +103 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/13.IStar.md +115 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/14.IText.md +136 -0
- package/data/tmui4x/40./345/267/245/345/205/267/345/272/223/30./347/224/273/345/270/203/50./345/233/276/345/275/242/347/263/273/347/273/237/15.IQrcode.md +94 -0
- package/data/tmui4x/60.AI/350/207/252/345/212/250/345/214/226/01.Agent.md +17 -0
- package/data/tmui4x/60.AI/350/207/252/345/212/250/345/214/226/04.SKILL.md +16 -0
- package/data/tmui4x/60.AI/350/207/252/345/212/250/345/214/226/05.LLMS.md +9 -0
- package/data/tmui4x/60.AI/350/207/252/345/212/250/345/214/226/06./346/226/207/346/241/243/351/233/206.md +10 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/01./345/205/263/344/272/216.md +44 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/02./345/205/263/351/224/256/350/257/215/346/246/202/345/277/265.md +26 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/03./347/273/204/344/273/266/344/273/213/347/273/215.md +367 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/04.WEB/345/274/200/345/217/221.md +126 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/05.jssdkApi.md +1421 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/06.CSS/345/217/230/351/207/217.md +45 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/07.TMUI3.2/347/273/204/344/273/266/345/272/223.md +126 -0
- package/data/tmui4x/70./346/267/267/345/220/210/345/274/200/345/217/221/10./345/274/200/345/217/221/345/256/236/346/210/230.md +69 -0
- package/data/tmui4x/80.Flutter/01./345/205/263/344/272/216.md +68 -0
- package/data/tmui4x/80.Flutter/02./347/273/204/344/273/266/347/233/256/345/275/225.md +155 -0
- package/data/tmui4x-doc-index.json +3440 -0
- package/dist/main.mjs +89 -66
- package/package.json +13 -6
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# x-crypto-s 加解密
|
|
2
|
+
|
|
3
|
+
### 开发文档
|
|
4
|
+
[TMUI4.0文档](https://xui.tmui.design/)
|
|
5
|
+
[TMUI4.0组件库](https://ext.dcloud.net.cn/plugin?id=16369)
|
|
6
|
+
|
|
7
|
+
加密插件
|
|
8
|
+
|
|
9
|
+
### 说明
|
|
10
|
+
这是tmui4.0|XUI的原生插件附赠插件,提供了多种加密算法的实现,包括MD5、Base64、SHA系列、AES、DES、RSA、RC4 以及国密 SM2/SM3/SM4。国际算法与 CryptoJS 对齐;国密默认与 sm-crypto / 微信小程序对齐,五端可交叉加解密和验签。
|
|
11
|
+
|
|
12
|
+
### 兼容性
|
|
13
|
+
|
|
14
|
+
| Harmony | IOS | Android | WEB | 小程序 |
|
|
15
|
+
| --- | --- | --- | --- | --- |
|
|
16
|
+
| 支持 | 支持 | 支持 | 支持 | 支持 |
|
|
17
|
+
|
|
18
|
+
### API说明
|
|
19
|
+
|
|
20
|
+
#### MD5加密
|
|
21
|
+
```ts
|
|
22
|
+
function md5(str: string): string
|
|
23
|
+
```
|
|
24
|
+
- 参数:
|
|
25
|
+
- str: 待加密的字符串
|
|
26
|
+
- 返回值:MD5加密后的字符串
|
|
27
|
+
|
|
28
|
+
#### Base64编解码
|
|
29
|
+
```ts
|
|
30
|
+
function base64Encode(str: string): string
|
|
31
|
+
function base64Decode(str: string): string
|
|
32
|
+
```
|
|
33
|
+
- 参数:
|
|
34
|
+
- str: 待编码/解码的字符串
|
|
35
|
+
- 返回值:Base64编码/解码后的字符串
|
|
36
|
+
- 注意:在Web端加密中文字符时,需要先使用encodeURI处理
|
|
37
|
+
|
|
38
|
+
#### SHA系列加密
|
|
39
|
+
```ts
|
|
40
|
+
function sha256(str: string): string
|
|
41
|
+
function sha512(str: string): string
|
|
42
|
+
function sha1(str: string): string
|
|
43
|
+
function hmacSha256(key: string, data: string): string
|
|
44
|
+
function hmacSha512(key: string, data: string): string
|
|
45
|
+
```
|
|
46
|
+
- 参数:
|
|
47
|
+
- str/data: 待加密的字符串
|
|
48
|
+
- key: HMAC加密的密钥
|
|
49
|
+
- 返回值:对应算法加密后的字符串
|
|
50
|
+
|
|
51
|
+
#### AES加密
|
|
52
|
+
```ts
|
|
53
|
+
function aesEncrypt(key: string, data: string, mode: string = "ECB", iv: string|null = null, keySize: number|null = null): string
|
|
54
|
+
function aesDecrypt(key: string, data: string, mode: string = "ECB", iv: string|null = null, keySize: number|null = null): string
|
|
55
|
+
```
|
|
56
|
+
- 参数:
|
|
57
|
+
- key: 加密密钥(UTF-8字符串,根据keySize截取和补足)
|
|
58
|
+
- data: 待加密/解密的数据(base64字符串)
|
|
59
|
+
- mode: 加密模式,支持ECB和CBC
|
|
60
|
+
- iv: 初始化向量
|
|
61
|
+
- keySize: 密钥长度(16=128位, 24=192位, 32=256位)
|
|
62
|
+
- 返回值:加密(经过base64字符串)/解密后的字符串
|
|
63
|
+
|
|
64
|
+
#### DES加密
|
|
65
|
+
```ts
|
|
66
|
+
function desEncrypt(key: string, data: string, mode: string = "ECB", iv: string|null = null): string
|
|
67
|
+
function desDecrypt(key: string, data: string, mode: string = "ECB", iv: string|null = null): string
|
|
68
|
+
```
|
|
69
|
+
- 参数:
|
|
70
|
+
- key: 加密密钥
|
|
71
|
+
- data: 待加密/解密的数据
|
|
72
|
+
- mode: 加密模式,支持ECB和CBC
|
|
73
|
+
- iv: 初始化向量
|
|
74
|
+
- 返回值:加密/解密后的字符串
|
|
75
|
+
|
|
76
|
+
#### RSA加密
|
|
77
|
+
```ts
|
|
78
|
+
function generateRSAKeyPair(keySize: number = 2048): RSARANDOMKEY
|
|
79
|
+
function rsaEncrypt(publicKey: string, data: string): string
|
|
80
|
+
function rsaDecrypt(privateKey: string, data: string): string
|
|
81
|
+
```
|
|
82
|
+
- 参数:
|
|
83
|
+
- keySize: RSA密钥长度
|
|
84
|
+
- publicKey: 公钥
|
|
85
|
+
- privateKey: 私钥
|
|
86
|
+
- data: 待加密/解密的数据
|
|
87
|
+
- 返回值:
|
|
88
|
+
- generateRSAKeyPair: 返回包含publicKey和privateKey的对象
|
|
89
|
+
- rsaEncrypt/rsaDecrypt: 加密/解密后的字符串
|
|
90
|
+
|
|
91
|
+
#### RC4加密
|
|
92
|
+
```ts
|
|
93
|
+
function rc4Encrypt(key: string, data: string): string
|
|
94
|
+
function rc4Decrypt(key: string, data: string): string
|
|
95
|
+
```
|
|
96
|
+
- 参数:
|
|
97
|
+
- key: 加密密钥
|
|
98
|
+
- data: 待加密/解密的数据
|
|
99
|
+
- 返回值:加密/解密后的字符串(hex格式)
|
|
100
|
+
|
|
101
|
+
#### 国密 SM3
|
|
102
|
+
```ts
|
|
103
|
+
function sm3(str: string): string
|
|
104
|
+
function hmacSm3(key: string, data: string): string
|
|
105
|
+
```
|
|
106
|
+
- 参数:
|
|
107
|
+
- str/data: 待摘要的 UTF-8 字符串
|
|
108
|
+
- key: HMAC 密钥(UTF-8)
|
|
109
|
+
- 返回值:小写 hex。`sm3("abc")` 固定为 `66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0`
|
|
110
|
+
|
|
111
|
+
#### 国密 SM4
|
|
112
|
+
```ts
|
|
113
|
+
function sm4Encrypt(key: string, data: string, mode: string = "ECB", iv: string|null = null): string
|
|
114
|
+
function sm4Decrypt(key: string, data: string, mode: string = "ECB", iv: string|null = null): string
|
|
115
|
+
```
|
|
116
|
+
- 参数:
|
|
117
|
+
- key/iv: UTF-8 字符串,按字节补 0 或截断到 16 字节(与 AES 相同)
|
|
118
|
+
- data: 加密为明文;解密为 **hex 密文**
|
|
119
|
+
- mode: `ECB` 或 `CBC`
|
|
120
|
+
- 返回值:加密为小写 hex(注意:不是 AES 的 Base64);解密为 UTF-8 明文
|
|
121
|
+
- 填充:PKCS7,密钥长度固定 128 位
|
|
122
|
+
|
|
123
|
+
#### 国密 SM2
|
|
124
|
+
```ts
|
|
125
|
+
function generateSM2KeyPair(): SM2RANDOMKEY
|
|
126
|
+
function sm2Encrypt(publicKey: string, data: string, cipherMode?: number): string
|
|
127
|
+
function sm2Decrypt(privateKey: string, data: string, cipherMode?: number): string
|
|
128
|
+
function sm2Sign(privateKey: string, data: string, userId?: string): string
|
|
129
|
+
function sm2Verify(publicKey: string, data: string, signHex: string, userId?: string): boolean
|
|
130
|
+
```
|
|
131
|
+
- 密钥:`publicKey` 为未压缩 `04||X||Y`(130 hex),`privateKey` 为 64 hex
|
|
132
|
+
- 密文:裸 hex,默认 `cipherMode=1` 即 C1C3C2,与 sm-crypto 一致;C1 为 `X||Y`(128 hex,**无 04**)。`0` 为 C1C2C3。解密时若带 `04` 前缀会自动去掉
|
|
133
|
+
- 签名:`r||s` 裸 hex(128 hex),`userId` 默认 `1234567812345678`
|
|
134
|
+
- 失败返回 `""` / `false`,不抛异常
|
|
135
|
+
|
|
136
|
+
### 使用示例
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
import {
|
|
140
|
+
md5, sha256, sha512, sha1, hmacSha256, hmacSha512,
|
|
141
|
+
base64Encode, base64Decode,
|
|
142
|
+
aesEncrypt, aesDecrypt,
|
|
143
|
+
desEncrypt, desDecrypt,
|
|
144
|
+
rsaEncrypt, rsaDecrypt,
|
|
145
|
+
rc4Encrypt, rc4Decrypt,
|
|
146
|
+
generateRSAKeyPair,
|
|
147
|
+
sm3, hmacSm3, sm4Encrypt, sm4Decrypt,
|
|
148
|
+
generateSM2KeyPair, sm2Encrypt, sm2Decrypt, sm2Sign, sm2Verify
|
|
149
|
+
} from '@/uni_modules/x-crypto-s'
|
|
150
|
+
|
|
151
|
+
// MD5加密
|
|
152
|
+
const md5Result = md5("TMUI4.0X")
|
|
153
|
+
|
|
154
|
+
// Base64编解码
|
|
155
|
+
const base64Result = base64Encode("TMUI4.0X")
|
|
156
|
+
const decodedText = base64Decode(base64Result)
|
|
157
|
+
|
|
158
|
+
// SHA系列加密
|
|
159
|
+
const sha256Result = sha256("TMUI4.0X")
|
|
160
|
+
const hmacResult = hmacSha256("密钥", "TMUI4.0X")
|
|
161
|
+
|
|
162
|
+
// AES加密(CBC模式)
|
|
163
|
+
const aesResult = aesEncrypt(
|
|
164
|
+
"1234567890abcdef",
|
|
165
|
+
"TMUI4.0X",
|
|
166
|
+
"CBC",
|
|
167
|
+
"1234567890abcdef"
|
|
168
|
+
)
|
|
169
|
+
const aesDecrypted = aesDecrypt(
|
|
170
|
+
"1234567890abcdef",
|
|
171
|
+
aesResult,
|
|
172
|
+
"CBC",
|
|
173
|
+
"1234567890abcdef"
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
// RSA加密
|
|
177
|
+
const rsaKeys = generateRSAKeyPair()
|
|
178
|
+
const encrypted = rsaEncrypt(rsaKeys.publicKey, "TMUI4.0X")
|
|
179
|
+
const decrypted = rsaDecrypt(rsaKeys.privateKey, encrypted)
|
|
180
|
+
|
|
181
|
+
// 国密 SM3 / SM4 / SM2
|
|
182
|
+
const sm3Hex = sm3("abc")
|
|
183
|
+
const sm4Hex = sm4Encrypt("1234567890abcdef", "TMUI4.0X", "CBC", "1234567890abcdef")
|
|
184
|
+
const sm4Plain = sm4Decrypt("1234567890abcdef", sm4Hex, "CBC", "1234567890abcdef")
|
|
185
|
+
const sm2Keys = generateSM2KeyPair()
|
|
186
|
+
const sm2Hex = sm2Encrypt(sm2Keys.publicKey, "TMUI4.0X")
|
|
187
|
+
const sm2Plain = sm2Decrypt(sm2Keys.privateKey, sm2Hex)
|
|
188
|
+
const signHex = sm2Sign(sm2Keys.privateKey, "TMUI4.0X")
|
|
189
|
+
const pass = sm2Verify(sm2Keys.publicKey, "TMUI4.0X", signHex)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
更多使用示例和在线加密对比工具:
|
|
193
|
+
- MD5/SHA对比:https://www.mklab.cn/utils/md5
|
|
194
|
+
- DES对比:https://www.mklab.cn/utils/des
|
|
195
|
+
|
|
196
|
+
## 更新日志
|
|
197
|
+
|
|
198
|
+
### 1.1.0(2026-08-16)
|
|
199
|
+
* 五端补齐国密 SM2 / SM3 / SM4,默认对齐 sm-crypto:SM3/HMAC-SM3 小写 hex,SM4 密文 hex + PKCS7,SM2 裸 hex C1C3C2(C1 无 04 前缀)、签名 r||s,userId 默认 1234567812345678。
|
|
200
|
+
* iOS 不再依赖 GMObjC CocoaPods,改为内置 SM3/SM4/SM2 实现,避免本机 trunk 找不到 pod。
|
|
201
|
+
### 1.0.5(2026-03-15)
|
|
202
|
+
* 鸿蒙端aes加密ecb模式修复加密内容为空的问题。
|
|
203
|
+
### 1.0.4(2026-01-31)
|
|
204
|
+
* 根据网友反馈的自己搭的环境打包修改了两行代码兼容。如果你是云打包,可以不升级,因为云打包是没问题的。只是他们部分人自己搭的环境打包不了。
|
|
205
|
+
### 1.0.3(2025-08-17)
|
|
206
|
+
* 兼容支持鸿蒙 Next
|
|
207
|
+
### 1.0.2(2025-03-15)
|
|
208
|
+
* 更新所有端都支持同样的加密方案。
|
|
209
|
+
### 1.0.1(2025-02-28)
|
|
210
|
+
* 补齐hmacSha512,sha512,aesEncrypt,aesDecrypt增加keySize加密位,增加了generateRSAKeyPair生成RSA密钥对.
|
|
211
|
+
### 1.0.0(2024-12-24)
|
|
212
|
+
* 常用 加密 三端可用.暂不支持sm2,sm3,sm4,下个版本提供.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# x-desktopcard-s 桌面卡片与实况
|
|
2
|
+
|
|
3
|
+
桌面卡片与实况的 **API 服务插件**。没有 uvue 组件,也不用 `native-view`。页面只 `import` 函数推数据。
|
|
4
|
+
|
|
5
|
+
第一期模板:
|
|
6
|
+
|
|
7
|
+
- `info`:标题 / 副标题 / 图
|
|
8
|
+
- `progress`:标题 / 进度 / 状态
|
|
9
|
+
|
|
10
|
+
### 兼容性
|
|
11
|
+
|
|
12
|
+
| Harmony | iOS | Android | WEB | 小程序 |
|
|
13
|
+
| --- | --- | --- | --- | --- |
|
|
14
|
+
| 卡片 + 实况(实况需华为权益) | 不支持 | 卡片 AppWidget;实况 ongoing 通知,16+ 可提升 | 1008 | 1008 |
|
|
15
|
+
|
|
16
|
+
### 调用
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { updateCard, requestPinCard, startLive, updateLive, endLive, getCardSupport } from "@/uni_modules/x-desktopcard-s"
|
|
20
|
+
|
|
21
|
+
updateCard({
|
|
22
|
+
cardId: "home-info",
|
|
23
|
+
kind: "info",
|
|
24
|
+
title: "今日待办",
|
|
25
|
+
subtitle: "还剩 3 项",
|
|
26
|
+
cardHeight: 0,
|
|
27
|
+
success: (res) => {
|
|
28
|
+
console.log(res.errMsg, res.cardId)
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
startLive({
|
|
33
|
+
cardId: "order-1",
|
|
34
|
+
kind: "progress",
|
|
35
|
+
title: "配送中",
|
|
36
|
+
progress: 40,
|
|
37
|
+
status: "骑手已取餐",
|
|
38
|
+
progressColor: "#317AF7",
|
|
39
|
+
progressStartImage: "/static/live-start.png",
|
|
40
|
+
progressEndImage: "/static/live-end.png",
|
|
41
|
+
progressIndicatorImage: "/static/live-pin.png"
|
|
42
|
+
})
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 方法
|
|
46
|
+
|
|
47
|
+
卡片:`isCardSupported`、`getCardSupport`、`updateCard`、`requestPinCard`、`getPinnedCards`
|
|
48
|
+
|
|
49
|
+
实况:`isLiveSupported`、`isLiveEnabled`、`startLive`、`updateLive`、`endLive`
|
|
50
|
+
|
|
51
|
+
### 各端注意
|
|
52
|
+
|
|
53
|
+
- Android:长按桌面或 `requestPinCard` 加卡片。桌面进度卡与鸿蒙对齐:标题 + 进度条 + 状态;信息卡是标题 + 副标题。卡片默认 2 行高,已钉成 1 行的请拖高或删掉重加,否则状态会被裁掉。实况是通知,不是主屏卡片。进度实况只用自定义通知行(左图 / 进度条 / 右图,中间指示叠在条上),不再叠加系统 `setProgress` 底栏。Android 12+ 折叠态自定义区只有 48dp,折叠/横幅用矮布局(标题+一行进度),展开才带状态文案。进度条与三张图在同一行垂直居中。
|
|
54
|
+
- iOS:卡片和实况都不支持。需要独立 Widget Extension、App Group,以及给扩展单独出一份描述文件,流程偏复杂,先不做。调用会走 `1008`。
|
|
55
|
+
- 鸿蒙:服务卡片放在工程 `harmony-configs/entry` 的 `FormExtensionAbility`。刷新走 `getPublishedRunningFormInfos` + `updateForm`。实况走 `@kit.LiveViewKit`,`event=DELIVERY`,没申请华为即时配送权益或没打开实况窗开关会 `1003`,文案里带 `ohos=` 原始码。左右节点、中间指示、进度颜色与 Live View Kit 最对齐;图空时仍用系统蓝点/蓝针。
|
|
56
|
+
- 实况进度外观参数(Android / 鸿蒙同一字段):`progressStartImage`、`progressEndImage`、`progressIndicatorImage` 为正方形 PNG(本地路径或 `https`),`progressColor` 为 `#RGB` / `#RRGGBB` / `#AARRGGBB`。空图时鸿蒙回退生成图标,Android 左右用色块圆点。请优先 `https`。
|
|
57
|
+
- `cardHeight`(vp):桌面卡片**内容**高度。`0` 按内容自适应,不再撑满格子。桌面格子本身由系统规格决定,已钉卡片不能改格子。鸿蒙新加默认 `1*2`(矮卡),仍可选 `2*2` / `2*4`。Android 新卡默认 1 行高,可拖高。实况窗高度不能改。
|
|
58
|
+
- 不能程序化从桌面卸卡片。
|
|
59
|
+
|
|
60
|
+
### 错误码
|
|
61
|
+
|
|
62
|
+
`1001` 系统错误,`1002` 参数错误,`1003` 服务未开启,`1004` 权限被拒绝,`1008` 当前平台不支持,`1009` 实况未开始。
|
|
63
|
+
|
|
64
|
+
## 更新日志
|
|
65
|
+
|
|
66
|
+
### 1.0.0(2026-08-17)
|
|
67
|
+
- 新增桌面卡片与实况 API:info / progress 两套模板
|
|
68
|
+
- Android AppWidget + ongoing / Live Update 通知
|
|
69
|
+
- iOS ActivityKit + Widget Extension 源码
|
|
70
|
+
- HarmonyOS Form 服务卡片 + LiveViewKit
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# x-editor-u 富文本编辑
|
|
2
|
+
|
|
3
|
+
多端富文本编辑容器。接口对齐微信 [`editor`](https://developers.weixin.qq.com/miniprogram/dev/component/editor.html) / [`EditorContext`](https://developers.weixin.qq.com/miniprogram/dev/api/media/editor/EditorContext.html),内容走自有受限 HTML(不跟微信 Delta 对齐)。
|
|
4
|
+
|
|
5
|
+
### 兼容性
|
|
6
|
+
|
|
7
|
+
| Harmony | IOS | Android | WEB | 小程序 |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| 支持 | 支持 | 支持 | 支持 | 支持 |
|
|
10
|
+
|
|
11
|
+
App:系统编辑控件。Web:宿主 DIV 挂 Quill。微信:官方 `editor`。
|
|
12
|
+
|
|
13
|
+
### 调用
|
|
14
|
+
|
|
15
|
+
```vue
|
|
16
|
+
<x-editor-u
|
|
17
|
+
ref="editorRef"
|
|
18
|
+
placeholder="请输入"
|
|
19
|
+
:height="280"
|
|
20
|
+
@ready="onReady"
|
|
21
|
+
@input="onInput"
|
|
22
|
+
@statuschange="onStatus"
|
|
23
|
+
@linkchange="onLink"
|
|
24
|
+
></x-editor-u>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```uts
|
|
28
|
+
const proxy = getCurrentInstance()!.proxy!
|
|
29
|
+
|
|
30
|
+
function getEditor() : XEditorUComponentPublicInstance | null {
|
|
31
|
+
return proxy.$refs["editorRef"] as XEditorUComponentPublicInstance | null
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const editor = getEditor()
|
|
35
|
+
if (editor == null) return
|
|
36
|
+
editor.format("bold", "true")
|
|
37
|
+
const htmlOpts : XEditorSetContentsOptions = { html: "<p>hello</p>" }
|
|
38
|
+
editor.setContents(htmlOpts)
|
|
39
|
+
const readOpts : XEditorGetContentsOptions = {
|
|
40
|
+
success: (res : XEditorContents) : void => {
|
|
41
|
+
console.log(res.html, res.text)
|
|
42
|
+
}
|
|
43
|
+
} as XEditorGetContentsOptions
|
|
44
|
+
editor.getContents(readOpts)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 参数
|
|
48
|
+
|
|
49
|
+
对齐微信 `<editor>` 属性。
|
|
50
|
+
|
|
51
|
+
| 字段 | 说明 | 默认 |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| placeholder | 占位文字 | `请输入` |
|
|
54
|
+
| readOnly | 只读 | `false` |
|
|
55
|
+
| dark | 深色 | `false` |
|
|
56
|
+
| height | 整体高度 px(含内置工具栏) | `350` |
|
|
57
|
+
| html | 初始 / 受控 HTML | `""` |
|
|
58
|
+
| showToolbar | 是否显示内置工具栏 | `true` |
|
|
59
|
+
| showLinkToolbar | 光标在链接上时显示编辑条。微信小程序无 `insertLink`,工具栏链接入口仅该端隐藏 | `true` |
|
|
60
|
+
| showImgSize | 点选图片显示宽高 | `true` |
|
|
61
|
+
| showImgToolbar | 点选图片显示删除 | `true` |
|
|
62
|
+
| showImgResize | 点选图片拖角缩放(鸿蒙为放大/缩小按钮)。App 端点选图片自动收键盘方便拖手柄,已选中的图片再点一下取消选中 | `true` |
|
|
63
|
+
| enterkeyhint | 键盘回车键文案 | `enter` |
|
|
64
|
+
| confirmHold | 回车是否保持键盘 | `true` |
|
|
65
|
+
|
|
66
|
+
### 事件
|
|
67
|
+
|
|
68
|
+
对齐微信 `bindready` / `bindfocus` / `bindblur` / `bindinput` / `bindstatuschange`。
|
|
69
|
+
|
|
70
|
+
| 名称 | 说明 |
|
|
71
|
+
| --- | --- |
|
|
72
|
+
| ready | 内核就绪 |
|
|
73
|
+
| focus / blur | `{ html, text }` |
|
|
74
|
+
| input | `{ html, text }` |
|
|
75
|
+
| statuschange | 当前光标/选区样式,供工具栏高亮。含 `bold` `italic` `underline` `strike` `link` `linkText` `linkIndex` `linkLength` 等 |
|
|
76
|
+
| linkchange | 进入或离开链接时触发,`{ href, text, index, length }`,方便自绘工具栏填链接 |
|
|
77
|
+
| mentionclick | 点击提及芯片时触发,`{ id, name }`。微信端提及为纯文本,不触发 |
|
|
78
|
+
| tableclick | 点击表格时触发,`{ id, rows, cols, cells }`。目前仅 Web 端触发(App 端表格为行内编辑,点击即进入单元格);微信端不支持表格,不触发 |
|
|
79
|
+
| chooseimage | 内置工具栏点插图。宿主选图、上传后调用 `insertImage({ src })` |
|
|
80
|
+
| error | 失败 |
|
|
81
|
+
|
|
82
|
+
### 方法
|
|
83
|
+
|
|
84
|
+
对齐微信 `EditorContext`:
|
|
85
|
+
|
|
86
|
+
`format` `setContents` `getContents` `insertImage` `insertText` `insertDivider` `insertLink` `updateLink` `removeLink` `insertMention` `insertTable` `updateTable` `removeTable` `undo` `redo` `clear` `removeFormat` `blur` `scrollIntoView` `getSelectionText` `getHistoryState` `getSelection` `setSelection` `deleteText` `getBounds`
|
|
87
|
+
|
|
88
|
+
另提供同步读取:`getHtml` `getText`。
|
|
89
|
+
|
|
90
|
+
不实现微信 `insertCustomBlock`(自定义区块仅官方内核支持)。`delta` 不作为跨端数据。微信端 `getSelection` / `setSelection` / `deleteText` / `getBounds` 受官方类型限制,能力以各端内核为准。
|
|
91
|
+
|
|
92
|
+
### format
|
|
93
|
+
|
|
94
|
+
名对齐微信 `EditorContext.format`:
|
|
95
|
+
|
|
96
|
+
`bold` `italic` `underline` `strike` `ins` `script` `color` `backgroundColor` `fontSize` `fontWeight` `fontStyle` `align` `direction` `header` `list` `indent` `textIndent` `letterSpacing` `lineHeight` `textDecoration` `margin` `marginTop` `marginBottom` `marginLeft` `marginRight` `padding` `paddingTop` `paddingBottom` `paddingLeft` `paddingRight`
|
|
97
|
+
|
|
98
|
+
另支持历史别名 `background`(等于 `backgroundColor`)和 `link`。kebab-case 写法(如 `margin-left`)会自动归一。
|
|
99
|
+
|
|
100
|
+
margin / padding 为段落级样式,再次应用相同值会取消。各端能力:
|
|
101
|
+
|
|
102
|
+
| 名称 | 微信 | Web | iOS | Android | 鸿蒙 |
|
|
103
|
+
| --- | --- | --- | --- | --- | --- |
|
|
104
|
+
| marginLeft / paddingLeft | 原生 | 支持 | 支持 | 支持(缩进实现) | 支持(缩进实现) |
|
|
105
|
+
| marginTop / paddingTop | 原生 | 支持 | 支持(段前距) | 不支持 | 不支持 |
|
|
106
|
+
| marginBottom / paddingBottom | 原生 | 支持 | 支持(段后距) | 不支持 | 不支持 |
|
|
107
|
+
| margin / padding(四向简写) | 原生 | 支持 | 不支持 | 不支持 | 不支持 |
|
|
108
|
+
|
|
109
|
+
`list` 取值:`ordered` / `bullet` / `check`(待办)。`indent` 取值:`-1` / `+1`。`script` 取值:`sub` / `super`。再点同一样式会取消(与微信一致)。微信官方只有 `check` 一种待办,且基础库 3.9.3+ 常画成黑点(与无序相同),小程序工具栏因此只保留有序/无序。
|
|
110
|
+
|
|
111
|
+
列表按整行加前缀,回车自动续写(有序 `1.` → `2.`)。空列表项再回车退出列表。
|
|
112
|
+
|
|
113
|
+
### insertMention
|
|
114
|
+
|
|
115
|
+
插入提及芯片 `@名字`,整体删除(退格从中间删会整块删掉),点击触发 `mentionclick`。
|
|
116
|
+
|
|
117
|
+
```uts
|
|
118
|
+
const opts : XEditorInsertMentionOptions = {
|
|
119
|
+
name: "张三",
|
|
120
|
+
id: "1001",
|
|
121
|
+
color: "#1677ff", // 可选,文字色
|
|
122
|
+
background: "#e6f3ff", // 可选,背景色
|
|
123
|
+
radius: "4px" // 可选,圆角;Android/iOS 绘制为方角,仅参与 HTML 回写
|
|
124
|
+
}
|
|
125
|
+
editor.insertMention(opts)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
HTML 回写为 `<span data-mention-id="1001" data-mention-name="张三" style="color:...;background-color:...;border-radius:...">@张三</span>`,`setContents` 灌入同构 HTML 会还原成芯片。微信端降级为纯文本 `@名字`(官方内核无自定义节点),无样式、无点击事件。
|
|
129
|
+
|
|
130
|
+
### 表格(insertTable / updateTable / removeTable)
|
|
131
|
+
|
|
132
|
+
类 iOS 备忘录的表格交互:
|
|
133
|
+
|
|
134
|
+
- 工具栏表格按钮直接插入 2x2 空表,不弹输入框。App 端插入后不自动聚焦格子、不弹键盘,用户自行点格子开始输入。
|
|
135
|
+
- 表格在正文里行内直接编辑(全端一致,无弹层):点格子即打字。
|
|
136
|
+
- 光标在某格时,该列顶部、该行左侧出现 `•••` 手柄:点一下选中整列/整行(高亮)并收起键盘,选中态再点弹出菜单——删除列/右侧加一列、删除行/下方加一行。
|
|
137
|
+
- 光标在最后一格再按回车,自动在下方续一行。
|
|
138
|
+
|
|
139
|
+
```uts
|
|
140
|
+
const opts : XEditorInsertTableOptions = {
|
|
141
|
+
rows: 2,
|
|
142
|
+
cols: 2,
|
|
143
|
+
cells: [["姓名", "分工"], ["张三", "前端"]] // 可选,缺省为空格子
|
|
144
|
+
}
|
|
145
|
+
editor.insertTable(opts)
|
|
146
|
+
// 之后可用 updateTable({ id, cells }) 改内容,removeTable({ id }) 删除
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
HTML 回写为 `<table class="x-table"><tr><td>…</td></tr></table>`,`setContents` 灌入同构 HTML 会还原。上限 20 行 x 8 列,单元格为纯文本。各端形态:
|
|
150
|
+
|
|
151
|
+
| 端 | 呈现 | 编辑方式 |
|
|
152
|
+
| --- | --- | --- |
|
|
153
|
+
| Web | Quill 原生表格 | 表格内直接打字 + 行内 `•••` 手柄增删行列 + 末格回车加行 |
|
|
154
|
+
| Android / iOS | 行内真实网格(块式内核:正文与表格块混排) | 格内直接打字 + `•••` 手柄增删行列 + 末格回车加行 |
|
|
155
|
+
| 鸿蒙 | 行内真实网格(块式内核:多 RichEditor 文本块 + 表格块混排) | 同上 |
|
|
156
|
+
| 微信 | 不支持(官方内核无表格),工具栏隐藏按钮,API 走 `fail`(错误码 3006) | - |
|
|
157
|
+
|
|
158
|
+
`insertImage` 对齐微信:`src` `alt` `width` `height` `nowrap` `extClass` `data`。默认插图后换行,`nowrap: true` 不换行。
|
|
159
|
+
|
|
160
|
+
点选图片后出现尺寸、删除和缩放,对齐微信 `show-img-size` / `show-img-toolbar` / `show-img-resize`。App / Web 自绘浮层;微信走官方控件;鸿蒙因无可靠坐标,用编辑区顶栏放大、缩小、删除。设为 `false` 可关闭。
|
|
161
|
+
|
|
162
|
+
内置工具栏默认显示,布局、配色和 Remix 图标对齐 tmx-ui `x-editor`(`x-icon` / `x-popover`)。字号、颜色、标题用同样的气泡菜单。多出来的缩进、上下标、分割线、插图、链接、撤销重做、去格式沿用同一组按钮样式。微信小程序没有可用的 `insertLink`,该端隐藏链接按钮和编辑条;App / Web 正常显示。光标落在已有样式上时对应按钮高亮。点进链接会出现编辑条。点插图会触发 `chooseimage`,由宿主选图、上传后调用 `insertImage({ src })`,插件不内置上传。`:show-toolbar="false"` 后只留编辑面。工具栏用 `view` 点击,避免抢焦点丢掉选区。需要工程里已有 `tmx-ui`。
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# x-facedetect-alibaba-s 阿里云实人认证
|
|
2
|
+
|
|
3
|
+
阿里云实人认证。先向阿里云后台换 `certifyId`,再调起原生核身。
|
|
4
|
+
|
|
5
|
+
### 兼容性
|
|
6
|
+
|
|
7
|
+
| Harmony | IOS | Android | WEB | 小程序 |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| 支持 | 支持 | 支持 | 不支持 | 不支持 |
|
|
10
|
+
|
|
11
|
+
### 调用
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { getMetaInfos, xFaceVerify } from "@/uni_modules/x-facedetect-alibaba-s"
|
|
15
|
+
|
|
16
|
+
getMetaInfos({
|
|
17
|
+
success: (res) => {
|
|
18
|
+
console.log(res.value)
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
xFaceVerify({
|
|
23
|
+
certifyId: "从服务端获取",
|
|
24
|
+
success: (res) => {
|
|
25
|
+
console.log(res.code, res.reason)
|
|
26
|
+
},
|
|
27
|
+
fail: (res) => {
|
|
28
|
+
console.log(res)
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 方法
|
|
34
|
+
|
|
35
|
+
| 名称 | 需要 | 说明 |
|
|
36
|
+
| --- | --- | --- |
|
|
37
|
+
| getMetaInfos | 可选 `success` / `fail` / `complete` | 取设备元信息 `res.value`,交给服务端换 `certifyId` |
|
|
38
|
+
| xFaceVerify | `certifyId`,可选 `useMsgBox`、`extParams` | 调起原生核身,成功返回 `code` / `reason` |
|
|
39
|
+
|
|
40
|
+
### 参数
|
|
41
|
+
|
|
42
|
+
`xFaceVerify`
|
|
43
|
+
|
|
44
|
+
| 字段 | 说明 | 默认 |
|
|
45
|
+
| --- | --- | --- |
|
|
46
|
+
| certifyId | 认证 ID,与 metaInfos 二选一 | - |
|
|
47
|
+
| useMsgBox | 是否用系统提示框 | - |
|
|
48
|
+
| extParams | 扩展参数 | - |
|
|
49
|
+
| success / fail / complete | 回调 | - |
|
|
50
|
+
|
|
51
|
+
`XFaceDetectResult`:`code`、`reason`。
|
|
52
|
+
|
|
53
|
+
H5 核身需自行接阿里云 Web 方案,本插件不覆盖。
|
|
54
|
+
|
|
55
|
+
### 版本
|
|
56
|
+
|
|
57
|
+
版权归https://xui.tmui.design你不得修改及二次开发,仅供TMUI4会员商用使用。不得转给非VIP会员使用,一经查实数倍赔偿,并追究法律责任。
|
|
58
|
+
|
|
59
|
+
## 更新日志
|
|
60
|
+
|
|
61
|
+
### 1.0.0(2026-07-31)
|
|
62
|
+
|
|
63
|
+
- 支持安卓 ,Ios,HarmonyOs
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# x-facerec-u 离线人脸识别
|
|
2
|
+
|
|
3
|
+
离线人脸识别:检测、入录、图片 / 相机帧 1:N 匹配,并提供嵌入式实时识别 UI 组件。可选用内置模型,不必自备。
|
|
4
|
+
|
|
5
|
+
### 兼容性
|
|
6
|
+
|
|
7
|
+
| Harmony | IOS | Android | WEB | 小程序 |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| 支持 | 支持 | 支持 | 不支持 | 不支持 |
|
|
10
|
+
|
|
11
|
+
### 组件(推荐)
|
|
12
|
+
|
|
13
|
+
`<x-facerec-u>` 是标准 UI 组件,直接嵌入页面即可实时识别:相机采集、SCRFD 检测、ArcFace 1:N、跟踪、人脸框绘制全在原生层闭环,帧不跨插件搬运。命中底库绘绿框标「人名 可信度%」,未命中绘橙框标「未识别」。识别依赖 `loadModels` 先就绪(组件与 API 共享同一原生单例与底库)。
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<x-facerec-u ref="facerecRef" style="width:100%;height:320px"
|
|
17
|
+
:auto-open="true" camera-position="front" :detect-interval="120" :draw-box="true"
|
|
18
|
+
@ready="onReady" @recognize="onRecognize" @capture="onCapture" @error="onError"></x-facerec-u>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
| 属性 | 说明 | 默认 |
|
|
22
|
+
| --- | --- | --- |
|
|
23
|
+
| camera-position | `front` / `back`,运行中改值热切换 | `front` |
|
|
24
|
+
| torch | 闪光灯(前置通常不支持) | `false` |
|
|
25
|
+
| detect-interval | 相邻两次识别最小间隔 ms,框由原生插值平滑跟随 | `120` |
|
|
26
|
+
| draw-box | 是否绘制人脸框与人名标签 | `true` |
|
|
27
|
+
| auto-open | 视图初始化后自动请求权限并开流 | `true` |
|
|
28
|
+
|
|
29
|
+
| 事件 | 说明 |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| @ready | 相机开流成功(含切换镜头重开) |
|
|
32
|
+
| @recognize | 识别结果(`faces`:`trackId`/`name`/`score`/`recognized`/`box`) |
|
|
33
|
+
| @capture | `takePhoto()` 抓拍完成,含 `imagePath` 与最近识别结果 |
|
|
34
|
+
| @error | 权限/相机/抓拍错误 |
|
|
35
|
+
|
|
36
|
+
组件方法(`ref` 调用):`open()` / `close()` / `takePhoto()` / `setTorch(on)` / `setDetecting(on)` / `isDetecting()` / `switchCamera()`。开相机即开始检测,`setDetecting(false)` / `close()` 都会关掉相机,不再保留「预览在、识别停」的中间态。
|
|
37
|
+
|
|
38
|
+
### 调用
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { loadModels, enroll, recognizeImage, recognizeFrame } from "@/uni_modules/x-facerec-u"
|
|
42
|
+
|
|
43
|
+
loadModels({
|
|
44
|
+
detModel: "det_500m",
|
|
45
|
+
recModel: "w600k_mbf",
|
|
46
|
+
similarityThresh: 0.4,
|
|
47
|
+
confidenceThresh: 0.5,
|
|
48
|
+
maxFaces: 1,
|
|
49
|
+
success: (res) => {
|
|
50
|
+
console.log(res.gallerySize)
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
enroll({
|
|
55
|
+
userId: "u1001",
|
|
56
|
+
name: "张三",
|
|
57
|
+
imagePath: facePath,
|
|
58
|
+
success: (res) => {
|
|
59
|
+
console.log(res.quality)
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
recognizeImage({
|
|
64
|
+
imagePath: probePath,
|
|
65
|
+
success: (res) => {
|
|
66
|
+
if (res.matches.length > 0) {
|
|
67
|
+
console.log(res.matches[0].userId, res.matches[0].score)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
recognizeFrame({
|
|
73
|
+
width: 640,
|
|
74
|
+
height: 480,
|
|
75
|
+
format: "nv21",
|
|
76
|
+
frameBuffer: data,
|
|
77
|
+
rotation: 90,
|
|
78
|
+
success: (res) => {
|
|
79
|
+
console.log(res.matches)
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
实时识别优先用上方 `<x-facerec-u>` 组件或 `openCamera` 弹层,二者均在原生层闭环,无需自己搬帧。
|
|
85
|
+
|
|
86
|
+
### 方法
|
|
87
|
+
|
|
88
|
+
| 名称 | 需要 | 说明 |
|
|
89
|
+
| --- | --- | --- |
|
|
90
|
+
| loadModels | `detModel?`、`recModel?`、`modelRoot?`、阈值等,见下方 | 加载模型,不传 `modelRoot` 用内置 |
|
|
91
|
+
| unloadModels | 可选回调 | 卸载模型 |
|
|
92
|
+
| detectFaces | `imagePath` | 只检测人脸框和关键点,不比对底库 |
|
|
93
|
+
| enroll | `userId`、`imagePath`,可选 `name`、`replace` | 入录到底库;`replace=true` 覆盖该用户旧样本 |
|
|
94
|
+
| recognizeImage | `imagePath` | 用图片做 1:N 识别,返回 `matches` / `unknownFaces` |
|
|
95
|
+
| recognizeFrame | `width`、`height`、`format`、`frameBuffer` 或 `frameBase64`、`rotation?` | 用相机帧做 1:N 识别 |
|
|
96
|
+
| listUsers | 可选回调 | 列出底库用户 |
|
|
97
|
+
| removeUser | `userId` | 删除指定用户 |
|
|
98
|
+
| clearGallery | 可选回调 | 清空底库 |
|
|
99
|
+
| setOptions | `confidenceThresh?`、`similarityThresh?`、`livenessThresh?`、`maxFaces?` | 运行中改阈值 |
|
|
100
|
+
| openCamera | `cameraPosition?`、`torch?`、`detectInterval?`、`drawBox?`、事件回调 | 打开原生全屏弹层实时识别(不想改页面布局时用) |
|
|
101
|
+
| getRuntimeInfo | 无 | 同步返回运行时与是否已就绪 |
|
|
102
|
+
| getState | 无 | 返回 `idle` / `loading` / `ready` / `error` |
|
|
103
|
+
|
|
104
|
+
### 参数
|
|
105
|
+
|
|
106
|
+
`loadModels`
|
|
107
|
+
|
|
108
|
+
| 字段 | 说明 | 默认 |
|
|
109
|
+
| --- | --- | --- |
|
|
110
|
+
| modelRoot | 自定义模型目录,空则用内置 | 内置 |
|
|
111
|
+
| detModel | `det_500m` / `det_2.5g` / `det_10g` | `det_500m` |
|
|
112
|
+
| recModel | `w600k_mbf`;`w600k_r50` 需自备 | `w600k_mbf` |
|
|
113
|
+
| confidenceThresh | 检测阈值 | `0.5` |
|
|
114
|
+
| similarityThresh | 识别阈值 | `0.4` |
|
|
115
|
+
| livenessThresh | 活体阈值 | `0.5` |
|
|
116
|
+
| enrollMinQuality | 入录最低质量 | `0.6` |
|
|
117
|
+
| maxFaces | 每帧最多人脸 | `1` |
|
|
118
|
+
| galleryDir | 底库目录 | 应用私有目录 |
|
|
119
|
+
|
|
120
|
+
`recognizeFrame`:`width` / `height` / `format`(`nv21` / `bgra` / `rgba`)/ `frameBuffer` 或 `frameBase64` / `rotation` / `orientation`。
|
|
121
|
+
|
|
122
|
+
### 平台差异
|
|
123
|
+
|
|
124
|
+
1. 无 Web / 微信。
|
|
125
|
+
2. 帧格式与 `x-camrea-u` 对齐:Android `nv21`,iOS `bgra`,鸿蒙 `rgba`。前置镜头注意 `mirrored` / `orientation`。
|
|
126
|
+
|
|
127
|
+
### 版本
|
|
128
|
+
|
|
129
|
+
版权归https://xui.tmui.design你不得修改及二次开发,仅供TMUI4会员商用使用。不得转给非VIP会员使用,一经查实数倍赔偿,并追究法律责任。
|
|
130
|
+
|
|
131
|
+
## 更新日志
|
|
132
|
+
|
|
133
|
+
### 0.3.0(2026-08-20)
|
|
134
|
+
|
|
135
|
+
- 模块更名 `x-facerec-s` → `x-facerec-u`:由 API 插件升级为「标准 UI 组件 + API」双形态
|
|
136
|
+
- 新增 `<x-facerec-u>` 嵌入式组件:相机预览 + 人脸框 overlay 直接嵌页面,
|
|
137
|
+
采集/检测/识别/跟踪/绘框全在原生层闭环,不再依赖 `x-camrea-u` 跨插件搬帧
|
|
138
|
+
- 组件属性 `camera-position` / `torch` / `detect-interval` / `draw-box` / `auto-open`,
|
|
139
|
+
事件 `@ready` / `@recognize` / `@capture` / `@error`,
|
|
140
|
+
方法 `open` / `close` / `takePhoto` / `setTorch` / `setDetecting` / `switchCamera`
|
|
141
|
+
- 原有全部 API(loadModels / enroll / recognizeImage / recognizeFrame / openCamera 等)保留,组件与 API 共享同一原生单例与底库
|
|
142
|
+
- 修复 Android 打开测试页闪退、鸿蒙实时识别延迟大且检不出人:
|
|
143
|
+
移除 ORT XNNPACK 执行提供器(Android 上建会话原生段错误、鸿蒙上反而更慢),回归纯 CPU EP(NEON),与 iOS 63ms 同款配置
|
|
144
|
+
- 原生库更名 `libx_facerec_u.so`,JNI/NAPI 符号与 Kotlin 包名同步更新
|
|
145
|
+
- 修复 Android / Harmony 实时检得出人脸却对不上底库、检测框反着跑:
|
|
146
|
+
前摄不再把镜像写进推理像素(与相册录入同朝向),只在 overlay 水平翻转框
|
|
147
|
+
- Android 实时分析帧不再开 CameraX 输出旋转:该选项会裁掉 FOV 且打乱 YUV 平面,导致预览在、检不出人
|
|
148
|
+
- 修复 Android 嵌入式检测框偏小(只框到眼嘴):自行按预览尺寸建 ViewPort(native-view 里 getViewPort 常为空),
|
|
149
|
+
分析帧 16:9 + cropRect;嵌入式 TextureView;CSS 盒×像素比校正 overlay 尺度
|
|
150
|
+
|
|
151
|
+
### 0.2.0(2026-08-08)
|
|
152
|
+
|
|
153
|
+
- 接入 ONNX Runtime 真实推理(SCRFD 检测 + 5 点对齐 + ArcFace 特征)
|
|
154
|
+
- 三端各自准备 ORT:Android Maven 1.28 / iOS xcframework 1.28 / Harmony OHOS 1.27
|
|
155
|
+
- 构建脚本步骤 `[0]` 调用 `third_party/onnxruntime/prepare_*.sh`(不再从 sherpa 顺手抽库)
|
|
156
|
+
- 内置模型:`det_500m` / `det_2.5g` / `det_10g` + `w600k_mbf`(约 35MB)
|
|
157
|
+
- `loadModels()` 可不传 `modelRoot`,自动使用内置模型
|
|
158
|
+
- Android aar / Harmony har / iOS Frameworks 均含对应平台 ORT + 模型
|
|
159
|
+
|
|
160
|
+
### 0.1.0(2026-08-08)
|
|
161
|
+
|
|
162
|
+
- 初版框架:Android / iOS / HarmonyOS 三端骨架
|
|
163
|
+
- 共享 C++ 核心 + JSON Bridge;交叉编译脚本
|
|
164
|
+
- API:loadModels / enroll / detectFaces / recognizeImage / recognizeFrame / 底库管理
|