m8-mcp-server 1.0.0 → 1.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 +153 -30
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -0
- package/dist/docs/apis.d.ts +38 -0
- package/dist/docs/apis.d.ts.map +1 -0
- package/dist/docs/apis.js +326 -0
- package/dist/docs/apis.js.map +1 -0
- package/dist/docs/components.d.ts +45 -0
- package/dist/docs/components.d.ts.map +1 -0
- package/dist/docs/components.js +186 -0
- package/dist/docs/components.js.map +1 -0
- package/dist/docs/index.d.ts +94 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +182 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/loader.d.ts +51 -0
- package/dist/docs/loader.d.ts.map +1 -0
- package/dist/docs/loader.js +165 -0
- package/dist/docs/loader.js.map +1 -0
- package/dist/docs/search.d.ts +28 -0
- package/dist/docs/search.d.ts.map +1 -0
- package/dist/docs/search.js +196 -0
- package/dist/docs/search.js.map +1 -0
- package/dist/docs/standards.d.ts +41 -0
- package/dist/docs/standards.d.ts.map +1 -0
- package/dist/docs/standards.js +134 -0
- package/dist/docs/standards.js.map +1 -0
- package/dist/docs/utils.d.ts +46 -0
- package/dist/docs/utils.d.ts.map +1 -0
- package/dist/docs/utils.js +129 -0
- package/dist/docs/utils.js.map +1 -0
- package/dist/generator/header.d.ts +32 -0
- package/dist/generator/header.d.ts.map +1 -0
- package/dist/generator/header.js +83 -0
- package/dist/generator/header.js.map +1 -0
- package/dist/generator/index.d.ts +50 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +387 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/vue-template.d.ts +54 -0
- package/dist/generator/vue-template.d.ts.map +1 -0
- package/dist/generator/vue-template.js +191 -0
- package/dist/generator/vue-template.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -1
- package/dist/index.js.map +1 -0
- package/dist/recommend/index.d.ts +27 -0
- package/dist/recommend/index.d.ts.map +1 -0
- package/dist/recommend/index.js +412 -0
- package/dist/recommend/index.js.map +1 -0
- package/dist/tools/generate-code.d.ts +18 -0
- package/dist/tools/generate-code.d.ts.map +1 -0
- package/dist/tools/generate-code.js +155 -0
- package/dist/tools/generate-code.js.map +1 -0
- package/dist/tools/get-api-info.d.ts +18 -0
- package/dist/tools/get-api-info.d.ts.map +1 -0
- package/dist/tools/get-api-info.js +65 -0
- package/dist/tools/get-api-info.js.map +1 -0
- package/dist/tools/get-coding-standard.d.ts +18 -0
- package/dist/tools/get-coding-standard.d.ts.map +1 -0
- package/dist/tools/get-coding-standard.js +66 -0
- package/dist/tools/get-coding-standard.js.map +1 -0
- package/dist/tools/get-component-info.d.ts +18 -0
- package/dist/tools/get-component-info.d.ts.map +1 -0
- package/dist/tools/get-component-info.js +60 -0
- package/dist/tools/get-component-info.js.map +1 -0
- package/dist/tools/get-util-info.d.ts +18 -0
- package/dist/tools/get-util-info.d.ts.map +1 -0
- package/dist/tools/get-util-info.js +65 -0
- package/dist/tools/get-util-info.js.map +1 -0
- package/dist/tools/index.d.ts +56 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +101 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/recommend-solution.d.ts +18 -0
- package/dist/tools/recommend-solution.d.ts.map +1 -0
- package/dist/tools/recommend-solution.js +67 -0
- package/dist/tools/recommend-solution.js.map +1 -0
- package/dist/tools/search-docs.d.ts +18 -0
- package/dist/tools/search-docs.d.ts.map +1 -0
- package/dist/tools/search-docs.js +71 -0
- package/dist/tools/search-docs.js.map +1 -0
- package/dist/types/index.d.ts +285 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +27 -26
- package/resources/cases/.gitkeep +0 -0
- package/resources/cases/form-submit-vue2.json +15 -0
- package/resources/cases/index.json +8 -0
- package/resources/cases/list-detail-vue2.json +27 -0
- package/resources/components/.gitkeep +0 -0
- package/resources/components/button.json +74 -0
- package/resources/components/cell.json +69 -0
- package/resources/components/field.json +88 -0
- package/resources/components/index.json +72 -0
- package/resources/standards/.gitkeep +0 -0
- package/resources/standards/css.json +108 -0
- package/resources/standards/javascript.json +129 -0
- package/resources/standards/project-structure.json +101 -0
- package/resources/standards/vue.json +122 -0
- package/resources/utils/.gitkeep +0 -0
- package/resources/utils/ajax.json +76 -0
- package/resources/utils/common.json +129 -0
- package/resources/utils/index.json +7 -0
- package/resources/utils/string.json +112 -0
- package/bin/m8-mcp.js +0 -2
- package/dist/constants.js +0 -1
- package/dist/data/ejs-doc/api_audio/api_audio.md +0 -225
- package/dist/data/ejs-doc/api_auth/api_auth.md +0 -256
- package/dist/data/ejs-doc/api_contact/api_contact.md +0 -295
- package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
- package/dist/data/ejs-doc/api_device/api_device.md +0 -761
- package/dist/data/ejs-doc/api_event/api_event.md +0 -244
- package/dist/data/ejs-doc/api_global/api_global.md +0 -440
- package/dist/data/ejs-doc/api_io/api_io.md +0 -369
- package/dist/data/ejs-doc/api_navigator/api_navigator.md +0 -654
- package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
- package/dist/data/ejs-doc/api_page/api_page.md +0 -261
- package/dist/data/ejs-doc/api_runtime/api_runtime.md +0 -788
- package/dist/data/ejs-doc/api_storage/api_storage.md +0 -320
- package/dist/data/ejs-doc/api_stream/api_stream.md +0 -152
- package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
- package/dist/data/ejs-doc/api_ui/api_ui.md +0 -836
- package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
- package/dist/data/ejs-doc/api_util/api_util.md +0 -615
- package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
- package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
- package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
- package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +0 -128
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +0 -142
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +0 -210
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +0 -85
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +0 -21
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +0 -36
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +0 -128
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +0 -148
- 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
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +0 -59
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +0 -95
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +0 -76
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +0 -202
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +0 -92
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +0 -412
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +0 -146
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +0 -137
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +0 -363
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +0 -285
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +0 -211
- 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
- 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
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +0 -999
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +0 -133
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +0 -117
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +0 -212
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +0 -85
- 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
- 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
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +0 -189
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +0 -217
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +0 -166
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +0 -196
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +0 -232
- 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
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +0 -150
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +0 -144
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +0 -467
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +0 -183
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +0 -162
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +0 -262
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +0 -132
- 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
- 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
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +0 -381
- 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
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +0 -849
- 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
- package/dist/data/standards/css-style.md +0 -531
- package/dist/data/standards/js-style.md +0 -394
- package/dist/data/standards/project-structure.md +0 -325
- package/dist/data/standards/vue-style.md +0 -644
- package/dist/tools/search.js +0 -1
- package/dist/tools/standards.js +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "form-submit-vue2",
|
|
3
|
+
"title": "表单提交 (Vue2/M8.3)",
|
|
4
|
+
"description": "使用 M8.3 移动前端框架进行表单页面的开发和提交",
|
|
5
|
+
"category": "form-submit",
|
|
6
|
+
"vueVersion": 2,
|
|
7
|
+
"files": [
|
|
8
|
+
{
|
|
9
|
+
"name": "form.vue",
|
|
10
|
+
"path": "src/pages/m8demo/form.vue",
|
|
11
|
+
"description": "表单页面组件",
|
|
12
|
+
"code": "<!--\n * @作者: 开发者\n * @创建时间: 2024-12-29\n * @修改时间: 2024-12-29\n * @版本: [1.0]\n * @版权: 国泰新点软件股份有限公司\n * @描述: 表单提交示例页面\n-->\n<template>\n <view class=\"container\">\n <em-form ref=\"form\" :model=\"formData\" :rules=\"rules\">\n <em-cell-group>\n <em-field\n v-model=\"formData.name\"\n name=\"name\"\n label=\"姓名\"\n placeholder=\"请输入姓名\"\n required\n />\n <em-field\n v-model=\"formData.phone\"\n name=\"phone\"\n type=\"tel\"\n label=\"手机号\"\n placeholder=\"请输入手机号\"\n required\n />\n <em-field\n v-model=\"formData.date\"\n name=\"date\"\n label=\"日期\"\n placeholder=\"请选择日期\"\n readonly\n clickable\n is-link\n @click=\"showDatePicker = true\"\n />\n <em-field\n v-model=\"formData.remark\"\n name=\"remark\"\n type=\"textarea\"\n label=\"备注\"\n placeholder=\"请输入备注\"\n :autosize=\"{ minHeight: 80 }\"\n />\n </em-cell-group>\n </em-form>\n \n <view class=\"btn-wrapper\">\n <em-button type=\"primary\" block @click=\"onSubmit\">提交</em-button>\n </view>\n \n <em-datepicker\n v-model=\"showDatePicker\"\n @confirm=\"onDateConfirm\"\n />\n </view>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n formData: {\n name: '',\n phone: '',\n date: '',\n remark: ''\n },\n rules: {\n name: [{ required: true, message: '请输入姓名' }],\n phone: [\n { required: true, message: '请输入手机号' },\n { pattern: /^1[3-9]\\d{9}$/, message: '手机号格式不正确' }\n ]\n },\n showDatePicker: false\n };\n },\n methods: {\n onDateConfirm(value) {\n this.formData.date = value;\n this.showDatePicker = false;\n },\n async onSubmit() {\n try {\n await this.$refs.form.validate();\n \n ejs.ui.showWaiting({ message: '提交中...' });\n \n const result = await Util.ajax({\n url: Config.serverUrl + '/rest/submit',\n type: 'POST',\n data: {\n params: JSON.stringify(this.formData)\n }\n });\n \n ejs.ui.closeWaiting();\n \n if (result && result.status && result.status.code === 1) {\n ejs.ui.toast({ message: '提交成功' });\n ejs.page.close();\n } else {\n ejs.ui.toast({ message: result.status.text || '提交失败' });\n }\n } catch (error) {\n ejs.ui.closeWaiting();\n console.error('表单验证失败:', error);\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.container {\n padding-bottom: 80px;\n}\n.btn-wrapper {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 16px;\n background: #fff;\n}\n</style>"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cases": [
|
|
3
|
+
{ "id": "list-detail-vue2", "title": "列表详情 (Vue2/M8.3)", "category": "list-detail", "vueVersion": 2, "file": "list-detail-vue2.json" },
|
|
4
|
+
{ "id": "list-detail-vue3", "title": "列表详情 (Vue3/M8.4)", "category": "list-detail", "vueVersion": 3, "file": "list-detail-vue3.json" },
|
|
5
|
+
{ "id": "form-submit-vue2", "title": "表单提交 (Vue2/M8.3)", "category": "form-submit", "vueVersion": 2, "file": "form-submit-vue2.json" },
|
|
6
|
+
{ "id": "form-submit-vue3", "title": "表单提交 (Vue3/M8.4)", "category": "form-submit", "vueVersion": 3, "file": "form-submit-vue3.json" }
|
|
7
|
+
]
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "list-detail-vue2",
|
|
3
|
+
"title": "列表详情 (Vue2/M8.3)",
|
|
4
|
+
"description": "使用 M8.3 移动前端框架进行下拉刷新列表、详情页面的开发",
|
|
5
|
+
"category": "list-detail",
|
|
6
|
+
"vueVersion": 2,
|
|
7
|
+
"files": [
|
|
8
|
+
{
|
|
9
|
+
"name": "router.js",
|
|
10
|
+
"path": "src/pages/m8demo/router.js",
|
|
11
|
+
"description": "路由配置文件",
|
|
12
|
+
"code": "/**\n * router.js无需import组件,需要path路径与vue组件名称保持匹配。\n */\nconst routes = [\n {\n path: 'pages/m8demo/list',\n style: {\n navigationBarTitleText: '列表页面',\n },\n },\n {\n path: 'pages/m8demo/detail',\n style: {\n navigationBarTitleText: '详情页面',\n },\n },\n];\n\nexport default routes;"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "list.vue",
|
|
16
|
+
"path": "src/pages/m8demo/list.vue",
|
|
17
|
+
"description": "列表页面组件",
|
|
18
|
+
"code": "<template>\n <view class=\"container\">\n <em-minirefresh\n ref=\"scrollPull\"\n :initPageIndex=\"initPageIndex\"\n :page-size=\"pageSize\"\n :url=\"url\"\n :request-data=\"dataRequest\"\n :change-data=\"dataChange\"\n >\n <template v-slot:default=\"{ listData }\">\n <em-cell v-for=\"(item, index) in listData\" :key=\"index\" :title=\"item.title\" @click=\"itemClick(item)\" />\n </template>\n </em-minirefresh>\n </view>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n url: `${Config.serverUrl}/rest/list`,\n initPageIndex: 0,\n pageSize: 10\n };\n },\n methods: {\n dataRequest(currPage, pageSize) {\n return {\n params: JSON.stringify({\n currentpageindex: currPage,\n pagesize: pageSize\n })\n };\n },\n dataChange(res) {\n if (res && res.status && res.status.code === 1) {\n return res.custom.infolist;\n }\n console.error('接口返回参数错误');\n return [];\n },\n itemClick(item) {\n ejs.page.open({\n pageUrl: './detail',\n data: { id: item.id }\n });\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.container {\n height: 100vh;\n}\n</style>"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "detail.vue",
|
|
22
|
+
"path": "src/pages/m8demo/detail.vue",
|
|
23
|
+
"description": "详情页面组件",
|
|
24
|
+
"code": "<template>\n <div class=\"container\">\n <h1>{{ title }}</h1>\n <div v-html=\"content\"></div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'detail',\n data() {\n return {\n title: '',\n content: ''\n };\n },\n created() {\n const id = Util.getExtraDataByKey('id') || '';\n this.getDetail(id);\n },\n methods: {\n getDetail(id) {\n Util.ajax({\n url: `${Config.serverUrl}/rest/detail`,\n data: {\n params: JSON.stringify({ guid: id })\n }\n })\n .then((result) => {\n if (result && result.status && result.status.code === 1) {\n this.title = result.custom.info.title;\n this.content = result.custom.info.data;\n }\n })\n .catch((err) => {\n console.error(err);\n });\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped></style>"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "button",
|
|
3
|
+
"name": "em-button",
|
|
4
|
+
"title": "按钮",
|
|
5
|
+
"description": "按钮组件,支持多种类型、尺寸和状态。",
|
|
6
|
+
"props": [
|
|
7
|
+
{ "name": "type", "type": "string", "default": "info", "required": false, "description": "类型,可选值为 primary、default、warning、danger" },
|
|
8
|
+
{ "name": "size", "type": "string", "default": "normal", "required": false, "description": "尺寸,可选值为 large、small、mini" },
|
|
9
|
+
{ "name": "text", "type": "string", "default": "-", "required": false, "description": "按钮文字" },
|
|
10
|
+
{ "name": "color", "type": "string", "default": "-", "required": false, "description": "按钮颜色,支持传入 linear-gradient 渐变色" },
|
|
11
|
+
{ "name": "icon", "type": "string", "default": "-", "required": false, "description": "左侧图标名称或图片链接" },
|
|
12
|
+
{ "name": "icon-size", "type": "string/number", "default": "-", "required": false, "description": "图标大小,默认单位是 px" },
|
|
13
|
+
{ "name": "icon-position", "type": "string", "default": "left", "required": false, "description": "图标展示位置,可选值为 right" },
|
|
14
|
+
{ "name": "block", "type": "boolean", "default": "false", "required": false, "description": "是否为块级元素" },
|
|
15
|
+
{ "name": "plain", "type": "boolean", "default": "false", "required": false, "description": "是否为朴素按钮" },
|
|
16
|
+
{ "name": "square", "type": "boolean", "default": "false", "required": false, "description": "是否为方形按钮" },
|
|
17
|
+
{ "name": "round", "type": "boolean", "default": "true", "required": false, "description": "是否为圆形按钮" },
|
|
18
|
+
{ "name": "disabled", "type": "boolean", "default": "false", "required": false, "description": "是否禁用按钮" },
|
|
19
|
+
{ "name": "hairline", "type": "boolean", "default": "false", "required": false, "description": "是否使用 0.5px 边框" },
|
|
20
|
+
{ "name": "loading", "type": "boolean", "default": "false", "required": false, "description": "是否显示为加载状态" },
|
|
21
|
+
{ "name": "loading-text", "type": "string", "default": "-", "required": false, "description": "加载状态提示文字" },
|
|
22
|
+
{ "name": "loading-type", "type": "string", "default": "circular", "required": false, "description": "加载图标类型,可选值为 spinner、ball、operation" },
|
|
23
|
+
{ "name": "loading-size", "type": "string", "default": "20px", "required": false, "description": "加载图标大小" },
|
|
24
|
+
{ "name": "url", "type": "string", "default": "-", "required": false, "description": "点击后跳转的链接地址" },
|
|
25
|
+
{ "name": "to", "type": "string/object", "default": "-", "required": false, "description": "点击后跳转的目标路由对象" },
|
|
26
|
+
{ "name": "replace", "type": "boolean", "default": "false", "required": false, "description": "是否在跳转时替换当前页面历史" }
|
|
27
|
+
],
|
|
28
|
+
"events": [
|
|
29
|
+
{ "name": "click", "parameters": "event: Event", "description": "点击按钮,且按钮状态不为加载或禁用时触发" },
|
|
30
|
+
{ "name": "touchstart", "parameters": "event: TouchEvent", "description": "开始触摸按钮时触发" }
|
|
31
|
+
],
|
|
32
|
+
"slots": [],
|
|
33
|
+
"examples": {
|
|
34
|
+
"vue2": [
|
|
35
|
+
{
|
|
36
|
+
"title": "按钮类型",
|
|
37
|
+
"code": "<em-button type=\"primary\">主要按钮</em-button>\n<em-button type=\"info\">信息按钮</em-button>\n<em-button type=\"default\">默认按钮</em-button>\n<em-button type=\"warning\">警告按钮</em-button>\n<em-button type=\"danger\">危险按钮</em-button>",
|
|
38
|
+
"description": "按钮支持 default、primary、info、warning、danger 五种类型"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"title": "朴素按钮",
|
|
42
|
+
"code": "<em-button plain type=\"primary\">朴素按钮</em-button>\n<em-button plain type=\"info\">朴素按钮</em-button>",
|
|
43
|
+
"description": "通过 plain 属性将按钮设置为朴素按钮"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"title": "禁用状态",
|
|
47
|
+
"code": "<em-button disabled type=\"primary\">禁用状态</em-button>",
|
|
48
|
+
"description": "通过 disabled 属性来禁用按钮"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"title": "加载状态",
|
|
52
|
+
"code": "<em-button loading type=\"primary\" />\n<em-button loading type=\"info\" loading-text=\"加载中...\" />",
|
|
53
|
+
"description": "通过 loading 属性设置按钮为加载状态"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"title": "按钮尺寸",
|
|
57
|
+
"code": "<em-button type=\"primary\" size=\"large\">大号按钮</em-button>\n<em-button type=\"primary\" size=\"normal\">普通按钮</em-button>\n<em-button type=\"primary\" size=\"small\">小型按钮</em-button>\n<em-button type=\"primary\" size=\"mini\">迷你按钮</em-button>",
|
|
58
|
+
"description": "支持 large、normal、small、mini 四种尺寸"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"vue3": [
|
|
62
|
+
{
|
|
63
|
+
"title": "按钮类型",
|
|
64
|
+
"code": "<em-button type=\"primary\">主要按钮</em-button>\n<em-button type=\"info\">信息按钮</em-button>\n<em-button type=\"default\">默认按钮</em-button>\n<em-button type=\"warning\">警告按钮</em-button>\n<em-button type=\"danger\">危险按钮</em-button>",
|
|
65
|
+
"description": "按钮支持 default、primary、info、warning、danger 五种类型"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"title": "朴素按钮",
|
|
69
|
+
"code": "<em-button plain type=\"primary\">朴素按钮</em-button>\n<em-button plain type=\"info\">朴素按钮</em-button>",
|
|
70
|
+
"description": "通过 plain 属性将按钮设置为朴素按钮"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "cell",
|
|
3
|
+
"name": "em-cell",
|
|
4
|
+
"title": "单元格",
|
|
5
|
+
"description": "单元格组件,用于展示列表项。",
|
|
6
|
+
"props": [
|
|
7
|
+
{ "name": "title", "type": "number/string", "default": "-", "required": false, "description": "左侧标题" },
|
|
8
|
+
{ "name": "value", "type": "number/string", "default": "-", "required": false, "description": "右侧内容" },
|
|
9
|
+
{ "name": "label", "type": "string", "default": "-", "required": false, "description": "标题下方的描述信息" },
|
|
10
|
+
{ "name": "size", "type": "string", "default": "-", "required": false, "description": "单元格大小,可选值为 large" },
|
|
11
|
+
{ "name": "icon", "type": "string", "default": "-", "required": false, "description": "左侧图标名称或图片链接" },
|
|
12
|
+
{ "name": "icon-prefix", "type": "string", "default": "van-icon", "required": false, "description": "图标类名前缀" },
|
|
13
|
+
{ "name": "url", "type": "string", "default": "-", "required": false, "description": "点击后跳转的链接地址" },
|
|
14
|
+
{ "name": "to", "type": "string/object", "default": "-", "required": false, "description": "点击后跳转的目标路由对象" },
|
|
15
|
+
{ "name": "border", "type": "boolean", "default": "true", "required": false, "description": "是否显示内边框" },
|
|
16
|
+
{ "name": "replace", "type": "boolean", "default": "false", "required": false, "description": "是否在跳转时替换当前页面历史" },
|
|
17
|
+
{ "name": "clickable", "type": "boolean", "default": "false", "required": false, "description": "是否开启点击反馈" },
|
|
18
|
+
{ "name": "is-link", "type": "boolean", "default": "false", "required": false, "description": "是否展示右侧箭头并开启点击反馈" },
|
|
19
|
+
{ "name": "required", "type": "boolean", "default": "false", "required": false, "description": "是否显示表单必填星号" },
|
|
20
|
+
{ "name": "center", "type": "boolean", "default": "false", "required": false, "description": "是否使内容垂直居中" },
|
|
21
|
+
{ "name": "arrow-direction", "type": "string", "default": "right", "required": false, "description": "箭头方向,可选值为 left、up、down" },
|
|
22
|
+
{ "name": "title-style", "type": "string", "default": "-", "required": false, "description": "左侧标题额外样式" },
|
|
23
|
+
{ "name": "title-class", "type": "string", "default": "-", "required": false, "description": "左侧标题额外类名" },
|
|
24
|
+
{ "name": "value-class", "type": "string", "default": "-", "required": false, "description": "右侧内容额外类名" },
|
|
25
|
+
{ "name": "label-class", "type": "string", "default": "-", "required": false, "description": "描述信息额外类名" }
|
|
26
|
+
],
|
|
27
|
+
"events": [
|
|
28
|
+
{ "name": "click", "parameters": "event: Event", "description": "点击单元格时触发" }
|
|
29
|
+
],
|
|
30
|
+
"slots": [
|
|
31
|
+
{ "name": "default", "description": "自定义右侧 value 的内容" },
|
|
32
|
+
{ "name": "title", "description": "自定义左侧 title 的内容" },
|
|
33
|
+
{ "name": "label", "description": "自定义标题下方 label 的内容" },
|
|
34
|
+
{ "name": "icon", "description": "自定义左侧图标" },
|
|
35
|
+
{ "name": "rightIcon", "description": "自定义右侧按钮,默认为 arrow" },
|
|
36
|
+
{ "name": "extra", "description": "自定义单元格的额外内容" }
|
|
37
|
+
],
|
|
38
|
+
"examples": {
|
|
39
|
+
"vue2": [
|
|
40
|
+
{
|
|
41
|
+
"title": "基础用法",
|
|
42
|
+
"code": "<em-cell-group>\n <em-cell title=\"单元格\" value=\"内容\" />\n <em-cell title=\"单元格\" value=\"内容\" label=\"描述信息\" :border=\"false\" />\n</em-cell-group>",
|
|
43
|
+
"description": "Cell 可以单独使用,也可以与 CellGroup 搭配使用"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"title": "展示箭头",
|
|
47
|
+
"code": "<em-cell title=\"单元格\" is-link />\n<em-cell title=\"单元格\" is-link value=\"内容\" />\n<em-cell title=\"单元格\" is-link arrow-direction=\"down\" value=\"内容\" />",
|
|
48
|
+
"description": "设置 is-link 属性后会在单元格右侧显示箭头"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"title": "展示图标",
|
|
52
|
+
"code": "<em-cell title=\"单元格\" icon=\"location-o\" />",
|
|
53
|
+
"description": "通过 icon 属性在标题左侧展示图标"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"vue3": [
|
|
57
|
+
{
|
|
58
|
+
"title": "基础用法",
|
|
59
|
+
"code": "<em-cell-group>\n <em-cell title=\"单元格\" value=\"内容\" />\n <em-cell title=\"单元格\" value=\"内容\" label=\"描述信息\" :border=\"false\" />\n</em-cell-group>",
|
|
60
|
+
"description": "Cell 可以单独使用,也可以与 CellGroup 搭配使用"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"title": "展示箭头",
|
|
64
|
+
"code": "<em-cell title=\"单元格\" is-link />\n<em-cell title=\"单元格\" is-link value=\"内容\" />",
|
|
65
|
+
"description": "设置 is-link 属性后会在单元格右侧显示箭头"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "field",
|
|
3
|
+
"name": "em-field",
|
|
4
|
+
"title": "输入框",
|
|
5
|
+
"description": "表单中的输入框组件,支持多种类型和样式。",
|
|
6
|
+
"props": [
|
|
7
|
+
{ "name": "v-model", "type": "number/string", "default": "-", "required": false, "description": "当前输入的值" },
|
|
8
|
+
{ "name": "label", "type": "string", "default": "-", "required": false, "description": "输入框左侧文本" },
|
|
9
|
+
{ "name": "name", "type": "string", "default": "-", "required": false, "description": "名称,提交表单的标识符" },
|
|
10
|
+
{ "name": "type", "type": "string", "default": "text", "required": false, "description": "输入框类型,可选值为 tel、digit、number、textarea、password 等" },
|
|
11
|
+
{ "name": "size", "type": "string", "default": "-", "required": false, "description": "大小,可选值为 large" },
|
|
12
|
+
{ "name": "maxlength", "type": "number/string", "default": "-", "required": false, "description": "输入的最大字符数" },
|
|
13
|
+
{ "name": "placeholder", "type": "string", "default": "-", "required": false, "description": "输入框占位提示文字" },
|
|
14
|
+
{ "name": "placeholder-style", "type": "string", "default": "color: #b8becc;", "required": false, "description": "指定 placeholder 的样式" },
|
|
15
|
+
{ "name": "border", "type": "boolean", "default": "true", "required": false, "description": "是否显示内边框" },
|
|
16
|
+
{ "name": "disabled", "type": "boolean", "default": "false", "required": false, "description": "是否禁用输入框" },
|
|
17
|
+
{ "name": "readonly", "type": "boolean", "default": "false", "required": false, "description": "是否只读" },
|
|
18
|
+
{ "name": "colon", "type": "boolean", "default": "false", "required": false, "description": "是否在 label 后面添加冒号" },
|
|
19
|
+
{ "name": "required", "type": "boolean", "default": "false", "required": false, "description": "是否显示表单必填星号" },
|
|
20
|
+
{ "name": "center", "type": "boolean", "default": "false", "required": false, "description": "是否使内容垂直居中" },
|
|
21
|
+
{ "name": "clearable", "type": "boolean", "default": "false", "required": false, "description": "是否启用清除图标" },
|
|
22
|
+
{ "name": "clickable", "type": "boolean", "default": "false", "required": false, "description": "是否开启点击反馈" },
|
|
23
|
+
{ "name": "is-link", "type": "boolean", "default": "false", "required": false, "description": "是否展示右侧箭头并开启点击反馈" },
|
|
24
|
+
{ "name": "autofocus", "type": "boolean", "default": "false", "required": false, "description": "是否自动聚焦" },
|
|
25
|
+
{ "name": "show-word-limit", "type": "boolean", "default": "false", "required": false, "description": "是否显示字数统计" },
|
|
26
|
+
{ "name": "error", "type": "boolean", "default": "false", "required": false, "description": "是否将输入内容标红" },
|
|
27
|
+
{ "name": "error-message", "type": "string", "default": "-", "required": false, "description": "底部错误提示文案" },
|
|
28
|
+
{ "name": "formatter", "type": "Function", "default": "-", "required": false, "description": "输入内容格式化函数" },
|
|
29
|
+
{ "name": "format-trigger", "type": "string", "default": "onChange", "required": false, "description": "格式化函数触发的时机,可选值为 onBlur" },
|
|
30
|
+
{ "name": "label-width", "type": "number/string", "default": "96px", "required": false, "description": "左侧文本宽度" },
|
|
31
|
+
{ "name": "label-align", "type": "string", "default": "left", "required": false, "description": "左侧文本对齐方式,可选值为 center、right" },
|
|
32
|
+
{ "name": "input-align", "type": "string", "default": "left", "required": false, "description": "输入框对齐方式,可选值为 center、right、vertical" },
|
|
33
|
+
{ "name": "autosize", "type": "boolean/object", "default": "false", "required": false, "description": "是否自适应内容高度,只对 textarea 有效" },
|
|
34
|
+
{ "name": "left-icon", "type": "string", "default": "-", "required": false, "description": "左侧图标名称或图片链接" },
|
|
35
|
+
{ "name": "right-icon", "type": "string", "default": "-", "required": false, "description": "右侧图标名称或图片链接" },
|
|
36
|
+
{ "name": "rules", "type": "Rule[]", "default": "-", "required": false, "description": "表单校验规则" },
|
|
37
|
+
{ "name": "basic", "type": "boolean", "default": "false", "required": false, "description": "是否使用基座风格样式" }
|
|
38
|
+
],
|
|
39
|
+
"events": [
|
|
40
|
+
{ "name": "input", "parameters": "value: string", "description": "输入框内容变化时触发" },
|
|
41
|
+
{ "name": "focus", "parameters": "event: Event", "description": "输入框获得焦点时触发" },
|
|
42
|
+
{ "name": "blur", "parameters": "event: Event", "description": "输入框失去焦点时触发" },
|
|
43
|
+
{ "name": "clear", "parameters": "event: Event", "description": "点击清除按钮时触发" },
|
|
44
|
+
{ "name": "click", "parameters": "event: Event", "description": "点击 Field 时触发" },
|
|
45
|
+
{ "name": "click-input", "parameters": "event: Event", "description": "点击输入区域时触发" },
|
|
46
|
+
{ "name": "click-left-icon", "parameters": "event: Event", "description": "点击左侧图标时触发" },
|
|
47
|
+
{ "name": "click-right-icon", "parameters": "event: Event", "description": "点击右侧图标时触发" }
|
|
48
|
+
],
|
|
49
|
+
"slots": [
|
|
50
|
+
{ "name": "label", "description": "自定义输入框 label 标签" },
|
|
51
|
+
{ "name": "input", "description": "自定义输入框" },
|
|
52
|
+
{ "name": "leftIcon", "description": "自定义输入框头部图标" },
|
|
53
|
+
{ "name": "rightIcon", "description": "自定义输入框尾部图标" },
|
|
54
|
+
{ "name": "button", "description": "自定义输入框尾部按钮" },
|
|
55
|
+
{ "name": "extra", "description": "自定义输入框最右侧的额外内容" }
|
|
56
|
+
],
|
|
57
|
+
"examples": {
|
|
58
|
+
"vue2": [
|
|
59
|
+
{
|
|
60
|
+
"title": "基础用法",
|
|
61
|
+
"code": "<em-cell-group>\n <em-field v-model=\"value\" label=\"文本\" placeholder=\"请输入用户名\" />\n</em-cell-group>\n\n<script>\nexport default {\n data() {\n return {\n value: ''\n };\n }\n};\n</script>",
|
|
62
|
+
"description": "通过 v-model 双向绑定输入框的值"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"title": "基座风格",
|
|
66
|
+
"code": "<em-cell-group>\n <em-field label=\"横向必填项\" basic required is-link placeholder=\"请输入\" v-model=\"value\"></em-field>\n</em-cell-group>",
|
|
67
|
+
"description": "通过 basic 设置基座风格的样式"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"title": "自定义类型",
|
|
71
|
+
"code": "<em-field v-model=\"tel\" type=\"tel\" label=\"手机号\" />\n<em-field v-model=\"number\" type=\"number\" label=\"整数\" />\n<em-field v-model=\"password\" type=\"password\" label=\"密码\" />",
|
|
72
|
+
"description": "根据 type 属性定义不同类型的输入框"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"vue3": [
|
|
76
|
+
{
|
|
77
|
+
"title": "基础用法",
|
|
78
|
+
"code": "<em-cell-group>\n <em-field v-model=\"value\" label=\"文本\" placeholder=\"请输入用户名\" />\n</em-cell-group>\n\n<script setup>\nimport { ref } from 'vue';\nconst value = ref('');\n</script>",
|
|
79
|
+
"description": "通过 v-model 双向绑定输入框的值"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"title": "基座风格",
|
|
83
|
+
"code": "<em-cell-group>\n <em-field label=\"横向必填项\" basic required is-link placeholder=\"请输入\" v-model=\"value\"></em-field>\n</em-cell-group>\n\n<script setup>\nimport { ref } from 'vue';\nconst value = ref('');\n</script>",
|
|
84
|
+
"description": "通过 basic 设置基座风格的样式"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"components": [
|
|
3
|
+
{ "id": "actionsheet", "name": "em-actionsheet", "title": "动作面板", "file": "actionsheet.json" },
|
|
4
|
+
{ "id": "amap", "name": "em-amap", "title": "地图", "file": "amap.json" },
|
|
5
|
+
{ "id": "button", "name": "em-button", "title": "按钮", "file": "button.json" },
|
|
6
|
+
{ "id": "cell", "name": "em-cell", "title": "单元格", "file": "cell.json" },
|
|
7
|
+
{ "id": "checkbox", "name": "em-checkbox", "title": "复选框", "file": "checkbox.json" },
|
|
8
|
+
{ "id": "circle", "name": "em-circle", "title": "环形进度条", "file": "circle.json" },
|
|
9
|
+
{ "id": "datepicker", "name": "em-datepicker", "title": "日期选择", "file": "datepicker.json" },
|
|
10
|
+
{ "id": "field", "name": "em-field", "title": "输入框", "file": "field.json" },
|
|
11
|
+
{ "id": "form", "name": "em-form", "title": "表单", "file": "form.json" },
|
|
12
|
+
{ "id": "header", "name": "em-header", "title": "头部导航栏", "file": "header.json" },
|
|
13
|
+
{ "id": "icon", "name": "em-icon", "title": "图标", "file": "icon.json" },
|
|
14
|
+
{ "id": "loading", "name": "em-loading", "title": "加载", "file": "loading.json" },
|
|
15
|
+
{ "id": "noticebar", "name": "em-noticebar", "title": "通知栏", "file": "noticebar.json" },
|
|
16
|
+
{ "id": "numberkeyboard", "name": "em-numberkeyboard", "title": "数字键盘", "file": "numberkeyboard.json" },
|
|
17
|
+
{ "id": "pagination", "name": "em-pagination", "title": "分页", "file": "pagination.json" },
|
|
18
|
+
{ "id": "panel", "name": "em-panel", "title": "面板", "file": "panel.json" },
|
|
19
|
+
{ "id": "passwordinput", "name": "em-passwordinput", "title": "密码输入框", "file": "passwordinput.json" },
|
|
20
|
+
{ "id": "picker", "name": "em-picker", "title": "选择器", "file": "picker.json" },
|
|
21
|
+
{ "id": "popup", "name": "em-popup", "title": "弹出层", "file": "popup.json" },
|
|
22
|
+
{ "id": "progress", "name": "em-progress", "title": "进度条", "file": "progress.json" },
|
|
23
|
+
{ "id": "radio", "name": "em-radio", "title": "单选框", "file": "radio.json" },
|
|
24
|
+
{ "id": "rate", "name": "em-rate", "title": "评分", "file": "rate.json" },
|
|
25
|
+
{ "id": "search", "name": "em-search", "title": "搜索", "file": "search.json" },
|
|
26
|
+
{ "id": "slider", "name": "em-slider", "title": "滑块", "file": "slider.json" },
|
|
27
|
+
{ "id": "stepper", "name": "em-stepper", "title": "步进器", "file": "stepper.json" },
|
|
28
|
+
{ "id": "swipecell", "name": "em-swipecell", "title": "滑动单元格", "file": "swipecell.json" },
|
|
29
|
+
{ "id": "switch", "name": "em-switch", "title": "开关", "file": "switch.json" },
|
|
30
|
+
{ "id": "switchcell", "name": "em-switchcell", "title": "开关单元格", "file": "switchcell.json" },
|
|
31
|
+
{ "id": "tag", "name": "em-tag", "title": "标记", "file": "tag.json" },
|
|
32
|
+
{ "id": "treeselect", "name": "em-treeselect", "title": "分类选择", "file": "treeselect.json" },
|
|
33
|
+
{ "id": "uploader", "name": "em-uploader", "title": "文件上传", "file": "uploader.json" },
|
|
34
|
+
{ "id": "verifycode", "name": "em-verifycode", "title": "验证码", "file": "verifycode.json" },
|
|
35
|
+
{ "id": "minirefresh", "name": "em-minirefresh", "title": "下拉刷新", "file": "minirefresh.json" },
|
|
36
|
+
{ "id": "layout", "name": "em-layout", "title": "布局", "file": "layout.json" },
|
|
37
|
+
{ "id": "image", "name": "em-image", "title": "图片", "file": "image.json" },
|
|
38
|
+
{ "id": "toast", "name": "em-toast", "title": "轻提示", "file": "toast.json" },
|
|
39
|
+
{ "id": "calendar", "name": "em-calendar", "title": "日历", "file": "calendar.json" },
|
|
40
|
+
{ "id": "area", "name": "em-area", "title": "省市区选择", "file": "area.json" },
|
|
41
|
+
{ "id": "tab", "name": "em-tab", "title": "标签页", "file": "tab.json" },
|
|
42
|
+
{ "id": "dialog", "name": "em-dialog", "title": "弹出框", "file": "dialog.json" },
|
|
43
|
+
{ "id": "dropdownmenu", "name": "em-dropdownmenu", "title": "下拉菜单", "file": "dropdownmenu.json" },
|
|
44
|
+
{ "id": "notify", "name": "em-notify", "title": "消息通知", "file": "notify.json" },
|
|
45
|
+
{ "id": "overlay", "name": "em-overlay", "title": "遮罩层", "file": "overlay.json" },
|
|
46
|
+
{ "id": "collapse", "name": "em-collapse", "title": "折叠面板", "file": "collapse.json" },
|
|
47
|
+
{ "id": "grid", "name": "em-grid", "title": "宫格", "file": "grid.json" },
|
|
48
|
+
{ "id": "countdown", "name": "em-countdown", "title": "倒计时", "file": "countdown.json" },
|
|
49
|
+
{ "id": "divider", "name": "em-divider", "title": "分割线", "file": "divider.json" },
|
|
50
|
+
{ "id": "empty", "name": "em-empty", "title": "空状态", "file": "empty.json" },
|
|
51
|
+
{ "id": "imagepreview", "name": "em-imagepreview", "title": "图片预览", "file": "imagepreview.json" },
|
|
52
|
+
{ "id": "lazyload", "name": "em-lazyload", "title": "懒加载", "file": "lazyload.json" },
|
|
53
|
+
{ "id": "skeleton", "name": "em-skeleton", "title": "骨架屏", "file": "skeleton.json" },
|
|
54
|
+
{ "id": "steps", "name": "em-steps", "title": "步骤条", "file": "steps.json" },
|
|
55
|
+
{ "id": "sticky", "name": "em-sticky", "title": "粘性布局", "file": "sticky.json" },
|
|
56
|
+
{ "id": "indexbar", "name": "em-indexbar", "title": "索引栏", "file": "indexbar.json" },
|
|
57
|
+
{ "id": "sidebar", "name": "em-sidebar", "title": "侧边导航", "file": "sidebar.json" },
|
|
58
|
+
{ "id": "tabbar", "name": "em-tabbar", "title": "标签栏", "file": "tabbar.json" },
|
|
59
|
+
{ "id": "badge", "name": "em-badge", "title": "徽标", "file": "badge.json" },
|
|
60
|
+
{ "id": "popover", "name": "em-popover", "title": "气泡弹出框", "file": "popover.json" },
|
|
61
|
+
{ "id": "cascader", "name": "em-cascader", "title": "级联选择", "file": "cascader.json" },
|
|
62
|
+
{ "id": "selectperson", "name": "em-selectperson", "title": "选人组件", "file": "selectperson.json" },
|
|
63
|
+
{ "id": "swipe", "name": "em-swipe", "title": "轮播", "file": "swipe.json" },
|
|
64
|
+
{ "id": "easycalendar", "name": "em-easycalendar", "title": "日历", "file": "easycalendar.json" },
|
|
65
|
+
{ "id": "qrcode", "name": "em-qrcode", "title": "二维码", "file": "qrcode.json" },
|
|
66
|
+
{ "id": "imagescale", "name": "em-imagescale", "title": "图片裁剪", "file": "imagescale.json" },
|
|
67
|
+
{ "id": "dragsort", "name": "em-dragsort", "title": "拖拽排序", "file": "dragsort.json" },
|
|
68
|
+
{ "id": "chart", "name": "em-chart", "title": "图表", "file": "chart.json" },
|
|
69
|
+
{ "id": "rtc", "name": "em-rtc", "title": "音视频", "file": "rtc.json" },
|
|
70
|
+
{ "id": "table", "name": "em-table", "title": "表格", "file": "table.json" }
|
|
71
|
+
]
|
|
72
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "css-style",
|
|
3
|
+
"category": "css",
|
|
4
|
+
"title": "CSS/SCSS 编码规范",
|
|
5
|
+
"version": "1.1.0",
|
|
6
|
+
"lastUpdated": "2024-12-19",
|
|
7
|
+
"description": "M8 框架项目中 CSS/SCSS 的编码标准",
|
|
8
|
+
"rules": [
|
|
9
|
+
{
|
|
10
|
+
"id": "css-variables",
|
|
11
|
+
"title": "使用 SASS 变量统一管理颜色和样式",
|
|
12
|
+
"description": "整体风格(颜色、字体、间距等)必须使用 SASS 变量统一管理,禁止在代码中硬编码颜色值。",
|
|
13
|
+
"correctExample": "// 在 variables.scss 中定义\n$color-primary: #1890ff;\n$color-text-primary: #333;\n\n// 使用变量\n.button {\n background-color: $color-primary;\n color: $color-text-primary;\n}",
|
|
14
|
+
"incorrectExample": ".button {\n background-color: #1890ff;\n color: #333333;\n}"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "css-bem",
|
|
18
|
+
"title": "BEM 命名规范",
|
|
19
|
+
"description": "推荐使用 BEM (Block Element Modifier) 命名规范。块: block,元素: block__element,修饰符: block--modifier",
|
|
20
|
+
"correctExample": ".card { }\n.card__header { }\n.card__header--active { }",
|
|
21
|
+
"incorrectExample": ".card-header-active { }"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "css-naming",
|
|
25
|
+
"title": "类名使用小写英文、数字和下划线组合",
|
|
26
|
+
"description": "样式名称由小写英文、数字和下划线组合命名,避免使用中文拼音,命名要语义化、简明化。",
|
|
27
|
+
"correctExample": ".page_header { }\n.nav_item { }\n.btn_primary { }\n.user_avatar { }",
|
|
28
|
+
"incorrectExample": ".yonghu_touxiang { } // 中文拼音\n.pageHeader { } // 驼峰命名\n.a1 { } // 不语义化"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "css-deep-selectors",
|
|
32
|
+
"title": "样式穿透 (Deep Selectors)",
|
|
33
|
+
"description": "Vue2 使用 ::v-deep,Vue3 使用 :deep()。使用样式穿透后,禁止结合 BEM 后缀选择器。",
|
|
34
|
+
"correctExample": ":deep(.em-cell) {\n // .em-cell 的样式\n}\n\n:deep(.em-cell__title) {\n // .em-cell__title 的样式\n}",
|
|
35
|
+
"incorrectExample": ":deep(.em-cell) {\n &__title { } // Sass 无法正确编译\n}"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "css-no-id",
|
|
39
|
+
"title": "避免使用 ID 选择器",
|
|
40
|
+
"description": "ID 选择器优先级过高,不利于样式复用和覆盖。",
|
|
41
|
+
"correctExample": ".header { }\n.main_content { }",
|
|
42
|
+
"incorrectExample": "#header { }\n#main_content { }"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "css-no-tag",
|
|
46
|
+
"title": "尽量少使用标签选择器",
|
|
47
|
+
"description": "避免直接使用标签选择器,使用类选择器代替。",
|
|
48
|
+
"correctExample": ".nav_link { }\n.list_item { }",
|
|
49
|
+
"incorrectExample": "a { }\nli { }\ndiv { }"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "css-selector-newline",
|
|
53
|
+
"title": "多选择器情况,每个选择器单独占一行",
|
|
54
|
+
"description": "当有多个选择器时,每个选择器应该单独占一行。",
|
|
55
|
+
"correctExample": ".header,\n.footer,\n.sidebar {\n padding: 16px;\n}",
|
|
56
|
+
"incorrectExample": ".header, .footer, .sidebar { padding: 16px; }"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "css-nesting-depth",
|
|
60
|
+
"title": "选择器嵌套不超过 3 层",
|
|
61
|
+
"description": "过深的嵌套会增加选择器优先级,降低性能。",
|
|
62
|
+
"correctExample": ".card {\n .card_header {\n .card_title { }\n }\n}",
|
|
63
|
+
"incorrectExample": ".page {\n .content {\n .card {\n .card_header {\n .card_title { }\n }\n }\n }\n}"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "css-property-order",
|
|
67
|
+
"title": "CSS 推荐书写顺序",
|
|
68
|
+
"description": "按以下顺序排列 CSS 属性:1.位置属性 2.大小 3.文字系列 4.背景 5.其他",
|
|
69
|
+
"correctExample": ".element {\n /* 1. 位置属性 */\n position: absolute;\n display: flex;\n /* 2. 大小 */\n width: 100%;\n padding: 16px;\n /* 3. 文字系列 */\n font-size: 14px;\n color: #333;\n /* 4. 背景 */\n background: #fff;\n border: 1px solid #eee;\n /* 5. 其他 */\n transition: all 0.3s;\n}",
|
|
70
|
+
"incorrectExample": ".element {\n color: #333;\n position: absolute;\n background: #fff;\n width: 100%;\n}"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "css-position-zindex",
|
|
74
|
+
"title": "使用 position 定位时,必须加上 z-index",
|
|
75
|
+
"description": "当使用 position: fixed/absolute 时,必须指定 z-index 值。",
|
|
76
|
+
"correctExample": ".modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1000;\n}",
|
|
77
|
+
"incorrectExample": ".modal {\n position: fixed;\n top: 0;\n left: 0;\n}"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "css-hex-shorthand",
|
|
81
|
+
"title": "16 进制颜色值可缩写时必须缩写",
|
|
82
|
+
"description": "当设置的颜色是 16 进制的色彩值时,如果每两位的值相同,必须缩写。",
|
|
83
|
+
"correctExample": ".text {\n color: #333;\n background: #fff;\n}",
|
|
84
|
+
"incorrectExample": ".text {\n color: #333333;\n background: #ffffff;\n}"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "css-zero-unit",
|
|
88
|
+
"title": "避免为 0 值指定单位",
|
|
89
|
+
"description": "当值为 0 时,不需要指定单位。",
|
|
90
|
+
"correctExample": ".element {\n margin: 0;\n padding: 0;\n}",
|
|
91
|
+
"incorrectExample": ".element {\n margin: 0px;\n padding: 0px;\n}"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "css-no-important",
|
|
95
|
+
"title": "避免使用 !important",
|
|
96
|
+
"description": "!important 会破坏样式的层叠规则,应该通过提高选择器优先级来解决。",
|
|
97
|
+
"correctExample": ".page .button {\n color: red;\n}",
|
|
98
|
+
"incorrectExample": ".button {\n color: red !important;\n}"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "css-no-inline",
|
|
102
|
+
"title": "避免使用内联样式",
|
|
103
|
+
"description": "内联样式难以维护和复用,应该使用类选择器。",
|
|
104
|
+
"correctExample": "<div class=\"highlight_text\">内容</div>",
|
|
105
|
+
"incorrectExample": "<div style=\"color: red; font-size: 14px;\">内容</div>"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|