├── .gitignore ├── README.md ├── admin ├── .gitignore ├── babel.config.js ├── bash ├── cmd.bat ├── dist │ ├── css │ │ ├── 14.5d2a02ad.css │ │ ├── 197.16ac9a3e.css │ │ ├── 282.ba36ae1b.css │ │ ├── 303.a5a67a6c.css │ │ ├── 394.c6b7d722.css │ │ ├── 409.0af9419f.css │ │ ├── 452.6497439e.css │ │ ├── 467.7bca1454.css │ │ ├── 525.5dc5765a.css │ │ ├── 74.16ac9a3e.css │ │ ├── 783.d5b92d74.css │ │ ├── 795.80aa77b5.css │ │ ├── 840.ac6b1868.css │ │ ├── 899.80aa77b5.css │ │ ├── 940.b1b4a758.css │ │ ├── 943.ac6b1868.css │ │ ├── 970.ba36ae1b.css │ │ ├── 978.b1b4a758.css │ │ └── app.52fe602c.css │ ├── favicon.png │ ├── img │ │ ├── bg.b483ae4c.jpg │ │ └── logo.a84da44e.svg │ ├── index.html │ ├── js │ │ ├── 119-legacy.1332f25d.js │ │ ├── 14-legacy.860ef455.js │ │ ├── 14.55ab50c8.js │ │ ├── 197.668d64c1.js │ │ ├── 247-legacy.8d6517dc.js │ │ ├── 27-legacy.fc85eda4.js │ │ ├── 282.9eb1ffe4.js │ │ ├── 303-legacy.34c88abd.js │ │ ├── 303.c2dd7474.js │ │ ├── 342.a66ebb54.js │ │ ├── 394-legacy.ba136986.js │ │ ├── 394.9e0959f7.js │ │ ├── 409-legacy.a0f0eec6.js │ │ ├── 409.9d446576.js │ │ ├── 413.2c9e1bc8.js │ │ ├── 452-legacy.e3151b01.js │ │ ├── 452.47b1d59b.js │ │ ├── 467-legacy.015fd12e.js │ │ ├── 467.07bf4b42.js │ │ ├── 525-legacy.9c4d0acf.js │ │ ├── 525.798b5b6f.js │ │ ├── 530-legacy.f473880b.js │ │ ├── 720-legacy.3859df02.js │ │ ├── 720.54930a1c.js │ │ ├── 74-legacy.cdae23b6.js │ │ ├── 783-legacy.94aecac1.js │ │ ├── 783.d726d9c5.js │ │ ├── 795.654b1322.js │ │ ├── 840.a4bc6517.js │ │ ├── 899-legacy.4d74d737.js │ │ ├── 940-legacy.3c37319e.js │ │ ├── 940.47d833fb.js │ │ ├── 943-legacy.a43c88e4.js │ │ ├── 970-legacy.e90aa654.js │ │ ├── 978-legacy.e2882113.js │ │ ├── 978.ffc7b232.js │ │ ├── app-legacy.bac08257.js │ │ ├── app.380c42c6.js │ │ ├── chunk-vendors-legacy.e5bf059b.js │ │ └── chunk-vendors.a464f7d9.js │ ├── manifest.json │ ├── res │ │ ├── icons │ │ │ ├── 1024x1024.png │ │ │ ├── 120x120.png │ │ │ ├── 144x144.png │ │ │ ├── 152x152.png │ │ │ ├── 167x167.png │ │ │ ├── 180x180.png │ │ │ ├── 192x192.png │ │ │ ├── 20x20.png │ │ │ ├── 29x29.png │ │ │ ├── 40x40.png │ │ │ ├── 58x58.png │ │ │ ├── 60x60.png │ │ │ ├── 72x72.png │ │ │ ├── 76x76.png │ │ │ ├── 80x80.png │ │ │ ├── 87x87.png │ │ │ └── 96x96.png │ │ └── screen │ │ │ ├── android(1080x1882).png │ │ │ ├── android(480x762).png │ │ │ ├── android(720x1242).png │ │ │ ├── ipad(1536x2048).png │ │ │ ├── ipad(1668x2224).png │ │ │ ├── ipad(1668x2388).png │ │ │ ├── ipad(2048x2732).png │ │ │ ├── ipad(768x1024).png │ │ │ ├── iphone(1125x2436).png │ │ │ ├── iphone(1242x2208).png │ │ │ ├── iphone(1242x2688).png │ │ │ ├── iphone(640x1136).png │ │ │ ├── iphone(640x960).png │ │ │ ├── iphone(750x1334).png │ │ │ └── iphone(828x1792).png │ └── tweblive │ │ ├── tim-js.js │ │ ├── trtc.js │ │ └── tweblive.js ├── package.json ├── public │ ├── favicon.png │ ├── index.html │ ├── manifest.json │ ├── res │ │ ├── icons │ │ │ ├── 1024x1024.png │ │ │ ├── 120x120.png │ │ │ ├── 144x144.png │ │ │ ├── 152x152.png │ │ │ ├── 167x167.png │ │ │ ├── 180x180.png │ │ │ ├── 192x192.png │ │ │ ├── 20x20.png │ │ │ ├── 29x29.png │ │ │ ├── 40x40.png │ │ │ ├── 58x58.png │ │ │ ├── 60x60.png │ │ │ ├── 72x72.png │ │ │ ├── 76x76.png │ │ │ ├── 80x80.png │ │ │ ├── 87x87.png │ │ │ └── 96x96.png │ │ └── screen │ │ │ ├── android(1080x1882).png │ │ │ ├── android(480x762).png │ │ │ ├── android(720x1242).png │ │ │ ├── ipad(1536x2048).png │ │ │ ├── ipad(1668x2224).png │ │ │ ├── ipad(1668x2388).png │ │ │ ├── ipad(2048x2732).png │ │ │ ├── ipad(768x1024).png │ │ │ ├── iphone(1125x2436).png │ │ │ ├── iphone(1242x2208).png │ │ │ ├── iphone(1242x2688).png │ │ │ ├── iphone(640x1136).png │ │ │ ├── iphone(640x960).png │ │ │ ├── iphone(750x1334).png │ │ │ └── iphone(828x1792).png │ └── tweblive │ │ ├── tim-js.js │ │ ├── trtc.js │ │ └── tweblive.js ├── src │ ├── App.ts │ ├── App.vue │ ├── Menus.ts │ ├── assets │ │ ├── bg.jpg │ │ ├── logo.svg │ │ └── style │ │ │ ├── app.less │ │ │ ├── icon.less │ │ │ ├── themes.less │ │ │ └── ui.less │ ├── components │ │ ├── action │ │ │ ├── add │ │ │ │ └── index.vue │ │ │ ├── close │ │ │ │ └── index.vue │ │ │ └── subtract │ │ │ │ └── index.vue │ │ ├── chart │ │ │ ├── interval.vue │ │ │ ├── line.vue │ │ │ └── pie.vue │ │ ├── dialog │ │ │ └── index.vue │ │ ├── form │ │ │ ├── button │ │ │ │ └── index.vue │ │ │ ├── cascader │ │ │ │ └── index.vue │ │ │ ├── checkbox │ │ │ │ ├── group.vue │ │ │ │ └── index.vue │ │ │ ├── date │ │ │ │ └── index.vue │ │ │ ├── index.vue │ │ │ ├── input │ │ │ │ └── index.vue │ │ │ ├── item │ │ │ │ └── index.vue │ │ │ ├── radio │ │ │ │ └── index.vue │ │ │ ├── select │ │ │ │ └── index.vue │ │ │ └── title │ │ │ │ └── index.vue │ │ ├── img │ │ │ ├── index.vue │ │ │ ├── upload │ │ │ │ └── index.vue │ │ │ └── view │ │ │ │ └── index.vue │ │ ├── loading │ │ │ └── index.vue │ │ ├── main │ │ │ ├── index.vue │ │ │ └── row │ │ │ │ └── index.vue │ │ ├── page │ │ │ └── index.vue │ │ ├── popover │ │ │ └── index.vue │ │ ├── popup │ │ │ └── index.vue │ │ ├── scroll-view │ │ │ └── index.vue │ │ ├── search │ │ │ └── index.vue │ │ ├── switch │ │ │ └── index.vue │ │ ├── table │ │ │ ├── form.vue │ │ │ ├── index.vue │ │ │ └── order.vue │ │ ├── tabs │ │ │ └── index.vue │ │ ├── tag │ │ │ └── index.vue │ │ ├── tinymce │ │ │ └── index.vue │ │ ├── tree │ │ │ └── index.vue │ │ └── uploader │ │ │ └── index.vue │ ├── env.ts │ ├── library │ │ ├── Msg.ts │ │ ├── Socket.ts │ │ ├── Start.ts │ │ ├── Storage.ts │ │ ├── array │ │ │ └── unique.ts │ │ ├── base64 │ │ │ ├── decode.ts │ │ │ ├── encode.ts │ │ │ └── ext-type.ts │ │ ├── device │ │ │ └── mobile.ts │ │ ├── down │ │ │ ├── blob.ts │ │ │ ├── export.ts │ │ │ └── file.ts │ │ ├── html │ │ │ ├── load.ts │ │ │ └── observe.ts │ │ ├── plus │ │ │ ├── camera.ts │ │ │ ├── copy-text.ts │ │ │ ├── img │ │ │ │ ├── compress.ts │ │ │ │ └── reader.ts │ │ │ ├── inc │ │ │ │ ├── back.ts │ │ │ │ ├── ready.ts │ │ │ │ └── version-diff.ts │ │ │ ├── map │ │ │ │ └── geolocation.ts │ │ │ └── notify.ts │ │ ├── price │ │ │ ├── format.ts │ │ │ ├── percentage.ts │ │ │ └── to-fixed.ts │ │ ├── reg │ │ │ ├── right.ts │ │ │ └── test.ts │ │ ├── request │ │ │ ├── delete.ts │ │ │ ├── get.ts │ │ │ ├── patch.ts │ │ │ ├── post.ts │ │ │ └── put.ts │ │ ├── tel │ │ │ ├── call.ts │ │ │ └── hide.ts │ │ ├── time │ │ │ ├── date.ts │ │ │ ├── day.ts │ │ │ ├── format_hour.ts │ │ │ ├── format_time.ts │ │ │ ├── index.ts │ │ │ ├── size.ts │ │ │ ├── timestamp.ts │ │ │ └── week.ts │ │ ├── ui │ │ │ ├── back.ts │ │ │ ├── loading.ts │ │ │ ├── navigate-to.ts │ │ │ └── toast.ts │ │ ├── url │ │ │ ├── decode.ts │ │ │ └── encode.ts │ │ └── util │ │ │ ├── index.ts │ │ │ └── trim.ts │ ├── main.ts │ ├── router │ │ └── index.ts │ ├── shims-vue.d.ts │ ├── store │ │ └── index.ts │ └── views │ │ ├── Home.ts │ │ ├── Home.vue │ │ ├── Refresh.vue │ │ ├── demo │ │ ├── Demo.ts │ │ └── Demo.vue │ │ ├── system │ │ ├── ApiMenus.ts │ │ ├── ApiMenus.vue │ │ ├── ApiRole.ts │ │ ├── ApiRole.vue │ │ ├── Config.ts │ │ ├── Config.vue │ │ ├── FileManage.ts │ │ ├── FileManage.vue │ │ ├── Help.ts │ │ ├── Help.vue │ │ ├── Menus.ts │ │ ├── Menus.vue │ │ ├── Role.ts │ │ ├── Role.vue │ │ ├── User.ts │ │ ├── User.vue │ │ ├── UserInfo.ts │ │ ├── UserInfo.vue │ │ ├── UserPasswd.ts │ │ └── UserPasswd.vue │ │ └── web │ │ ├── News.ts │ │ ├── News.vue │ │ ├── NewsClass.ts │ │ └── NewsClass.vue ├── tsconfig.json ├── tslint.json └── vue.config.js ├── app ├── .gitignore ├── .metadata ├── README.md ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── webmis │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable-v21 │ │ │ │ └── launch_background.xml │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-night │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h ├── lib │ └── main.dart ├── pubspec.lock ├── pubspec.yaml ├── test │ └── widget_test.dart └── web │ ├── favicon.png │ ├── icons │ ├── Icon-192.png │ └── Icon-512.png │ ├── index.html │ └── manifest.json ├── gin ├── .gitignore ├── bash ├── cli │ └── main.go ├── cmd.bat ├── config │ ├── aliyun.go │ ├── baidu.go │ ├── db.go │ ├── env.go │ ├── redis.go │ ├── socket.go │ └── tencent.go ├── go.mod ├── go.sum ├── library │ ├── aliyun │ │ ├── oss.go │ │ ├── pay.go │ │ └── signature.go │ ├── baidu │ │ └── tong_ji.go │ ├── captcha.go │ ├── curl.go │ ├── export.go │ ├── file_eo.go │ ├── qrcode.go │ ├── redis.go │ ├── safety.go │ ├── socket.go │ ├── tencent │ │ ├── im.go │ │ ├── pay.go │ │ ├── signature.go │ │ └── trtc.go │ └── upload.go ├── main.go ├── middleware │ ├── cors.go │ └── handler.go ├── model │ ├── api_menu.go │ ├── api_perm.go │ ├── api_role.go │ ├── demo.go │ ├── logs.go │ ├── model.go │ ├── sys_menu.go │ ├── sys_perm.go │ ├── sys_role.go │ ├── user.go │ ├── user_info.go │ ├── web_news.go │ ├── web_news_class.go │ └── web_news_html.go ├── modules │ ├── admin │ │ ├── api_menus.go │ │ ├── api_role.go │ │ ├── index.go │ │ ├── sys_file.go │ │ ├── sys_menus.go │ │ ├── sys_role.go │ │ ├── sys_user.go │ │ ├── user.go │ │ ├── user_info.go │ │ ├── user_passwd.go │ │ ├── web_news.go │ │ └── web_news_class.go │ ├── api │ │ ├── index.go │ │ └── user.go │ └── home │ │ └── index.go ├── public │ ├── favicon.png │ └── upload │ │ └── .gitkeep ├── router │ ├── admin.go │ ├── api.go │ └── home.go ├── service │ ├── admin_token.go │ ├── api_token.go │ ├── base.go │ ├── data.go │ ├── logs.go │ └── socket.go ├── task │ ├── main.go │ ├── redis.go │ └── socket.go └── util │ ├── base64.go │ ├── hash.go │ ├── os.go │ ├── type.go │ ├── url.go │ └── util.go ├── java ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── bash ├── cmd.bat ├── java-1.0.0.jar ├── mvnw ├── mvnw.cmd ├── pom.xml ├── public │ ├── favicon.png │ └── upload │ │ └── .gitkeep ├── src │ ├── main │ │ ├── java │ │ │ └── webmis │ │ │ │ ├── JavaApplication.java │ │ │ │ ├── config │ │ │ │ ├── Aliyun.java │ │ │ │ ├── Baidu.java │ │ │ │ ├── Db.java │ │ │ │ ├── Env.java │ │ │ │ ├── Redis.java │ │ │ │ ├── Socket.java │ │ │ │ └── Tencent.java │ │ │ │ ├── library │ │ │ │ ├── Captcha.java │ │ │ │ ├── Curl.java │ │ │ │ ├── Export.java │ │ │ │ ├── FileEo.java │ │ │ │ ├── Qrcode.java │ │ │ │ ├── Redis.java │ │ │ │ ├── Safety.java │ │ │ │ ├── Socket.java │ │ │ │ ├── Upload.java │ │ │ │ ├── aliyun │ │ │ │ │ ├── Oss.java │ │ │ │ │ ├── Pay.java │ │ │ │ │ └── Signature.java │ │ │ │ ├── baidu │ │ │ │ │ └── TongJi.java │ │ │ │ └── tencent │ │ │ │ │ ├── Im.java │ │ │ │ │ ├── Pay.java │ │ │ │ │ ├── Signature.java │ │ │ │ │ └── Trtc.java │ │ │ │ ├── middleware │ │ │ │ ├── Cli.java │ │ │ │ ├── Cors.java │ │ │ │ ├── MultipartConfig.java │ │ │ │ ├── MyExceptionHandler.java │ │ │ │ ├── NotFoundException.java │ │ │ │ └── SocketServer.java │ │ │ │ ├── model │ │ │ │ ├── ApiMenu.java │ │ │ │ ├── ApiPerm.java │ │ │ │ ├── ApiRole.java │ │ │ │ ├── Demo.java │ │ │ │ ├── Logs.java │ │ │ │ ├── Model.java │ │ │ │ ├── SysMenu.java │ │ │ │ ├── SysPerm.java │ │ │ │ ├── SysRole.java │ │ │ │ ├── User.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── WebNews.java │ │ │ │ ├── WebNewsClass.java │ │ │ │ └── WebNewsHtml.java │ │ │ │ ├── modules │ │ │ │ ├── admin │ │ │ │ │ ├── ApiMenus.java │ │ │ │ │ ├── ApiRole.java │ │ │ │ │ ├── Index.java │ │ │ │ │ ├── SysFile.java │ │ │ │ │ ├── SysMenus.java │ │ │ │ │ ├── SysRole.java │ │ │ │ │ ├── SysUser.java │ │ │ │ │ ├── User.java │ │ │ │ │ ├── UserInfo.java │ │ │ │ │ ├── UserPasswd.java │ │ │ │ │ ├── WebNews.java │ │ │ │ │ └── WebNewsClass.java │ │ │ │ ├── api │ │ │ │ │ ├── Index.java │ │ │ │ │ └── User.java │ │ │ │ └── home │ │ │ │ │ └── Index.java │ │ │ │ ├── service │ │ │ │ ├── AdminToken.java │ │ │ │ ├── ApiToken.java │ │ │ │ ├── Base.java │ │ │ │ ├── Data.java │ │ │ │ ├── Logs.java │ │ │ │ └── Socket.java │ │ │ │ ├── task │ │ │ │ └── Redis.java │ │ │ │ └── util │ │ │ │ ├── Base64.java │ │ │ │ ├── Dynamic.java │ │ │ │ ├── Hash.java │ │ │ │ ├── Http.java │ │ │ │ ├── Os.java │ │ │ │ ├── Type.java │ │ │ │ ├── Url.java │ │ │ │ └── Util.java │ │ └── resources │ │ │ └── application.properties │ └── test │ │ └── java │ │ └── vip │ │ └── webmis │ │ └── java │ │ └── JavaApplicationTests.java └── tmp │ └── .gitkeep ├── phalcon ├── .gitignore ├── Phalcon │ ├── Acl │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ └── Memory.php │ │ ├── Component.php │ │ ├── ComponentAware.php │ │ ├── ComponentInterface.php │ │ ├── Enum.php │ │ ├── Exception.php │ │ ├── Role.php │ │ ├── RoleAware.php │ │ └── RoleInterface.php │ ├── Annotations │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ ├── Apcu.php │ │ │ ├── Memory.php │ │ │ └── Stream.php │ │ ├── Annotation.php │ │ ├── AnnotationsFactory.php │ │ ├── Collection.php │ │ ├── Exception.php │ │ ├── Reader.php │ │ ├── ReaderInterface.php │ │ └── Reflection.php │ ├── Application │ │ ├── AbstractApplication.php │ │ └── Exception.php │ ├── Assets │ │ ├── Asset.php │ │ ├── Asset │ │ │ ├── Css.php │ │ │ └── Js.php │ │ ├── AssetInterface.php │ │ ├── Collection.php │ │ ├── Exception.php │ │ ├── FilterInterface.php │ │ ├── Filters │ │ │ ├── Cssmin.php │ │ │ ├── Jsmin.php │ │ │ └── None.php │ │ ├── Inline.php │ │ ├── Inline │ │ │ ├── Css.php │ │ │ └── Js.php │ │ └── Manager.php │ ├── Cache.php │ ├── Cache │ │ ├── Adapter │ │ │ ├── AdapterInterface.php │ │ │ ├── Apcu.php │ │ │ ├── Libmemcached.php │ │ │ ├── Memory.php │ │ │ ├── Redis.php │ │ │ └── Stream.php │ │ ├── AdapterFactory.php │ │ ├── CacheFactory.php │ │ └── Exception │ │ │ ├── Exception.php │ │ │ └── InvalidArgumentException.php │ ├── Cli │ │ ├── Console.php │ │ ├── Console │ │ │ └── Exception.php │ │ ├── Dispatcher.php │ │ ├── Dispatcher │ │ │ └── Exception.php │ │ ├── DispatcherInterface.php │ │ ├── Router.php │ │ ├── Router │ │ │ ├── Exception.php │ │ │ ├── Route.php │ │ │ └── RouteInterface.php │ │ ├── RouterInterface.php │ │ ├── Task.php │ │ └── TaskInterface.php │ ├── Collection.php │ ├── Collection │ │ ├── Exception.php │ │ └── ReadOnly.php │ ├── Config.php │ ├── Config │ │ ├── Adapter │ │ │ ├── Grouped.php │ │ │ ├── Ini.php │ │ │ ├── Json.php │ │ │ ├── Php.php │ │ │ └── Yaml.php │ │ ├── ConfigFactory.php │ │ └── Exception.php │ ├── Container.php │ ├── Crypt.php │ ├── Crypt │ │ ├── CryptInterface.php │ │ ├── Exception.php │ │ └── Mismatch.php │ ├── Db │ │ ├── AbstractDb.php │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ ├── Pdo │ │ │ │ ├── AbstractPdo.php │ │ │ │ ├── Mysql.php │ │ │ │ ├── Postgresql.php │ │ │ │ └── Sqlite.php │ │ │ └── PdoFactory.php │ │ ├── Column.php │ │ ├── ColumnInterface.php │ │ ├── Dialect.php │ │ ├── Dialect │ │ │ ├── Mysql.php │ │ │ ├── Postgresql.php │ │ │ └── Sqlite.php │ │ ├── DialectInterface.php │ │ ├── Enum.php │ │ ├── Exception.php │ │ ├── Index.php │ │ ├── IndexInterface.php │ │ ├── Profiler.php │ │ ├── Profiler │ │ │ └── Item.php │ │ ├── RawValue.php │ │ ├── Reference.php │ │ ├── ReferenceInterface.php │ │ ├── Result │ │ │ └── Pdo.php │ │ └── ResultInterface.php │ ├── Debug.php │ ├── Debug │ │ ├── Dump.php │ │ └── Exception.php │ ├── Di.php │ ├── Di │ │ ├── AbstractInjectionAware.php │ │ ├── DiInterface.php │ │ ├── Exception.php │ │ ├── Exception │ │ │ └── ServiceResolutionException.php │ │ ├── FactoryDefault.php │ │ ├── FactoryDefault │ │ │ └── Cli.php │ │ ├── Injectable.php │ │ ├── InjectionAwareInterface.php │ │ ├── Service.php │ │ ├── Service │ │ │ └── Builder.php │ │ ├── ServiceInterface.php │ │ └── ServiceProviderInterface.php │ ├── Dispatcher │ │ ├── AbstractDispatcher.php │ │ ├── DispatcherInterface.php │ │ └── Exception.php │ ├── Domain │ │ └── Payload │ │ │ ├── Payload.php │ │ │ ├── PayloadFactory.php │ │ │ ├── PayloadInterface.php │ │ │ ├── ReadableInterface.php │ │ │ ├── Status.php │ │ │ └── WriteableInterface.php │ ├── Escaper.php │ ├── Escaper │ │ ├── EscaperInterface.php │ │ └── Exception.php │ ├── Events │ │ ├── Event.php │ │ ├── EventInterface.php │ │ ├── EventsAwareInterface.php │ │ ├── Exception.php │ │ ├── Manager.php │ │ └── ManagerInterface.php │ ├── Exception.php │ ├── Factory │ │ ├── AbstractFactory.php │ │ └── Exception.php │ ├── Filter.php │ ├── Filter │ │ ├── Exception.php │ │ ├── FilterFactory.php │ │ ├── FilterInterface.php │ │ └── Sanitize │ │ │ ├── AbsInt.php │ │ │ ├── Alnum.php │ │ │ ├── Alpha.php │ │ │ ├── BoolVal.php │ │ │ ├── Email.php │ │ │ ├── FloatVal.php │ │ │ ├── IntVal.php │ │ │ ├── Lower.php │ │ │ ├── LowerFirst.php │ │ │ ├── Regex.php │ │ │ ├── Remove.php │ │ │ ├── Replace.php │ │ │ ├── Special.php │ │ │ ├── SpecialFull.php │ │ │ ├── StringVal.php │ │ │ ├── Striptags.php │ │ │ ├── Trim.php │ │ │ ├── Upper.php │ │ │ ├── UpperFirst.php │ │ │ ├── UpperWords.php │ │ │ └── Url.php │ ├── Flash │ │ ├── AbstractFlash.php │ │ ├── Direct.php │ │ ├── Exception.php │ │ ├── FlashInterface.php │ │ └── Session.php │ ├── Forms │ │ ├── Element │ │ │ ├── AbstractElement.php │ │ │ ├── Check.php │ │ │ ├── Date.php │ │ │ ├── ElementInterface.php │ │ │ ├── Email.php │ │ │ ├── File.php │ │ │ ├── Hidden.php │ │ │ ├── Numeric.php │ │ │ ├── Password.php │ │ │ ├── Radio.php │ │ │ ├── Select.php │ │ │ ├── Submit.php │ │ │ ├── Text.php │ │ │ └── TextArea.php │ │ ├── Exception.php │ │ ├── Form.php │ │ └── Manager.php │ ├── Helper │ │ ├── Arr.php │ │ ├── Exception.php │ │ ├── Fs.php │ │ ├── Json.php │ │ ├── Number.php │ │ └── Str.php │ ├── Html │ │ ├── Attributes.php │ │ ├── Attributes │ │ │ ├── AttributesInterface.php │ │ │ └── RenderInterface.php │ │ ├── Breadcrumbs.php │ │ ├── Exception.php │ │ ├── Helper │ │ │ ├── AbstractHelper.php │ │ │ ├── Anchor.php │ │ │ ├── AnchorRaw.php │ │ │ ├── Body.php │ │ │ ├── Button.php │ │ │ ├── Close.php │ │ │ ├── Element.php │ │ │ ├── ElementRaw.php │ │ │ ├── Form.php │ │ │ ├── Img.php │ │ │ ├── Label.php │ │ │ └── TextArea.php │ │ ├── Link │ │ │ ├── EvolvableLink.php │ │ │ ├── EvolvableLinkProvider.php │ │ │ ├── Link.php │ │ │ ├── LinkProvider.php │ │ │ └── Serializer │ │ │ │ ├── Header.php │ │ │ │ └── SerializerInterface.php │ │ └── TagFactory.php │ ├── Http │ │ ├── Cookie.php │ │ ├── Cookie │ │ │ ├── CookieInterface.php │ │ │ └── Exception.php │ │ ├── Message │ │ │ ├── AbstractCommon.php │ │ │ ├── AbstractMessage.php │ │ │ ├── AbstractRequest.php │ │ │ ├── Exception │ │ │ │ └── InvalidArgumentException.php │ │ │ ├── Request.php │ │ │ ├── RequestFactory.php │ │ │ ├── Response.php │ │ │ ├── ResponseFactory.php │ │ │ ├── ServerRequest.php │ │ │ ├── ServerRequestFactory.php │ │ │ ├── Stream.php │ │ │ ├── Stream │ │ │ │ ├── Input.php │ │ │ │ ├── Memory.php │ │ │ │ └── Temp.php │ │ │ ├── StreamFactory.php │ │ │ ├── UploadedFile.php │ │ │ ├── UploadedFileFactory.php │ │ │ ├── Uri.php │ │ │ └── UriFactory.php │ │ ├── Request.php │ │ ├── Request │ │ │ ├── Exception.php │ │ │ ├── File.php │ │ │ └── FileInterface.php │ │ ├── RequestInterface.php │ │ ├── Response.php │ │ ├── Response │ │ │ ├── Cookies.php │ │ │ ├── CookiesInterface.php │ │ │ ├── Exception.php │ │ │ ├── Headers.php │ │ │ └── HeadersInterface.php │ │ ├── ResponseInterface.php │ │ └── Server │ │ │ ├── AbstractMiddleware.php │ │ │ └── AbstractRequestHandler.php │ ├── Image │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ ├── Gd.php │ │ │ └── Imagick.php │ │ ├── Enum.php │ │ ├── Exception.php │ │ └── ImageFactory.php │ ├── Kernel.php │ ├── Loader.php │ ├── Loader │ │ └── Exception.php │ ├── Logger.php │ ├── Logger │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ ├── Noop.php │ │ │ ├── Stream.php │ │ │ └── Syslog.php │ │ ├── AdapterFactory.php │ │ ├── Exception.php │ │ ├── Formatter │ │ │ ├── AbstractFormatter.php │ │ │ ├── FormatterInterface.php │ │ │ ├── Json.php │ │ │ └── Line.php │ │ ├── Item.php │ │ └── LoggerFactory.php │ ├── Messages │ │ ├── Exception.php │ │ ├── Message.php │ │ ├── MessageInterface.php │ │ └── Messages.php │ ├── Mvc │ │ ├── Application.php │ │ ├── Application │ │ │ └── Exception.php │ │ ├── Controller.php │ │ ├── Controller │ │ │ └── BindModelInterface.php │ │ ├── ControllerInterface.php │ │ ├── Dispatcher.php │ │ ├── Dispatcher │ │ │ └── Exception.php │ │ ├── DispatcherInterface.php │ │ ├── EntityInterface.php │ │ ├── Micro.php │ │ ├── Micro │ │ │ ├── Collection.php │ │ │ ├── CollectionInterface.php │ │ │ ├── Exception.php │ │ │ ├── LazyLoader.php │ │ │ └── MiddlewareInterface.php │ │ ├── Model.php │ │ ├── Model │ │ │ ├── Behavior.php │ │ │ ├── Behavior │ │ │ │ ├── SoftDelete.php │ │ │ │ └── Timestampable.php │ │ │ ├── BehaviorInterface.php │ │ │ ├── Binder.php │ │ │ ├── Binder │ │ │ │ └── BindableInterface.php │ │ │ ├── BinderInterface.php │ │ │ ├── Criteria.php │ │ │ ├── CriteriaInterface.php │ │ │ ├── Exception.php │ │ │ ├── Manager.php │ │ │ ├── ManagerInterface.php │ │ │ ├── MetaData.php │ │ │ ├── MetaData │ │ │ │ ├── Apcu.php │ │ │ │ ├── Libmemcached.php │ │ │ │ ├── Memory.php │ │ │ │ ├── Redis.php │ │ │ │ ├── Strategy │ │ │ │ │ ├── Annotations.php │ │ │ │ │ ├── Introspection.php │ │ │ │ │ └── StrategyInterface.php │ │ │ │ └── Stream.php │ │ │ ├── MetaDataInterface.php │ │ │ ├── Query.php │ │ │ ├── Query │ │ │ │ ├── Builder.php │ │ │ │ ├── BuilderInterface.php │ │ │ │ ├── Lang.php │ │ │ │ ├── Status.php │ │ │ │ └── StatusInterface.php │ │ │ ├── QueryInterface.php │ │ │ ├── Relation.php │ │ │ ├── RelationInterface.php │ │ │ ├── ResultInterface.php │ │ │ ├── Resultset.php │ │ │ ├── Resultset │ │ │ │ ├── Complex.php │ │ │ │ └── Simple.php │ │ │ ├── ResultsetInterface.php │ │ │ ├── Row.php │ │ │ ├── Transaction.php │ │ │ ├── Transaction │ │ │ │ ├── Exception.php │ │ │ │ ├── Failed.php │ │ │ │ ├── Manager.php │ │ │ │ └── ManagerInterface.php │ │ │ ├── TransactionInterface.php │ │ │ └── ValidationFailed.php │ │ ├── ModelInterface.php │ │ ├── ModuleDefinitionInterface.php │ │ ├── Router.php │ │ ├── Router │ │ │ ├── Annotations.php │ │ │ ├── Exception.php │ │ │ ├── Group.php │ │ │ ├── GroupInterface.php │ │ │ ├── Route.php │ │ │ └── RouteInterface.php │ │ ├── RouterInterface.php │ │ ├── View.php │ │ ├── View │ │ │ ├── Engine │ │ │ │ ├── AbstractEngine.php │ │ │ │ ├── EngineInterface.php │ │ │ │ ├── Php.php │ │ │ │ ├── Volt.php │ │ │ │ └── Volt │ │ │ │ │ ├── Compiler.php │ │ │ │ │ └── Exception.php │ │ │ ├── Exception.php │ │ │ └── Simple.php │ │ ├── ViewBaseInterface.php │ │ └── ViewInterface.php │ ├── Paginator │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ ├── Model.php │ │ │ ├── NativeArray.php │ │ │ └── QueryBuilder.php │ │ ├── Exception.php │ │ ├── PaginatorFactory.php │ │ ├── Repository.php │ │ └── RepositoryInterface.php │ ├── Registry.php │ ├── Security.php │ ├── Security │ │ ├── Exception.php │ │ └── Random.php │ ├── Session │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── Libmemcached.php │ │ │ ├── Noop.php │ │ │ ├── Redis.php │ │ │ └── Stream.php │ │ ├── Bag.php │ │ ├── Exception.php │ │ ├── Manager.php │ │ └── ManagerInterface.php │ ├── Storage │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ ├── Apcu.php │ │ │ ├── Libmemcached.php │ │ │ ├── Memory.php │ │ │ ├── Redis.php │ │ │ └── Stream.php │ │ ├── AdapterFactory.php │ │ ├── Exception.php │ │ ├── Serializer │ │ │ ├── AbstractSerializer.php │ │ │ ├── Base64.php │ │ │ ├── Igbinary.php │ │ │ ├── Json.php │ │ │ ├── Msgpack.php │ │ │ ├── None.php │ │ │ ├── Php.php │ │ │ └── SerializerInterface.php │ │ └── SerializerFactory.php │ ├── Tag.php │ ├── Tag │ │ ├── Exception.php │ │ └── Select.php │ ├── Text.php │ ├── Translate │ │ ├── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterInterface.php │ │ │ ├── Csv.php │ │ │ ├── Gettext.php │ │ │ └── NativeArray.php │ │ ├── Exception.php │ │ ├── Interpolator │ │ │ ├── AssociativeArray.php │ │ │ ├── IndexedArray.php │ │ │ └── InterpolatorInterface.php │ │ ├── InterpolatorFactory.php │ │ └── TranslateFactory.php │ ├── Url.php │ ├── Url │ │ ├── Exception.php │ │ └── UrlInterface.php │ ├── Validation.php │ ├── Validation │ │ ├── AbstractCombinedFieldsValidator.php │ │ ├── AbstractValidator.php │ │ ├── AbstractValidatorComposite.php │ │ ├── Exception.php │ │ ├── ValidationInterface.php │ │ ├── Validator │ │ │ ├── Alnum.php │ │ │ ├── Alpha.php │ │ │ ├── Between.php │ │ │ ├── Callback.php │ │ │ ├── Confirmation.php │ │ │ ├── CreditCard.php │ │ │ ├── Date.php │ │ │ ├── Digit.php │ │ │ ├── Email.php │ │ │ ├── Exception.php │ │ │ ├── ExclusionIn.php │ │ │ ├── File.php │ │ │ ├── File │ │ │ │ ├── AbstractFile.php │ │ │ │ ├── MimeType.php │ │ │ │ ├── Resolution │ │ │ │ │ ├── Equal.php │ │ │ │ │ ├── Max.php │ │ │ │ │ └── Min.php │ │ │ │ └── Size │ │ │ │ │ ├── Equal.php │ │ │ │ │ ├── Max.php │ │ │ │ │ └── Min.php │ │ │ ├── Identical.php │ │ │ ├── InclusionIn.php │ │ │ ├── Ip.php │ │ │ ├── Numericality.php │ │ │ ├── PresenceOf.php │ │ │ ├── Regex.php │ │ │ ├── StringLength.php │ │ │ ├── StringLength │ │ │ │ ├── Max.php │ │ │ │ └── Min.php │ │ │ ├── Uniqueness.php │ │ │ └── Url.php │ │ ├── ValidatorCompositeInterface.php │ │ ├── ValidatorFactory.php │ │ └── ValidatorInterface.php │ └── Version.php ├── bash ├── cli.php ├── cmd.bat ├── composer.json ├── config │ ├── Aliyun.php │ ├── Baidu.php │ ├── Db.php │ ├── Env.php │ ├── Redis.php │ ├── Socket.php │ └── Tencent.php ├── library │ ├── Barcode.php │ ├── Captcha.php │ ├── Curl.php │ ├── Export.php │ ├── FileEo.php │ ├── Qrcode.php │ ├── Redis.php │ ├── Safety.php │ ├── Socket.php │ ├── Upload.php │ ├── aliyun │ │ ├── Oss.php │ │ ├── Pay.php │ │ └── Signature.php │ ├── baidu │ │ └── TongJi.php │ └── tencent │ │ ├── Im.php │ │ ├── Pay.php │ │ ├── Signature.php │ │ └── Trtc.php ├── main.php ├── middleware │ ├── Cors.php │ └── NotFound.php ├── model │ ├── ApiMenu.php │ ├── ApiPerm.php │ ├── ApiRole.php │ ├── Demo.php │ ├── Logs.php │ ├── Model.php │ ├── SysMenu.php │ ├── SysPerm.php │ ├── SysRole.php │ ├── User.php │ ├── UserInfo.php │ ├── WebNews.php │ ├── WebNewsClass.php │ └── WebNewsHtml.php ├── modules │ ├── admin │ │ ├── ApiMenus.php │ │ ├── ApiRole.php │ │ ├── Index.php │ │ ├── SysFile.php │ │ ├── SysMenus.php │ │ ├── SysRole.php │ │ ├── SysUser.php │ │ ├── User.php │ │ ├── UserInfo.php │ │ ├── UserPasswd.php │ │ ├── WebNews.php │ │ └── WebNewsClass.php │ ├── api │ │ ├── Index.php │ │ └── User.php │ └── home │ │ └── Index.php ├── public │ ├── .htaccess │ ├── .well-known │ │ └── apple-app-site-association │ ├── code │ │ └── index.php │ ├── favicon.ico │ ├── index.php │ └── upload │ │ └── .gitkeep ├── router │ ├── Admin.php │ ├── Api.php │ └── Home.php ├── service │ ├── AdminToken.php │ ├── ApiToken.php │ ├── Base.php │ ├── Data.php │ ├── Logs.php │ └── Socket.php ├── task │ ├── Base.php │ ├── MainTask.php │ ├── RedisTask.php │ └── SocketTask.php └── util │ ├── Base64.php │ ├── Hash.php │ ├── Os.php │ ├── Type.php │ ├── Url.php │ └── Util.php ├── php ├── .gitignore ├── bash ├── cli.php ├── composer.json ├── config │ ├── Aliyun.php │ ├── Baidu.php │ ├── Db.php │ ├── Env.php │ ├── Google.php │ ├── Redis.php │ ├── Socket.php │ └── Tencent.php ├── library │ ├── Barcode.php │ ├── Captcha.php │ ├── Curl.php │ ├── Export.php │ ├── FileEo.php │ ├── Qrcode.php │ ├── Redis.php │ ├── Safety.php │ ├── Socket.php │ ├── Upload.php │ ├── aliyun │ │ ├── Oss.php │ │ ├── Pay.php │ │ └── Signature.php │ ├── baidu │ │ └── TongJi.php │ ├── google │ │ ├── Oauth.php │ │ └── YouTube.php │ └── tencent │ │ ├── Im.php │ │ ├── Pay.php │ │ ├── Signature.php │ │ └── Trtc.php ├── main.php ├── middleware │ └── Cors.php ├── model │ ├── ApiMenu.php │ ├── ApiPerm.php │ ├── ApiRole.php │ ├── Demo.php │ ├── Model.php │ ├── SysMenu.php │ ├── SysPerm.php │ ├── SysRole.php │ ├── Test.php │ ├── User.php │ ├── UserInfo.php │ ├── WebNews.php │ ├── WebNewsClass.php │ └── WebNewsHtml.php ├── modules │ ├── admin │ │ ├── ApiMenus.php │ │ ├── ApiRole.php │ │ ├── Index.php │ │ ├── SysFile.php │ │ ├── SysMenus.php │ │ ├── SysRole.php │ │ ├── SysUser.php │ │ ├── User.php │ │ ├── UserInfo.php │ │ ├── UserPasswd.php │ │ ├── WebNews.php │ │ └── WebNewsClass.php │ ├── api │ │ ├── Index.php │ │ └── User.php │ └── home │ │ └── Index.php ├── public │ ├── index.php │ └── upload │ │ └── .gitkeep ├── router │ ├── Admin.php │ ├── Api.php │ └── Home.php ├── service │ ├── AdminToken.php │ ├── ApiToken.php │ ├── Base.php │ ├── Data.php │ ├── Logs.php │ └── Socket.php ├── task │ ├── Base.php │ └── Main.php └── util │ ├── Base64.php │ ├── Hash.php │ ├── Os.php │ ├── Type.php │ ├── Url.php │ └── Util.php ├── python ├── .gitignore ├── bash ├── cli.py ├── cmd.bat ├── config │ ├── aliyun.py │ ├── baidu.py │ ├── db.py │ ├── env.py │ ├── redis.py │ ├── socket.py │ └── tencent.py ├── library │ ├── aliyun │ │ ├── oss.py │ │ ├── pay.py │ │ └── signature.py │ ├── baidu │ │ └── tong_ji.py │ ├── captcha.py │ ├── curl.py │ ├── export.py │ ├── file_eo.py │ ├── qrcode.py │ ├── redis.py │ ├── safety.py │ ├── socket.py │ ├── tencent │ │ ├── im.py │ │ ├── pay.py │ │ ├── signature.py │ │ └── trtc.py │ └── upload.py ├── main.py ├── middleware │ └── cors.py ├── model │ ├── api_menu.py │ ├── api_perm.py │ ├── api_role.py │ ├── demo.py │ ├── logs.py │ ├── model.py │ ├── sys_menu.py │ ├── sys_perm.py │ ├── sys_role.py │ ├── user.py │ ├── user_info.py │ ├── web_news.py │ ├── web_news_class.py │ └── web_news_html.py ├── modules │ ├── admin │ │ ├── api_menus.py │ │ ├── api_role.py │ │ ├── index.py │ │ ├── sys_file.py │ │ ├── sys_menus.py │ │ ├── sys_role.py │ │ ├── sys_user.py │ │ ├── user.py │ │ ├── user_info.py │ │ ├── user_passwd.py │ │ ├── web_news.py │ │ └── web_news_class.py │ ├── api │ │ ├── index.py │ │ └── user.py │ └── home │ │ └── index.py ├── public │ ├── favicon.ico │ └── upload │ │ └── .gitkeep ├── router │ ├── admin.py │ ├── api.py │ └── home.py ├── server.ini ├── service │ ├── admin_token.py │ ├── api_token.py │ ├── base.py │ ├── data.py │ ├── logs.py │ └── socket.py ├── task │ ├── base.py │ ├── main.py │ ├── redis.py │ └── socket.py ├── tmp │ └── favicon.ico └── util │ ├── base64.py │ ├── hash.py │ ├── os.py │ ├── type.py │ ├── url.py │ └── util.py ├── tools ├── bash ├── certificate │ ├── developer.mobileprovision │ ├── developer.p12 │ └── passwd.md ├── cmd.bat ├── database │ ├── adminer.php │ └── data.sql ├── design │ ├── APP.xd │ └── Screen.xd └── fonts │ ├── admin.json │ ├── app.json │ ├── ui.json │ └── web.json ├── vueapp ├── .gitignore ├── babel.config.js ├── bash ├── cmd.bat ├── dist │ ├── css │ │ ├── app.339624da.css │ │ ├── chunk-2a2c7a73.ee466d57.css │ │ └── chunk-7d4535bb.dd2b5e92.css │ ├── favicon.png │ ├── img │ │ ├── bg.09170a76.svg │ │ ├── logo.425db1b2.svg │ │ └── logo.5f2c810c.svg │ ├── index.html │ ├── js │ │ ├── app.aeab2bb5.js │ │ ├── chunk-0ba47dcd.e8650e90.js │ │ ├── chunk-2a2c7a73.befb113c.js │ │ ├── chunk-7d4535bb.c5ed36be.js │ │ └── chunk-vendors.e71ac576.js │ ├── manifest.json │ └── res │ │ ├── icons │ │ ├── 1024x1024.png │ │ ├── 120x120.png │ │ ├── 144x144.png │ │ ├── 152x152.png │ │ ├── 167x167.png │ │ ├── 180x180.png │ │ ├── 192x192.png │ │ ├── 20x20.png │ │ ├── 29x29.png │ │ ├── 40x40.png │ │ ├── 58x58.png │ │ ├── 60x60.png │ │ ├── 72x72.png │ │ ├── 76x76.png │ │ ├── 80x80.png │ │ ├── 87x87.png │ │ └── 96x96.png │ │ └── screen │ │ ├── android(1080x1882).png │ │ ├── android(480x762).png │ │ ├── android(720x1242).png │ │ ├── ipad(1536x2048).png │ │ ├── ipad(1668x2224).png │ │ ├── ipad(1668x2388).png │ │ ├── ipad(2048x2732).png │ │ ├── ipad(768x1024).png │ │ ├── iphone(1125x2436).png │ │ ├── iphone(1242x2208).png │ │ ├── iphone(1242x2688).png │ │ ├── iphone(640x1136).png │ │ ├── iphone(640x960).png │ │ ├── iphone(750x1334).png │ │ └── iphone(828x1792).png ├── package.json ├── public │ ├── favicon.png │ ├── index.html │ ├── manifest.json │ └── res │ │ ├── icons │ │ ├── 1024x1024.png │ │ ├── 120x120.png │ │ ├── 144x144.png │ │ ├── 152x152.png │ │ ├── 167x167.png │ │ ├── 180x180.png │ │ ├── 192x192.png │ │ ├── 20x20.png │ │ ├── 29x29.png │ │ ├── 40x40.png │ │ ├── 58x58.png │ │ ├── 60x60.png │ │ ├── 72x72.png │ │ ├── 76x76.png │ │ ├── 80x80.png │ │ ├── 87x87.png │ │ └── 96x96.png │ │ └── screen │ │ ├── android(1080x1882).png │ │ ├── android(480x762).png │ │ ├── android(720x1242).png │ │ ├── ipad(1536x2048).png │ │ ├── ipad(1668x2224).png │ │ ├── ipad(1668x2388).png │ │ ├── ipad(2048x2732).png │ │ ├── ipad(768x1024).png │ │ ├── iphone(1125x2436).png │ │ ├── iphone(1242x2208).png │ │ ├── iphone(1242x2688).png │ │ ├── iphone(640x1136).png │ │ ├── iphone(640x960).png │ │ ├── iphone(750x1334).png │ │ └── iphone(828x1792).png ├── src │ ├── App.ts │ ├── App.vue │ ├── Menus.ts │ ├── assets │ │ ├── icon │ │ │ ├── bg.svg │ │ │ └── logo.svg │ │ ├── logo.svg │ │ └── style │ │ │ ├── app.css │ │ │ ├── icon.css │ │ │ └── ui.css │ ├── components │ │ ├── chart │ │ │ ├── interval.vue │ │ │ ├── line.vue │ │ │ └── pie.vue │ │ ├── loading │ │ │ └── index.vue │ │ ├── page-view │ │ │ └── index.vue │ │ ├── picker │ │ │ ├── date.vue │ │ │ └── index.vue │ │ ├── popup │ │ │ └── index.vue │ │ ├── scroll-view │ │ │ └── index.vue │ │ ├── swipe │ │ │ ├── index.vue │ │ │ └── item │ │ │ │ └── index.vue │ │ ├── tabbar │ │ │ ├── index.vue │ │ │ └── page │ │ │ │ └── index.vue │ │ └── touch │ │ │ └── index.vue │ ├── env.ts │ ├── library │ │ ├── Msg.ts │ │ ├── Socket.ts │ │ ├── Start.ts │ │ ├── Storage.ts │ │ ├── array │ │ │ └── unique.ts │ │ ├── base64 │ │ │ ├── decode.ts │ │ │ ├── encode.ts │ │ │ └── ext-type.ts │ │ ├── device │ │ │ └── mobile.ts │ │ ├── down │ │ │ ├── blob.ts │ │ │ └── file.ts │ │ ├── html │ │ │ ├── load.ts │ │ │ └── observe.ts │ │ ├── plus │ │ │ ├── back.ts │ │ │ ├── camera.ts │ │ │ ├── img │ │ │ │ ├── compress.ts │ │ │ │ └── reader.ts │ │ │ ├── map │ │ │ │ └── geolocation.ts │ │ │ ├── notify.ts │ │ │ ├── ready.ts │ │ │ └── version-diff.ts │ │ ├── price │ │ │ ├── format.ts │ │ │ └── to-fixed.ts │ │ ├── reg │ │ │ ├── right.ts │ │ │ └── test.ts │ │ ├── request │ │ │ ├── delete.ts │ │ │ ├── get.ts │ │ │ ├── patch.ts │ │ │ ├── post.ts │ │ │ └── put.ts │ │ ├── tel │ │ │ ├── call.ts │ │ │ └── hide.ts │ │ ├── time │ │ │ ├── date.ts │ │ │ ├── day.ts │ │ │ ├── format.ts │ │ │ ├── size.ts │ │ │ └── week.ts │ │ ├── ui │ │ │ ├── back.ts │ │ │ ├── loading.ts │ │ │ ├── navigate-to.ts │ │ │ └── toast.ts │ │ └── url │ │ │ ├── decode.ts │ │ │ └── encode.ts │ ├── main.ts │ ├── router │ │ └── index.ts │ ├── shims-vue.d.ts │ ├── store │ │ └── index.ts │ └── views │ │ ├── Home.ts │ │ ├── Home.vue │ │ ├── Refresh.vue │ │ ├── demo │ │ ├── Demo.ts │ │ └── Demo.vue │ │ └── home │ │ ├── Code.ts │ │ ├── Code.vue │ │ ├── Index.css │ │ ├── Index.ts │ │ ├── Index.vue │ │ ├── Me.ts │ │ └── Me.vue ├── tsconfig.json ├── tslint.json └── vue.config.js ├── weapp ├── .gitignore ├── app.js ├── app.json ├── app.wxss ├── assets │ ├── icon │ │ ├── bg.svg │ │ └── logo.svg │ ├── logo.png │ ├── logo.svg │ └── style │ │ ├── app.wxss │ │ ├── icon.wxss │ │ └── ui.wxss ├── components │ ├── img-load │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── page-error │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── page-view │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── popup │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── scroll-view │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── swipe-cell │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── tab │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── tabbar │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ └── tool-touch │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss ├── env.js ├── jsconfig.json ├── libray │ ├── Msg.js │ ├── Socket.js │ ├── Start.js │ ├── inc │ │ ├── base64-decode.js │ │ ├── base64-encode.js │ │ ├── html-format.js │ │ ├── html-info.js │ │ ├── img-reader.js │ │ ├── index.js │ │ ├── power.js │ │ ├── qrurl-analysis.js │ │ └── tel-call.js │ ├── plus │ │ ├── amap-wx.js │ │ ├── camera.js │ │ ├── index.js │ │ ├── map-address.js │ │ ├── map-geolocation.js │ │ ├── map-open.js │ │ ├── pay.js │ │ └── photo.js │ ├── store │ │ ├── create.js │ │ └── diff.js │ ├── ui │ │ ├── index.js │ │ ├── request-get.js │ │ ├── request-post.js │ │ ├── storage.js │ │ ├── ui-back.js │ │ ├── ui-loading.js │ │ ├── ui-navigate-to.js │ │ ├── ui-toast.js │ │ └── uinfo-reset.js │ └── wxparse │ │ ├── html2json.js │ │ ├── htmlparser.js │ │ ├── showdown.js │ │ ├── wxDiscode.js │ │ ├── wxParse.js │ │ ├── wxParse.wxml │ │ └── wxParse.wxss ├── pages │ ├── demo │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo.wxml │ │ └── demo.wxss │ └── index │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss ├── project.config.json ├── sitemap.json └── store.js └── web ├── .gitignore ├── babel.config.js ├── bash ├── cmd.bat ├── package.json ├── public ├── docs │ ├── print.css │ ├── prism.css │ └── prism.js ├── favicon.png └── index.html ├── src ├── App.ts ├── App.vue ├── assets │ ├── img │ │ └── bg.svg │ ├── logo.svg │ └── style │ │ ├── app.css │ │ ├── icon.css │ │ └── ui.css ├── components │ ├── loading │ │ └── index.vue │ ├── popup │ │ └── index.vue │ └── scroll-view │ │ └── index.vue ├── docs │ ├── Menus.ts │ ├── flutter │ │ └── install │ │ │ ├── build.md │ │ │ ├── index.md │ │ │ └── install.md │ ├── gin │ │ ├── db │ │ │ ├── commit.md │ │ │ ├── delete.md │ │ │ ├── insert.md │ │ │ ├── join.md │ │ │ ├── model.md │ │ │ ├── select.md │ │ │ └── update.md │ │ ├── install │ │ │ ├── build.md │ │ │ ├── index.md │ │ │ └── install.md │ │ ├── library │ │ │ ├── curl.md │ │ │ ├── export.md │ │ │ ├── qrcode.md │ │ │ ├── redis.md │ │ │ ├── safety.md │ │ │ ├── socket.md │ │ │ └── upload.md │ │ ├── service │ │ │ ├── base.md │ │ │ ├── data.md │ │ │ ├── logs.md │ │ │ ├── socket.md │ │ │ └── token.md │ │ └── util │ │ │ ├── base64.md │ │ │ ├── hash.md │ │ │ ├── os.md │ │ │ ├── type.md │ │ │ ├── url.md │ │ │ └── util.md │ ├── java │ │ ├── db │ │ │ ├── commit.md │ │ │ ├── delete.md │ │ │ ├── insert.md │ │ │ ├── join.md │ │ │ ├── model.md │ │ │ ├── select.md │ │ │ └── update.md │ │ ├── install │ │ │ ├── build.md │ │ │ ├── index.md │ │ │ └── install.md │ │ ├── library │ │ │ ├── curl.md │ │ │ ├── export.md │ │ │ ├── qrcode.md │ │ │ ├── redis.md │ │ │ ├── safety.md │ │ │ ├── socket.md │ │ │ └── upload.md │ │ ├── service │ │ │ ├── base.md │ │ │ ├── data.md │ │ │ ├── logs.md │ │ │ ├── socket.md │ │ │ └── token.md │ │ └── util │ │ │ ├── base64.md │ │ │ ├── dynamic.md │ │ │ ├── hash.md │ │ │ ├── http.md │ │ │ ├── os.md │ │ │ ├── type.md │ │ │ ├── url.md │ │ │ └── util.md │ ├── linux │ │ ├── archlinux │ │ │ ├── github.md │ │ │ ├── gnome.md │ │ │ ├── install.md │ │ │ └── lnmp.md │ │ ├── centos │ │ │ ├── config.md │ │ │ └── lnmp.md │ │ ├── service │ │ │ ├── git.md │ │ │ └── vpn.md │ │ ├── shell │ │ │ ├── docker.md │ │ │ ├── elasticsearch.md │ │ │ ├── index.md │ │ │ ├── macos.md │ │ │ ├── mariadb.md │ │ │ ├── maxscale.md │ │ │ ├── pulsar.md │ │ │ ├── pyqt.md │ │ │ ├── ssl.md │ │ │ └── youtube.md │ │ └── ubuntu │ │ │ ├── config.md │ │ │ └── lnmp.md │ ├── php │ │ ├── db │ │ │ ├── commit.md │ │ │ ├── delete.md │ │ │ ├── insert.md │ │ │ ├── join.md │ │ │ ├── model.md │ │ │ ├── select.md │ │ │ └── update.md │ │ ├── install │ │ │ ├── build.md │ │ │ ├── index.md │ │ │ └── install.md │ │ ├── library │ │ │ ├── curl.md │ │ │ ├── export.md │ │ │ ├── qrcode.md │ │ │ ├── redis.md │ │ │ ├── safety.md │ │ │ ├── socket.md │ │ │ └── upload.md │ │ ├── service │ │ │ ├── base.md │ │ │ ├── data.md │ │ │ ├── logs.md │ │ │ ├── socket.md │ │ │ └── token.md │ │ └── util │ │ │ ├── base64.md │ │ │ ├── hash.md │ │ │ ├── os.md │ │ │ ├── type.md │ │ │ ├── url.md │ │ │ └── util.md │ ├── python │ │ ├── db │ │ │ ├── commit.md │ │ │ ├── delete.md │ │ │ ├── insert.md │ │ │ ├── join.md │ │ │ ├── model.md │ │ │ ├── select.md │ │ │ └── update.md │ │ ├── install │ │ │ ├── build.md │ │ │ ├── index.md │ │ │ └── install.md │ │ ├── library │ │ │ ├── curl.md │ │ │ ├── export.md │ │ │ ├── qrcode.md │ │ │ ├── redis.md │ │ │ ├── safety.md │ │ │ ├── socket.md │ │ │ └── upload.md │ │ ├── service │ │ │ ├── base.md │ │ │ ├── data.md │ │ │ ├── logs.md │ │ │ ├── socket.md │ │ │ └── token.md │ │ └── util │ │ │ ├── base64.md │ │ │ ├── hash.md │ │ │ ├── os.md │ │ │ ├── type.md │ │ │ ├── url.md │ │ │ └── util.md │ └── vue │ │ ├── admin │ │ ├── action.md │ │ ├── chart.md │ │ ├── dialog.md │ │ ├── form.md │ │ ├── img.md │ │ ├── loading.md │ │ ├── main.md │ │ ├── page.md │ │ ├── popover.md │ │ ├── popup.md │ │ ├── scrollview.md │ │ ├── search.md │ │ ├── switch.md │ │ ├── table.md │ │ ├── tabs.md │ │ ├── tag.md │ │ ├── tinymce.md │ │ ├── tree.md │ │ └── uploader.md │ │ ├── app │ │ ├── chart.md │ │ ├── loading.md │ │ ├── page-view.md │ │ ├── picker.md │ │ ├── popup.md │ │ ├── scroll-view.md │ │ ├── swipe.md │ │ ├── tabbar.md │ │ └── touch.md │ │ ├── install │ │ ├── build.md │ │ ├── icons.md │ │ ├── index.md │ │ └── install.md │ │ ├── library │ │ ├── array.md │ │ ├── base64.md │ │ ├── device.md │ │ ├── down.md │ │ ├── html.md │ │ ├── price.md │ │ ├── reg.md │ │ ├── request.md │ │ ├── storage.md │ │ ├── tel.md │ │ ├── time.md │ │ ├── ui.md │ │ ├── url.md │ │ └── util.md │ │ └── plus │ │ ├── camera.md │ │ ├── img.md │ │ ├── map.md │ │ ├── notify.md │ │ └── plus.md ├── env.ts ├── library │ ├── Storage.ts │ ├── array │ │ └── unique.ts │ ├── base64 │ │ ├── decode.ts │ │ ├── encode.ts │ │ └── ext-type.ts │ ├── device │ │ └── mobile.ts │ ├── down │ │ ├── blob.ts │ │ └── file.ts │ ├── html │ │ ├── load.ts │ │ └── observe.ts │ ├── plus │ │ ├── back.ts │ │ ├── camera.ts │ │ ├── img │ │ │ ├── compress.ts │ │ │ └── reader.ts │ │ ├── map │ │ │ └── geolocation.ts │ │ ├── notify.ts │ │ ├── ready.ts │ │ └── version-diff.ts │ ├── price │ │ ├── format.ts │ │ └── to-fixed.ts │ ├── reg │ │ ├── right.ts │ │ └── test.ts │ ├── request │ │ ├── delete.ts │ │ ├── get.ts │ │ ├── patch.ts │ │ ├── post.ts │ │ └── put.ts │ ├── tel │ │ ├── call.ts │ │ └── hide.ts │ ├── time │ │ ├── date.ts │ │ ├── day.ts │ │ ├── format.ts │ │ ├── size.ts │ │ └── week.ts │ ├── ui │ │ ├── back.ts │ │ ├── loading.ts │ │ ├── navigate-to.ts │ │ └── toast.ts │ └── url │ │ ├── decode.ts │ │ └── encode.ts ├── main.ts ├── router │ └── index.ts ├── shims-vue.d.ts ├── store │ └── index.ts └── views │ ├── Index.ts │ ├── Index.vue │ └── Refresh.vue ├── tsconfig.json ├── tslint.json └── vue.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | Version.md 2 | -------------------------------------------------------------------------------- /admin/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | yarn.lock 4 | # /dist 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /admin/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /admin/dist/css/409.0af9419f.css: -------------------------------------------------------------------------------- 1 | .wm-main[data-v-52e76285]{position:relative;overflow:auto}.wm-main[data-v-52e76285]::-webkit-scrollbar{width:8px;height:8px}.wm-main[data-v-52e76285]::-webkit-scrollbar-thumb{border-radius:4px;background:transparent}.wm-main[data-v-52e76285]:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.8)}.wm-main[data-v-52e76285]:hover::-webkit-scrollbar-track{background:hsla(0,0%,53%,.2)} -------------------------------------------------------------------------------- /admin/dist/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/favicon.png -------------------------------------------------------------------------------- /admin/dist/img/bg.b483ae4c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/img/bg.b483ae4c.jpg -------------------------------------------------------------------------------- /admin/dist/js/720-legacy.3859df02.js: -------------------------------------------------------------------------------- 1 | "use strict";(self["webpackChunkwebmis_vue"]=self["webpackChunkwebmis_vue"]||[]).push([[720],{4720:function(e,n,u){function t(e,n,u,t,r,c){return null}u.r(n),u.d(n,{default:function(){return i}});u(4916),u(5306);var r=u(6252),c=(0,r.aZ)({beforeRouteEnter:function(e,n,u){u((function(e){e.$router.replace(n.path)}))},mounted:function(){}}),o=u(3744);const f=(0,o.Z)(c,[["render",t]]);var i=f}}]); -------------------------------------------------------------------------------- /admin/dist/js/720.54930a1c.js: -------------------------------------------------------------------------------- 1 | "use strict";(self["webpackChunkwebmis_vue"]=self["webpackChunkwebmis_vue"]||[]).push([[720],{4720:function(e,u,n){function r(e,u,n,r,t,a){return null}n.r(u),n.d(u,{default:function(){return s}});var t=n(6252),a=(0,t.aZ)({beforeRouteEnter(e,u,n){n((e=>{e.$router.replace(u.path)}))},mounted(){}}),c=n(3744);const o=(0,c.Z)(a,[["render",r]]);var s=o}}]); -------------------------------------------------------------------------------- /admin/dist/res/icons/1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/1024x1024.png -------------------------------------------------------------------------------- /admin/dist/res/icons/120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/120x120.png -------------------------------------------------------------------------------- /admin/dist/res/icons/144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/144x144.png -------------------------------------------------------------------------------- /admin/dist/res/icons/152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/152x152.png -------------------------------------------------------------------------------- /admin/dist/res/icons/167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/167x167.png -------------------------------------------------------------------------------- /admin/dist/res/icons/180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/180x180.png -------------------------------------------------------------------------------- /admin/dist/res/icons/192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/192x192.png -------------------------------------------------------------------------------- /admin/dist/res/icons/20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/20x20.png -------------------------------------------------------------------------------- /admin/dist/res/icons/29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/29x29.png -------------------------------------------------------------------------------- /admin/dist/res/icons/40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/40x40.png -------------------------------------------------------------------------------- /admin/dist/res/icons/58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/58x58.png -------------------------------------------------------------------------------- /admin/dist/res/icons/60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/60x60.png -------------------------------------------------------------------------------- /admin/dist/res/icons/72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/72x72.png -------------------------------------------------------------------------------- /admin/dist/res/icons/76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/76x76.png -------------------------------------------------------------------------------- /admin/dist/res/icons/80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/80x80.png -------------------------------------------------------------------------------- /admin/dist/res/icons/87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/87x87.png -------------------------------------------------------------------------------- /admin/dist/res/icons/96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/icons/96x96.png -------------------------------------------------------------------------------- /admin/dist/res/screen/android(1080x1882).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/android(1080x1882).png -------------------------------------------------------------------------------- /admin/dist/res/screen/android(480x762).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/android(480x762).png -------------------------------------------------------------------------------- /admin/dist/res/screen/android(720x1242).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/android(720x1242).png -------------------------------------------------------------------------------- /admin/dist/res/screen/ipad(1536x2048).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/ipad(1536x2048).png -------------------------------------------------------------------------------- /admin/dist/res/screen/ipad(1668x2224).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/ipad(1668x2224).png -------------------------------------------------------------------------------- /admin/dist/res/screen/ipad(1668x2388).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/ipad(1668x2388).png -------------------------------------------------------------------------------- /admin/dist/res/screen/ipad(2048x2732).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/ipad(2048x2732).png -------------------------------------------------------------------------------- /admin/dist/res/screen/ipad(768x1024).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/ipad(768x1024).png -------------------------------------------------------------------------------- /admin/dist/res/screen/iphone(1125x2436).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/iphone(1125x2436).png -------------------------------------------------------------------------------- /admin/dist/res/screen/iphone(1242x2208).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/iphone(1242x2208).png -------------------------------------------------------------------------------- /admin/dist/res/screen/iphone(1242x2688).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/iphone(1242x2688).png -------------------------------------------------------------------------------- /admin/dist/res/screen/iphone(640x1136).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/iphone(640x1136).png -------------------------------------------------------------------------------- /admin/dist/res/screen/iphone(640x960).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/iphone(640x960).png -------------------------------------------------------------------------------- /admin/dist/res/screen/iphone(750x1334).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/iphone(750x1334).png -------------------------------------------------------------------------------- /admin/dist/res/screen/iphone(828x1792).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/dist/res/screen/iphone(828x1792).png -------------------------------------------------------------------------------- /admin/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/favicon.png -------------------------------------------------------------------------------- /admin/public/res/icons/1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/1024x1024.png -------------------------------------------------------------------------------- /admin/public/res/icons/120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/120x120.png -------------------------------------------------------------------------------- /admin/public/res/icons/144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/144x144.png -------------------------------------------------------------------------------- /admin/public/res/icons/152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/152x152.png -------------------------------------------------------------------------------- /admin/public/res/icons/167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/167x167.png -------------------------------------------------------------------------------- /admin/public/res/icons/180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/180x180.png -------------------------------------------------------------------------------- /admin/public/res/icons/192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/192x192.png -------------------------------------------------------------------------------- /admin/public/res/icons/20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/20x20.png -------------------------------------------------------------------------------- /admin/public/res/icons/29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/29x29.png -------------------------------------------------------------------------------- /admin/public/res/icons/40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/40x40.png -------------------------------------------------------------------------------- /admin/public/res/icons/58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/58x58.png -------------------------------------------------------------------------------- /admin/public/res/icons/60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/60x60.png -------------------------------------------------------------------------------- /admin/public/res/icons/72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/72x72.png -------------------------------------------------------------------------------- /admin/public/res/icons/76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/76x76.png -------------------------------------------------------------------------------- /admin/public/res/icons/80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/80x80.png -------------------------------------------------------------------------------- /admin/public/res/icons/87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/87x87.png -------------------------------------------------------------------------------- /admin/public/res/icons/96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/icons/96x96.png -------------------------------------------------------------------------------- /admin/public/res/screen/android(1080x1882).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/android(1080x1882).png -------------------------------------------------------------------------------- /admin/public/res/screen/android(480x762).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/android(480x762).png -------------------------------------------------------------------------------- /admin/public/res/screen/android(720x1242).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/android(720x1242).png -------------------------------------------------------------------------------- /admin/public/res/screen/ipad(1536x2048).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/ipad(1536x2048).png -------------------------------------------------------------------------------- /admin/public/res/screen/ipad(1668x2224).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/ipad(1668x2224).png -------------------------------------------------------------------------------- /admin/public/res/screen/ipad(1668x2388).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/ipad(1668x2388).png -------------------------------------------------------------------------------- /admin/public/res/screen/ipad(2048x2732).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/ipad(2048x2732).png -------------------------------------------------------------------------------- /admin/public/res/screen/ipad(768x1024).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/ipad(768x1024).png -------------------------------------------------------------------------------- /admin/public/res/screen/iphone(1125x2436).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/iphone(1125x2436).png -------------------------------------------------------------------------------- /admin/public/res/screen/iphone(1242x2208).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/iphone(1242x2208).png -------------------------------------------------------------------------------- /admin/public/res/screen/iphone(1242x2688).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/iphone(1242x2688).png -------------------------------------------------------------------------------- /admin/public/res/screen/iphone(640x1136).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/iphone(640x1136).png -------------------------------------------------------------------------------- /admin/public/res/screen/iphone(640x960).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/iphone(640x960).png -------------------------------------------------------------------------------- /admin/public/res/screen/iphone(750x1334).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/iphone(750x1334).png -------------------------------------------------------------------------------- /admin/public/res/screen/iphone(828x1792).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/public/res/screen/iphone(828x1792).png -------------------------------------------------------------------------------- /admin/src/assets/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/admin/src/assets/bg.jpg -------------------------------------------------------------------------------- /admin/src/components/form/title/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /admin/src/library/Storage.ts: -------------------------------------------------------------------------------- 1 | /* 本地硬盘 */ 2 | export default { 3 | /* 保存 */ 4 | setItem(key: string, data: string){ 5 | return window.localStorage.setItem(key,data); 6 | }, 7 | /* 获取 */ 8 | getItem(key: string){ 9 | return window.localStorage.getItem(key); 10 | }, 11 | /* 删除 */ 12 | removeItem(key: string){ 13 | return window.localStorage.removeItem(key); 14 | }, 15 | /* 清除 */ 16 | clear(){ 17 | return window.localStorage.clear(); 18 | }, 19 | } -------------------------------------------------------------------------------- /admin/src/library/array/unique.ts: -------------------------------------------------------------------------------- 1 | /* 数组去重复 */ 2 | export default (arr: Array)=>{ 3 | let data: Array = []; 4 | for(let i=0, l=arr.length; i{ 3 | return decodeURI(atob(base64)); 4 | } -------------------------------------------------------------------------------- /admin/src/library/base64/encode.ts: -------------------------------------------------------------------------------- 1 | /* 编码 */ 2 | export default (data: string)=>{ 3 | return btoa(encodeURI(data)); 4 | } -------------------------------------------------------------------------------- /admin/src/library/base64/ext-type.ts: -------------------------------------------------------------------------------- 1 | /* 类型 */ 2 | export default (ext: string)=>{ 3 | let type: string=''; 4 | if(ext=='jpg' || ext=='jpeg') type='data:image/jpeg;base64,'; 5 | else if(ext=='png') type='data:image/png;base64,'; 6 | else if(ext=='gif') type='data:image/gif;base64,'; 7 | return type; 8 | } -------------------------------------------------------------------------------- /admin/src/library/device/mobile.ts: -------------------------------------------------------------------------------- 1 | /* 手机系统 */ 2 | export default ()=>{ 3 | const flag = navigator.userAgent.match( 4 | /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i 5 | ); 6 | return flag?flag[0]:false; 7 | } -------------------------------------------------------------------------------- /admin/src/library/down/file.ts: -------------------------------------------------------------------------------- 1 | /* File */ 2 | export default (url: string, filename: string='down.txt')=>{ 3 | // 创建对象 4 | let a = document.createElement('a'); 5 | a.href = url; 6 | a.download = filename; 7 | document.body.appendChild(a); 8 | // 点击 9 | a.click(); 10 | // 移除 11 | document.body.removeChild(a); 12 | } -------------------------------------------------------------------------------- /admin/src/library/html/observe.ts: -------------------------------------------------------------------------------- 1 | /* 监听容器 */ 2 | export default (element: any, callback: Function, options: MutationObserverInit = {attributes: true, childList: true, subtree: true})=>{ 3 | let MutationObserver = window.MutationObserver; 4 | let obs = new MutationObserver((mutationList)=>{ 5 | callback(mutationList); 6 | }); 7 | obs.observe(element, options); 8 | } -------------------------------------------------------------------------------- /admin/src/library/plus/inc/back.ts: -------------------------------------------------------------------------------- 1 | 2 | import Toast from '@/library/ui/toast' 3 | 4 | /* Plus-Android返回键 */ 5 | export default (callback: any)=>{ 6 | try{ 7 | // @ts-ignore 8 | const webview = plus.webview.currentWebview(); 9 | // @ts-ignore 10 | plus.key.addEventListener('backbutton', ()=>{ 11 | webview.canBack(callback); 12 | }); 13 | }catch(e){ 14 | return Toast('Android返回键'); 15 | } 16 | } -------------------------------------------------------------------------------- /admin/src/library/plus/inc/ready.ts: -------------------------------------------------------------------------------- 1 | /* Plus-监听 */ 2 | export default (callback: any)=>{ 3 | document.addEventListener("plusready",callback,false); 4 | } -------------------------------------------------------------------------------- /admin/src/library/plus/inc/version-diff.ts: -------------------------------------------------------------------------------- 1 | /* 版本比较 */ 2 | export default (v1: string, v2: string)=>{ 3 | if(v1==v2) return true; 4 | const arr1 = v1.split('.'); 5 | const arr2 = v2.split('.'); 6 | if(parseInt(arr1[0])>parseInt(arr2[0])) return true; 7 | else if(parseInt(arr1[1])>parseInt(arr2[1])) return true; 8 | else if(parseInt(arr1[2])>parseInt(arr2[2])) return true; 9 | else return false; 10 | } -------------------------------------------------------------------------------- /admin/src/library/price/format.ts: -------------------------------------------------------------------------------- 1 | /* 格式化-金额 */ 2 | export default { 3 | encode(price: string, fixed: number=2){ 4 | return (parseFloat(price).toFixed(fixed).toString()).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g,'$&,'); 5 | }, 6 | decode(price: string, fixed: number=2){ 7 | return parseFloat(price.replace(/,/g,'')).toFixed(fixed); 8 | }, 9 | } -------------------------------------------------------------------------------- /admin/src/library/price/percentage.ts: -------------------------------------------------------------------------------- 1 | /* 比较增长(百分比) */ 2 | export default (n1: number, n2: number, fixed: number=2)=>{ 3 | n1+=1; n2+=1; 4 | let t: any = (n1-n2)/n2*100; 5 | if(n1>=n2) return parseFloat(((n1-n2)/n2*100).toString()).toFixed(fixed); 6 | else return '-'+parseFloat(((n2-n1)/n1*100).toString()).toFixed(fixed); 7 | } -------------------------------------------------------------------------------- /admin/src/library/price/to-fixed.ts: -------------------------------------------------------------------------------- 1 | /* 不四舍五入 */ 2 | export default (price: number, num: number)=>{ 3 | let n: string = ''; 4 | for(let i=0; i{ 3 | return reg.test(val); 4 | } -------------------------------------------------------------------------------- /admin/src/library/tel/call.ts: -------------------------------------------------------------------------------- 1 | /* 拨打 */ 2 | export default (tel: string)=>{ 3 | window.location.href = `tel:${tel}`; 4 | } -------------------------------------------------------------------------------- /admin/src/library/tel/hide.ts: -------------------------------------------------------------------------------- 1 | /* 隐藏 */ 2 | export default (tel: string)=>{ 3 | return tel.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2'); 4 | } -------------------------------------------------------------------------------- /admin/src/library/time/day.ts: -------------------------------------------------------------------------------- 1 | /* 获取日期 */ 2 | export default (n: number=0, day?: any)=>{ 3 | const now: Date = day?new Date(day):new Date(); 4 | now.setDate(now.getDate()+n); 5 | const y: string = ''+now.getFullYear(); 6 | const m: string = (now.getMonth()+1)<10?'0'+(now.getMonth()+1):''+(now.getMonth()+1); 7 | const d: string = now.getDate()<10?'0'+now.getDate():''+now.getDate(); 8 | return y +'-'+ m +'-'+ d; 9 | } -------------------------------------------------------------------------------- /admin/src/library/time/size.ts: -------------------------------------------------------------------------------- 1 | /* 时间比较 */ 2 | export default (t1: number | string | Date, t2?: number | string | Date)=>{ 3 | const last = new Date(t1).getTime(); 4 | const now = t2?new Date(t2).getTime():new Date().getTime(); 5 | return now-last; 6 | } -------------------------------------------------------------------------------- /admin/src/library/time/timestamp.ts: -------------------------------------------------------------------------------- 1 | /* 当前时间戳 */ 2 | export default (data: string='')=>{ 3 | let time: any; 4 | if(data){ 5 | time = new Date(data).getTime(); 6 | }else{ 7 | time = new Date().getTime(); 8 | } 9 | return Math.round(time/1000).toString(); 10 | } -------------------------------------------------------------------------------- /admin/src/library/time/week.ts: -------------------------------------------------------------------------------- 1 | /* 获取星期几 */ 2 | export default (date: string | number | Date)=>{ 3 | const now: Date = new Date(date); 4 | const week = ['日','一','二','三','四','五','六']; 5 | return week[now.getDay()]; 6 | } -------------------------------------------------------------------------------- /admin/src/library/ui/back.ts: -------------------------------------------------------------------------------- 1 | import App from '@/main'; 2 | 3 | /* UI-返回 */ 4 | export default (num: number=1)=>{ 5 | App.$router.goBack(-num); 6 | } -------------------------------------------------------------------------------- /admin/src/library/ui/navigate-to.ts: -------------------------------------------------------------------------------- 1 | import App from '@/main'; 2 | 3 | /* UI-跳转页面 */ 4 | export default (url: string, parm?: any) : void => { 5 | // 参数 6 | parm = parm || ''; 7 | // 跳转 8 | App.$router.push({path:url,query:parm}); 9 | } -------------------------------------------------------------------------------- /admin/src/library/url/decode.ts: -------------------------------------------------------------------------------- 1 | /* 解码 */ 2 | export default (data: string)=>{ 3 | return decodeURIComponent(data); 4 | } -------------------------------------------------------------------------------- /admin/src/library/url/encode.ts: -------------------------------------------------------------------------------- 1 | /* 编码 */ 2 | export default (data: string)=>{ 3 | return encodeURIComponent(data); 4 | } -------------------------------------------------------------------------------- /admin/src/library/util/index.ts: -------------------------------------------------------------------------------- 1 | /* String to List */ 2 | export const Explode: Function = (delimiter: string, str: string)=>{ 3 | return str.split(delimiter); 4 | } 5 | 6 | /* List to String */ 7 | export const Implode: Function = (glue: string, pieces: any)=>{ 8 | return pieces.join(glue); 9 | } -------------------------------------------------------------------------------- /admin/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | 6 | /* 用户点击播放问题 */ 7 | document.body.ontouchstart = ()=>{ 8 | try{ 9 | // @ts-ignore 10 | if(plus.os.name != 'iOS') document.createElement('audio'); 11 | }catch(e){ 12 | document.createElement('audio'); 13 | } 14 | } 15 | 16 | /* App */ 17 | const app: any = createApp(App).use(store).use(router).mount('#app'); 18 | export default app; 19 | -------------------------------------------------------------------------------- /admin/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | declare module '*.vue' { 3 | import type { DefineComponent } from 'vue' 4 | const component: DefineComponent<{}, {}, any> 5 | export default component 6 | } 7 | -------------------------------------------------------------------------------- /admin/src/views/Refresh.vue: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /admin/src/views/demo/Demo.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /admin/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "warning", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "linterOptions": { 7 | "exclude": [ 8 | "node_modules/**" 9 | ] 10 | }, 11 | "rules": { 12 | "indent": [true, "spaces", 2], 13 | "interface-name": false, 14 | "no-consecutive-blank-lines": false, 15 | "object-literal-sort-keys": false, 16 | "ordered-imports": false, 17 | "quotemark": [true, "single"] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: d79295af24c3ed621c33713ecda14ad196fd9c31 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /app/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /app/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/android/app/src/main/kotlin/com/example/webmis/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.webmis 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /app/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip 7 | -------------------------------------------------------------------------------- /app/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /app/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /app/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /app/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/web/favicon.png -------------------------------------------------------------------------------- /app/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/web/icons/Icon-192.png -------------------------------------------------------------------------------- /app/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/app/web/icons/Icon-512.png -------------------------------------------------------------------------------- /gin/.gitignore: -------------------------------------------------------------------------------- 1 | webmis 2 | public/logs 3 | public/upload/* 4 | tmp/* 5 | !.gitkeep 6 | 7 | # Editor directories and files 8 | .idea 9 | .vscode 10 | *.suo 11 | *.ntvs* 12 | *.njsproj 13 | *.sln 14 | *.sw? 15 | -------------------------------------------------------------------------------- /gin/config/socket.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | type SocketType struct { 4 | Type string 5 | URL string 6 | Host string 7 | Port string 8 | } 9 | 10 | /* Socket配置 */ 11 | func Socket() *SocketType { 12 | cfg := &SocketType{} 13 | cfg.Type = "ws" //类型 14 | cfg.URL = "/websocket" //地址 15 | cfg.Host = "localhost" //主机 16 | cfg.Port = "9031" //端口 17 | return cfg 18 | } 19 | -------------------------------------------------------------------------------- /gin/library/aliyun/pay.go: -------------------------------------------------------------------------------- 1 | package aliyun 2 | 3 | /* 支付 */ 4 | type pay struct{} 5 | -------------------------------------------------------------------------------- /gin/library/tencent/pay.go: -------------------------------------------------------------------------------- 1 | package tencent 2 | 3 | /* 支付 */ 4 | type pay struct{} 5 | -------------------------------------------------------------------------------- /gin/model/api_menu.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* API菜单 */ 4 | type ApiMenu struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *ApiMenu) New() *ApiMenu { 10 | m.Table("api_menus") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/api_perm.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* API权限 */ 4 | type ApiPerm struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *ApiPerm) New() *ApiPerm { 10 | m.Table("api_perm") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/api_role.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* API角色表 */ 4 | type ApiRole struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *ApiRole) New() *ApiRole { 10 | m.Table("api_role") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/demo.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 测试表 */ 4 | type Demo struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *Demo) New() *Demo { 10 | m.Table("test") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/logs.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 访问日志 */ 4 | type Logs struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *Logs) New() *Logs { 10 | m.Table("logs") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/sys_menu.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 系统菜单 */ 4 | type SysMenu struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *SysMenu) New() *SysMenu { 10 | m.Table("sys_menus") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/sys_perm.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 后台权限表 */ 4 | type SysPerm struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *SysPerm) New() *SysPerm { 10 | m.Table("sys_perm") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/sys_role.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 系统角色表 */ 4 | type SysRole struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *SysRole) New() *SysRole { 10 | m.Table("sys_role") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/user.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 用户表 */ 4 | type User struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *User) New() *User { 10 | m.Table("user") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/user_info.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 用户信息 */ 4 | type UserInfo struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *UserInfo) New() *UserInfo { 10 | m.Table("user_info") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/web_news.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 新闻 */ 4 | type WebNews struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *WebNews) New() *WebNews { 10 | m.Table("web_news") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/web_news_class.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 新闻分类 */ 4 | type WebNewsClass struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *WebNewsClass) New() *WebNewsClass { 10 | m.Table("web_news_class") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/model/web_news_html.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | /* 新闻内容 */ 4 | type WebNewsHtml struct { 5 | Model 6 | } 7 | 8 | /* 构造函数 */ 9 | func (m *WebNewsHtml) New() *WebNewsHtml { 10 | m.Table("web_news_html") 11 | return m 12 | } 13 | -------------------------------------------------------------------------------- /gin/modules/api/index.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | import ( 4 | "webmis/service" 5 | 6 | "github.com/gin-gonic/gin" 7 | ) 8 | 9 | /* API */ 10 | type Index struct { 11 | service.Base 12 | } 13 | 14 | /* 首页 */ 15 | func (r Index) Index(c *gin.Context) { 16 | // 返回 17 | r.GetJSON(c, gin.H{"code": 0, "msg": "GO Api"}) 18 | } 19 | -------------------------------------------------------------------------------- /gin/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/gin/public/favicon.png -------------------------------------------------------------------------------- /gin/public/upload/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/gin/public/upload/.gitkeep -------------------------------------------------------------------------------- /gin/router/api.go: -------------------------------------------------------------------------------- 1 | package router 2 | 3 | import ( 4 | "webmis/modules/api" 5 | 6 | "github.com/gin-gonic/gin" 7 | ) 8 | 9 | /* API路由 */ 10 | func API(r *gin.Engine) { 11 | g := r.Group("api") 12 | { 13 | // 首页 14 | g.GET("", (&api.Index{}).Index) 15 | g.GET("index", (&api.Index{}).Index) 16 | // 登录 17 | g.POST("user/login", (&api.User{}).Login) 18 | g.POST("user/token", (&api.User{}).Token) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /gin/router/home.go: -------------------------------------------------------------------------------- 1 | package router 2 | 3 | import ( 4 | "webmis/modules/home" 5 | 6 | "github.com/gin-gonic/gin" 7 | ) 8 | 9 | /* Home路由 */ 10 | func Home(r *gin.Engine) { 11 | g := r.Group("/") 12 | { 13 | // 首页 14 | g.GET("", (&home.Index{}).Index) 15 | g.GET("vcode", (&home.Index{}).Vcode) 16 | g.GET("index/qrcode/:name", (&home.Index{}).Qrcode) 17 | g.POST("ossCallback", (&home.Index{}).OssCallback) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /gin/service/logs.go: -------------------------------------------------------------------------------- 1 | package service 2 | 3 | import ( 4 | "webmis/config" 5 | "webmis/library" 6 | ) 7 | 8 | /* 日志 */ 9 | type Logs struct{} 10 | 11 | /* 写入数据库 */ 12 | func (Logs) File(file string, content string) { 13 | (&library.FileEo{}).New(config.Env().RootDir) 14 | (&library.FileEo{}).WriterEnd(file, content+"\n") 15 | } 16 | -------------------------------------------------------------------------------- /gin/task/main.go: -------------------------------------------------------------------------------- 1 | package task 2 | 3 | type Main struct{} 4 | 5 | /* 首页 */ 6 | func (Main) New() { 7 | print("Cli\n") 8 | } 9 | -------------------------------------------------------------------------------- /gin/task/socket.go: -------------------------------------------------------------------------------- 1 | package task 2 | 3 | import ( 4 | "io/ioutil" 5 | "webmis/config" 6 | "webmis/service" 7 | 8 | "github.com/gin-gonic/gin" 9 | ) 10 | 11 | type Socket struct{} 12 | 13 | func (Socket) Start() { 14 | // 配置 15 | gin.SetMode(gin.ReleaseMode) 16 | gin.DefaultWriter = ioutil.Discard 17 | // 路由 18 | cfg := config.Socket() 19 | r := gin.Default() 20 | r.GET(cfg.URL, func(c *gin.Context) { 21 | (&service.SocketType{}).Socket(c) 22 | }) 23 | r.Run(cfg.Host + ":" + cfg.Port) 24 | } 25 | -------------------------------------------------------------------------------- /gin/util/url.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import "net/url" 4 | 5 | type Url struct{} 6 | 7 | /* 编码 */ 8 | func (Url) Encode(data string) string { 9 | return url.QueryEscape(data) 10 | } 11 | 12 | /* 解码 */ 13 | func (Url) Decode(data string) string { 14 | res, err := url.QueryUnescape(data) 15 | if err != nil { 16 | return "" 17 | } 18 | return res 19 | } 20 | -------------------------------------------------------------------------------- /java/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/java/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /java/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /java/java-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/java/java-1.0.0.jar -------------------------------------------------------------------------------- /java/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/java/public/favicon.png -------------------------------------------------------------------------------- /java/public/upload/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/java/public/upload/.gitkeep -------------------------------------------------------------------------------- /java/src/main/java/webmis/config/Socket.java: -------------------------------------------------------------------------------- 1 | package webmis.config; 2 | 3 | public class Socket { 4 | 5 | public final String type = "ws"; //类型 6 | public final String host = "127.0.0.1"; //主机 7 | public final String port = "9020"; //端口 8 | public final String url = "websocket"; //地址 9 | 10 | } 11 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/library/aliyun/Pay.java: -------------------------------------------------------------------------------- 1 | package webmis.library.aliyun; 2 | 3 | /* 支付 */ 4 | public class Pay { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/library/tencent/Pay.java: -------------------------------------------------------------------------------- 1 | package webmis.library.tencent; 2 | 3 | /* 支付 */ 4 | public class Pay { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/middleware/Cli.java: -------------------------------------------------------------------------------- 1 | package webmis.middleware; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.stereotype.Component; 5 | 6 | import webmis.task.Redis; 7 | 8 | /* 命令行 */ 9 | @Component 10 | public class Cli { 11 | 12 | @Bean 13 | public void Init() { 14 | // 监听日志 15 | Redis logs = new Redis(); 16 | logs.start(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/middleware/SocketServer.java: -------------------------------------------------------------------------------- 1 | package webmis.middleware; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.stereotype.Component; 5 | import org.springframework.web.socket.server.standard.ServerEndpointExporter; 6 | 7 | /* Socket */ 8 | @Component 9 | public class SocketServer { 10 | 11 | /* 服务端 */ 12 | @Bean 13 | public ServerEndpointExporter serverEndpointExporter() { 14 | return new ServerEndpointExporter(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/ApiMenu.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* API菜单 */ 4 | public class ApiMenu extends Model { 5 | 6 | /* 构造函数 */ 7 | public ApiMenu() { 8 | this.Table("api_menus"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/ApiPerm.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* API权限 */ 4 | public class ApiPerm extends Model { 5 | 6 | /* 构造函数 */ 7 | public ApiPerm() { 8 | this.Table("api_perm"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/ApiRole.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* API角色表 */ 4 | public class ApiRole extends Model { 5 | 6 | /* 构造函数 */ 7 | public ApiRole() { 8 | this.Table("api_role"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/Demo.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | public class Demo extends Model { 4 | 5 | /* 构造函数 */ 6 | public Demo() { 7 | this.Table("test"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/Logs.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 访问日志 */ 4 | public class Logs extends Model { 5 | 6 | /* 构造函数 */ 7 | public Logs() { 8 | this.Table("logs"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/SysMenu.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 系统菜单 */ 4 | public class SysMenu extends Model { 5 | 6 | /* 构造函数 */ 7 | public SysMenu() { 8 | this.Table("sys_menus"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/SysPerm.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 后台权限表 */ 4 | public class SysPerm extends Model { 5 | 6 | /* 构造函数 */ 7 | public SysPerm() { 8 | this.Table("sys_perm"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/SysRole.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 系统角色表 */ 4 | public class SysRole extends Model { 5 | 6 | /* 构造函数 */ 7 | public SysRole() { 8 | this.Table("sys_role"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/User.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 用户表 */ 4 | public class User extends Model { 5 | 6 | /* 构造函数 */ 7 | public User() { 8 | this.Table("user"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/UserInfo.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 用户信息 */ 4 | public class UserInfo extends Model { 5 | 6 | /* 构造函数 */ 7 | public UserInfo() { 8 | this.Table("user_info"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/WebNews.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 新闻 */ 4 | public class WebNews extends Model { 5 | 6 | /* 构造函数 */ 7 | public WebNews() { 8 | this.Table("web_news"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/WebNewsClass.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 新闻分类 */ 4 | public class WebNewsClass extends Model { 5 | 6 | /* 构造函数 */ 7 | public WebNewsClass() { 8 | this.Table("web_news_class"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/model/WebNewsHtml.java: -------------------------------------------------------------------------------- 1 | package webmis.model; 2 | 3 | /* 新闻内容 */ 4 | public class WebNewsHtml extends Model { 5 | 6 | /* 构造函数 */ 7 | public WebNewsHtml() { 8 | this.Table("web_news_html"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/service/Logs.java: -------------------------------------------------------------------------------- 1 | package webmis.service; 2 | 3 | import webmis.config.Env; 4 | import webmis.library.FileEo; 5 | 6 | /* 日志 */ 7 | public class Logs extends Base { 8 | 9 | /* 写入文件 */ 10 | public static void File(String file, String content) { 11 | FileEo.Root = Env.root_dir; 12 | FileEo.WriterEnd(file, content+"\n"); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /java/src/main/java/webmis/util/Dynamic.java: -------------------------------------------------------------------------------- 1 | package webmis.util; 2 | 3 | /* 泛型 */ 4 | public class Dynamic { 5 | private T key; 6 | public Dynamic(T key) { 7 | this.key = key; 8 | } 9 | public T getKey(){ 10 | return key; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /java/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 调试 2 | debug=false 3 | # 端口 4 | server.port = 9020 5 | # 关闭日志 6 | logging.level.org.springframework=OFF 7 | logging.level.root=OFF 8 | # spring.main.banner-mode=off -------------------------------------------------------------------------------- /java/src/test/java/vip/webmis/java/JavaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package vip.webmis.java; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JavaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /java/tmp/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/java/tmp/.gitkeep -------------------------------------------------------------------------------- /phalcon/.gitignore: -------------------------------------------------------------------------------- 1 | composer.lock 2 | vendor 3 | public/upload/* 4 | !.gitkeep -------------------------------------------------------------------------------- /phalcon/Phalcon/Acl/Enum.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Acl; 11 | 12 | /** 13 | * Constants for Phalcon\Acl\Adapter adapters 14 | */ 15 | class Enum 16 | { 17 | 18 | const ALLOW = 1; 19 | 20 | 21 | const DENY = 0; 22 | } 23 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Acl/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Acl; 11 | 12 | /** 13 | * Class for exceptions thrown by Phalcon\Acl 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Annotations/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Annotations; 11 | 12 | /** 13 | * Class for exceptions thrown by Phalcon\Annotations 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Application/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Application; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Application class will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Assets/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Assets; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Assets will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Cli/Console/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Cli\Console; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Cli\Console will use this class 14 | */ 15 | class Exception extends \Phalcon\Application\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Cli/Router/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Cli\Router; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Cli\Router will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Cli/TaskInterface.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Cli; 11 | 12 | /** 13 | * Interface for task handlers 14 | */ 15 | interface TaskInterface 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Collection/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Collection; 11 | 12 | /** 13 | * Exceptions for the Collection object 14 | */ 15 | class Exception extends \Phalcon\Exception implements \Throwable 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Config/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Config; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Config will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Crypt/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Crypt; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Crypt use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Crypt/Mismatch.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Crypt; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Crypt will use this class. 14 | */ 15 | class Mismatch extends \Phalcon\Crypt\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Db/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Db; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Db will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Debug/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Debug; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Debug will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Di/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Di; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Di will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Escaper/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Escaper; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Escaper will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Flash/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Flash; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Flash calsses will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Forms/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Forms; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Forms will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Helper/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Helper; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Helper will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Mvc/ControllerInterface.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Mvc; 11 | 12 | /** 13 | * Phalcon\Mvc\ControllerInterface 14 | * 15 | * Interface for controller handlers 16 | */ 17 | interface ControllerInterface 18 | { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Mvc/Micro/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Mvc\Micro; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Mvc\Micro will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Tag/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Tag; 11 | 12 | /** 13 | * Phalcon\Tag\Exception 14 | * 15 | * Exceptions thrown in Phalcon\Tag will use this class 16 | */ 17 | class Exception extends \Phalcon\Exception 18 | { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Url/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Url; 11 | 12 | /** 13 | * Phalcon\Url\Exception 14 | * 15 | * Exceptions thrown in Phalcon\Url will use this class 16 | */ 17 | class Exception extends \Phalcon\Exception 18 | { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /phalcon/Phalcon/Validation/Exception.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE.txt 8 | * file that was distributed with this source code. 9 | */ 10 | namespace Phalcon\Validation; 11 | 12 | /** 13 | * Exceptions thrown in Phalcon\Validation\ classes will use this class 14 | */ 15 | class Exception extends \Phalcon\Exception 16 | { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /phalcon/config/Baidu.php: -------------------------------------------------------------------------------- 1 | 'kingsoul', //用户名 11 | 'PassWord'=> 'eckingsoul', //密码 12 | 'Token'=> 'c67cde72015a76798c707b170fc6987e', //Token 13 | 'AccountType'=> 1, //账户类型 14 | ]; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /phalcon/config/Socket.php: -------------------------------------------------------------------------------- 1 | send(json_encode($data)); 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /phalcon/library/aliyun/Pay.php: -------------------------------------------------------------------------------- 1 | 404, 'msg'=>'Not Found']); 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /phalcon/model/ApiMenu.php: -------------------------------------------------------------------------------- 1 | Table('api_menus'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/ApiPerm.php: -------------------------------------------------------------------------------- 1 | Table('api_perm'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/ApiRole.php: -------------------------------------------------------------------------------- 1 | Table('api_role'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/Demo.php: -------------------------------------------------------------------------------- 1 | Table('test'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/Logs.php: -------------------------------------------------------------------------------- 1 | Table('logs'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/SysMenu.php: -------------------------------------------------------------------------------- 1 | Table('sys_menus'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/SysPerm.php: -------------------------------------------------------------------------------- 1 | Table('sys_perm'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/SysRole.php: -------------------------------------------------------------------------------- 1 | Table('sys_role'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/User.php: -------------------------------------------------------------------------------- 1 | Table('user'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/UserInfo.php: -------------------------------------------------------------------------------- 1 | Table('user_info'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/WebNews.php: -------------------------------------------------------------------------------- 1 | Table('web_news'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/WebNewsClass.php: -------------------------------------------------------------------------------- 1 | Table('web_news_class'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/model/WebNewsHtml.php: -------------------------------------------------------------------------------- 1 | Table('web_news_html'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /phalcon/modules/api/Index.php: -------------------------------------------------------------------------------- 1 | 0, 'msg'=>'Phalcon Api']); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /phalcon/public/.htaccess: -------------------------------------------------------------------------------- 1 | # 编码 2 | AddDefaultCharset UTF-8 3 | 4 | # 重写 5 | RewriteEngine On 6 | RewriteCond %{REQUEST_FILENAME} !-d 7 | RewriteCond %{REQUEST_FILENAME} !-f 8 | RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] 9 | -------------------------------------------------------------------------------- /phalcon/public/.well-known/apple-app-site-association: -------------------------------------------------------------------------------- 1 | { 2 | "applinks": { 3 | "apps": [], 4 | "details": [ 5 | { 6 | "appID": "DFWCPHC73K.cn.djznkj.www", 7 | "paths": ["/app/*"] 8 | } 9 | ] 10 | } 11 | } -------------------------------------------------------------------------------- /phalcon/public/code/index.php: -------------------------------------------------------------------------------- 1 | get('/api','App\Api\Index::Index'); 8 | // 登录 9 | $app->post('/api/user/login', 'App\Api\User::Login'); 10 | $app->post('/api/user/token', 'App\Api\User::Token'); 11 | } 12 | } -------------------------------------------------------------------------------- /phalcon/router/Home.php: -------------------------------------------------------------------------------- 1 | get('/', 'App\Home\Index::Index'); 8 | $app->get('/vcode', 'App\Home\Index::Vcode'); 9 | $app->get('/index/qrcode/{name}', 'App\Home\Index::Qrcode'); 10 | $app->post('/ossCallback', 'App\Home\Index::OssCallback'); 11 | } 12 | } -------------------------------------------------------------------------------- /phalcon/service/Logs.php: -------------------------------------------------------------------------------- 1 | 'kingsoul', //用户名 11 | 'PassWord'=> 'eckingsoul', //密码 12 | 'Token'=> 'c67cde72015a76798c707b170fc6987e', //Token 13 | 'AccountType'=> 1, //账户类型 14 | ]; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /php/config/Socket.php: -------------------------------------------------------------------------------- 1 | send(json_encode($data)); 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /php/library/aliyun/Pay.php: -------------------------------------------------------------------------------- 1 | Table('api_menus'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/ApiPerm.php: -------------------------------------------------------------------------------- 1 | Table('api_perm'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/ApiRole.php: -------------------------------------------------------------------------------- 1 | Table('api_role'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/Demo.php: -------------------------------------------------------------------------------- 1 | Table('test'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/SysMenu.php: -------------------------------------------------------------------------------- 1 | Table('sys_menus'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/SysPerm.php: -------------------------------------------------------------------------------- 1 | Table('sys_perm'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/SysRole.php: -------------------------------------------------------------------------------- 1 | Table('sys_role'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/Test.php: -------------------------------------------------------------------------------- 1 | Table('test'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/User.php: -------------------------------------------------------------------------------- 1 | Table('user'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/UserInfo.php: -------------------------------------------------------------------------------- 1 | Table('user_info'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/WebNews.php: -------------------------------------------------------------------------------- 1 | Table('web_news'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/WebNewsClass.php: -------------------------------------------------------------------------------- 1 | Table('web_news_class'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/model/WebNewsHtml.php: -------------------------------------------------------------------------------- 1 | Table('web_news_html'); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /php/modules/api/Index.php: -------------------------------------------------------------------------------- 1 | 0, 'msg'=>'PHP Api']); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /php/public/index.php: -------------------------------------------------------------------------------- 1 | ',methods=['POST']) 12 | def user(a) : 13 | if a=='login' : return User().Login() 14 | elif a=='token' : return User().Token() 15 | 16 | -------------------------------------------------------------------------------- /python/server.ini: -------------------------------------------------------------------------------- 1 | [uwsgi] 2 | chdir = ./ 3 | wsgi-file = %(chdir)main.py 4 | socket = %(chdir)tmp/web.sock 5 | logto = %(chdir)tmp/web.log 6 | pidfile = %(chdir)tmp/web.pid 7 | callable = app 8 | gid = root 9 | uid = root 10 | processes = 4 11 | chmod-socket = 666 12 | py-autoreload = 1 -------------------------------------------------------------------------------- /python/service/logs.py: -------------------------------------------------------------------------------- 1 | from config.env import Env 2 | from library.file_eo import FileEo 3 | 4 | # 日志 5 | class Logs: 6 | 7 | # 写入文件 8 | def File(file: str, content: str): 9 | FileEo.Root = Env.root_dir 10 | FileEo.WriterEnd(file, content+"\n") 11 | -------------------------------------------------------------------------------- /python/task/base.py: -------------------------------------------------------------------------------- 1 | 2 | class Base: 3 | 4 | # 输出到控制台 5 | def Print(self, *content) : 6 | print(*content) -------------------------------------------------------------------------------- /python/task/main.py: -------------------------------------------------------------------------------- 1 | from task.base import Base 2 | 3 | class Main(Base): 4 | 5 | # 首页 6 | def Main(self): 7 | self.Print('Cli') -------------------------------------------------------------------------------- /python/task/socket.py: -------------------------------------------------------------------------------- 1 | from task.base import Base 2 | from config.socket import Socket as cfg 3 | from service.socket import Socket as SocketServer 4 | 5 | import asyncio 6 | import websockets 7 | 8 | # Socket 9 | class Socket(Base): 10 | 11 | # 启动 12 | def Start(self): 13 | server = websockets.serve(SocketServer().Open, cfg.Host, cfg.Port) 14 | asyncio.get_event_loop().run_until_complete(server) 15 | asyncio.get_event_loop().run_forever() -------------------------------------------------------------------------------- /python/tmp/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/python/tmp/favicon.ico -------------------------------------------------------------------------------- /python/util/type.py: -------------------------------------------------------------------------------- 1 | 2 | # 哈希 3 | class Type: 4 | 5 | # 转换: string、int、float 6 | def ToType(type: str, val): 7 | if type == 'string': 8 | return str(val) 9 | elif type == 'int': 10 | return int(val) 11 | elif type == 'float': 12 | return float(val) 13 | else: 14 | return val 15 | 16 | # Interface 转 String 17 | def Strval(val): 18 | return str(val) 19 | -------------------------------------------------------------------------------- /python/util/url.py: -------------------------------------------------------------------------------- 1 | from urllib.parse import quote,unquote 2 | 3 | class Url: 4 | 5 | # 编码 6 | def Encode(data: str): 7 | return quote(data) 8 | 9 | # 解码 10 | def Decode(data: str): 11 | return unquote(data) -------------------------------------------------------------------------------- /tools/certificate/developer.mobileprovision: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/tools/certificate/developer.mobileprovision -------------------------------------------------------------------------------- /tools/certificate/developer.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/tools/certificate/developer.p12 -------------------------------------------------------------------------------- /tools/certificate/passwd.md: -------------------------------------------------------------------------------- 1 | # 苹果开发者 2 | https://developer.apple.com/ 3 | 包名: vip.webmis.app 4 | 开放证书: developer.p12 密码: 123456 5 | ProFile: developer.mobileprovision -------------------------------------------------------------------------------- /tools/database/adminer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/tools/database/adminer.php -------------------------------------------------------------------------------- /tools/design/APP.xd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/tools/design/APP.xd -------------------------------------------------------------------------------- /tools/design/Screen.xd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/tools/design/Screen.xd -------------------------------------------------------------------------------- /vueapp/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | yarn.lock 4 | # /dist 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /vueapp/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /vueapp/dist/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/favicon.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/1024x1024.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/120x120.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/144x144.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/152x152.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/167x167.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/180x180.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/192x192.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/20x20.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/29x29.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/40x40.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/58x58.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/60x60.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/72x72.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/76x76.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/80x80.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/87x87.png -------------------------------------------------------------------------------- /vueapp/dist/res/icons/96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/icons/96x96.png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/android(1080x1882).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/android(1080x1882).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/android(480x762).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/android(480x762).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/android(720x1242).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/android(720x1242).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/ipad(1536x2048).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/ipad(1536x2048).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/ipad(1668x2224).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/ipad(1668x2224).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/ipad(1668x2388).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/ipad(1668x2388).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/ipad(2048x2732).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/ipad(2048x2732).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/ipad(768x1024).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/ipad(768x1024).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/iphone(1125x2436).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/iphone(1125x2436).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/iphone(1242x2208).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/iphone(1242x2208).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/iphone(1242x2688).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/iphone(1242x2688).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/iphone(640x1136).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/iphone(640x1136).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/iphone(640x960).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/iphone(640x960).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/iphone(750x1334).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/iphone(750x1334).png -------------------------------------------------------------------------------- /vueapp/dist/res/screen/iphone(828x1792).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/dist/res/screen/iphone(828x1792).png -------------------------------------------------------------------------------- /vueapp/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/favicon.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/1024x1024.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/120x120.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/144x144.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/152x152.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/167x167.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/180x180.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/192x192.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/20x20.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/29x29.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/40x40.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/58x58.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/60x60.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/72x72.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/76x76.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/80x80.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/87x87.png -------------------------------------------------------------------------------- /vueapp/public/res/icons/96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/icons/96x96.png -------------------------------------------------------------------------------- /vueapp/public/res/screen/android(1080x1882).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/android(1080x1882).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/android(480x762).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/android(480x762).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/android(720x1242).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/android(720x1242).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/ipad(1536x2048).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/ipad(1536x2048).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/ipad(1668x2224).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/ipad(1668x2224).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/ipad(1668x2388).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/ipad(1668x2388).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/ipad(2048x2732).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/ipad(2048x2732).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/ipad(768x1024).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/ipad(768x1024).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/iphone(1125x2436).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/iphone(1125x2436).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/iphone(1242x2208).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/iphone(1242x2208).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/iphone(1242x2688).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/iphone(1242x2688).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/iphone(640x1136).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/iphone(640x1136).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/iphone(640x960).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/iphone(640x960).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/iphone(750x1334).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/iphone(750x1334).png -------------------------------------------------------------------------------- /vueapp/public/res/screen/iphone(828x1792).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/vueapp/public/res/screen/iphone(828x1792).png -------------------------------------------------------------------------------- /vueapp/src/assets/style/app.css: -------------------------------------------------------------------------------- 1 | /* 业务样式 */ -------------------------------------------------------------------------------- /vueapp/src/components/swipe/item/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /vueapp/src/library/Storage.ts: -------------------------------------------------------------------------------- 1 | /* 本地硬盘 */ 2 | export default { 3 | /* 保存 */ 4 | setItem(key: string, data: string){ 5 | return window.localStorage.setItem(key,data); 6 | }, 7 | /* 获取 */ 8 | getItem(key: string){ 9 | return window.localStorage.getItem(key); 10 | }, 11 | /* 删除 */ 12 | removeItem(key: string){ 13 | return window.localStorage.removeItem(key); 14 | }, 15 | /* 清除 */ 16 | clear(){ 17 | return window.localStorage.clear(); 18 | }, 19 | } -------------------------------------------------------------------------------- /vueapp/src/library/array/unique.ts: -------------------------------------------------------------------------------- 1 | /* 数组去重复 */ 2 | export default (arr: Array)=>{ 3 | let data: Array = []; 4 | for(let i=0, l=arr.length; i{ 3 | return decodeURI(atob(base64)); 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/base64/encode.ts: -------------------------------------------------------------------------------- 1 | /* 编码 */ 2 | export default (data: string)=>{ 3 | return btoa(encodeURI(data)); 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/base64/ext-type.ts: -------------------------------------------------------------------------------- 1 | /* 类型 */ 2 | export default (ext: string)=>{ 3 | let type: string=''; 4 | if(ext=='jpg' || ext=='jpeg') type='data:image/jpeg;base64,'; 5 | else if(ext=='png') type='data:image/png;base64,'; 6 | else if(ext=='gif') type='data:image/gif;base64,'; 7 | return type; 8 | } -------------------------------------------------------------------------------- /vueapp/src/library/device/mobile.ts: -------------------------------------------------------------------------------- 1 | /* 手机系统 */ 2 | export default ()=>{ 3 | const flag = navigator.userAgent.match( 4 | /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i 5 | ); 6 | return flag?flag[0]:false; 7 | } -------------------------------------------------------------------------------- /vueapp/src/library/down/file.ts: -------------------------------------------------------------------------------- 1 | /* File */ 2 | export default (url: string, name?: string, ext?: string)=>{ 3 | let now: string = (new Date()).toString(); 4 | const timestamp = name || Date.parse(now)/1000; 5 | ext = ext || 'png'; 6 | // 创建对象 7 | let a = document.createElement('a'); 8 | a.href = url; 9 | a.download = timestamp+'.'+ext; 10 | document.body.appendChild(a); 11 | // 点击 12 | a.click(); 13 | // 移除 14 | document.body.removeChild(a); 15 | } -------------------------------------------------------------------------------- /vueapp/src/library/html/observe.ts: -------------------------------------------------------------------------------- 1 | /* 监听容器 */ 2 | export default (element: any, callback: Function, options: MutationObserverInit = {attributes: true, childList: true, subtree: true})=>{ 3 | let MutationObserver = window.MutationObserver; 4 | let obs = new MutationObserver((mutationList)=>{ 5 | callback(mutationList); 6 | }); 7 | obs.observe(element, options); 8 | } -------------------------------------------------------------------------------- /vueapp/src/library/plus/back.ts: -------------------------------------------------------------------------------- 1 | 2 | import Toast from '@/library/ui/toast' 3 | 4 | /* Plus-Android返回键 */ 5 | export default (callback: any)=>{ 6 | try{ 7 | // @ts-ignore 8 | const webview = plus.webview.currentWebview(); 9 | // @ts-ignore 10 | plus.key.addEventListener('backbutton', ()=>{ 11 | webview.canBack(callback); 12 | }); 13 | }catch(e){ 14 | return Toast('Android返回键'); 15 | } 16 | } -------------------------------------------------------------------------------- /vueapp/src/library/plus/ready.ts: -------------------------------------------------------------------------------- 1 | /* Plus-监听 */ 2 | export default (callback: any)=>{ 3 | document.addEventListener("plusready",callback,false); 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/plus/version-diff.ts: -------------------------------------------------------------------------------- 1 | /* 版本比较 */ 2 | export default (v1: string, v2: string)=>{ 3 | if(v1==v2) return true; 4 | const arr1 = v1.split('.'); 5 | const arr2 = v2.split('.'); 6 | if(parseInt(arr1[0])>parseInt(arr2[0])) return true; 7 | else if(parseInt(arr1[1])>parseInt(arr2[1])) return true; 8 | else if(parseInt(arr1[2])>parseInt(arr2[2])) return true; 9 | else return false; 10 | } -------------------------------------------------------------------------------- /vueapp/src/library/price/format.ts: -------------------------------------------------------------------------------- 1 | /* 金额-格式化 */ 2 | export default (price: string)=>{ 3 | return (parseInt(price).toString()).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g,'$&,'); 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/price/to-fixed.ts: -------------------------------------------------------------------------------- 1 | /* 不四舍五入 */ 2 | export default (price: number, num: number)=>{ 3 | let n: string = ''; 4 | for(let i=0; i{ 3 | return reg.test(val); 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/tel/call.ts: -------------------------------------------------------------------------------- 1 | /* 拨打 */ 2 | export default (tel: string)=>{ 3 | window.location.href = `tel:${tel}`; 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/tel/hide.ts: -------------------------------------------------------------------------------- 1 | /* 隐藏 */ 2 | export default (tel: string)=>{ 3 | return tel.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2'); 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/time/day.ts: -------------------------------------------------------------------------------- 1 | /* 获取日期 */ 2 | export default (n: number=0, day?: any)=>{ 3 | const now: Date = day?new Date(day):new Date(); 4 | now.setDate(now.getDate()+n); 5 | const y: string = ''+now.getFullYear(); 6 | const m: string = (now.getMonth()+1)<10?'0'+(now.getMonth()+1):''+(now.getMonth()+1); 7 | const d: string = now.getDate()<10?'0'+now.getDate():''+now.getDate(); 8 | return y +'-'+ m +'-'+ d; 9 | } -------------------------------------------------------------------------------- /vueapp/src/library/time/size.ts: -------------------------------------------------------------------------------- 1 | /* 时间比较 */ 2 | export default (t1: number | string | Date, t2?: number | string | Date)=>{ 3 | const last = new Date(t1).getTime(); 4 | const now = t2?new Date(t2).getTime():new Date().getTime(); 5 | return now-last; 6 | } -------------------------------------------------------------------------------- /vueapp/src/library/time/week.ts: -------------------------------------------------------------------------------- 1 | /* 获取星期几 */ 2 | export default (date: string | number | Date)=>{ 3 | const now: Date = new Date(date); 4 | const week = ['日','一','二','三','四','五','六']; 5 | return week[now.getDay()]; 6 | } -------------------------------------------------------------------------------- /vueapp/src/library/ui/back.ts: -------------------------------------------------------------------------------- 1 | import App from '@/main'; 2 | 3 | /* UI-返回 */ 4 | export default (num: number=1)=>{ 5 | App.$router.goBack(-num); 6 | } -------------------------------------------------------------------------------- /vueapp/src/library/ui/navigate-to.ts: -------------------------------------------------------------------------------- 1 | import App from '@/main'; 2 | 3 | /* UI-跳转页面 */ 4 | export default (url: string, parm?: any) : void => { 5 | // 参数 6 | parm = parm || ''; 7 | // 跳转 8 | App.$router.push({path:url,query:parm}); 9 | } -------------------------------------------------------------------------------- /vueapp/src/library/url/decode.ts: -------------------------------------------------------------------------------- 1 | /* 解码 */ 2 | export default (data: string)=>{ 3 | return decodeURIComponent(data); 4 | } -------------------------------------------------------------------------------- /vueapp/src/library/url/encode.ts: -------------------------------------------------------------------------------- 1 | /* 编码 */ 2 | export default (data: string)=>{ 3 | return encodeURIComponent(data); 4 | } -------------------------------------------------------------------------------- /vueapp/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | 6 | /* 用户点击播放问题 */ 7 | document.body.ontouchstart = ()=>{ 8 | try{ 9 | // @ts-ignore 10 | if(plus.os.name != 'iOS') document.createElement('audio'); 11 | }catch(e){ 12 | document.createElement('audio'); 13 | } 14 | } 15 | 16 | /* App */ 17 | const app: any = createApp(App).use(store).use(router).mount('#app'); 18 | export default app; 19 | -------------------------------------------------------------------------------- /vueapp/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | declare module '*.vue' { 3 | import type { DefineComponent } from 'vue' 4 | const component: DefineComponent<{}, {}, any> 5 | export default component 6 | } 7 | -------------------------------------------------------------------------------- /vueapp/src/views/Refresh.vue: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /vueapp/src/views/home/Code.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent } from 'vue'; 2 | export default defineComponent({ 3 | name: 'HomeCode', 4 | data(){ 5 | return {}; 6 | }, 7 | mounted(){ 8 | }, 9 | methods:{ 10 | 11 | } 12 | }); -------------------------------------------------------------------------------- /vueapp/src/views/home/Code.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /vueapp/src/views/home/Me.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent } from 'vue'; 2 | export default defineComponent({ 3 | name: 'HomeMe', 4 | data(){ 5 | return {}; 6 | }, 7 | mounted(){ 8 | }, 9 | methods:{ 10 | 11 | } 12 | }); -------------------------------------------------------------------------------- /vueapp/src/views/home/Me.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /vueapp/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "warning", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "linterOptions": { 7 | "exclude": [ 8 | "node_modules/**" 9 | ] 10 | }, 11 | "rules": { 12 | "indent": [true, "spaces", 2], 13 | "interface-name": false, 14 | "no-consecutive-blank-lines": false, 15 | "object-literal-sort-keys": false, 16 | "ordered-imports": false, 17 | "quotemark": [true, "single"] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /weapp/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | # env.js -------------------------------------------------------------------------------- /weapp/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/index/index", 4 | "pages/demo/demo" 5 | ], 6 | "permission": { 7 | "scope.userLocation": { 8 | "desc": "获取定位说明!" 9 | } 10 | }, 11 | "window": { 12 | "backgroundTextStyle": "light", 13 | "navigationBarBackgroundColor": "#fff", 14 | "navigationBarTitleText": "", 15 | "navigationBarTextStyle": "black" 16 | }, 17 | "requiredBackgroundModes": [ 18 | "audio" 19 | ], 20 | "sitemapLocation": "sitemap.json" 21 | } -------------------------------------------------------------------------------- /weapp/app.wxss: -------------------------------------------------------------------------------- 1 | 2 | /* 字体图标 */ 3 | @import './assets/style/icon.wxss'; 4 | /* UI */ 5 | @import './assets/style/ui.wxss'; 6 | /* APP */ 7 | @import './assets/style/app.wxss'; 8 | -------------------------------------------------------------------------------- /weapp/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/weapp/assets/logo.png -------------------------------------------------------------------------------- /weapp/assets/style/app.wxss: -------------------------------------------------------------------------------- 1 | /* 业务样式 */ -------------------------------------------------------------------------------- /weapp/components/img-load/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /weapp/components/page-error/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /weapp/components/page-view/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /weapp/components/page-view/index.wxss: -------------------------------------------------------------------------------- 1 | .page_view_html{width: 100%; height: 100%;} 2 | .page_view_header{position: fixed; z-index: 999; width: 100%;} 3 | .page_view_title{height: 100%; font-size: 16px; text-align: center; width: calc(100% - 204px); margin-left: 102px; margin-right: 102px;} 4 | .page_view_left{position: absolute; left: 10px; font-size: 14px;} 5 | .page_view_right{position: absolute; right: 10px;} 6 | .page_view_body{height: 100%;} -------------------------------------------------------------------------------- /weapp/components/popup/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /weapp/components/popup/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /weapp/components/popup/index.wxss: -------------------------------------------------------------------------------- 1 | .wm-popup_bg,.wm-popup_body{position: fixed; z-index: 1000; transition: all .3s ease;} 2 | .wm-popup_bg{width: 100%; height: 100%; top: 0; left: 0; opacity: 0;} 3 | .wm-popup_body{opacity: 0;} -------------------------------------------------------------------------------- /weapp/components/scroll-view/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /weapp/components/swipe-cell/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /weapp/components/swipe-cell/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /weapp/components/swipe-cell/index.wxss: -------------------------------------------------------------------------------- 1 | .wm-swipe_cell{user-select: none; position: relative; overflow: hidden; cursor: grab; background-color: #FFF;} 2 | .wm-swipe_cell_body{overflow: hidden; height: 100%; transform: translate(0,0);} 3 | .wm-swipe_cell_right{position: absolute; top: 0; right: 0; height: 100%; transform: translate(100%,0);} -------------------------------------------------------------------------------- /weapp/components/tab/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": { 4 | "wm-scroll-view": "/components/scroll-view/index" 5 | } 6 | } -------------------------------------------------------------------------------- /weapp/components/tabbar/index.js: -------------------------------------------------------------------------------- 1 | Component({ 2 | options: { 3 | multipleSlots: true, 4 | addGlobalClass: true, 5 | }, 6 | properties: { 7 | active: {type: Number, value: 0}, 8 | }, 9 | attached(){ 10 | }, 11 | data: { 12 | }, 13 | methods: { 14 | 15 | /* 切换菜单 */ 16 | navClick(e){ 17 | const n = e.currentTarget.dataset.n; 18 | this.setData({active:n}); 19 | // 返回值 20 | this.triggerEvent('change',n); 21 | }, 22 | 23 | } 24 | }) 25 | -------------------------------------------------------------------------------- /weapp/components/tabbar/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true 3 | } -------------------------------------------------------------------------------- /weapp/components/tabbar/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 首页 5 | 6 | -------------------------------------------------------------------------------- /weapp/components/tool-touch/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /weapp/components/tool-touch/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /weapp/components/tool-touch/index.wxss: -------------------------------------------------------------------------------- 1 | .body{height: 100%;} -------------------------------------------------------------------------------- /weapp/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "module": "commonjs" 5 | } 6 | } -------------------------------------------------------------------------------- /weapp/libray/inc/html-format.js: -------------------------------------------------------------------------------- 1 | /* Html转换 */ 2 | export default (html)=>{ 3 | return html.replace(/{ 3 | const query = wx.createSelectorQuery(); 4 | query.in(self); 5 | query.select(dom).boundingClientRect(); 6 | query.selectViewport().scrollOffset(); 7 | query.exec((res)=>{ 8 | return callback(res); 9 | }); 10 | } -------------------------------------------------------------------------------- /weapp/libray/inc/power.js: -------------------------------------------------------------------------------- 1 | /* 消息订阅授权 */ 2 | export default (tmplIds) => { 3 | wx.getSetting({ 4 | withSubscriptions: true, 5 | success(res) { 6 | if (!res.subscriptionsSetting.mainSwitch) { 7 | wx.requestSubscribeMessage({ 8 | tmplIds: tmplIds, 9 | success(res) { 10 | console.log('授权成功'); 11 | }, 12 | fail(res) { 13 | console.log('授权失败'); 14 | } 15 | }) 16 | } 17 | } 18 | }) 19 | } -------------------------------------------------------------------------------- /weapp/libray/inc/qrurl-analysis.js: -------------------------------------------------------------------------------- 1 | /* 二维码地址解析 */ 2 | export default (url, name) => { 3 | const qrForm = decodeURIComponent(url); 4 | const reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i'); 5 | const res = qrForm.substr(1).match(reg) 6 | return res ? res[2] : ''; 7 | } -------------------------------------------------------------------------------- /weapp/libray/inc/tel-call.js: -------------------------------------------------------------------------------- 1 | /* 拨打电话 */ 2 | export default (tel)=>{ 3 | wx.makePhoneCall({ phoneNumber:tel }); 4 | } -------------------------------------------------------------------------------- /weapp/libray/plus/camera.js: -------------------------------------------------------------------------------- 1 | /* 拍照 */ 2 | export default (callback,fail)=>{ 3 | wx.chooseImage({count: 1, sourceType: ['camera'], success: callback, fail: fail}); 4 | } -------------------------------------------------------------------------------- /weapp/libray/plus/index.js: -------------------------------------------------------------------------------- 1 | import Camera from './camera' 2 | import MapGeolocation from './map-geolocation' 3 | import Photo from './photo' 4 | import MapAddress from './map-address' 5 | import MapOpen from './map-open' 6 | import Pay from './pay' 7 | 8 | /* 全部 */ 9 | export default { 10 | Camera, //拍照 11 | MapGeolocation, //地图-定位 12 | MapAddress, //地图-搜索 13 | Photo, //照片 14 | MapOpen, //打开第三方地图 15 | Pay, //支付 16 | } 17 | /* 局部 */ 18 | export { 19 | Camera, 20 | MapGeolocation, 21 | Photo, 22 | } -------------------------------------------------------------------------------- /weapp/libray/plus/map-address.js: -------------------------------------------------------------------------------- 1 | import Env from '../../env' 2 | import amap from 'amap-wx'; 3 | 4 | /* 高德地图-初始化 */ 5 | const Map = new amap.AMapWX({ key: Env.amapKey}); 6 | 7 | /* 地图-搜索地址 */ 8 | export default (address,callback)=>{ 9 | Map.getInputtips({ 10 | keywords: address, 11 | success: callback, 12 | }) 13 | } -------------------------------------------------------------------------------- /weapp/libray/plus/map-open.js: -------------------------------------------------------------------------------- 1 | /* 调用手机第三方地图 */ 2 | export default (parm) => { 3 | const latitude = parm.latitude || 0; 4 | const longitude = parm.longitude || 0; 5 | const name = parm.name || ''; 6 | const scale = parm.scale || 16; 7 | wx.openLocation({ latitude: latitude, longitude: longitude, name: name, scale: scale }); 8 | } -------------------------------------------------------------------------------- /weapp/libray/plus/photo.js: -------------------------------------------------------------------------------- 1 | /* 相册 */ 2 | export default (callback,fail,num)=>{ 3 | num = num || 1; 4 | wx.chooseImage({count: num, sourceType: ['album'], success: callback, fail: fail}); 5 | } -------------------------------------------------------------------------------- /weapp/libray/ui/request-get.js: -------------------------------------------------------------------------------- 1 | import Env from '../../env.js' 2 | 3 | /* Get请求 */ 4 | export default (url,data,success,fail)=>{ 5 | // URL 6 | if(url.substr(0,4)=='http') url=url; 7 | else if(url.substr(0,1)=='/') url=Env.baseUrl+url.substr(1); 8 | else url=Env.apiUrl+url; 9 | wx.request({ 10 | url: url, 11 | data: data, 12 | header: Env.request.headers, 13 | success: success, 14 | fail: fail, 15 | }); 16 | } -------------------------------------------------------------------------------- /weapp/libray/ui/request-post.js: -------------------------------------------------------------------------------- 1 | import Env from '../../env.js' 2 | 3 | /* Get请求 */ 4 | export default (url,data,success,fail)=>{ 5 | // URL 6 | if(url.substr(0,4)=='http') url=url; 7 | else if(url.substr(0,1)=='/') url=Env.baseUrl+url.substr(1); 8 | else url=Env.apiUrl+url; 9 | wx.request({ 10 | url: url, 11 | data: data, 12 | method: 'POST', 13 | header: Env.request.headers, 14 | success: success, 15 | fail: fail, 16 | }); 17 | } -------------------------------------------------------------------------------- /weapp/libray/ui/storage.js: -------------------------------------------------------------------------------- 1 | export default { 2 | /* 保存 */ 3 | setItem(key,data){ 4 | return wx.setStorage({key:key,data:data}); 5 | }, 6 | /* 获取 */ 7 | getItem(key){ 8 | return wx.getStorageSync(key); 9 | }, 10 | /* 清除 */ 11 | clear(){ 12 | return wx.clearStorageSync(); 13 | }, 14 | } -------------------------------------------------------------------------------- /weapp/libray/ui/ui-back.js: -------------------------------------------------------------------------------- 1 | /* UI-返回 */ 2 | export default (num)=>{ 3 | wx.navigateBack({delta:num}); 4 | } -------------------------------------------------------------------------------- /weapp/libray/ui/ui-loading.js: -------------------------------------------------------------------------------- 1 | /* UI-加载 */ 2 | export default (time)=>{ 3 | // 10秒后清除 4 | time = time || 10000; 5 | setTimeout(()=>{ 6 | wx.hideLoading(); 7 | },time); 8 | // 显示 9 | wx.showLoading({title:''}); 10 | return { clear:wx.hideLoading }; 11 | } -------------------------------------------------------------------------------- /weapp/libray/ui/ui-navigate-to.js: -------------------------------------------------------------------------------- 1 | /* UI-跳转页面 */ 2 | export default (url,parm)=>{ 3 | // 参数 4 | parm = parm || ''; 5 | let str = '?'; 6 | if(parm){ 7 | for(let i in parm) str += `${i}=${parm[i]}&`; 8 | url += str; 9 | } 10 | // 跳转 11 | return wx.navigateTo({url: url}); 12 | } -------------------------------------------------------------------------------- /weapp/libray/ui/ui-toast.js: -------------------------------------------------------------------------------- 1 | /* UI-提示 */ 2 | export default (text,time)=>{ 3 | time = time || 3000; 4 | return wx.showToast({title:text,duration:time,icon:'none'}); 5 | } -------------------------------------------------------------------------------- /weapp/pages/demo/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": { 3 | "page-view": "/components/page-view/index", 4 | "wm-scroll-view": "/components/scroll-view/index" 5 | }, 6 | "navigationStyle": "custom" 7 | } -------------------------------------------------------------------------------- /weapp/pages/demo/demo.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Demo 6 | 7 | 8 | 9 | {{item}} 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /weapp/pages/demo/demo.wxss: -------------------------------------------------------------------------------- 1 | .test{margin: 1px 0;} 2 | .test view{margin: 1px 0; line-height: 120px; background-color: #FFF; text-align: center;} -------------------------------------------------------------------------------- /weapp/pages/index/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": { 3 | "page-view": "/components/page-view/index", 4 | "wm-tabbar": "/components/tabbar/index" 5 | }, 6 | "navigationStyle": "custom" 7 | } -------------------------------------------------------------------------------- /weapp/sitemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", 3 | "rules": [{ 4 | "action": "allow", 5 | "page": "*" 6 | }] 7 | } -------------------------------------------------------------------------------- /weapp/store.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: { 3 | isLogin: '', // 登录状态 4 | uInfo: {}, // 用户信息 5 | geolocation:{}, // 定位信息 6 | socket: null, // Socket 7 | uMsg: {scroll:null, group:[],num:'',id:'',name:'',msg:[],content:''}, // 消息 8 | uNotify: {}, // 通知 9 | } 10 | } -------------------------------------------------------------------------------- /web/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | yarn.lock 4 | version.md 5 | # /dist 6 | 7 | # local env files 8 | .env.local 9 | .env.*.local 10 | 11 | # Log files 12 | npm-debug.log* 13 | yarn-debug.log* 14 | yarn-error.log* 15 | pnpm-debug.log* 16 | 17 | # Editor directories and files 18 | .idea 19 | .vscode 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /web/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /web/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webmiss/base/8c9218a0a61cac8b3309a9db7424c2937eda9b7b/web/public/favicon.png -------------------------------------------------------------------------------- /web/src/docs/gin/db/delete.md: -------------------------------------------------------------------------------- 1 | ### 删除 2 | ```go 3 | import "webmis/model" 4 | // 对象 5 | demo := (&model.Demo{}).New() 6 | demo.Where("uid=?", id) 7 | demo.Delete() 8 | ``` 9 | 10 | ### 生成SQL 11 | ```go 12 | sql,args := db.DeleteSQL() 13 | ``` -------------------------------------------------------------------------------- /web/src/docs/gin/db/insert.md: -------------------------------------------------------------------------------- 1 | ### 插入 2 | ```go 3 | import "webmis/model" 4 | // 对象 5 | demo := (&model.Demo{}).New() 6 | demo.Values(map[string]interface{}{ 7 | "uid": nil, 8 | "title": "Go-添加", 9 | }) 10 | demo.Insert() 11 | ``` 12 | 13 | ### 生成SQL 14 | ```go 15 | sql,args := db.InsertSQL() 16 | ``` -------------------------------------------------------------------------------- /web/src/docs/gin/db/join.md: -------------------------------------------------------------------------------- 1 | ### 连表 2 | ```go 3 | import "webmis/model" 4 | // 对象 5 | demo := (&model.Demo{}).New() 6 | demo.Table("test1 as a") 7 | demo.LeftJoin("test2 as b", "a.id=b.uid") 8 | demo.Columns("a.title", "b.name") 9 | sql, args := demo.SelectSQL() 10 | self.Print(sql, args) 11 | ``` 12 | 13 | ### 其他 14 | ```go 15 | // INNER JOIN 16 | db.Join() 17 | // LEFT JOIN 18 | db.LeftJoin() 19 | // RIGHT JOIN 20 | db.RightJoin() 21 | // FULL JOIN 22 | db.FullJoin() 23 | ``` -------------------------------------------------------------------------------- /web/src/docs/gin/db/update.md: -------------------------------------------------------------------------------- 1 | ### 更新 2 | ```go 3 | import "webmis/model" 4 | // 对象 5 | demo := (&model.Demo{}).New() 6 | demo.Set(map[string]interface{}{ 7 | "title": "Go-更新", 8 | }) 9 | demo.Where("uid=?", id) 10 | num := demo.Update() 11 | self.Print(num) 12 | ``` 13 | 14 | ### 生成SQL 15 | ```go 16 | sql,args := db.UpdateSQL() 17 | ``` -------------------------------------------------------------------------------- /web/src/docs/gin/library/qrcode.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```go 3 | import "webmis/library" 4 | ``` 5 | 6 | ## 生成 7 | ```go 8 | (&library.Qrcode{}).Create(map[string]interface{}{ 9 | "text": "", //内容 10 | "size": 200, //大小 11 | }) 12 | ``` 13 | 14 | ## 识别 15 | ```go 16 | (&library.Qrcode{}).Scan("public/upload/qrcode/demo.png") 17 | ``` -------------------------------------------------------------------------------- /web/src/docs/gin/library/socket.md: -------------------------------------------------------------------------------- 1 | ## 服务器 2 | ```bash 3 | # 运行 4 | ./bash socket 5 | # 启动 6 | ./bash socketStart 7 | ``` 8 | - 数据: service/scoket.go 9 | - 发送: library/scoket.go 10 | 11 | ## 群发 12 | ```go 13 | import "library" 14 | 15 | go (&library.Socket{}).Send( 16 | "admin", 17 | gin.H{ 18 | "code": 0, 19 | "type": "msg", 20 | "data": gin.H{ 21 | "title": "测试", 22 | "content": "测试内容", 23 | }, 24 | }, 25 | ) 26 | ``` 27 | -------------------------------------------------------------------------------- /web/src/docs/gin/service/base.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```go 3 | import "webmis/service" 4 | ``` 5 | 6 | ## 返回JSON 7 | ```go 8 | (&service.Base{}).GetJSON(c *gin.Context, data interface{}) 9 | ``` 10 | 11 | ## 输出到控制台 12 | ```go 13 | (&service.Base{}).Print(content ...interface{}) 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/gin/service/data.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```go 3 | import "webmis/service" 4 | ``` 5 | 6 | ## 薄雾算法 7 | ```go 8 | (&service.Data{}).Mist(redisName string) 9 | ``` 10 | 11 | ## 雪花算法 12 | ```go 13 | (&service.Data{}).Snowflake() 14 | ``` 15 | 16 | ## 图片地址 17 | ```go 18 | (&service.Data{}).Img(img interface{}) 19 | ``` 20 | -------------------------------------------------------------------------------- /web/src/docs/gin/service/logs.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```go 3 | import "webmis/service" 4 | ``` 5 | 6 | ## 访问日志 7 | ```go 8 | (&service.Logs{}).Log(data interface{}) 9 | ``` 10 | 11 | ## 信息日志 12 | ```go 13 | (&service.Logs{}).Info(data interface{}) 14 | ``` 15 | 16 | ## 操作日志 17 | ```go 18 | (&service.Logs{}).Action(data interface{}) 19 | ``` 20 | 21 | ## 错误日志 22 | ```go 23 | (&service.Logs{}).Error(data interface{}) 24 | ``` 25 | 26 | ## 其它 27 | ```go 28 | (&service.Logs{}).Writer(text []byte) 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/gin/service/socket.md: -------------------------------------------------------------------------------- 1 | ## 路由 2 | ```go 3 | router(uid string, conn *websocket.Conn, message []byte) 4 | ``` 5 | 6 | ## 群发 7 | ```go 8 | sendAll(data map[string]interface{}) 9 | ``` 10 | 11 | ## 单发 12 | ```go 13 | send(conn *websocket.Conn, data map[string]interface{}) 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/gin/service/token.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```go 3 | import "webmis/service" 4 | ``` 5 | 6 | ## 验证 7 | ```go 8 | (&service.AdminToken{}).Verify(token string, urlPerm string) 9 | ``` 10 | 11 | ## 权限数组 12 | ```go 13 | (&service.AdminToken{}).Perm(token string) 14 | ``` 15 | 16 | ## 生成Token 17 | ```go 18 | (&service.AdminToken{}).Create(data map[string]interface{}) 19 | ``` 20 | 21 | ## Token数据 22 | ```go 23 | (&service.AdminToken{}).Token(token string) 24 | ``` 25 | -------------------------------------------------------------------------------- /web/src/docs/gin/util/os.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```go 3 | import "webmis/util" 4 | ``` 5 | 6 | ## 操作系统 7 | ```go 8 | (&util.Os{}).System(user_agent string) 9 | ``` 10 | 11 | ## 浏览器 12 | ```go 13 | (&util.Os{}).Browser(user_agent string) 14 | ``` -------------------------------------------------------------------------------- /web/src/docs/gin/util/url.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```go 3 | import "webmis/util" 4 | ``` 5 | 6 | ## 编码 7 | ```go 8 | (&util.Url{}).Encode(data string) 9 | ``` 10 | 11 | ## 解码 12 | ```go 13 | (&util.Url{}).Decode(data string) 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/java/db/delete.md: -------------------------------------------------------------------------------- 1 | ### 删除 2 | ```java 3 | import webmis.model.Demo; 4 | // 对象 5 | Demo demo = new Demo(); 6 | demo.Where("uid=?", id); 7 | demo.Delete(); 8 | ``` 9 | 10 | ### 生成SQL 11 | ```java 12 | // sql、args 13 | Object[] sql = db.DeleteSQL() 14 | ``` -------------------------------------------------------------------------------- /web/src/docs/java/db/insert.md: -------------------------------------------------------------------------------- 1 | ### 插入 2 | ```java 3 | import webmis.model.Demo; 4 | // 对象 5 | Demo demo = new Demo(); 6 | // 数据 7 | HashMap data = new HashMap(); 8 | data.put("uid", 0); 9 | data.put("title", "Java-添加"); 10 | demo.Values(data); 11 | // 执行 12 | demo.Insert(); 13 | ``` 14 | 15 | ### 生成SQL 16 | ```java 17 | // sql、args 18 | Object[] sql = db.InsertSQL() 19 | ``` -------------------------------------------------------------------------------- /web/src/docs/java/db/join.md: -------------------------------------------------------------------------------- 1 | ### 连表 2 | ```java 3 | import webmis.model.Demo; 4 | // 对象 5 | Demo demo = new Demo(); 6 | demo.Table("test1 as a"); 7 | demo.LeftJoin("test2 as b", "a.id=b.uid"); 8 | demo.Columns("a.title", "b.name"); 9 | String sql = demo.SelectSQL(); 10 | Print(sql); 11 | ``` 12 | 13 | ### 其他 14 | ```java 15 | // INNER JOIN 16 | demo.Join() 17 | // LEFT JOIN 18 | demo.LeftJoin() 19 | // RIGHT JOIN 20 | demo.RightJoin() 21 | // FULL JOIN 22 | demo.FullJoin() 23 | ``` -------------------------------------------------------------------------------- /web/src/docs/java/db/update.md: -------------------------------------------------------------------------------- 1 | ### 更新 2 | ```java 3 | import webmis.model.Demo; 4 | // 对象 5 | Demo demo = new Demo(); 6 | // 数据 7 | HashMap data = new HashMap(); 8 | data.put("title", "Java-更新"); 9 | demo.Set(data); 10 | demo.Where("uid=?", id); 11 | // 执行 12 | demo.Update(); 13 | ``` 14 | 15 | ### 生成SQL 16 | ```java 17 | // sql、args 18 | Object[] sql = db.UpdateSQL() 19 | ``` -------------------------------------------------------------------------------- /web/src/docs/java/library/socket.md: -------------------------------------------------------------------------------- 1 | ## 服务器 2 | ```bash 3 | # 运行 4 | ./bash start 5 | ``` 6 | 7 | ## 群发 8 | ```java 9 | import webmis.library.Socket; 10 | 11 | HashMap data = new HashMap(); 12 | data.put("code", 0); 13 | data.put("type", "msg"); 14 | HashMap msg = new HashMap(); 15 | msg.put("title", "测试"); 16 | msg.put("content", "测试内容"); 17 | data.put("data", msg); 18 | Socket.Send("admin", data); 19 | ``` 20 | -------------------------------------------------------------------------------- /web/src/docs/java/service/base.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.service.Base; 4 | ``` 5 | 6 | ## 返回JSON 7 | ```java 8 | Base.GetJSON(HashMap data); 9 | ``` 10 | 11 | ## 输出到控制台 12 | ```java 13 | Base.Print(Object... content); 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/java/service/data.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.service.Data; 4 | ``` 5 | 6 | ## 薄雾算法 7 | ```java 8 | Data.Mist(String redisName); 9 | ``` 10 | 11 | ## 雪花算法 12 | ```java 13 | Data.Snowflake(); 14 | ``` 15 | 16 | ## 图片地址 17 | ```java 18 | Data.Img(Object img); 19 | ``` 20 | -------------------------------------------------------------------------------- /web/src/docs/java/service/logs.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.service.Logs; 4 | ``` 5 | 6 | ## 访问日志 7 | ```java 8 | Logs.Log(Object data); 9 | ``` 10 | 11 | ## 信息日志 12 | ```java 13 | Logs.Info(Object data); 14 | ``` 15 | 16 | ## 操作日志 17 | ```java 18 | Logs.Action(Object data); 19 | ``` 20 | 21 | ## 错误日志 22 | ```java 23 | Logs.Error(Object data); 24 | ``` 25 | 26 | ## 其它 27 | ```java 28 | Logs.Writer(String text); 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/java/service/socket.md: -------------------------------------------------------------------------------- 1 | ## 路由 2 | ```java 3 | router(String uid, Session conn, String msg); 4 | ``` 5 | 6 | ## 群发 7 | ```java 8 | sendAll(HashMap data); 9 | ``` 10 | 11 | ## 单发 12 | ```java 13 | send(Session conn, HashMap data); 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/java/service/token.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.service.AdminToken; 4 | ``` 5 | 6 | ## 验证 7 | ```java 8 | AdminToken.verify(String token, String urlPerm); 9 | ``` 10 | 11 | ## 权限数组 12 | ```java 13 | AdminToken.Perm(String token); 14 | ``` 15 | 16 | ## 生成 17 | ```java 18 | AdminToken.Create(HashMap data); 19 | ``` 20 | 21 | ## 获取 22 | ```java 23 | AdminToken.Token(String token); 24 | ``` 25 | -------------------------------------------------------------------------------- /web/src/docs/java/util/dynamic.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.util.Dynamic; 4 | ``` 5 | 6 | ## 泛型 7 | ```java 8 | Dynamic 9 | ``` 10 | -------------------------------------------------------------------------------- /web/src/docs/java/util/http.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.util.Http; 4 | ``` 5 | 6 | ## Request 7 | ```java 8 | Http.Request(); 9 | ``` 10 | 11 | ## Response 12 | ```java 13 | Http.Response(); 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/java/util/os.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.util.Os; 4 | ``` 5 | 6 | ## 操作系统 7 | ```java 8 | os.System(String user_agent); 9 | ``` 10 | 11 | ## 浏览器 12 | ```java 13 | os.Browser(String user_agent); 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/java/util/type.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.util.Type; 4 | ``` 5 | 6 | ## Int 7 | ```java 8 | Type.Int(Object val); 9 | ``` 10 | 11 | ## Long 12 | ```java 13 | Type.Long(Object val); 14 | ``` 15 | 16 | ## 转换 17 | ```java 18 | Type.ToType(String type, Object val); 19 | ``` 20 | - type: string、int、float 21 | -------------------------------------------------------------------------------- /web/src/docs/java/util/url.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```java 3 | import webmis.util.Url; 4 | ``` 5 | 6 | ## 编码 7 | ```java 8 | Url.Encode(String data); 9 | ``` 10 | 11 | ## 解码 12 | ```java 13 | Url.Decode(String data); 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/linux/archlinux/github.md: -------------------------------------------------------------------------------- 1 | # Github-SSH方式 2 | 3 | ## 用户名、邮箱 4 | ``` bash 5 | git config --global user.name "webmis" 6 | git config --global user.email "klingsoul@163.com" 7 | ``` 8 | 9 | ## RSA密钥 10 | ``` bash 11 | ssh-keygen -t rsa -C "klingsoul@163.com" 12 | ``` 13 | - 将"~/.ssh/id_rsa.pub" 拷贝到 Github > SSH and GPG keys 14 | 15 | ## 克隆项目 16 | ``` bash 17 | git clone git@github.com:webmiss/base.git ./base 18 | ``` -------------------------------------------------------------------------------- /web/src/docs/php/db/delete.md: -------------------------------------------------------------------------------- 1 | ### 删除 2 | ```php 3 | use Model\Demo; 4 | // 对象 5 | $demo = new Demo(); 6 | $demo->Where('uid=?', $id); 7 | $demo->Delete(); 8 | ``` 9 | 10 | ### 生成SQL 11 | ```php 12 | list($sql, $args) = $demo->DeleteSQL(); 13 | ``` -------------------------------------------------------------------------------- /web/src/docs/php/db/join.md: -------------------------------------------------------------------------------- 1 | ### 连表 2 | ```php 3 | use Model\Demo; 4 | // 对象 5 | $demo = new Demo(); 6 | $demo->Table('test1 as a'); 7 | $demo->LeftJoin('test2 as b', 'a.id=b.uid'); 8 | $demo->Columns('a.title', 'b.name'); 9 | list($sql, $args) = $demo->SelectSQL(); 10 | self::Print($sql, $args); 11 | ``` 12 | 13 | ### 其他 14 | ```php 15 | // INNER JOIN 16 | $demo->Join(); 17 | // LEFT JOIN 18 | $demo->LeftJoin(); 19 | // RIGHT JOIN 20 | $demo->RightJoin(); 21 | // FULL JOIN 22 | $demo->FullJoin(); 23 | ``` -------------------------------------------------------------------------------- /web/src/docs/php/db/update.md: -------------------------------------------------------------------------------- 1 | ### 更新 2 | ```php 3 | use Model\Demo; 4 | // 对象 5 | $demo = new Demo(); 6 | $demo->Set(['title'=>'PHP-更新']); 7 | $demo->Where('uid=?', $id); 8 | $num = $demo->Update(); 9 | self::Print($num); 10 | ``` 11 | 12 | ### 生成SQL 13 | ```php 14 | list($sql, $args) = $demo->UpdateSQL(); 15 | ``` -------------------------------------------------------------------------------- /web/src/docs/php/library/qrcode.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Library\Qrcode; 4 | ``` 5 | 6 | ## 生成 7 | ```php 8 | Qrcode::create([ 9 | 'text'=> '', //内容 10 | 'type'=>'qr', //类型: upc-a、code-39、qr、dmtx等 11 | 'tmpPath'=>'upload/tmp/', //缓存目录 12 | 'filename'=>self::_getName().'.png', //文件名 13 | 'options'=>['f'=>'png','p'=>-20,'w'=>200,'h'=>200], //配置 14 | ]); 15 | ``` 16 | 17 | ## 识别 18 | ```php 19 | Qrcode::scan($file); 20 | ``` -------------------------------------------------------------------------------- /web/src/docs/php/library/socket.md: -------------------------------------------------------------------------------- 1 | ## 服务器 2 | ```bash 3 | # 运行 4 | ./bash socket 5 | # 启动 6 | ./bash socketStart 7 | ``` 8 | 9 | ## 群发 10 | ```php 11 | use Library\Socket; 12 | 13 | Socket::Send('admin', [ 14 | 'code'=> 0, 15 | 'type'=> 'msg', 16 | 'data'=> [ 17 | 'title'=> '测试', 18 | 'content'=> '测试内容', 19 | ], 20 | ]); 21 | ``` 22 | -------------------------------------------------------------------------------- /web/src/docs/php/service/base.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Service\Base; 4 | ``` 5 | 6 | ## 返回JSON 7 | ```php 8 | Base::GetJSON(array $data=[]); 9 | ``` 10 | 11 | ## Get参数 12 | ```php 13 | Base::Get(string $name); 14 | ``` 15 | 16 | ## Post参数 17 | ```php 18 | Base::Post(string $name); 19 | ``` 20 | 21 | ## 输出到控制台 22 | ```php 23 | Base::Print(...$content); 24 | ``` 25 | 26 | ## 异常错误 27 | ```php 28 | Base::Error($msg); 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/php/service/data.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Service\Data; 4 | ``` 5 | 6 | ## 薄雾算法 7 | ```php 8 | Data::Mist(string $redisName); 9 | ``` 10 | 11 | ## 雪花算法 12 | ```php 13 | Data::Snowflake(); 14 | ``` 15 | 16 | ## 图片地址 17 | ```php 18 | Data::Img(string $img); 19 | ``` 20 | -------------------------------------------------------------------------------- /web/src/docs/php/service/logs.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Service\Logs; 4 | ``` 5 | 6 | ## 访问日志 7 | ```php 8 | Logs::Log($data); 9 | ``` 10 | 11 | ## 信息日志 12 | ```php 13 | Logs::Info($data); 14 | ``` 15 | 16 | ## 操作日志 17 | ```php 18 | Logs::Action($data); 19 | ``` 20 | 21 | ## 错误日志 22 | ```php 23 | Logs::Error($data); 24 | ``` 25 | 26 | ## 其它 27 | ```php 28 | Logs::Writer(string $text); 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/php/service/socket.md: -------------------------------------------------------------------------------- 1 | ## 路由 2 | ```php 3 | router(string $uid, $conn, $msg); 4 | ``` 5 | 6 | ## 群发 7 | ```php 8 | sendAll($data); 9 | ``` 10 | 11 | ## 单发 12 | ```php 13 | send($conn, $data); 14 | ``` -------------------------------------------------------------------------------- /web/src/docs/php/service/token.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Service\AdminToken; 4 | ``` 5 | 6 | ## 验证 7 | ```php 8 | AdminToken::Verify(string $token, string $urlPerm); 9 | ``` 10 | 11 | ## 权限数组 12 | ```php 13 | AdminToken::Perm(string $token); 14 | ``` 15 | 16 | ## 生成 17 | ```php 18 | AdminToken::Create(array $data); 19 | ``` 20 | 21 | ## 获取 22 | ```php 23 | AdminToken::Token(string $token); 24 | ``` 25 | -------------------------------------------------------------------------------- /web/src/docs/php/util/hash.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Util\Hash; 4 | ``` 5 | 6 | ## Md5 7 | ```php 8 | Hash::Md5(string $data); 9 | ``` 10 | 11 | ## Sha256 12 | ```php 13 | Hash::Sha256(string $data); 14 | ``` 15 | 16 | ## HmacSha1 17 | ```php 18 | Hash::HmacSha1(string $data, string $key, bool $binary=true); 19 | ``` 20 | 21 | ## HmacSha256 22 | ```php 23 | Hash::HmacSha256(string $data, string $key, bool $binary=true); 24 | ``` 25 | 26 | ## Bytes 27 | ```php 28 | Hash::GetBytes(string $data); 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/php/util/os.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Util\Os; 4 | ``` 5 | 6 | ## 操作系统 7 | ```php 8 | Os::System(string $user_agent); 9 | ``` 10 | 11 | ## 浏览器 12 | ```php 13 | Os::Browser(string $user_agent); 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/php/util/type.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Util\Type; 4 | ``` 5 | 6 | ## 转换 7 | ```php 8 | Type::ToType( 9 | string $type, //string、int、float 10 | $val 11 | ); 12 | ``` 13 | - type: string、int、float 14 | 15 | ## 转String 16 | ```php 17 | Type::Strval($val); 18 | ``` -------------------------------------------------------------------------------- /web/src/docs/php/util/url.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```php 3 | use Util\Url; 4 | ``` 5 | 6 | ## 编码 7 | ```php 8 | Url::Encode(string $data); 9 | ``` 10 | 11 | ## 解码 12 | ```php 13 | Url::Decode(string $data); 14 | ``` -------------------------------------------------------------------------------- /web/src/docs/python/db/delete.md: -------------------------------------------------------------------------------- 1 | ### 删除 2 | ```python 3 | from model.demo import Demo 4 | # 对象 5 | demo = Demo() 6 | demo.Where('uid=%s', id) 7 | demo.Delete() 8 | ``` 9 | 10 | ### 生成SQL 11 | ```python 12 | sql, args = db.DeleteSQL() 13 | ``` -------------------------------------------------------------------------------- /web/src/docs/python/db/insert.md: -------------------------------------------------------------------------------- 1 | ### 插入 2 | ```python 3 | from model.demo import Demo 4 | # 对象 5 | demo = Demo() 6 | demo.Values({'uid': None, 'title':'添加'}) 7 | demo.Insert() 8 | ``` 9 | 10 | ### 生成SQL 11 | ```python 12 | sql, args = demo.InsertSQL() 13 | ``` -------------------------------------------------------------------------------- /web/src/docs/python/db/join.md: -------------------------------------------------------------------------------- 1 | ### 连表 2 | ```python 3 | from model.demo import Demo 4 | # 对象 5 | demo = Demo() 6 | demo.Table('test1 as a') 7 | demo.LeftJoin('test2 as b', 'a.id=b.uid') 8 | demo.Columns('a.title', 'b.name') 9 | sql, args = demo.SelectSQL() 10 | self.Print(sql, args) 11 | ``` 12 | 13 | ### 其他 14 | ```python 15 | # INNER JOIN 16 | demo.Join() 17 | # LEFT JOIN 18 | demo.LeftJoin() 19 | # RIGHT JOIN 20 | demo.RightJoin() 21 | # FULL JOIN 22 | demo.FullJoin() 23 | ``` -------------------------------------------------------------------------------- /web/src/docs/python/db/model.md: -------------------------------------------------------------------------------- 1 | ### 创建模型 2 | **model/demo.py** 3 | ```python 4 | from model.model import Model 5 | 6 | # 测试表 7 | class Demo(Model) : 8 | 9 | # 构造函数 10 | def __init__(self): 11 | self.Table('test') 12 | ``` 13 | 14 | ### 使用 15 | ```python 16 | from model.demo import Demo 17 | # 对象 18 | model = Demo() 19 | ``` 20 | 21 | ### 查询 22 | ```python 23 | model.Query(conn, sql: str, args: tuple) 24 | ``` 25 | 26 | ### 执行 27 | ```python 28 | model.Exec(conn, sql: str, args: tuple) 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/python/db/update.md: -------------------------------------------------------------------------------- 1 | ### 更新 2 | ```python 3 | from model.demo import Demo 4 | # 对象 5 | demo = Demo() 6 | demo.Set({'title':'Python-更新'}) 7 | demo.Where('uid=%s', id) 8 | num = demo.Update() 9 | self.Print(num) 10 | ``` 11 | 12 | ### 生成SQL 13 | ```python 14 | sql, args = db.UpdateSQL() 15 | ``` -------------------------------------------------------------------------------- /web/src/docs/python/library/qrcode.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from library.qrcode import Qrcode 4 | ``` 5 | 6 | ## 生成 7 | ```python 8 | Qrcode.Create( 9 | 'text': '', #内容 10 | 'size': 5, #大小 11 | 'border': 2, #边距 12 | ) 13 | ``` 14 | 15 | ## 识别 16 | ```python 17 | Qrcode.Scan('public/upload/qrcode/demo.png') 18 | ``` 19 | -------------------------------------------------------------------------------- /web/src/docs/python/library/socket.md: -------------------------------------------------------------------------------- 1 | ## 服务器 2 | ```bash 3 | # 运行 4 | ./bash socket 5 | # 启动 6 | ./bash socketStart 7 | ``` 8 | 9 | ## 群发 10 | ```python 11 | from library.socket import Socket 12 | 13 | Socket.Send('admin', { 14 | 'code': 0, 15 | 'type': 'msg', 16 | 'data': { 17 | 'title': '测试', 18 | 'content': '测试内容', 19 | }, 20 | }) 21 | ``` 22 | -------------------------------------------------------------------------------- /web/src/docs/python/service/base.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from service.base import Base 4 | ``` 5 | 6 | ## 返回JSON 7 | ```python 8 | Base().GetJSON(data='') 9 | ``` 10 | 11 | ## Get参数 12 | ```python 13 | Base().Get(name: str) 14 | ``` 15 | 16 | ## Post参数 17 | ```python 18 | Base().Post(name: str) 19 | ``` 20 | 21 | ## 输出到控制台 22 | ```python 23 | Base().Print(*content) 24 | ``` 25 | 26 | ## 异常错误 27 | ```python 28 | Base().Error(msg: str ='') 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/python/service/data.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from service.data import Data 4 | ``` 5 | 6 | ## 薄雾算法 7 | ```python 8 | Data.Mist(redisName: str) 9 | ``` 10 | 11 | ## 雪花算法 12 | ```python 13 | Data.Snowflake() 14 | ``` 15 | 16 | ## 图片地址 17 | ```python 18 | Data.Img(img: str) 19 | ``` 20 | -------------------------------------------------------------------------------- /web/src/docs/python/service/logs.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from service.logs import Logs 4 | ``` 5 | 6 | ## 访问日志 7 | ```python 8 | Logs.Log(data) 9 | ``` 10 | 11 | ## 信息日志 12 | ```python 13 | Logs.Info(data) 14 | ``` 15 | 16 | ## 操作日志 17 | ```python 18 | Logs.Action(data) 19 | ``` 20 | 21 | ## 错误日志 22 | ```python 23 | Logs.Error(data) 24 | ``` 25 | 26 | ## 其它 27 | ```python 28 | Logs.Writer(text: str) 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/python/service/socket.md: -------------------------------------------------------------------------------- 1 | ## 路由 2 | ```python 3 | router(self, uid: str, conn: any, msg: str) 4 | ``` 5 | 6 | ## 群发 7 | ```python 8 | sendAll(self, data: dict) 9 | ``` 10 | 11 | ## 单发 12 | ```python 13 | send(self, conn, data: dict) 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/python/service/token.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from service.admin_token import AdminToken 4 | ``` 5 | 6 | ## 验证 7 | ```python 8 | AdminToken.verify(token: str, urlPerm: str) 9 | ``` 10 | 11 | ## 权限数组 12 | ```python 13 | AdminToken.Perm(token: str) 14 | ``` 15 | 16 | ## 生成 17 | ```python 18 | AdminToken.Create(data: dict) 19 | ``` 20 | 21 | ## 获取 22 | ```python 23 | AdminToken.Token(token: str) 24 | ``` 25 | -------------------------------------------------------------------------------- /web/src/docs/python/util/hash.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from util.hash import Hash 4 | ``` 5 | 6 | ## Md5 7 | ```python 8 | Hash.Md5(data: str) 9 | ``` 10 | 11 | ## Sha256 12 | ```python 13 | Hash.Sha256(data: str) 14 | ``` 15 | 16 | ## HmacSha1 17 | ```python 18 | Hash.HmacSha1(data: str, key: bytes) 19 | ``` 20 | 21 | ## HmacSha256 22 | ```python 23 | Hash.HmacSha256(data: str, key: bytes) 24 | ``` 25 | 26 | ## Bytes转为16进制 27 | ```python 28 | Hash.HmacSha256(byte: bytes) 29 | ``` 30 | -------------------------------------------------------------------------------- /web/src/docs/python/util/os.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from util.url import Os 4 | ``` 5 | 6 | ## 操作系统 7 | ```python 8 | Os.System(user_agent: str) 9 | ``` 10 | 11 | ## 浏览器 12 | ```python 13 | Os.Browser(user_agent: str) 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/python/util/type.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from util.url import Type 4 | ``` 5 | 6 | ## 转换 7 | ```python 8 | Type.ToType(type: str, val) 9 | ``` 10 | - type: string、int、float 11 | 12 | ## Interface 转 String 13 | ```python 14 | Type.Strval(val) 15 | ``` 16 | -------------------------------------------------------------------------------- /web/src/docs/python/util/url.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```python 3 | from util.url import Url 4 | ``` 5 | 6 | ## 编码 7 | ```python 8 | Url.Encode(data: str) 9 | ``` 10 | 11 | ## 解码 12 | ```python 13 | Url.Decode(data: str) 14 | ``` 15 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/action.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmAdd from '@/components/action/add/index.vue' 4 | import wmSubtract from '@/components/action/subtract/index.vue' 5 | import wmClose from '@/components/action/close/index.vue' 6 | ``` 7 | 8 | ## Html 9 | ```html 10 | 11 | 12 | 13 | ``` 14 | - size: {type: String, default: '11px'}, //大小 15 | - bgColor: {type: String, default: '#6FB737'}, //背景颜色 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/loading.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmLoading from '@/components/loading/index.vue' 4 | ``` 5 | 6 | ## Loading 7 | ```html 8 | 9 | ``` 10 | - theme: {type: String, default: 'flow'}, //样式: flow、swing、circle、wave 11 | - color: {type: String, default: Env.themes.primary}, //颜色 12 | 13 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/main.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmMain from '@/components/main/index.vue' 4 | import wmRow from '@/components/main/row/index.vue' 5 | ``` 6 | 7 | ## 容器 8 | ```html 9 | 10 | ``` 11 | - padding: {type: Number, default: 10}, //边距 12 | 13 | ## 单行 14 | ```html 15 | 16 | ``` 17 | - lineHeight: {type: String, default: '40px'}, //高 18 | - fontSize: {type: String, default: '14px'}, //字体大小 19 | 20 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/page.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmPage from '@/components/page/index.vue' 4 | ``` 5 | 6 | ## 分页 7 | ```html 8 | 9 | ``` 10 | - page: {type: Number, default: 1}, //当前页码 11 | - limit: {type: Number, default: 10}, //每页条数 12 | - total: {type: Number, default: 0}, //总条数 13 | - padding: {type: String, default: '16px 0'}, //间距 14 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/popover.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmPopover from '@/components/popover/index.vue' 4 | ``` 5 | 6 | ## 弹出框 7 | ```html 8 | 9 | ``` 10 | - type: {type: String, default: 'top'}, //位置: top、bottom、left、right 11 | - width: {type: String, default: '160px'}, //内容宽度 12 | - effect: {type: String, default: 'plain'}, //样式: plain、dark 13 | 14 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/search.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmSearch from '@/components/search/index.vue' 4 | ``` 5 | 6 | ## 搜索 7 | ```html 8 | 9 |
  • 10 | 11 |
  • 12 |
    13 | ``` 14 | - show: {type:Boolean, default:false}, //是否显示 15 | - @updata:submit //点击搜索 16 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/tabs.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmTabs from '@/components/tabs/index.vue' 4 | ``` 5 | 6 | ## 标签页 7 | ```html 8 | 9 | 10 | 11 | 12 | ``` 13 | - active: {type:String, default:''}, //默认选择 14 | - data: {type:Array, default:[]}, //数据: [{label:'Tab1', name:'tab1'},{label:'Tab2', - name:'tab2'}] 15 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/tag.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmTag from '@/components/tag/index.vue' 4 | ``` 5 | 6 | ## 标签 7 | ```html 8 | 9 | ``` 10 | - type: {type: String, default: 'primary'}, //类型: primary、info、warning、danger 11 | - effect: {type: String, default: 'plain'}, //样式: plain、dark 12 | - height: {type: String, default: '28px'}, //高度 13 | - padding: {type: String, default: '0 8px'}, //间距 14 | - fontSize: {type: String, default: '12px'}, //字体大小 -------------------------------------------------------------------------------- /web/src/docs/vue/admin/tree.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmTree from '@/components/tree/index.vue' 4 | ``` 5 | 6 | ## 树形控件 7 | ```html 8 | 9 | ``` 10 | - data: {default: []}, //数据: [{id: "1", label: "测试接口", checked: true, show: true, action: true, children: []}] 11 | 12 | -------------------------------------------------------------------------------- /web/src/docs/vue/admin/uploader.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmUploader from '@/components/uploader/index.vue' 4 | ``` 5 | 6 | ## 上传文件 7 | ```html 8 | 9 | ``` 10 | - url: {type: String, default: ''}, //上传地址 11 | - name: {type: String, default: 'up'}, //上传名称 12 | - param: {type: Object, default: {}}, //提交参数 -------------------------------------------------------------------------------- /web/src/docs/vue/app/loading.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import wmLoading from '@/components/loading/index.vue' 4 | ``` 5 | 6 | ## Loading 7 | ```html 8 | 9 | ``` 10 | - theme: {type: String, default: 'flow'}, //样式: flow、swing、circle、wave 11 | - color: {type: String, default: Env.themes.primary}, //颜色 12 | 13 | -------------------------------------------------------------------------------- /web/src/docs/vue/app/touch.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import WmTouch from '@/components/tabbar/touch.vue' 4 | ``` 5 | 6 | ## 手势 7 | ```html 8 | 9 | 页面 10 | 11 | ``` 12 | - limit: {type: Number, default: 200}, //触发距离 13 | - @swipe //事件: left、right、down、up 14 | 15 | -------------------------------------------------------------------------------- /web/src/docs/vue/library/array.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import ArrayUnique from '@/library/array/unique' 4 | ``` 5 | 6 | ## 数组去重复 7 | ```typescript 8 | ArrayUnique( 9 | arr: Array, //数组 10 | ); 11 | ``` -------------------------------------------------------------------------------- /web/src/docs/vue/library/base64.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import Base64Encode from '@/library/base64/encode' 4 | import Base64Decode from '@/library/base64/decode' 5 | import Base64ExtType from '@/library/base64/ext-type' 6 | ``` 7 | 8 | ## 编码 9 | ```typescript 10 | Base64Encode(data: string); 11 | ``` 12 | 13 | ## 解码 14 | ```typescript 15 | Base64Decode(base64: string); 16 | ``` 17 | 18 | ## 类型 19 | ```typescript 20 | Base64ExtType(ext: string); 21 | ``` 22 | 23 | -------------------------------------------------------------------------------- /web/src/docs/vue/library/device.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import Mobile from '@/library/device/mobile' 4 | ``` 5 | 6 | ## 手机系统 7 | ```typescript 8 | Mobile(); 9 | ``` 10 | -------------------------------------------------------------------------------- /web/src/docs/vue/library/reg.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import RegRight from '@/library/reg/right' 4 | import RegTest from '@/library/reg/test' 5 | ``` 6 | 7 | ## 公共 8 | ```typescript 9 | RegRight( 10 | name: string, //项目: uname、tel、email、vcode、passwd 11 | val: string, //内容 12 | isMsg: boolean=false, //错误提示 13 | ); 14 | ``` 15 | 16 | ## 验证 17 | ```typescript 18 | RegTest( 19 | reg: RegExp, //正则 20 | val: string, //内容 21 | ); 22 | ``` 23 | -------------------------------------------------------------------------------- /web/src/docs/vue/library/storage.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import Storage from '@/library/storage' 4 | ``` 5 | 6 | ## 本地硬盘 7 | ```typescript 8 | // 保存 9 | Storage.setItem(key: string, data: string); 10 | // 获取 11 | Storage.getItem(key: string); 12 | // 删除 13 | Storage.removeItem(key: string); 14 | // 清除 15 | Storage.clear(); 16 | ``` 17 | -------------------------------------------------------------------------------- /web/src/docs/vue/library/tel.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import TelCall from '@/library/tel/call' 4 | import TelHide from '@/library/tel/hide' 5 | ``` 6 | 7 | ## 拨打 8 | ```typescript 9 | TelCall( 10 | tel: string, //手机号码 11 | ); 12 | ``` 13 | 14 | ## 隐藏 15 | ```typescript 16 | TelHide( 17 | tel: string, //手机号码 18 | ); 19 | ``` 20 | -------------------------------------------------------------------------------- /web/src/docs/vue/library/url.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import UrlEncode from '@/library/url/encode' 4 | import UrlDecode from '@/library/url/decode' 5 | ``` 6 | 7 | ## 编码 8 | ```javascript 9 | UrlEncode( 10 | data: string, //数据 11 | ); 12 | ``` 13 | 14 | ## 解码 15 | ```javascript 16 | UrlDecode( 17 | data: string, //数据 18 | ); 19 | ``` 20 | -------------------------------------------------------------------------------- /web/src/docs/vue/plus/camera.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import Camera from '@/library/plus/camera' 4 | ``` 5 | 6 | ## 相机 7 | ```typescript 8 | Camera( 9 | callback: any, //成功回调 10 | fail?: any, //失败回调 11 | ); 12 | ``` 13 | -------------------------------------------------------------------------------- /web/src/docs/vue/plus/map.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import MapGeolocation from '@/library/plus/map/geolocation' 4 | ``` 5 | 6 | ## 定位信息 7 | ```typescript 8 | MapGeolocation( 9 | callback: any, //成功回调 10 | fail?: any, //失败回调 11 | ); 12 | ``` 13 | -------------------------------------------------------------------------------- /web/src/docs/vue/plus/notify.md: -------------------------------------------------------------------------------- 1 | ## 引入 2 | ```javascript 3 | import Notify from '@/library/plus/notify' 4 | ``` 5 | 6 | ## 本地消息 7 | ```typescript 8 | Notify( 9 | title: string, //标题 10 | content: string, //内容: title(内容为标题) 11 | isRead: boolean, //是否阅读 12 | ); 13 | ``` 14 | -------------------------------------------------------------------------------- /web/src/library/Storage.ts: -------------------------------------------------------------------------------- 1 | /* 本地硬盘 */ 2 | export default { 3 | /* 保存 */ 4 | setItem(key: string, data: string){ 5 | return window.localStorage.setItem(key,data); 6 | }, 7 | /* 获取 */ 8 | getItem(key: string){ 9 | return window.localStorage.getItem(key); 10 | }, 11 | /* 删除 */ 12 | removeItem(key: string){ 13 | return window.localStorage.removeItem(key); 14 | }, 15 | /* 清除 */ 16 | clear(){ 17 | return window.localStorage.clear(); 18 | }, 19 | } -------------------------------------------------------------------------------- /web/src/library/array/unique.ts: -------------------------------------------------------------------------------- 1 | /* 数组去重复 */ 2 | export default (arr: Array)=>{ 3 | let data: Array = []; 4 | for(let i=0, l=arr.length; i{ 3 | return decodeURI(atob(base64)); 4 | } -------------------------------------------------------------------------------- /web/src/library/base64/encode.ts: -------------------------------------------------------------------------------- 1 | /* 编码 */ 2 | export default (data: string)=>{ 3 | return btoa(encodeURI(data)); 4 | } -------------------------------------------------------------------------------- /web/src/library/base64/ext-type.ts: -------------------------------------------------------------------------------- 1 | /* 类型 */ 2 | export default (ext: string)=>{ 3 | let type: string=''; 4 | if(ext=='jpg' || ext=='jpeg') type='data:image/jpeg;base64,'; 5 | else if(ext=='png') type='data:image/png;base64,'; 6 | else if(ext=='gif') type='data:image/gif;base64,'; 7 | return type; 8 | } -------------------------------------------------------------------------------- /web/src/library/device/mobile.ts: -------------------------------------------------------------------------------- 1 | /* 手机系统 */ 2 | export default ()=>{ 3 | const flag = navigator.userAgent.match( 4 | /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i 5 | ); 6 | return flag?flag[0]:false; 7 | } -------------------------------------------------------------------------------- /web/src/library/down/file.ts: -------------------------------------------------------------------------------- 1 | /* File */ 2 | export default (url: string, name?: string, ext?: string)=>{ 3 | let now: string = (new Date()).toString(); 4 | const timestamp = name || Date.parse(now)/1000; 5 | ext = ext || 'png'; 6 | // 创建对象 7 | let a = document.createElement('a'); 8 | a.href = url; 9 | a.download = timestamp+'.'+ext; 10 | document.body.appendChild(a); 11 | // 点击 12 | a.click(); 13 | // 移除 14 | document.body.removeChild(a); 15 | } -------------------------------------------------------------------------------- /web/src/library/html/observe.ts: -------------------------------------------------------------------------------- 1 | /* 监听容器 */ 2 | export default (element: any, callback: Function, options: MutationObserverInit = {attributes: true, childList: true, subtree: true})=>{ 3 | let MutationObserver = window.MutationObserver; 4 | let obs = new MutationObserver((mutationList)=>{ 5 | callback(mutationList); 6 | }); 7 | obs.observe(element, options); 8 | } -------------------------------------------------------------------------------- /web/src/library/plus/back.ts: -------------------------------------------------------------------------------- 1 | 2 | import Toast from '@/library/ui/toast' 3 | 4 | /* Plus-Android返回键 */ 5 | export default (callback: any)=>{ 6 | try{ 7 | // @ts-ignore 8 | const webview = plus.webview.currentWebview(); 9 | // @ts-ignore 10 | plus.key.addEventListener('backbutton', ()=>{ 11 | webview.canBack(callback); 12 | }); 13 | }catch(e){ 14 | return Toast('Android返回键'); 15 | } 16 | } -------------------------------------------------------------------------------- /web/src/library/plus/ready.ts: -------------------------------------------------------------------------------- 1 | /* Plus-监听 */ 2 | export default (callback: any)=>{ 3 | document.addEventListener("plusready",callback,false); 4 | } -------------------------------------------------------------------------------- /web/src/library/plus/version-diff.ts: -------------------------------------------------------------------------------- 1 | /* 版本比较 */ 2 | export default (v1: string, v2: string)=>{ 3 | if(v1==v2) return true; 4 | const arr1 = v1.split('.'); 5 | const arr2 = v2.split('.'); 6 | if(parseInt(arr1[0])>parseInt(arr2[0])) return true; 7 | else if(parseInt(arr1[1])>parseInt(arr2[1])) return true; 8 | else if(parseInt(arr1[2])>parseInt(arr2[2])) return true; 9 | else return false; 10 | } -------------------------------------------------------------------------------- /web/src/library/price/format.ts: -------------------------------------------------------------------------------- 1 | /* 金额-格式化 */ 2 | export default (price: string)=>{ 3 | return (parseInt(price).toString()).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g,'$&,'); 4 | } -------------------------------------------------------------------------------- /web/src/library/price/to-fixed.ts: -------------------------------------------------------------------------------- 1 | /* 不四舍五入 */ 2 | export default (price: number, num: number)=>{ 3 | let n: string = ''; 4 | for(let i=0; i{ 3 | return reg.test(val); 4 | } -------------------------------------------------------------------------------- /web/src/library/tel/call.ts: -------------------------------------------------------------------------------- 1 | /* 拨打 */ 2 | export default (tel: string)=>{ 3 | window.location.href = `tel:${tel}`; 4 | } -------------------------------------------------------------------------------- /web/src/library/tel/hide.ts: -------------------------------------------------------------------------------- 1 | /* 隐藏 */ 2 | export default (tel: string)=>{ 3 | return tel.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2'); 4 | } -------------------------------------------------------------------------------- /web/src/library/time/day.ts: -------------------------------------------------------------------------------- 1 | /* 获取日期 */ 2 | export default (n: number=0, day?: any)=>{ 3 | const now: Date = day?new Date(day):new Date(); 4 | now.setDate(now.getDate()+n); 5 | const y: string = ''+now.getFullYear(); 6 | const m: string = (now.getMonth()+1)<10?'0'+(now.getMonth()+1):''+(now.getMonth()+1); 7 | const d: string = now.getDate()<10?'0'+now.getDate():''+now.getDate(); 8 | return y +'-'+ m +'-'+ d; 9 | } -------------------------------------------------------------------------------- /web/src/library/time/size.ts: -------------------------------------------------------------------------------- 1 | /* 时间比较 */ 2 | export default (t1: number | string | Date, t2?: number | string | Date)=>{ 3 | const last = new Date(t1).getTime(); 4 | const now = t2?new Date(t2).getTime():new Date().getTime(); 5 | return now-last; 6 | } -------------------------------------------------------------------------------- /web/src/library/time/week.ts: -------------------------------------------------------------------------------- 1 | /* 获取星期几 */ 2 | export default (date: string | number | Date)=>{ 3 | const now: Date = new Date(date); 4 | const week = ['日','一','二','三','四','五','六']; 5 | return week[now.getDay()]; 6 | } -------------------------------------------------------------------------------- /web/src/library/ui/back.ts: -------------------------------------------------------------------------------- 1 | import App from '@/main'; 2 | 3 | /* UI-返回 */ 4 | export default (num: number=1)=>{ 5 | App.$router.goBack(-num); 6 | } -------------------------------------------------------------------------------- /web/src/library/ui/navigate-to.ts: -------------------------------------------------------------------------------- 1 | import App from '@/main'; 2 | 3 | /* UI-跳转页面 */ 4 | export default (url: string, parm?: any) : void => { 5 | // 参数 6 | parm = parm || ''; 7 | // 跳转 8 | App.$router.push({path:url,query:parm}); 9 | } -------------------------------------------------------------------------------- /web/src/library/url/decode.ts: -------------------------------------------------------------------------------- 1 | /* 解码 */ 2 | export default (data: string)=>{ 3 | return decodeURIComponent(data); 4 | } -------------------------------------------------------------------------------- /web/src/library/url/encode.ts: -------------------------------------------------------------------------------- 1 | /* 编码 */ 2 | export default (data: string)=>{ 3 | return encodeURIComponent(data); 4 | } -------------------------------------------------------------------------------- /web/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | 6 | /* App */ 7 | const app: any = createApp(App).use(store).use(router).mount('#app'); 8 | export default app; 9 | -------------------------------------------------------------------------------- /web/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | declare module '*.vue' { 3 | import type { DefineComponent } from 'vue' 4 | const component: DefineComponent<{}, {}, any> 5 | export default component 6 | } 7 | -------------------------------------------------------------------------------- /web/src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { createStore } from 'vuex' 2 | 3 | export default createStore({ 4 | state: { 5 | }, 6 | mutations: { 7 | }, 8 | actions: { 9 | }, 10 | modules: { 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /web/src/views/Index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /web/src/views/Refresh.vue: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /web/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "warning", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "linterOptions": { 7 | "exclude": [ 8 | "node_modules/**" 9 | ] 10 | }, 11 | "rules": { 12 | "indent": [true, "spaces", 2], 13 | "interface-name": false, 14 | "no-consecutive-blank-lines": false, 15 | "object-literal-sort-keys": false, 16 | "ordered-imports": false, 17 | "quotemark": [true, "single"] 18 | } 19 | } 20 | --------------------------------------------------------------------------------