├── h5 ├── src │ ├── js │ │ ├── pages │ │ │ ├── book │ │ │ │ └── search.js │ │ │ └── home │ │ │ │ └── index.js │ │ └── common │ │ │ └── rem.js │ ├── lib │ │ └── swiper │ │ │ ├── src │ │ │ ├── modules │ │ │ │ ├── resize │ │ │ │ │ └── resize.less │ │ │ │ ├── device │ │ │ │ │ └── device.js │ │ │ │ ├── browser │ │ │ │ │ └── browser.js │ │ │ │ └── support │ │ │ │ │ └── support.js │ │ │ ├── components │ │ │ │ ├── controller │ │ │ │ │ └── controller.less │ │ │ │ ├── core │ │ │ │ │ ├── translate │ │ │ │ │ │ ├── minTranslate.js │ │ │ │ │ │ ├── maxTranslate.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── getTranslate.js │ │ │ │ │ ├── classes │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── removeClasses.js │ │ │ │ │ ├── breakpoints │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── getBreakpoint.js │ │ │ │ │ ├── images │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── loadImage.js │ │ │ │ │ │ └── preloadImages.js │ │ │ │ │ ├── grab-cursor │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── unsetGrabCursor.js │ │ │ │ │ │ └── setGrabCursor.js │ │ │ │ │ ├── loop │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── loopDestroy.js │ │ │ │ │ ├── transition │ │ │ │ │ │ ├── setTransition.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── transitionEnd.js │ │ │ │ │ │ └── transitionStart.js │ │ │ │ │ ├── slide │ │ │ │ │ │ ├── slideReset.js │ │ │ │ │ │ ├── slideToLoop.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── slideNext.js │ │ │ │ │ │ └── slideToClosest.js │ │ │ │ │ ├── manipulation │ │ │ │ │ │ ├── removeAllSlides.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── appendSlide.js │ │ │ │ │ │ └── prependSlide.js │ │ │ │ │ ├── update │ │ │ │ │ │ ├── updateSlidesOffset.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── updateSize.js │ │ │ │ │ ├── events │ │ │ │ │ │ └── onClick.js │ │ │ │ │ └── check-overflow │ │ │ │ │ │ └── index.js │ │ │ │ ├── effect-coverflow │ │ │ │ │ └── effect-coverflow.less │ │ │ │ ├── a11y │ │ │ │ │ └── a11y.less │ │ │ │ ├── zoom │ │ │ │ │ └── zoom.less │ │ │ │ ├── effect-fade │ │ │ │ │ └── effect-fade.less │ │ │ │ ├── effect-flip │ │ │ │ │ └── effect-flip.less │ │ │ │ └── scrollbar │ │ │ │ │ └── scrollbar.less │ │ │ ├── swiper.less │ │ │ ├── utils │ │ │ │ └── browser.js │ │ │ └── swiper.js │ │ │ ├── gulpfile.js │ │ │ ├── package.js │ │ │ ├── component.json │ │ │ ├── scripts │ │ │ ├── build-config.js │ │ │ └── banner.js │ │ │ ├── .eslintrc.js │ │ │ └── bower.json │ ├── images │ │ └── favicon.ico │ └── css │ │ ├── common.less │ │ └── common │ │ ├── config.less │ │ ├── common.less │ │ ├── footer.less │ │ └── search.less ├── dist │ ├── js │ │ └── pages │ │ │ ├── book │ │ │ ├── search.js │ │ │ ├── info.js │ │ │ └── catalog.js │ │ │ └── home │ │ │ └── index.js │ ├── lib │ │ └── swiper │ │ │ ├── src │ │ │ ├── modules │ │ │ │ ├── resize │ │ │ │ │ └── resize.less │ │ │ │ ├── device │ │ │ │ │ └── device.js │ │ │ │ ├── browser │ │ │ │ │ └── browser.js │ │ │ │ └── support │ │ │ │ │ └── support.js │ │ │ ├── components │ │ │ │ ├── controller │ │ │ │ │ └── controller.less │ │ │ │ ├── core │ │ │ │ │ ├── translate │ │ │ │ │ │ ├── minTranslate.js │ │ │ │ │ │ ├── maxTranslate.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── getTranslate.js │ │ │ │ │ ├── classes │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── removeClasses.js │ │ │ │ │ ├── breakpoints │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── getBreakpoint.js │ │ │ │ │ ├── images │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── loadImage.js │ │ │ │ │ │ └── preloadImages.js │ │ │ │ │ ├── grab-cursor │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── unsetGrabCursor.js │ │ │ │ │ │ └── setGrabCursor.js │ │ │ │ │ ├── loop │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── loopDestroy.js │ │ │ │ │ ├── transition │ │ │ │ │ │ ├── setTransition.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── transitionEnd.js │ │ │ │ │ │ └── transitionStart.js │ │ │ │ │ ├── slide │ │ │ │ │ │ ├── slideReset.js │ │ │ │ │ │ ├── slideToLoop.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── slideNext.js │ │ │ │ │ │ └── slideToClosest.js │ │ │ │ │ ├── manipulation │ │ │ │ │ │ ├── removeAllSlides.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── appendSlide.js │ │ │ │ │ │ └── prependSlide.js │ │ │ │ │ ├── update │ │ │ │ │ │ ├── updateSlidesOffset.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── updateSize.js │ │ │ │ │ ├── events │ │ │ │ │ │ └── onClick.js │ │ │ │ │ └── check-overflow │ │ │ │ │ │ └── index.js │ │ │ │ ├── effect-coverflow │ │ │ │ │ └── effect-coverflow.less │ │ │ │ ├── a11y │ │ │ │ │ └── a11y.less │ │ │ │ ├── zoom │ │ │ │ │ └── zoom.less │ │ │ │ ├── effect-fade │ │ │ │ │ └── effect-fade.less │ │ │ │ ├── effect-flip │ │ │ │ │ └── effect-flip.less │ │ │ │ └── scrollbar │ │ │ │ │ └── scrollbar.less │ │ │ ├── swiper.less │ │ │ ├── utils │ │ │ │ └── browser.js │ │ │ └── swiper.js │ │ │ ├── gulpfile.js │ │ │ ├── package.js │ │ │ ├── component.json │ │ │ ├── scripts │ │ │ ├── build-config.js │ │ │ └── banner.js │ │ │ └── bower.json │ ├── favicon.ico │ ├── images │ │ └── favicon.ico │ ├── _book │ │ ├── gitbook │ │ │ ├── images │ │ │ │ ├── favicon.ico │ │ │ │ └── apple-touch-icon-precomposed-152.png │ │ │ └── fonts │ │ │ │ └── fontawesome │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ └── .gitignore │ └── css │ │ ├── pages │ │ └── book │ │ │ └── search.css │ │ └── common │ │ └── font │ │ └── iconfont.css ├── views │ ├── index.pug │ ├── layout.pug │ ├── api │ │ └── index.pug │ ├── pages │ │ ├── users │ │ │ └── index.pug │ │ └── home │ │ │ └── ejs.ejs │ ├── error.pug │ └── common │ │ └── footer.pug ├── dist-views │ ├── index.pug │ ├── layout.pug │ ├── api │ │ └── index.pug │ ├── pages │ │ ├── users │ │ │ └── index.pug │ │ └── home │ │ │ └── ejs.ejs │ ├── error.pug │ └── common │ │ └── footer.pug ├── public │ └── book │ │ └── gitbook │ │ ├── images │ │ ├── favicon.ico │ │ └── apple-touch-icon-precomposed-152.png │ │ └── fonts │ │ └── fontawesome │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ └── fontawesome-webfont.ttf ├── tool │ └── require.js ├── routes │ ├── home │ │ ├── html.js │ │ └── ejs.js │ ├── users.js │ ├── users │ │ └── index.js │ └── api │ │ └── index.js ├── lib │ └── rev-path │ │ ├── index.js │ │ ├── package.json │ │ └── readme.md └── package.json ├── iview-admin-dev ├── src │ ├── views │ │ ├── home │ │ │ ├── home.less │ │ │ ├── tinymce │ │ │ │ ├── plugins │ │ │ │ │ ├── help │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ └── logo.png │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── emoticons │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ ├── smiley-cool.gif │ │ │ │ │ │ │ ├── smiley-cry.gif │ │ │ │ │ │ │ ├── smiley-frown.gif │ │ │ │ │ │ │ ├── smiley-kiss.gif │ │ │ │ │ │ │ ├── smiley-smile.gif │ │ │ │ │ │ │ ├── smiley-wink.gif │ │ │ │ │ │ │ ├── smiley-yell.gif │ │ │ │ │ │ │ ├── smiley-sealed.gif │ │ │ │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ │ │ │ ├── smiley-innocent.gif │ │ │ │ │ │ │ ├── smiley-laughing.gif │ │ │ │ │ │ │ ├── smiley-surprised.gif │ │ │ │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ │ │ │ ├── smiley-undecided.gif │ │ │ │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ │ │ │ └── smiley-foot-in-mouth.gif │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── hr │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── toc │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── code │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── link │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── save │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── anchor │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── bbcode │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── image │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── lists │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── media │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── paste │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── print │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── table │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── advlist │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── charmap │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── preview │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── autolink │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── autosave │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── fullpage │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── tabfocus │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── template │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── importcss │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── pagebreak │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── textcolor │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── wordcount │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── autoresize │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── codesample │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── colorpicker │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── contextmenu │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── fullscreen │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── imagetools │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── nonbreaking │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── noneditable │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── textpattern │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── visualchars │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── legacyoutput │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── spellchecker │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── visualblocks │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── searchreplace │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── directionality │ │ │ │ │ │ └── index.js │ │ │ │ │ └── insertdatetime │ │ │ │ │ │ └── index.js │ │ │ │ ├── skins │ │ │ │ │ └── lightgray │ │ │ │ │ │ ├── img │ │ │ │ │ │ ├── anchor.gif │ │ │ │ │ │ ├── loader.gif │ │ │ │ │ │ ├── object.gif │ │ │ │ │ │ └── trans.gif │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── tinymce.eot │ │ │ │ │ │ ├── tinymce.ttf │ │ │ │ │ │ ├── tinymce.woff │ │ │ │ │ │ ├── tinymce-small.eot │ │ │ │ │ │ ├── tinymce-small.ttf │ │ │ │ │ │ ├── tinymce-small.woff │ │ │ │ │ │ └── tinymce-mobile.woff │ │ │ │ │ │ └── content.mobile.min.css │ │ │ │ └── themes │ │ │ │ │ ├── inlite │ │ │ │ │ └── index.js │ │ │ │ │ └── modern │ │ │ │ │ └── index.js │ │ │ ├── catalog.less │ │ │ └── components │ │ │ │ ├── description.vue │ │ │ │ └── wb-img.vue │ │ ├── main-components │ │ │ ├── shrinkable-menu │ │ │ │ └── styles │ │ │ │ │ └── menu.less │ │ │ ├── breadcrumb-nav.vue │ │ │ └── message-tip.vue │ │ ├── my-components │ │ │ ├── split-pane │ │ │ │ └── split-pane │ │ │ │ │ └── index.js │ │ │ ├── markdown-editor │ │ │ │ └── markdown-editor.less │ │ │ ├── area-linkage │ │ │ │ ├── area-linkage.less │ │ │ │ └── util │ │ │ │ │ └── index.js │ │ │ ├── text-editor │ │ │ │ └── tinymce │ │ │ │ │ ├── plugins │ │ │ │ │ ├── help │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ └── logo.png │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── emoticons │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ ├── smiley-cool.gif │ │ │ │ │ │ │ ├── smiley-cry.gif │ │ │ │ │ │ │ ├── smiley-kiss.gif │ │ │ │ │ │ │ ├── smiley-wink.gif │ │ │ │ │ │ │ ├── smiley-yell.gif │ │ │ │ │ │ │ ├── smiley-frown.gif │ │ │ │ │ │ │ ├── smiley-sealed.gif │ │ │ │ │ │ │ ├── smiley-smile.gif │ │ │ │ │ │ │ ├── smiley-innocent.gif │ │ │ │ │ │ │ ├── smiley-laughing.gif │ │ │ │ │ │ │ ├── smiley-surprised.gif │ │ │ │ │ │ │ ├── smiley-undecided.gif │ │ │ │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ │ │ │ └── smiley-foot-in-mouth.gif │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── hr │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── toc │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── code │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── link │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── save │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── image │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── lists │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── media │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── paste │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── print │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── table │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── advlist │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── anchor │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── bbcode │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── charmap │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── preview │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── autolink │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── autosave │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── fullpage │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── tabfocus │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── template │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── importcss │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── pagebreak │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── textcolor │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── wordcount │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── autoresize │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── codesample │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── fullscreen │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── imagetools │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── colorpicker │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── contextmenu │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── legacyoutput │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── nonbreaking │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── noneditable │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── spellchecker │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── textpattern │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── visualblocks │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── visualchars │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── searchreplace │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── directionality │ │ │ │ │ │ └── index.js │ │ │ │ │ └── insertdatetime │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── skins │ │ │ │ │ └── lightgray │ │ │ │ │ │ ├── img │ │ │ │ │ │ ├── trans.gif │ │ │ │ │ │ ├── anchor.gif │ │ │ │ │ │ ├── loader.gif │ │ │ │ │ │ └── object.gif │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── tinymce.eot │ │ │ │ │ │ ├── tinymce.ttf │ │ │ │ │ │ ├── tinymce.woff │ │ │ │ │ │ ├── tinymce-small.eot │ │ │ │ │ │ ├── tinymce-small.ttf │ │ │ │ │ │ ├── tinymce-mobile.woff │ │ │ │ │ │ └── tinymce-small.woff │ │ │ │ │ │ └── content.mobile.min.css │ │ │ │ │ └── themes │ │ │ │ │ ├── inlite │ │ │ │ │ └── index.js │ │ │ │ │ └── modern │ │ │ │ │ └── index.js │ │ │ ├── count-to │ │ │ │ └── count-to.less │ │ │ ├── markdown-editor2 │ │ │ │ └── insertText.js │ │ │ ├── file-upload │ │ │ │ └── upload.less │ │ │ └── draggable-list │ │ │ │ └── draggable-list.less │ │ ├── advanced-router │ │ │ └── advanced-router.less │ │ ├── tables │ │ │ └── components │ │ │ │ ├── editable-table.less │ │ │ │ └── ExportExcel.vue │ │ ├── international │ │ │ └── international.less │ │ ├── access │ │ │ ├── access-test.vue │ │ │ └── access.less │ │ ├── error-page │ │ │ └── error-page.less │ │ ├── form │ │ │ └── work-flow │ │ │ │ └── work-flow.less │ │ └── login.less │ ├── images │ │ ├── logo.jpg │ │ ├── logo-min.jpg │ │ └── cropper-test.png │ ├── config.js │ ├── styles │ │ ├── login_bg.jpg │ │ ├── fonts │ │ │ ├── ionicons.eot │ │ │ ├── ionicons.ttf │ │ │ └── ionicons.woff │ │ └── loading.less │ ├── vendors │ │ ├── vendors.base.js │ │ └── vendors.exten.js │ ├── store │ │ ├── loading.js │ │ ├── index.js │ │ └── modules │ │ │ └── user.js │ ├── libs │ │ └── config.js │ ├── mixins │ │ └── isMe.js │ ├── app.vue │ └── locale │ │ └── index.js ├── tinymce │ └── less │ │ ├── common.less │ │ └── common.css ├── .travis.yml ├── td_icon.ico ├── lib │ └── td_icon.ico ├── github-gif │ ├── access.gif │ ├── code.png │ ├── home.gif │ ├── theme.gif │ ├── upload.gif │ ├── count-to.gif │ ├── locking.gif │ ├── message.gif │ ├── workflow.gif │ ├── error-page.gif │ ├── page-tags.gif │ ├── sidebarmenu.gif │ ├── split-pane.gif │ ├── table2image.gif │ ├── dragable-list.gif │ ├── image-editor.gif │ ├── article-publish.gif │ ├── dragable-table.gif │ ├── editable-table.gif │ └── exportable-table.gif ├── build │ └── config.js ├── .eslintignore ├── .babelrc ├── .gitignore ├── .editorconfig ├── .postcssrc.js ├── server │ └── package.json └── .eslintrc.json ├── common ├── service │ └── index.js ├── prototype │ ├── index.js │ ├── arrayPrototype.js │ └── datePrototype.js ├── host.js └── tool │ ├── toolNewH5.js │ ├── md5.js │ ├── toJson.js │ ├── getParams.js │ ├── require.js │ ├── queue.js │ └── ipQueue.js ├── api文档 └── timoh5 │ ├── README.md │ ├── SUMMARY.md │ ├── lie-biao-jie-kou.md │ ├── .gitignore │ ├── mo-ban.md │ └── lie-biao-jie-kou │ └── xiao-shuo-lei-xing-lie-biao.md ├── config ├── imgUrl.js ├── redis.js └── sql.js ├── install.sh ├── start_windows.bat ├── start.sh ├── .gitignore ├── adminApi ├── service │ ├── index.js │ ├── ip │ │ ├── index.js │ │ └── removeRepeat.js │ ├── log │ │ └── index.js │ └── reptile │ │ ├── index.js │ │ └── startReptile.js ├── tool │ ├── require.js │ └── require2.js ├── package.json ├── core │ └── upload-mutter.js ├── routes │ ├── index.js │ ├── users │ │ ├── index.js │ │ └── checkLock.js │ ├── permission │ │ ├── list.js │ │ ├── roleList.js │ │ └── staffList.js │ ├── ip │ │ ├── check.js │ │ ├── removeRepeat.js │ │ └── startReptile.js │ ├── book │ │ ├── oneKeyUpdateNewCatalog.js │ │ └── updateCatalogIsJin.js │ ├── reptile │ │ ├── startReptile.js │ │ ├── restartCatalog.js │ │ ├── oneKeyRestartCatalog.js │ │ ├── index.js │ │ └── updateReptileList.js │ └── log │ │ ├── splice.js │ │ ├── delete.js │ │ └── list.js └── reptileTool │ └── getNextPage.js └── package.json /h5/src/js/pages/book/search.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/home.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /h5/dist/js/pages/book/search.js: -------------------------------------------------------------------------------- 1 | "use strict"; -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/modules/resize/resize.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/modules/resize/resize.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /common/service/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | 4 | }; -------------------------------------------------------------------------------- /api文档/timoh5/README.md: -------------------------------------------------------------------------------- 1 | # 提莫淘书h5接口地址 2 | 3 | 这里假装是一堆介绍 4 | 5 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/controller/controller.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/controller/controller.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/gulpfile.js: -------------------------------------------------------------------------------- 1 | require('./scripts/gulpfile'); 2 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/gulpfile.js: -------------------------------------------------------------------------------- 1 | require('./scripts/gulpfile'); 2 | -------------------------------------------------------------------------------- /iview-admin-dev/tinymce/less/common.less: -------------------------------------------------------------------------------- 1 | p{ 2 | color:red; 3 | } -------------------------------------------------------------------------------- /common/prototype/index.js: -------------------------------------------------------------------------------- 1 | require("./datePrototype"); 2 | require("./arrayPrototype"); -------------------------------------------------------------------------------- /config/imgUrl.js: -------------------------------------------------------------------------------- 1 | module.exports = "http://localhost:3000/images/"; //只针对h5配置小说封面地址前缀 2 | -------------------------------------------------------------------------------- /h5/dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/favicon.ico -------------------------------------------------------------------------------- /iview-admin-dev/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | script: 5 | - npm run test 6 | -------------------------------------------------------------------------------- /h5/dist/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/images/favicon.ico -------------------------------------------------------------------------------- /h5/src/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/src/images/favicon.ico -------------------------------------------------------------------------------- /h5/views/index.pug: -------------------------------------------------------------------------------- 1 | extends ./common/layout 2 | 3 | block content 4 | h1= title 5 | p Welcome to #{title} 6 | -------------------------------------------------------------------------------- /iview-admin-dev/td_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/td_icon.ico -------------------------------------------------------------------------------- /h5/dist-views/index.pug: -------------------------------------------------------------------------------- 1 | extends ./common/layout 2 | 3 | block content 4 | h1= title 5 | p Welcome to #{title} 6 | -------------------------------------------------------------------------------- /iview-admin-dev/lib/td_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/lib/td_icon.ico -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | yarn install 2 | cd ./adminApi 3 | yarn install 4 | cd ../iview-admin-dev 5 | yarn install 6 | cd ../h5 7 | yarn install -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/access.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/access.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/code.png -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/home.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/home.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/theme.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/theme.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/upload.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/upload.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/images/logo.jpg -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/translate/minTranslate.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | return (-this.snapGrid[0]); 3 | } 4 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/translate/minTranslate.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | return (-this.snapGrid[0]); 3 | } 4 | -------------------------------------------------------------------------------- /iview-admin-dev/build/config.js: -------------------------------------------------------------------------------- 1 | import Env from './env'; 2 | 3 | let config = { 4 | env: Env 5 | }; 6 | export default config; 7 | -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/count-to.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/count-to.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/locking.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/locking.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/message.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/message.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/workflow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/workflow.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | apiServer:'http://localhost:3000', 3 | wssServer: 'ws://localhost:8000' 4 | } -------------------------------------------------------------------------------- /iview-admin-dev/src/images/logo-min.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/images/logo-min.jpg -------------------------------------------------------------------------------- /iview-admin-dev/src/styles/login_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/styles/login_bg.jpg -------------------------------------------------------------------------------- /h5/dist/_book/gitbook/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/_book/gitbook/images/favicon.ico -------------------------------------------------------------------------------- /h5/public/book/gitbook/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/public/book/gitbook/images/favicon.ico -------------------------------------------------------------------------------- /iview-admin-dev/.eslintignore: -------------------------------------------------------------------------------- 1 | src/vendors 2 | src/libs/table2excel.js 3 | build 4 | router.js 5 | src/views/my-components/text-editor/tinymce -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/error-page.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/error-page.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/page-tags.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/page-tags.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/sidebarmenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/sidebarmenu.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/split-pane.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/split-pane.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/table2image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/table2image.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/dragable-list.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/dragable-list.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/image-editor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/image-editor.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/images/cropper-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/images/cropper-test.png -------------------------------------------------------------------------------- /iview-admin-dev/src/views/main-components/shrinkable-menu/styles/menu.less: -------------------------------------------------------------------------------- 1 | .ivu-shrinkable-menu{ 2 | height: 100%; 3 | width: 100%; 4 | } -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/article-publish.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/article-publish.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/dragable-table.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/dragable-table.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/editable-table.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/editable-table.gif -------------------------------------------------------------------------------- /iview-admin-dev/github-gif/exportable-table.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/github-gif/exportable-table.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/styles/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/styles/fonts/ionicons.eot -------------------------------------------------------------------------------- /iview-admin-dev/src/styles/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/styles/fonts/ionicons.ttf -------------------------------------------------------------------------------- /iview-admin-dev/src/styles/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/styles/fonts/ionicons.woff -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/split-pane/split-pane/index.js: -------------------------------------------------------------------------------- 1 | import splitPane from './split-pane.vue'; 2 | 3 | export default splitPane; 4 | -------------------------------------------------------------------------------- /start_windows.bat: -------------------------------------------------------------------------------- 1 | cd ./adminApi/bin 2 | pm2 start www 3 | cd ../iview-admin-dev/server 4 | pm2 start server 5 | cd ../h5/bin 6 | pm2 start h5 7 | 8 | 9 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/translate/maxTranslate.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | return (-this.snapGrid[this.snapGrid.length - 1]); 3 | } 4 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/translate/maxTranslate.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | return (-this.snapGrid[this.snapGrid.length - 1]); 3 | } 4 | -------------------------------------------------------------------------------- /h5/views/layout.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | title= title 5 | link(rel='stylesheet', href='/css/common.css') 6 | body 7 | block content 8 | -------------------------------------------------------------------------------- /iview-admin-dev/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["stage-3", "env"], 3 | "plugins": ["transform-runtime", "syntax-dynamic-import"], 4 | "comments": false 5 | } 6 | -------------------------------------------------------------------------------- /h5/dist/_book/gitbook/fonts/fontawesome/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/_book/gitbook/fonts/fontawesome/FontAwesome.otf -------------------------------------------------------------------------------- /h5/public/book/gitbook/fonts/fontawesome/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/public/book/gitbook/fonts/fontawesome/FontAwesome.otf -------------------------------------------------------------------------------- /iview-admin-dev/src/vendors/vendors.base.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import iView from 'iview'; 3 | import VueRouter from 'vue-router'; 4 | import Vuex from 'vuex'; 5 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/advanced-router/advanced-router.less: -------------------------------------------------------------------------------- 1 | .advanced-router{ 2 | height: 240px !important; 3 | &-tip-p{ 4 | padding: 10px 0; 5 | } 6 | } -------------------------------------------------------------------------------- /h5/dist-views/layout.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | title= title 5 | link(rel='stylesheet', href='/css/common.css?v=956ac6ec13') 6 | body 7 | block content 8 | -------------------------------------------------------------------------------- /h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /h5/public/book/gitbook/fonts/fontawesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/public/book/gitbook/fonts/fontawesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /h5/public/book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/public/book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/help/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/help/img/logo.png -------------------------------------------------------------------------------- /h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /h5/dist/_book/gitbook/images/apple-touch-icon-precomposed-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/dist/_book/gitbook/images/apple-touch-icon-precomposed-152.png -------------------------------------------------------------------------------- /h5/public/book/gitbook/images/apple-touch-icon-precomposed-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/h5/public/book/gitbook/images/apple-touch-icon-precomposed-152.png -------------------------------------------------------------------------------- /iview-admin-dev/.gitignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | node_modules 3 | .project 4 | .vscode 5 | .history 6 | .DS_Store 7 | \.settings/ 8 | build/env.js 9 | package-lock.json 10 | # dist/ 11 | -------------------------------------------------------------------------------- /h5/views/api/index.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | meta(charset="utf-8") 5 | title= title 6 | body 7 | p 欢迎来到#{title} 8 | a(href = href) #{title}接口文档地址 -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/markdown-editor/markdown-editor.less: -------------------------------------------------------------------------------- 1 | .CodeMirror, .CodeMirror-scroll { 2 | min-height: 600px !important; 3 | } 4 | .CodeMirror{ 5 | height: 400px; 6 | } -------------------------------------------------------------------------------- /h5/dist-views/api/index.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | meta(charset="utf-8") 5 | title= title 6 | body 7 | p 欢迎来到#{title} 8 | a(href = href) #{title}接口文档地址 -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/classes/index.js: -------------------------------------------------------------------------------- 1 | import addClasses from './addClasses'; 2 | import removeClasses from './removeClasses'; 3 | 4 | export default { addClasses, removeClasses }; 5 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/classes/index.js: -------------------------------------------------------------------------------- 1 | import addClasses from './addClasses'; 2 | import removeClasses from './removeClasses'; 3 | 4 | export default { addClasses, removeClasses }; 5 | -------------------------------------------------------------------------------- /h5/tool/require.js: -------------------------------------------------------------------------------- 1 | const common = require("../../common/tool/require"); 2 | const imgUrlConfig = require("../../config/imgUrl"); 3 | module.exports = { 4 | ...common, 5 | imgUrlConfig, 6 | }; 7 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /h5/src/css/common.less: -------------------------------------------------------------------------------- 1 | @import "./common/font/iconfont"; 2 | @import "./common/config"; 3 | @import "./common/base"; 4 | @import "./common/header"; 5 | @import "./common/footer"; 6 | @import "./common/common"; -------------------------------------------------------------------------------- /iview-admin-dev/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | charset = utf-8 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/effect-coverflow/effect-coverflow.less: -------------------------------------------------------------------------------- 1 | .swiper-container-coverflow { 2 | .swiper-wrapper { 3 | /* Windows 8 IE 10 fix */ 4 | -ms-perspective: 1200px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/swiper.less: -------------------------------------------------------------------------------- 1 | @import url('./less/mixins.less'); 2 | 3 | @themeColor: $themeColor; 4 | @colors: $colors; 5 | 6 | @import url('./components/core/core.less'); 7 | 8 | //IMPORT_COMPONENTS 9 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/effect-coverflow/effect-coverflow.less: -------------------------------------------------------------------------------- 1 | .swiper-container-coverflow { 2 | .swiper-wrapper { 3 | /* Windows 8 IE 10 fix */ 4 | -ms-perspective: 1200px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/swiper.less: -------------------------------------------------------------------------------- 1 | @import url('./less/mixins.less'); 2 | 3 | @themeColor: $themeColor; 4 | @colors: $colors; 5 | 6 | @import url('./components/core/core.less'); 7 | 8 | //IMPORT_COMPONENTS 9 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/breakpoints/index.js: -------------------------------------------------------------------------------- 1 | import setBreakpoint from './setBreakpoint'; 2 | import getBreakpoint from './getBreakpoint'; 3 | 4 | export default { setBreakpoint, getBreakpoint }; 5 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/images/index.js: -------------------------------------------------------------------------------- 1 | import loadImage from './loadImage'; 2 | import preloadImages from './preloadImages'; 3 | 4 | export default { 5 | loadImage, 6 | preloadImages, 7 | }; 8 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/breakpoints/index.js: -------------------------------------------------------------------------------- 1 | import setBreakpoint from './setBreakpoint'; 2 | import getBreakpoint from './getBreakpoint'; 3 | 4 | export default { setBreakpoint, getBreakpoint }; 5 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/images/index.js: -------------------------------------------------------------------------------- 1 | import loadImage from './loadImage'; 2 | import preloadImages from './preloadImages'; 3 | 4 | export default { 5 | loadImage, 6 | preloadImages, 7 | }; 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /iview-admin-dev/src/views/tables/components/editable-table.less: -------------------------------------------------------------------------------- 1 | .show-edit-btn{ 2 | display: none; 3 | margin-left: -10px; 4 | } 5 | .ivu-table-cell:hover .show-edit-btn{ 6 | display: inline-block; 7 | } -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/classes/removeClasses.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | const { $el, classNames } = swiper; 4 | 5 | $el.removeClass(classNames.join(' ')); 6 | } 7 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/classes/removeClasses.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | const { $el, classNames } = swiper; 4 | 5 | $el.removeClass(classNames.join(' ')); 6 | } 7 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/area-linkage/area-linkage.less: -------------------------------------------------------------------------------- 1 | .area-linkage-page{ 2 | &-row1{ 3 | height: 366px !important; 4 | } 5 | &-row2{ 6 | height: 112px !important; 7 | } 8 | } -------------------------------------------------------------------------------- /common/host.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* 4 | * 允许访问的域名host 5 | * */ 6 | module.exports = [ 7 | 'localhost:1111', 8 | 'localhost:3000', 9 | 'localhost:9092', 10 | 'localhost:8000', 11 | 'localhost:8080', 12 | ] -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /common/tool/toolNewH5.js: -------------------------------------------------------------------------------- 1 | //新版h5专用的tool 2 | 3 | const redisData = require('./redisData.js'); 4 | const toJson = require("./toJson"); 5 | 6 | 7 | 8 | 9 | 10 | module.exports = { 11 | redisData, 12 | toJson 13 | } -------------------------------------------------------------------------------- /config/redis.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | RDS_PORT: 6379, //服务器端口 3 | RDS_HOST: '127.0.0.1', //服务器ip 4 | RDS_PWD: '', //密码 5 | RDS_OPTS: {}, //设置值 //是否把连接情况打印到文件里 6 | }; 7 | -------------------------------------------------------------------------------- /h5/views/pages/users/index.pug: -------------------------------------------------------------------------------- 1 | extends ../../common/layout 2 | 3 | 4 | block content 5 | h1= title 6 | p Welcome to #{title} 7 | 8 | 9 | block footer 10 | include ../../common/footer 11 | +footer(myUrl) -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/home/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/help/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/help/img/logo.png -------------------------------------------------------------------------------- /h5/dist-views/pages/users/index.pug: -------------------------------------------------------------------------------- 1 | extends ../../common/layout 2 | 3 | 4 | block content 5 | h1= title 6 | p Welcome to #{title} 7 | 8 | 9 | block footer 10 | include ../../common/footer 11 | +footer(myUrl) -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/grab-cursor/index.js: -------------------------------------------------------------------------------- 1 | import setGrabCursor from './setGrabCursor'; 2 | import unsetGrabCursor from './unsetGrabCursor'; 3 | 4 | export default { 5 | setGrabCursor, 6 | unsetGrabCursor, 7 | }; 8 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/grab-cursor/index.js: -------------------------------------------------------------------------------- 1 | import setGrabCursor from './setGrabCursor'; 2 | import unsetGrabCursor from './unsetGrabCursor'; 3 | 4 | export default { 5 | setGrabCursor, 6 | unsetGrabCursor, 7 | }; 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ ! -n "$1" ] ;then 3 | echo "use: ./start.sh {dev|product}" 4 | else 5 | cd `dirname $0` 6 | cd ./adminApi 7 | npm run $1 8 | cd ./ivew-admin 9 | npm run $1 10 | cd ./h5 11 | npm run $1 12 | fi -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/a11y/a11y.less: -------------------------------------------------------------------------------- 1 | /* a11y */ 2 | .swiper-container .swiper-notification { 3 | position: absolute; 4 | left: 0; 5 | top: 0; 6 | pointer-events: none; 7 | opacity: 0; 8 | z-index: -1000; 9 | } 10 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/a11y/a11y.less: -------------------------------------------------------------------------------- 1 | /* a11y */ 2 | .swiper-container .swiper-notification { 3 | position: absolute; 4 | left: 0; 5 | top: 0; 6 | pointer-events: none; 7 | opacity: 0; 8 | z-index: -1000; 9 | } 10 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/modules/device/device.js: -------------------------------------------------------------------------------- 1 | import Device from '../../utils/device'; 2 | 3 | export default { 4 | name: 'device', 5 | proto: { 6 | device: Device, 7 | }, 8 | static: { 9 | device: Device, 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/modules/device/device.js: -------------------------------------------------------------------------------- 1 | import Device from '../../utils/device'; 2 | 3 | export default { 4 | name: 'device', 5 | proto: { 6 | device: Device, 7 | }, 8 | static: { 9 | device: Device, 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /iview-admin-dev/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | // to edit target browsers: use "browserslist" field in package.json 6 | "autoprefixer": {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # 忽略文件 2 | .idea 3 | *.iml 4 | /book 5 | /books 6 | /book_end 7 | node_modules 8 | package-lock.json 9 | yarn-error.log 10 | /config 11 | urlLog.log 12 | /yarn-error.log 13 | /adminApi/log 14 | /adminApi/upload 15 | /adminApi/public/img 16 | -------------------------------------------------------------------------------- /h5/views/error.pug: -------------------------------------------------------------------------------- 1 | extends ./common/layout 2 | 3 | block content 4 | if(h5Error && h5Error.message) 5 | h1(class="tc")= h5Error.message 6 | else 7 | h1= message 8 | h2= error.status 9 | pre #{error.stack} 10 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /h5/dist-views/error.pug: -------------------------------------------------------------------------------- 1 | extends ./common/layout 2 | 3 | block content 4 | if(h5Error && h5Error.message) 5 | h1(class="tc")= h5Error.message 6 | else 7 | h1= message 8 | h2= error.status 9 | pre #{error.stack} 10 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/modules/browser/browser.js: -------------------------------------------------------------------------------- 1 | import Browser from '../../utils/browser'; 2 | 3 | export default { 4 | name: 'browser', 5 | proto: { 6 | browser: Browser, 7 | }, 8 | static: { 9 | browser: Browser, 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/modules/support/support.js: -------------------------------------------------------------------------------- 1 | import Support from '../../utils/support'; 2 | 3 | export default { 4 | name: 'support', 5 | proto: { 6 | support: Support, 7 | }, 8 | static: { 9 | support: Support, 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/modules/browser/browser.js: -------------------------------------------------------------------------------- 1 | import Browser from '../../utils/browser'; 2 | 3 | export default { 4 | name: 'browser', 5 | proto: { 6 | browser: Browser, 7 | }, 8 | static: { 9 | browser: Browser, 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/modules/support/support.js: -------------------------------------------------------------------------------- 1 | import Support from '../../utils/support'; 2 | 3 | export default { 4 | name: 'support', 5 | proto: { 6 | support: Support, 7 | }, 8 | static: { 9 | support: Support, 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/international/international.less: -------------------------------------------------------------------------------- 1 | .switch-language{ 2 | &-row1{ 3 | height: 240px !important; 4 | } 5 | &-tip{ 6 | font-size: 12px; 7 | color: gray; 8 | margin-top: 30px; 9 | } 10 | } -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/loop/index.js: -------------------------------------------------------------------------------- 1 | import loopCreate from './loopCreate'; 2 | import loopFix from './loopFix'; 3 | import loopDestroy from './loopDestroy'; 4 | 5 | export default { 6 | loopCreate, 7 | loopFix, 8 | loopDestroy, 9 | }; 10 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/transition/setTransition.js: -------------------------------------------------------------------------------- 1 | export default function (duration, byController) { 2 | const swiper = this; 3 | 4 | swiper.$wrapperEl.transition(duration); 5 | 6 | swiper.emit('setTransition', duration, byController); 7 | } 8 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/loop/index.js: -------------------------------------------------------------------------------- 1 | import loopCreate from './loopCreate'; 2 | import loopFix from './loopFix'; 3 | import loopDestroy from './loopDestroy'; 4 | 5 | export default { 6 | loopCreate, 7 | loopFix, 8 | loopDestroy, 9 | }; 10 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/transition/setTransition.js: -------------------------------------------------------------------------------- 1 | export default function (duration, byController) { 2 | const swiper = this; 3 | 4 | swiper.$wrapperEl.transition(duration); 5 | 6 | swiper.emit('setTransition', duration, byController); 7 | } 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/store/loading.js: -------------------------------------------------------------------------------- 1 | export default { 2 | state: { 3 | loading: false 4 | }, 5 | mutations: { 6 | updateLoading (state, payload) { 7 | state.loading = payload.loading 8 | } 9 | }, 10 | actions: { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/catalog.less: -------------------------------------------------------------------------------- 1 | .bookImg{ 2 | max-width: 150px; 3 | max-height:120px; 4 | display: block; 5 | float: left; 6 | margin-right: 10px; 7 | } 8 | .description{ 9 | text-indent: 28px; 10 | margin-top:10px; 11 | } -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IceInTheFire/timotaoshu/HEAD/iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /adminApi/service/index.js: -------------------------------------------------------------------------------- 1 | 2 | const reptileService = require("./reptile/"); 3 | const ipReptileService = require("./ip/"); 4 | const logService = require("./log/"); 5 | 6 | module.exports = { 7 | reptileService, 8 | ipReptileService, 9 | logService 10 | }; -------------------------------------------------------------------------------- /h5/routes/home/html.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET home page. */ 5 | router.use('', function(req, res, next) { 6 | res.sendfile('./views/pages/home/html.html'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/hr/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "hr" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/hr') 5 | // ES2015: 6 | // import 'tinymce/plugins/hr' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /adminApi/service/ip/index.js: -------------------------------------------------------------------------------- 1 | 2 | const startReptile = require("./startReptile"); 3 | const check = require("./check"); 4 | const removeRepeat = require("./removeRepeat"); 5 | 6 | 7 | module.exports = { 8 | startReptile, 9 | check, 10 | removeRepeat 11 | }; -------------------------------------------------------------------------------- /adminApi/tool/require.js: -------------------------------------------------------------------------------- 1 | const common = require("../../common/tool/require"); 2 | 3 | let wss = require("./wss"); 4 | let reptileConfig = require('../../common/reptileConfig'); 5 | 6 | common.wss = wss; 7 | common.reptileConfig = reptileConfig; 8 | 9 | module.exports = common; -------------------------------------------------------------------------------- /iview-admin-dev/src/styles/loading.less: -------------------------------------------------------------------------------- 1 | .demo-spin-icon-load{ 2 | animation: ani-demo-spin 1s linear infinite; 3 | } 4 | @keyframes ani-demo-spin { 5 | from { transform: rotate(0deg);} 6 | 50% { transform: rotate(180deg);} 7 | to { transform: rotate(360deg);} 8 | } -------------------------------------------------------------------------------- /iview-admin-dev/src/vendors/vendors.exten.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | // import echarts from 'echarts'; 3 | import Cookies from 'js-cookie'; 4 | import clipboard from 'clipboard'; 5 | import html2canvas from 'html2canvas'; 6 | import rasterizehtml from 'rasterizehtml'; 7 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/toc/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "toc" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/toc') 5 | // ES2015: 6 | // import 'tinymce/plugins/toc' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /adminApi/tool/require2.js: -------------------------------------------------------------------------------- 1 | const common = require("../../common/tool/require"); 2 | 3 | // let wss = require("./wss"); 4 | let reptileConfig = require('../../common/reptileConfig'); 5 | 6 | // common.wss = wss; 7 | common.reptileConfig = reptileConfig; 8 | 9 | module.exports = common; -------------------------------------------------------------------------------- /common/tool/md5.js: -------------------------------------------------------------------------------- 1 | const crypto = require('crypto'); 2 | 3 | 4 | 5 | var md5 = function(str) { 6 | let md5sum = crypto.createHash('md5'); 7 | md5sum.update(str); 8 | str = md5sum.digest('hex'); 9 | return str; 10 | } 11 | 12 | 13 | 14 | module.exports = md5; -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/code/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "code" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/code') 5 | // ES2015: 6 | // import 'tinymce/plugins/code' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/help/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "help" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/help') 5 | // ES2015: 6 | // import 'tinymce/plugins/help' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/link/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "link" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/link') 5 | // ES2015: 6 | // import 'tinymce/plugins/link' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/save/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "save" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/save') 5 | // ES2015: 6 | // import 'tinymce/plugins/save' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/themes/inlite/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "inlite" theme for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/themes/inlite') 5 | // ES2015: 6 | // import 'tinymce/themes/inlite' 7 | require('./theme.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/themes/modern/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "modern" theme for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/themes/modern') 5 | // ES2015: 6 | // import 'tinymce/themes/modern' 7 | require('./theme.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/anchor/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "anchor" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/anchor') 5 | // ES2015: 6 | // import 'tinymce/plugins/anchor' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/bbcode/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "bbcode" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/bbcode') 5 | // ES2015: 6 | // import 'tinymce/plugins/bbcode' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/image/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "image" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/image') 5 | // ES2015: 6 | // import 'tinymce/plugins/image' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/lists/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "lists" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/lists') 5 | // ES2015: 6 | // import 'tinymce/plugins/lists' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/media/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "media" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/media') 5 | // ES2015: 6 | // import 'tinymce/plugins/media' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/paste/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "paste" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/paste') 5 | // ES2015: 6 | // import 'tinymce/plugins/paste' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/print/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "print" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/print') 5 | // ES2015: 6 | // import 'tinymce/plugins/print' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/table/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "table" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/table') 5 | // ES2015: 6 | // import 'tinymce/plugins/table' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/count-to/count-to.less: -------------------------------------------------------------------------------- 1 | .countto-page-row{ 2 | height: 200px; 3 | } 4 | .count-to-con{ 5 | display: block; 6 | width: 100%; 7 | text-align: center; 8 | } 9 | .pre-code-show-con p{ 10 | height: 30px; 11 | margin: 0; 12 | } -------------------------------------------------------------------------------- /h5/routes/users.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const {log} = require("../tool/require"); 4 | 5 | /* GET users listing. */ 6 | router.use('', function(req, res, next) { 7 | res.send('进入用户页面'); 8 | }); 9 | 10 | module.exports = router; 11 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/slide/slideReset.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars: "off" */ 2 | export default function (speed = this.params.speed, runCallbacks = true, internal) { 3 | const swiper = this; 4 | return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 5 | } 6 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/advlist/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "advlist" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/advlist') 5 | // ES2015: 6 | // import 'tinymce/plugins/advlist' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/charmap/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "charmap" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/charmap') 5 | // ES2015: 6 | // import 'tinymce/plugins/charmap' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/preview/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "preview" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/preview') 5 | // ES2015: 6 | // import 'tinymce/plugins/preview' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/hr/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "hr" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/hr') 5 | // ES2015: 6 | // import 'tinymce/plugins/hr' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /adminApi/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "adminapi", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "node ./bin/www" 7 | }, 8 | "dependencies": { 9 | "express": "~4.16.0", 10 | "node-schedule": "^1.3.0", 11 | "ws": "^5.2.0" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/slide/slideReset.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars: "off" */ 2 | export default function (speed = this.params.speed, runCallbacks = true, internal) { 3 | const swiper = this; 4 | return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 5 | } 6 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/autolink/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autolink" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autolink') 5 | // ES2015: 6 | // import 'tinymce/plugins/autolink' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/autosave/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autosave" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autosave') 5 | // ES2015: 6 | // import 'tinymce/plugins/autosave' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/fullpage/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullpage" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullpage') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullpage' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/tabfocus/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "tabfocus" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/tabfocus') 5 | // ES2015: 6 | // import 'tinymce/plugins/tabfocus' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/template/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "template" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/template') 5 | // ES2015: 6 | // import 'tinymce/plugins/template' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/toc/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "toc" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/toc') 5 | // ES2015: 6 | // import 'tinymce/plugins/toc' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /h5/routes/users/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET home page. */ 5 | router.use('', function(req, res, next) { 6 | res.render('pages/users/index', { title: '提莫淘书',myUrl:'/users/index' }); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/access/access-test.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/emoticons/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "emoticons" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/emoticons') 5 | // ES2015: 6 | // import 'tinymce/plugins/emoticons' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/importcss/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "importcss" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/importcss') 5 | // ES2015: 6 | // import 'tinymce/plugins/importcss' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/pagebreak/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "pagebreak" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/pagebreak') 5 | // ES2015: 6 | // import 'tinymce/plugins/pagebreak' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/textcolor/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "textcolor" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/textcolor') 5 | // ES2015: 6 | // import 'tinymce/plugins/textcolor' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/wordcount/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "wordcount" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/wordcount') 5 | // ES2015: 6 | // import 'tinymce/plugins/wordcount' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/code/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "code" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/code') 5 | // ES2015: 6 | // import 'tinymce/plugins/code' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/help/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "help" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/help') 5 | // ES2015: 6 | // import 'tinymce/plugins/help' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/link/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "link" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/link') 5 | // ES2015: 6 | // import 'tinymce/plugins/link' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/save/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "save" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/save') 5 | // ES2015: 6 | // import 'tinymce/plugins/save' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /adminApi/service/log/index.js: -------------------------------------------------------------------------------- 1 | const splice = require("./splice.js"); 2 | const list = require("./list.js"); 3 | const dele = require("./delete.js"); 4 | const download = require("./download.js"); 5 | 6 | 7 | 8 | module.exports = { 9 | splice, 10 | list, 11 | dele, 12 | download 13 | }; -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/grab-cursor/unsetGrabCursor.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function () { 4 | const swiper = this; 5 | if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) return; 6 | swiper.el.style.cursor = ''; 7 | } 8 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/grab-cursor/unsetGrabCursor.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function () { 4 | const swiper = this; 5 | if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) return; 6 | swiper.el.style.cursor = ''; 7 | } 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/autoresize/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autoresize" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autoresize') 5 | // ES2015: 6 | // import 'tinymce/plugins/autoresize' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/codesample/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "codesample" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/codesample') 5 | // ES2015: 6 | // import 'tinymce/plugins/codesample' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/colorpicker/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "colorpicker" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/colorpicker') 5 | // ES2015: 6 | // import 'tinymce/plugins/colorpicker' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/contextmenu/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "contextmenu" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/contextmenu') 5 | // ES2015: 6 | // import 'tinymce/plugins/contextmenu' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/fullscreen/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullscreen" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullscreen') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullscreen' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/imagetools/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "imagetools" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/imagetools') 5 | // ES2015: 6 | // import 'tinymce/plugins/imagetools' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/nonbreaking/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "nonbreaking" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/nonbreaking') 5 | // ES2015: 6 | // import 'tinymce/plugins/nonbreaking' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/noneditable/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "noneditable" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/noneditable') 5 | // ES2015: 6 | // import 'tinymce/plugins/noneditable' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/textpattern/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "textpattern" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/textpattern') 5 | // ES2015: 6 | // import 'tinymce/plugins/textpattern' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/visualchars/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "visualchars" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/visualchars') 5 | // ES2015: 6 | // import 'tinymce/plugins/visualchars' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/skins/lightgray/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%} -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/image/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "image" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/image') 5 | // ES2015: 6 | // import 'tinymce/plugins/image' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/lists/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "lists" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/lists') 5 | // ES2015: 6 | // import 'tinymce/plugins/lists' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/media/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "media" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/media') 5 | // ES2015: 6 | // import 'tinymce/plugins/media' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/paste/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "paste" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/paste') 5 | // ES2015: 6 | // import 'tinymce/plugins/paste' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/print/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "print" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/print') 5 | // ES2015: 6 | // import 'tinymce/plugins/print' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/table/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "table" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/table') 5 | // ES2015: 6 | // import 'tinymce/plugins/table' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/themes/inlite/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "inlite" theme for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/themes/inlite') 5 | // ES2015: 6 | // import 'tinymce/themes/inlite' 7 | require('./theme.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/themes/modern/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "modern" theme for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/themes/modern') 5 | // ES2015: 6 | // import 'tinymce/themes/modern' 7 | require('./theme.js'); 8 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/transition/index.js: -------------------------------------------------------------------------------- 1 | import setTransition from './setTransition'; 2 | import transitionStart from './transitionStart'; 3 | import transitionEnd from './transitionEnd'; 4 | 5 | export default { 6 | setTransition, 7 | transitionStart, 8 | transitionEnd, 9 | }; 10 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/transition/index.js: -------------------------------------------------------------------------------- 1 | import setTransition from './setTransition'; 2 | import transitionStart from './transitionStart'; 3 | import transitionEnd from './transitionEnd'; 4 | 5 | export default { 6 | setTransition, 7 | transitionStart, 8 | transitionEnd, 9 | }; 10 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/legacyoutput/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "legacyoutput" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/legacyoutput') 5 | // ES2015: 6 | // import 'tinymce/plugins/legacyoutput' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/spellchecker/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "spellchecker" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/spellchecker') 5 | // ES2015: 6 | // import 'tinymce/plugins/spellchecker' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/visualblocks/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "visualblocks" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/visualblocks') 5 | // ES2015: 6 | // import 'tinymce/plugins/visualblocks' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/advlist/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "advlist" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/advlist') 5 | // ES2015: 6 | // import 'tinymce/plugins/advlist' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/anchor/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "anchor" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/anchor') 5 | // ES2015: 6 | // import 'tinymce/plugins/anchor' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/bbcode/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "bbcode" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/bbcode') 5 | // ES2015: 6 | // import 'tinymce/plugins/bbcode' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/charmap/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "charmap" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/charmap') 5 | // ES2015: 6 | // import 'tinymce/plugins/charmap' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/preview/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "preview" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/preview') 5 | // ES2015: 6 | // import 'tinymce/plugins/preview' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/loop/loopDestroy.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | const { $wrapperEl, params, slides } = swiper; 4 | $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove(); 5 | slides.removeAttr('data-swiper-slide-index'); 6 | } 7 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/manipulation/removeAllSlides.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | 4 | const slidesIndexes = []; 5 | for (let i = 0; i < swiper.slides.length; i += 1) { 6 | slidesIndexes.push(i); 7 | } 8 | swiper.removeSlide(slidesIndexes); 9 | } 10 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/loop/loopDestroy.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | const { $wrapperEl, params, slides } = swiper; 4 | $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove(); 5 | slides.removeAttr('data-swiper-slide-index'); 6 | } 7 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/manipulation/removeAllSlides.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | 4 | const slidesIndexes = []; 5 | for (let i = 0; i < swiper.slides.length; i += 1) { 6 | slidesIndexes.push(i); 7 | } 8 | swiper.removeSlide(slidesIndexes); 9 | } 10 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/searchreplace/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "searchreplace" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/searchreplace') 5 | // ES2015: 6 | // import 'tinymce/plugins/searchreplace' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/autolink/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autolink" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autolink') 5 | // ES2015: 6 | // import 'tinymce/plugins/autolink' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/autosave/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autosave" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autosave') 5 | // ES2015: 6 | // import 'tinymce/plugins/autosave' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/fullpage/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullpage" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullpage') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullpage' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/tabfocus/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "tabfocus" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/tabfocus') 5 | // ES2015: 6 | // import 'tinymce/plugins/tabfocus' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/template/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "template" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/template') 5 | // ES2015: 6 | // import 'tinymce/plugins/template' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/directionality/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "directionality" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/directionality') 5 | // ES2015: 6 | // import 'tinymce/plugins/directionality' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/tinymce/plugins/insertdatetime/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "insertdatetime" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/insertdatetime') 5 | // ES2015: 6 | // import 'tinymce/plugins/insertdatetime' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/emoticons/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "emoticons" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/emoticons') 5 | // ES2015: 6 | // import 'tinymce/plugins/emoticons' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/importcss/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "importcss" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/importcss') 5 | // ES2015: 6 | // import 'tinymce/plugins/importcss' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/pagebreak/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "pagebreak" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/pagebreak') 5 | // ES2015: 6 | // import 'tinymce/plugins/pagebreak' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/textcolor/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "textcolor" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/textcolor') 5 | // ES2015: 6 | // import 'tinymce/plugins/textcolor' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/wordcount/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "wordcount" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/wordcount') 5 | // ES2015: 6 | // import 'tinymce/plugins/wordcount' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /h5/dist/js/pages/home/index.js: -------------------------------------------------------------------------------- 1 | "use strict";!function(){function n(){var o=$(".book-search-input")[0].value||"";o&&o.trim()&&(location.href="/book/search?bookName="+o)}window.addEventListener("load",function(){window.touchEvent.tap($(".book-searct-a")[0],n),$(".book-search-input")[0].onkeypress=function(o){13==o.keyCode&&n()}})}(); -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/update/updateSlidesOffset.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | const slides = swiper.slides; 4 | for (let i = 0; i < slides.length; i += 1) { 5 | slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/autoresize/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autoresize" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autoresize') 5 | // ES2015: 6 | // import 'tinymce/plugins/autoresize' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/codesample/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "codesample" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/codesample') 5 | // ES2015: 6 | // import 'tinymce/plugins/codesample' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/fullscreen/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullscreen" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullscreen') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullscreen' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/imagetools/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "imagetools" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/imagetools') 5 | // ES2015: 6 | // import 'tinymce/plugins/imagetools' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/skins/lightgray/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%} -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/update/updateSlidesOffset.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | const slides = swiper.slides; 4 | for (let i = 0; i < slides.length; i += 1) { 5 | slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/colorpicker/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "colorpicker" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/colorpicker') 5 | // ES2015: 6 | // import 'tinymce/plugins/colorpicker' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/contextmenu/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "contextmenu" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/contextmenu') 5 | // ES2015: 6 | // import 'tinymce/plugins/contextmenu' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/legacyoutput/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "legacyoutput" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/legacyoutput') 5 | // ES2015: 6 | // import 'tinymce/plugins/legacyoutput' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/nonbreaking/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "nonbreaking" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/nonbreaking') 5 | // ES2015: 6 | // import 'tinymce/plugins/nonbreaking' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/noneditable/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "noneditable" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/noneditable') 5 | // ES2015: 6 | // import 'tinymce/plugins/noneditable' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/spellchecker/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "spellchecker" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/spellchecker') 5 | // ES2015: 6 | // import 'tinymce/plugins/spellchecker' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/textpattern/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "textpattern" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/textpattern') 5 | // ES2015: 6 | // import 'tinymce/plugins/textpattern' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/visualblocks/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "visualblocks" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/visualblocks') 5 | // ES2015: 6 | // import 'tinymce/plugins/visualblocks' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/visualchars/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "visualchars" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/visualchars') 5 | // ES2015: 6 | // import 'tinymce/plugins/visualchars' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/searchreplace/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "searchreplace" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/searchreplace') 5 | // ES2015: 6 | // import 'tinymce/plugins/searchreplace' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/directionality/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "directionality" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/directionality') 5 | // ES2015: 6 | // import 'tinymce/plugins/directionality' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/text-editor/tinymce/plugins/insertdatetime/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "insertdatetime" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/insertdatetime') 5 | // ES2015: 6 | // import 'tinymce/plugins/insertdatetime' 7 | require('./plugin.js'); 8 | -------------------------------------------------------------------------------- /adminApi/core/upload-mutter.js: -------------------------------------------------------------------------------- 1 | const multer = require('multer'); 2 | module.exports = async function(tool, path, fs, app) { 3 | /* 4 | * 创建文件夹 5 | * */ 6 | tool.hasDir(fs, path.join(__dirname, '../upload/')); 7 | tool.hasDir(fs, path.join(__dirname, '../public')); 8 | tool.hasDir(fs, path.join(__dirname, '../public/img')); 9 | 10 | } -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/translate/index.js: -------------------------------------------------------------------------------- 1 | import getTranslate from './getTranslate'; 2 | import setTranslate from './setTranslate'; 3 | import minTranslate from './minTranslate'; 4 | import maxTranslate from './maxTranslate'; 5 | 6 | export default { 7 | getTranslate, 8 | setTranslate, 9 | minTranslate, 10 | maxTranslate, 11 | }; 12 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/translate/index.js: -------------------------------------------------------------------------------- 1 | import getTranslate from './getTranslate'; 2 | import setTranslate from './setTranslate'; 3 | import minTranslate from './minTranslate'; 4 | import maxTranslate from './maxTranslate'; 5 | 6 | export default { 7 | getTranslate, 8 | setTranslate, 9 | minTranslate, 10 | maxTranslate, 11 | }; 12 | -------------------------------------------------------------------------------- /iview-admin-dev/src/libs/config.js: -------------------------------------------------------------------------------- 1 | import env from "../../build/env"; 2 | import config from "../config" 3 | const ajaxUrl = env === 'development' 4 | // ? 'http://localhost:3000' 5 | ? config.apiServer 6 | : env === 'production' 7 | ? config.apiServer 8 | : config.apiServer; 9 | 10 | 11 | export default { 12 | apiUrl: ajaxUrl 13 | } -------------------------------------------------------------------------------- /adminApi/routes/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { db } = require("../tool/require"); 4 | 5 | router.get('', async function(req, res, next) { 6 | // let user = await db.query('select * from users'); 7 | // res.send(user); 8 | res.send("兄弟,这是接口地址,你逛错位置了") 9 | }); 10 | 11 | module.exports = router; 12 | -------------------------------------------------------------------------------- /config/sql.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | host : '127.0.0.1', 3 | port : '3306', 4 | user : 'root', 5 | password : '', 6 | database : 'timotaoshu', 7 | multipleStatements : true, //是否允许执行多条sql语句 8 | // insecureAuth: true, //加入此项可解决此错误!!! //使用旧(不安全)的连接方式去连接MySQL 远程连接 9 | // debug: true, //是否把连接情况打印到文件里 10 | }; 11 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/slide/slideToLoop.js: -------------------------------------------------------------------------------- 1 | export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) { 2 | const swiper = this; 3 | let newIndex = index; 4 | if (swiper.params.loop) { 5 | newIndex += swiper.loopedSlides; 6 | } 7 | 8 | return swiper.slideTo(newIndex, speed, runCallbacks, internal); 9 | } 10 | -------------------------------------------------------------------------------- /h5/routes/home/ejs.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET home page. */ 5 | router.use('', function(req, res, next) { 6 | let data= { 7 | name : 'webarn', 8 | sex : '男', 9 | content : '参数,可以更改' 10 | }; 11 | res.render('pages/home/ejs.ejs',data) 12 | }); 13 | 14 | module.exports = router; 15 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/slide/slideToLoop.js: -------------------------------------------------------------------------------- 1 | export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) { 2 | const swiper = this; 3 | let newIndex = index; 4 | if (swiper.params.loop) { 5 | newIndex += swiper.loopedSlides; 6 | } 7 | 8 | return swiper.slideTo(newIndex, speed, runCallbacks, internal); 9 | } 10 | -------------------------------------------------------------------------------- /adminApi/routes/users/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool } = require("../../tool/require"); 4 | 5 | router.use('', oauth(), async function(req, res, next) { 6 | // let user = await db.query('select * from users'); 7 | 8 | res.send(tool.toJson(req.user, '', 1000)); 9 | }); 10 | 11 | module.exports = router; 12 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/zoom/zoom.less: -------------------------------------------------------------------------------- 1 | .swiper-zoom-container { 2 | width: 100%; 3 | height: 100%; 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | text-align: center; 8 | 9 | > img, > svg, > canvas { 10 | max-width: 100%; 11 | max-height: 100%; 12 | object-fit: contain; 13 | } 14 | } 15 | 16 | .swiper-slide-zoomed { 17 | cursor: move; 18 | } 19 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/zoom/zoom.less: -------------------------------------------------------------------------------- 1 | .swiper-zoom-container { 2 | width: 100%; 3 | height: 100%; 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | text-align: center; 8 | 9 | > img, > svg, > canvas { 10 | max-width: 100%; 11 | max-height: 100%; 12 | object-fit: contain; 13 | } 14 | } 15 | 16 | .swiper-slide-zoomed { 17 | cursor: move; 18 | } 19 | -------------------------------------------------------------------------------- /common/tool/toJson.js: -------------------------------------------------------------------------------- 1 | const toJson = function(data, msg, code) { 2 | return JSON.stringify({ 3 | code: code || 1000, 4 | data: data, 5 | msg: msg || '' 6 | }); 7 | 8 | /* 9 | * code 10 | * 1000 请求接口成功 11 | * 1002 代码错误,前端直接显示报错信息 12 | * 1003 token验证失败,前端直接跳转到登录页 13 | * 1004 权限不够,前端直接跳转到首页 14 | * */ 15 | } 16 | 17 | 18 | 19 | module.exports = toJson; -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/manipulation/index.js: -------------------------------------------------------------------------------- 1 | import appendSlide from './appendSlide'; 2 | import prependSlide from './prependSlide'; 3 | import addSlide from './addSlide'; 4 | import removeSlide from './removeSlide'; 5 | import removeAllSlides from './removeAllSlides'; 6 | 7 | export default { 8 | appendSlide, 9 | prependSlide, 10 | addSlide, 11 | removeSlide, 12 | removeAllSlides, 13 | }; 14 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/manipulation/index.js: -------------------------------------------------------------------------------- 1 | import appendSlide from './appendSlide'; 2 | import prependSlide from './prependSlide'; 3 | import addSlide from './addSlide'; 4 | import removeSlide from './removeSlide'; 5 | import removeAllSlides from './removeAllSlides'; 6 | 7 | export default { 8 | appendSlide, 9 | prependSlide, 10 | addSlide, 11 | removeSlide, 12 | removeAllSlides, 13 | }; 14 | -------------------------------------------------------------------------------- /iview-admin-dev/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "server.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "connect-history-api-fallback": "^1.5.0", 14 | "express": "^4.16.3" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /adminApi/routes/permission/list.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool } = require("../../tool/require"); 4 | 5 | router.use('', oauth(6201), async function(req, res, next) { 6 | // let user = await db.query('select * from users'); 7 | 8 | let permission = tool.permissionList; 9 | 10 | res.send(tool.toJson(permission, '', 1000)); 11 | }); 12 | 13 | module.exports = router; 14 | -------------------------------------------------------------------------------- /iview-admin-dev/src/mixins/isMe.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * ieMe 4 | * 5 | * */ 6 | 7 | export default { 8 | data(){ 9 | return { 10 | isme:false, 11 | } 12 | }, 13 | created() { 14 | }, 15 | methods: { 16 | 17 | }, 18 | activated(){ 19 | this.$nextTick(() =>{ 20 | this.isme = true; 21 | }) 22 | }, 23 | deactivated() { 24 | this.isme = false; 25 | } 26 | }; -------------------------------------------------------------------------------- /h5/dist/js/pages/book/info.js: -------------------------------------------------------------------------------- 1 | "use strict";!function(){function o(){var o=$(".book-add")[0],n=window.tool.getCookie().bookIds?window.tool.getCookie().bookIds.split(","):[],t=window.tool.getParams().bookId;"移出书架"==o.innerText?(n.remove(t),console.log(n),window.tool.setCookie("bookIds",n.join(",")),o.innerText="加入书架"):(n.push(t),window.tool.setCookie("bookIds",n.join(",")),o.innerText="移出书架")}window.addEventListener("load",function(){window.touchEvent.tap($(".book-add")[0],o)})}(); -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/events/onClick.js: -------------------------------------------------------------------------------- 1 | export default function (e) { 2 | const swiper = this; 3 | if (process.env.TARGET === 'desktop') { 4 | swiper.emit('tap click', e); 5 | } else if (!swiper.allowClick) { 6 | if (swiper.params.preventClicks) e.preventDefault(); 7 | if (swiper.params.preventClicksPropagation && swiper.animating) { 8 | e.stopPropagation(); 9 | e.stopImmediatePropagation(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/events/onClick.js: -------------------------------------------------------------------------------- 1 | export default function (e) { 2 | const swiper = this; 3 | if (process.env.TARGET === 'desktop') { 4 | swiper.emit('tap click', e); 5 | } else if (!swiper.allowClick) { 6 | if (swiper.params.preventClicks) e.preventDefault(); 7 | if (swiper.params.preventClicksPropagation && swiper.animating) { 8 | e.stopPropagation(); 9 | e.stopImmediatePropagation(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /h5/src/css/common/config.less: -------------------------------------------------------------------------------- 1 | @color-black: #333333; 2 | @color-light-gray: #999999; 3 | @font-size-normal: 0.6rem; 4 | @html-background-color: #f3f3f3; 5 | @body-background-color: #ffffff; 6 | //@font-family: 'Microsoft YaHei','Microsoft JhengHei','SimHei'; 7 | //@font-family: "Arial","sans-serif"; 8 | @font-family: 'PingFang SC',"Arial","sans-serif"; 9 | @footer-background-color: #f9f9f9; 10 | 11 | @timo-color:#896461; 12 | 13 | 14 | @catalog-background-color: #f6f4ec; -------------------------------------------------------------------------------- /adminApi/service/reptile/index.js: -------------------------------------------------------------------------------- 1 | const startReptile = require("./startReptile.js"); //开始爬取 2 | const restartCatalog = require("./restartCatalog.js"); //错误列表爬取 3 | const oneKeyRestartCatalog = require("./oneKeyRestartCatalog.js"); //错误列表爬取 4 | const oneKeyUpdateNewCatalog = require("./oneKeyUpdateNewCatalog.js"); //错误列表爬取 5 | 6 | 7 | module.exports = { 8 | startReptile, 9 | oneKeyRestartCatalog, 10 | restartCatalog, 11 | oneKeyUpdateNewCatalog 12 | }; -------------------------------------------------------------------------------- /api文档/timoh5/SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * [介绍](README.md) 4 | * [接口文档](lie-biao-jie-kou.md) 5 | * [小说列表接口](lie-biao-jie-kou/lie-biao-jie-kou.md) 6 | * [小说类型列表接口](lie-biao-jie-kou/xiao-shuo-lei-xing-lie-biao.md) 7 | * [小说章节列表接口](lie-biao-jie-kou/xiao-shuo-zhang-jie-lie-biao.md) 8 | * [小说章节详情接口](lie-biao-jie-kou/xiao-shuo-zhang-jie-xiang-qing-jie-kou.md) 9 | * [批量小说列表接口](lie-biao-jie-kou/pi-liang-xiao-shuo-lie-biao-jie-kou.md) 10 | * [接口模板(不对外开放,忽视)](mo-ban.md) 11 | 12 | -------------------------------------------------------------------------------- /adminApi/routes/users/checkLock.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool } = require("../../tool/require"); 4 | 5 | router.use('', oauth(), async function(req, res, next) { 6 | let pwd = tool.getParams(req, 'pwd'); 7 | 8 | if(req.user.pwd == pwd) { 9 | res.send(tool.toJson(req.user, '', 1000)); 10 | } else { 11 | res.send(tool.toJson(null, '解锁失败', 1002)); 12 | } 13 | }); 14 | 15 | module.exports = router; 16 | -------------------------------------------------------------------------------- /h5/routes/api/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const {log, tool} = require("../../tool/require"); 4 | 5 | /* GET users listing. */ 6 | router.use('', function(req, res, next) { 7 | // tool.allowVisit(res); //为了跨域 8 | // res.send('你好,欢迎来到提莫淘书h5接口文档世界
接口文档地址'); 9 | res.render('api/index', { title: '提莫淘书接口文档', href:'http://localhost:1111/_book/'}); 10 | }); 11 | 12 | module.exports = router; 13 | -------------------------------------------------------------------------------- /h5/src/css/common/common.less: -------------------------------------------------------------------------------- 1 | .clear{ 2 | clear: both; 3 | } 4 | .clearfix{ 5 | zoom:1;/*IE/7/6*/ /*兼容IE6下的写法*/ 6 | } 7 | .clearfix:after{ 8 | content:""; 9 | line-height:0; 10 | width:0; 11 | height: 0; 12 | display:block; 13 | visibility:hidden; 14 | clear:both; 15 | } 16 | 17 | .fl{float: left;} 18 | .fr{float: right;} 19 | .tl{text-align:left;} 20 | .tc{text-align:center;} 21 | .tr{text-align:right;} 22 | .fz08{font-size:0.8rem;} 23 | .fz07{font-size:0.7rem;} -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/effect-fade/effect-fade.less: -------------------------------------------------------------------------------- 1 | .swiper-container-fade { 2 | &.swiper-container-free-mode { 3 | .swiper-slide { 4 | transition-timing-function: ease-out; 5 | } 6 | } 7 | .swiper-slide { 8 | pointer-events: none; 9 | transition-property: opacity; 10 | .swiper-slide { 11 | pointer-events: none; 12 | } 13 | } 14 | .swiper-slide-active { 15 | &, & .swiper-slide-active { 16 | pointer-events: auto; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/effect-fade/effect-fade.less: -------------------------------------------------------------------------------- 1 | .swiper-container-fade { 2 | &.swiper-container-free-mode { 3 | .swiper-slide { 4 | transition-timing-function: ease-out; 5 | } 6 | } 7 | .swiper-slide { 8 | pointer-events: none; 9 | transition-property: opacity; 10 | .swiper-slide { 11 | pointer-events: none; 12 | } 13 | } 14 | .swiper-slide-active { 15 | &, & .swiper-slide-active { 16 | pointer-events: auto; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /h5/dist/js/pages/book/catalog.js: -------------------------------------------------------------------------------- 1 | "use strict";!function(){var t=window.tool.getParams().isSort||1,a=window.tool.getParams().page||1,e=window.tool.getParams().limit||20,i=window.tool.getParams().bookId;function n(){var o=Math.ceil(parseInt($(".page-input")[0].value));o?a!=o&&(location.href="/book/catalog?bookId="+i+"&page="+o+"&limit="+e+"&isSort="+t):alert("输入框的内容不合法")}window.addEventListener("load",function(){window.touchEvent.tap($("#catalogJump"),n),$(".page-input")[0].onkeypress=function(o){13==o.keyCode&&n()}})}(); -------------------------------------------------------------------------------- /iview-admin-dev/src/views/error-page/error-page.less: -------------------------------------------------------------------------------- 1 | .error-page{ 2 | &-show{ 3 | width: 100%; 4 | height: 180px; 5 | transform: scale(0.4); 6 | } 7 | &-cover{ 8 | position: absolute; 9 | width: 100%; 10 | height: 100%; 11 | left: 0; 12 | top: 0; 13 | } 14 | &-intro-con{ 15 | height: 180px; 16 | p{ 17 | display: block; 18 | width: 100%; 19 | text-align: center; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /adminApi/routes/ip/check.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool, db, log } = require("../../tool/require"); 4 | const { ipReptileService } = require("../../service/"); 5 | 6 | 7 | router.use('', oauth(2002), async function(req, res, next) { 8 | ipReptileService.check().then((msg) => { 9 | res.send(tool.toJson(msg, null, 1000)); 10 | }).catch((err) => { 11 | res.send(tool.toJson(null, err, 1002)); 12 | }); 13 | }); 14 | 15 | module.exports = router; 16 | -------------------------------------------------------------------------------- /api文档/timoh5/lie-biao-jie-kou.md: -------------------------------------------------------------------------------- 1 | 1、接口服务器地址 [http://106.12.37.138:1111/api](http://106.12.37.138:1111/api) 2 | 3 | 2、这里所有的接口都将遵循下面的状态码 4 | 5 | ``` 6 | code 值 7 | 1000 请求接口成功 8 | 1002 代码错误,前端直接显示报错信息 msg 会带上报错信息 9 | 1003 token验证失败,前端直接跳转到登录页 msg 会显示token验证失败 10 | 1004 权限不够,前端直接跳转到首页 msg 会显示权限不够 11 | ``` 12 | 13 | 3、所有的接口返回格式皆遵循以下规则 14 | 15 | ```js 16 | { 17 | "code": 1000, 18 | "data":"接口返回的数据,当code不为1000时,data不会返回相应的接口信息", 19 | "msg": "接口信息, 当code不为1000时,msg会返回相应的接口错误" 20 | } 21 | ``` 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/slide/index.js: -------------------------------------------------------------------------------- 1 | import slideTo from './slideTo'; 2 | import slideToLoop from './slideToLoop'; 3 | import slideNext from './slideNext'; 4 | import slidePrev from './slidePrev'; 5 | import slideReset from './slideReset'; 6 | import slideToClosest from './slideToClosest'; 7 | import slideToClickedSlide from './slideToClickedSlide'; 8 | 9 | export default { 10 | slideTo, 11 | slideToLoop, 12 | slideNext, 13 | slidePrev, 14 | slideReset, 15 | slideToClosest, 16 | slideToClickedSlide, 17 | }; 18 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/slide/index.js: -------------------------------------------------------------------------------- 1 | import slideTo from './slideTo'; 2 | import slideToLoop from './slideToLoop'; 3 | import slideNext from './slideNext'; 4 | import slidePrev from './slidePrev'; 5 | import slideReset from './slideReset'; 6 | import slideToClosest from './slideToClosest'; 7 | import slideToClickedSlide from './slideToClickedSlide'; 8 | 9 | export default { 10 | slideTo, 11 | slideToLoop, 12 | slideNext, 13 | slidePrev, 14 | slideReset, 15 | slideToClosest, 16 | slideToClickedSlide, 17 | }; 18 | -------------------------------------------------------------------------------- /iview-admin-dev/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Vuex from 'vuex'; 3 | 4 | import app from './modules/app'; 5 | import user from './modules/user'; 6 | 7 | import loading from './loading'; 8 | 9 | Vue.use(Vuex); 10 | 11 | const store = new Vuex.Store({ 12 | state: { 13 | // 14 | }, 15 | mutations: { 16 | // 17 | }, 18 | actions: { 19 | 20 | }, 21 | modules: { 22 | app, 23 | user, 24 | loading 25 | } 26 | }); 27 | 28 | export default store; 29 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/form/work-flow/work-flow.less: -------------------------------------------------------------------------------- 1 | .step{ 2 | &-header-con{ 3 | text-align: center; 4 | h3{ 5 | margin: 10px 0; 6 | } 7 | h5{ 8 | margin: 0 0 5px; 9 | } 10 | } 11 | &-content{ 12 | padding: 5px 20px 26px; 13 | margin-bottom: 20px; 14 | border-bottom: 1px solid #dbdddf; 15 | } 16 | &-form{ 17 | padding-bottom: 10px; 18 | border-bottom: 1px solid #dbdddf; 19 | margin-bottom: 20px; 20 | } 21 | } -------------------------------------------------------------------------------- /adminApi/routes/ip/removeRepeat.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool, db, log } = require("../../tool/require"); 4 | const {ipReptileService} = require("../../service/"); 5 | 6 | 7 | router.use('', oauth(2003), async function(req, res, next) { 8 | ipReptileService.removeRepeat().then((msg) => { 9 | res.send(tool.toJson(msg, null, 1000)); 10 | }).catch((err) => { 11 | res.send(tool.toJson(null, err, 1002)); 12 | }); 13 | }); 14 | 15 | module.exports = router; 16 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/grab-cursor/setGrabCursor.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function (moving) { 4 | const swiper = this; 5 | if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) return; 6 | const el = swiper.el; 7 | el.style.cursor = 'move'; 8 | el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; 9 | el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; 10 | el.style.cursor = moving ? 'grabbing' : 'grab'; 11 | } 12 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/grab-cursor/setGrabCursor.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function (moving) { 4 | const swiper = this; 5 | if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) return; 6 | const el = swiper.el; 7 | el.style.cursor = 'move'; 8 | el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; 9 | el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; 10 | el.style.cursor = moving ? 'grabbing' : 'grab'; 11 | } 12 | -------------------------------------------------------------------------------- /adminApi/routes/book/oneKeyUpdateNewCatalog.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool} = require("../../tool/require"); 4 | const { reptileService } = require("../../service"); 5 | 6 | 7 | router.use('', oauth(1201), async function(req, res, next) { 8 | reptileService.oneKeyUpdateNewCatalog().then((msg)=>{ 9 | res.send(tool.toJson(msg, null, 1000)); 10 | }).catch((err) => { 11 | res.send(tool.toJson(null, err, 1002)); 12 | }); 13 | }); 14 | 15 | module.exports = router; 16 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/package.js: -------------------------------------------------------------------------------- 1 | var version = '4.2.0'; 2 | 3 | Package.describe({ 4 | name: 'nolimits4web:swiper', 5 | summary: 'iDangero.us Swiper - mobile touch slider with hardware accelerated transitions and native behavior', 6 | version: version, 7 | git: 'https://github.com/nolimits4web/Swiper' 8 | }); 9 | 10 | Package.onUse(function (api) { 11 | api.versionsFrom('1.1.0.2'); 12 | 13 | api.addFiles([ 14 | 'dist/css/swiper.min.css', 15 | 'dist/js/swiper.js' 16 | ], ['client'] 17 | ); 18 | }); 19 | 20 | Package.onTest(function (api) {}); 21 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/package.js: -------------------------------------------------------------------------------- 1 | var version = '4.2.0'; 2 | 3 | Package.describe({ 4 | name: 'nolimits4web:swiper', 5 | summary: 'iDangero.us Swiper - mobile touch slider with hardware accelerated transitions and native behavior', 6 | version: version, 7 | git: 'https://github.com/nolimits4web/Swiper' 8 | }); 9 | 10 | Package.onUse(function (api) { 11 | api.versionsFrom('1.1.0.2'); 12 | 13 | api.addFiles([ 14 | 'dist/css/swiper.min.css', 15 | 'dist/js/swiper.js' 16 | ], ['client'] 17 | ); 18 | }); 19 | 20 | Package.onTest(function (api) {}); 21 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/tables/components/ExportExcel.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 22 | -------------------------------------------------------------------------------- /common/tool/getParams.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 统一获取接口参数, 3 | * 4 | * 同时也为了防止sql注入 5 | * 6 | * 把英文双引号改成了转义的英文双引号,遇到转义符号,先处理转义符号,再处理英文双引号(以前是把英文双引号改成了英文单引号) 7 | * 8 | * sql语法尽量用双引号 9 | * 10 | * notrans 默认false 如果不想转义的话,则设为true ,,一般 11 | * */ 12 | function getParams(req, name, notrans){ 13 | let body = (req.query[name] || req.body[name] || ''); 14 | if(!notrans){ 15 | // return body.replace(/"/g,"'"); 16 | return body 17 | .replace(/\\/g,"\\\\") 18 | .replace(/"/g,"\\\""); 19 | } 20 | return body; 21 | } 22 | 23 | module.exports = getParams; -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/translate/getTranslate.js: -------------------------------------------------------------------------------- 1 | import Utils from '../../../utils/utils'; 2 | 3 | export default function (axis = this.isHorizontal() ? 'x' : 'y') { 4 | const swiper = this; 5 | 6 | const { 7 | params, rtlTranslate: rtl, translate, $wrapperEl, 8 | } = swiper; 9 | 10 | if (params.virtualTranslate) { 11 | return rtl ? -translate : translate; 12 | } 13 | 14 | let currentTranslate = Utils.getTranslate($wrapperEl[0], axis); 15 | if (rtl) currentTranslate = -currentTranslate; 16 | 17 | return currentTranslate || 0; 18 | } 19 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/translate/getTranslate.js: -------------------------------------------------------------------------------- 1 | import Utils from '../../../utils/utils'; 2 | 3 | export default function (axis = this.isHorizontal() ? 'x' : 'y') { 4 | const swiper = this; 5 | 6 | const { 7 | params, rtlTranslate: rtl, translate, $wrapperEl, 8 | } = swiper; 9 | 10 | if (params.virtualTranslate) { 11 | return rtl ? -translate : translate; 12 | } 13 | 14 | let currentTranslate = Utils.getTranslate($wrapperEl[0], axis); 15 | if (rtl) currentTranslate = -currentTranslate; 16 | 17 | return currentTranslate || 0; 18 | } 19 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/components/description.vue: -------------------------------------------------------------------------------- 1 | 6 | 16 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/area-linkage/util/index.js: -------------------------------------------------------------------------------- 1 | let util = {}; 2 | 3 | util.levelArr = [0, 1, 2, 3]; 4 | 5 | util.oneOf = (item, arr) => { 6 | return arr.some(i => { 7 | return i === item; 8 | }); 9 | }; 10 | util.getIndex = (list, name) => { 11 | for (const i in list) { 12 | if (list[i] === name) { 13 | return i; 14 | } 15 | } 16 | }; 17 | 18 | util.dataType = ['all', 'code', 'name']; 19 | 20 | util.checkLevel = val => { 21 | return util.oneOf(val, util.levelArr); 22 | }; 23 | 24 | export default util; 25 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/markdown-editor2/insertText.js: -------------------------------------------------------------------------------- 1 | function insertText (dom, string) { 2 | if (document.execCommand('insertText', false, string)) { 3 | return; 4 | } else { 5 | let start = dom.selectionStart; 6 | let end = dom.selectionEnd; 7 | dom.value = dom.value.substring(0, start) + string + dom.value.substring(end, dom.value.length); 8 | dom.selectionStart = start + string.length; 9 | dom.selectionEnd = start + string.length; 10 | dom.focus(); 11 | } 12 | } 13 | export default insertText; 14 | -------------------------------------------------------------------------------- /iview-admin-dev/tinymce/less/common.css: -------------------------------------------------------------------------------- 1 | html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { 2 | margin: 0; 3 | padding: 0; 4 | vertical-align: middle; 5 | } 6 | fieldset, img, input, button { 7 | border: none; 8 | padding: 0; 9 | margin: 0; 10 | outline-style: none; /*去掉input 获取焦点后的外框环绕*/ 11 | } 12 | 13 | 14 | body{ 15 | background:#f6f4ec; 16 | padding:20px; 17 | } 18 | p{ 19 | line-height:40px; 20 | margin-bottom:15px; 21 | font-size:25px; 22 | text-indent: 50px; 23 | vertical-align: middle; 24 | } -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/effect-flip/effect-flip.less: -------------------------------------------------------------------------------- 1 | .swiper-container-flip { 2 | overflow: visible; 3 | .swiper-slide { 4 | pointer-events: none; 5 | backface-visibility: hidden; 6 | z-index: 1; 7 | .swiper-slide { 8 | pointer-events: none; 9 | } 10 | } 11 | .swiper-slide-active { 12 | &, & .swiper-slide-active { 13 | pointer-events: auto; 14 | } 15 | } 16 | .swiper-slide-shadow-top, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left, .swiper-slide-shadow-right { 17 | z-index: 0; 18 | backface-visibility: hidden; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/effect-flip/effect-flip.less: -------------------------------------------------------------------------------- 1 | .swiper-container-flip { 2 | overflow: visible; 3 | .swiper-slide { 4 | pointer-events: none; 5 | backface-visibility: hidden; 6 | z-index: 1; 7 | .swiper-slide { 8 | pointer-events: none; 9 | } 10 | } 11 | .swiper-slide-active { 12 | &, & .swiper-slide-active { 13 | pointer-events: auto; 14 | } 15 | } 16 | .swiper-slide-shadow-top, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left, .swiper-slide-shadow-right { 17 | z-index: 0; 18 | backface-visibility: hidden; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /adminApi/routes/reptile/startReptile.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool} = require("../../tool/require"); 4 | const { reptileService } = require("../../service/"); 5 | 6 | 7 | // let isReptile = false; //是否正在爬取 8 | // global.isReptile 9 | router.use('', oauth(4003), async function(req, res, next) { 10 | reptileService.startReptile().then((msg) => { 11 | res.send(tool.toJson(null, msg, 1000)); 12 | }).catch((err) => { 13 | res.send(tool.toJson(null, err, 1002)); 14 | }); 15 | }); 16 | 17 | module.exports = router; 18 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swiper", 3 | "repo": "https://github.com/nolimits4web/Swiper.git", 4 | "description": "Most modern mobile touch slider and framework with hardware accelerated transitions", 5 | "version": "4.2.5", 6 | "keywords": ["swiper", "swipe", "slider", "touch", "ios", "mobile", "cordova", "phonegap", "app", "framework", "carousel", "gallery"], 7 | "dependencies": { 8 | }, 9 | "scripts": [ 10 | "dist/js/swiper.js" 11 | ], 12 | "main": "dist/js/swiper.js", 13 | "styles": [ 14 | "dist/css/swiper.css" 15 | ], 16 | "license": ["MIT"] 17 | } 18 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swiper", 3 | "repo": "https://github.com/nolimits4web/Swiper.git", 4 | "description": "Most modern mobile touch slider and framework with hardware accelerated transitions", 5 | "version": "4.2.5", 6 | "keywords": ["swiper", "swipe", "slider", "touch", "ios", "mobile", "cordova", "phonegap", "app", "framework", "carousel", "gallery"], 7 | "dependencies": { 8 | }, 9 | "scripts": [ 10 | "dist/js/swiper.js" 11 | ], 12 | "main": "dist/js/swiper.js", 13 | "styles": [ 14 | "dist/css/swiper.css" 15 | ], 16 | "license": ["MIT"] 17 | } 18 | -------------------------------------------------------------------------------- /adminApi/routes/log/splice.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool, path, fs, log } = require("../../tool/require"); 4 | const { logService } = require("../../service/"); 5 | 6 | router.use('', oauth(3004), async function(req, res, next) { 7 | 8 | let logType = parseInt(tool.getParams(req, 'logType')); 9 | 10 | logService.splice(logType).then((data) => { 11 | res.send(tool.toJson(data, null, 1000)); 12 | }).catch((error) => { 13 | res.send(tool.toJson(null, error, 1002)); 14 | }); 15 | }); 16 | 17 | module.exports = router; 18 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/check-overflow/index.js: -------------------------------------------------------------------------------- 1 | 2 | function checkOverflow() { 3 | const swiper = this; 4 | const wasLocked = swiper.isLocked; 5 | 6 | swiper.isLocked = swiper.snapGrid.length === 1; 7 | swiper.allowSlideNext = !swiper.isLocked; 8 | swiper.allowSlidePrev = !swiper.isLocked; 9 | 10 | // events 11 | if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 12 | 13 | if (wasLocked && wasLocked !== swiper.isLocked) { 14 | swiper.isEnd = false; 15 | swiper.navigation.update(); 16 | } 17 | } 18 | 19 | export default { checkOverflow }; 20 | -------------------------------------------------------------------------------- /h5/src/css/common/footer.less: -------------------------------------------------------------------------------- 1 | body{ 2 | padding-bottom:2.5rem; 3 | } 4 | .footMenu{ 5 | height:2.5rem; 6 | position: fixed; 7 | width:100%; 8 | max-width:750px; 9 | background: @footer-background-color; 10 | z-index: 99; 11 | bottom: 0; 12 | } 13 | .footMenu>a{ 14 | width: 33.3333%; 15 | float: left; 16 | text-align: center; 17 | padding: .4rem 0 .2rem 0; 18 | position: relative; 19 | display: flex; 20 | justify-content: space-between; 21 | flex-direction: column; 22 | height: 2.5rem; 23 | } 24 | 25 | .footMenu>a.act{ 26 | color:@timo-color; 27 | } -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/check-overflow/index.js: -------------------------------------------------------------------------------- 1 | 2 | function checkOverflow() { 3 | const swiper = this; 4 | const wasLocked = swiper.isLocked; 5 | 6 | swiper.isLocked = swiper.snapGrid.length === 1; 7 | swiper.allowSlideNext = !swiper.isLocked; 8 | swiper.allowSlidePrev = !swiper.isLocked; 9 | 10 | // events 11 | if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 12 | 13 | if (wasLocked && wasLocked !== swiper.isLocked) { 14 | swiper.isEnd = false; 15 | swiper.navigation.update(); 16 | } 17 | } 18 | 19 | export default { checkOverflow }; 20 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/scripts/build-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | components: [ 3 | 'virtual', 4 | 'keyboard', 5 | 'mousewheel', 6 | 'navigation', 7 | 'pagination', 8 | 'scrollbar', 9 | 'parallax', 10 | 'zoom', 11 | 'lazy', 12 | 'controller', 13 | 'a11y', 14 | 'history', 15 | 'hash-navigation', 16 | 'autoplay', 17 | 'effect-fade', 18 | 'effect-cube', 19 | 'effect-flip', 20 | 'effect-coverflow', 21 | ], 22 | target: 'universal', 23 | themeColor: '#007aff', 24 | colors: { 25 | white: '#ffffff', 26 | black: '#000000', 27 | }, 28 | }; 29 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/scripts/build-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | components: [ 3 | 'virtual', 4 | 'keyboard', 5 | 'mousewheel', 6 | 'navigation', 7 | 'pagination', 8 | 'scrollbar', 9 | 'parallax', 10 | 'zoom', 11 | 'lazy', 12 | 'controller', 13 | 'a11y', 14 | 'history', 15 | 'hash-navigation', 16 | 'autoplay', 17 | 'effect-fade', 18 | 'effect-cube', 19 | 'effect-flip', 20 | 'effect-coverflow', 21 | ], 22 | target: 'universal', 23 | themeColor: '#007aff', 24 | colors: { 25 | white: '#ffffff', 26 | black: '#000000', 27 | }, 28 | }; 29 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/utils/browser.js: -------------------------------------------------------------------------------- 1 | import { window } from 'ssr-window'; 2 | 3 | const Browser = (function Browser() { 4 | function isSafari() { 5 | const ua = window.navigator.userAgent.toLowerCase(); 6 | return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0); 7 | } 8 | return { 9 | isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g), 10 | isSafari: isSafari(), 11 | isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent), 12 | }; 13 | }()); 14 | 15 | export default Browser; 16 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/utils/browser.js: -------------------------------------------------------------------------------- 1 | import { window } from 'ssr-window'; 2 | 3 | const Browser = (function Browser() { 4 | function isSafari() { 5 | const ua = window.navigator.userAgent.toLowerCase(); 6 | return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0); 7 | } 8 | return { 9 | isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g), 10 | isSafari: isSafari(), 11 | isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent), 12 | }; 13 | }()); 14 | 15 | export default Browser; 16 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/scripts/banner.js: -------------------------------------------------------------------------------- 1 | const pkg = require('../package.json'); 2 | 3 | const date = { 4 | day: new Date().getDate(), 5 | month: ('January February March April May June July August September October November December').split(' ')[new Date().getMonth()], 6 | year: new Date().getFullYear(), 7 | }; 8 | 9 | module.exports = `${` 10 | /** 11 | * Swiper ${pkg.version} 12 | * ${pkg.description} 13 | * ${pkg.homepage} 14 | * 15 | * Copyright 2014-${date.year} ${pkg.author} 16 | * 17 | * Released under the ${pkg.license} License 18 | * 19 | * Released on: ${date.month} ${date.day}, ${date.year} 20 | */ 21 | `.trim()}\n`; 22 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/scripts/banner.js: -------------------------------------------------------------------------------- 1 | const pkg = require('../package.json'); 2 | 3 | const date = { 4 | day: new Date().getDate(), 5 | month: ('January February March April May June July August September October November December').split(' ')[new Date().getMonth()], 6 | year: new Date().getFullYear(), 7 | }; 8 | 9 | module.exports = `${` 10 | /** 11 | * Swiper ${pkg.version} 12 | * ${pkg.description} 13 | * ${pkg.homepage} 14 | * 15 | * Copyright 2014-${date.year} ${pkg.author} 16 | * 17 | * Released under the ${pkg.license} License 18 | * 19 | * Released on: ${date.month} ${date.day}, ${date.year} 20 | */ 21 | `.trim()}\n`; 22 | -------------------------------------------------------------------------------- /h5/lib/rev-path/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const modifyFilename = require('modify-filename'); 3 | 4 | module.exports = (pth, hash) => { 5 | if (!(pth && hash)) { 6 | throw new Error('`path` and `hash` required'); 7 | } 8 | 9 | // return modifyFilename(pth, (filename, ext) => `${filename}-${hash}${ext}`); 10 | return modifyFilename(pth, (filename, ext) => `${filename}${ext}`); 11 | }; 12 | 13 | module.exports.revert = (pth, hash) => { 14 | if (!(pth && hash)) { 15 | throw new Error('`path` and `hash` required'); 16 | } 17 | 18 | return modifyFilename(pth, (filename, ext) => filename.replace(new RegExp(`-${hash}$`), '') + ext); 19 | }; 20 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/slide/slideNext.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars: "off" */ 2 | export default function (speed = this.params.speed, runCallbacks = true, internal) { 3 | const swiper = this; 4 | const { params, animating } = swiper; 5 | if (params.loop) { 6 | if (animating) return false; 7 | swiper.loopFix(); 8 | // eslint-disable-next-line 9 | swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 10 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); 11 | } 12 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); 13 | } 14 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/slide/slideNext.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars: "off" */ 2 | export default function (speed = this.params.speed, runCallbacks = true, internal) { 3 | const swiper = this; 4 | const { params, animating } = swiper; 5 | if (params.loop) { 6 | if (animating) return false; 7 | swiper.loopFix(); 8 | // eslint-disable-next-line 9 | swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 10 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); 11 | } 12 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); 13 | } 14 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/breakpoints/getBreakpoint.js: -------------------------------------------------------------------------------- 1 | import { window } from 'ssr-window'; 2 | 3 | export default function (breakpoints) { 4 | // Get breakpoint for window width 5 | if (!breakpoints) return undefined; 6 | let breakpoint = false; 7 | const points = []; 8 | Object.keys(breakpoints).forEach((point) => { 9 | points.push(point); 10 | }); 11 | points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10)); 12 | for (let i = 0; i < points.length; i += 1) { 13 | const point = points[i]; 14 | if (point >= window.innerWidth && !breakpoint) { 15 | breakpoint = point; 16 | } 17 | } 18 | return breakpoint || 'max'; 19 | } 20 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/breakpoints/getBreakpoint.js: -------------------------------------------------------------------------------- 1 | import { window } from 'ssr-window'; 2 | 3 | export default function (breakpoints) { 4 | // Get breakpoint for window width 5 | if (!breakpoints) return undefined; 6 | let breakpoint = false; 7 | const points = []; 8 | Object.keys(breakpoints).forEach((point) => { 9 | points.push(point); 10 | }); 11 | points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10)); 12 | for (let i = 0; i < points.length; i += 1) { 13 | const point = points[i]; 14 | if (point >= window.innerWidth && !breakpoint) { 15 | breakpoint = point; 16 | } 17 | } 18 | return breakpoint || 'max'; 19 | } 20 | -------------------------------------------------------------------------------- /iview-admin-dev/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "standard", 3 | "root": true, 4 | "parserOptions": { 5 | "ecmaVersion": 6, 6 | "sourceType": "module" 7 | }, 8 | "env": { 9 | "browser": true, 10 | "node": true 11 | }, 12 | "plugins": [ "html", "standard" ], 13 | "rules": { 14 | "indent": ["error", 4, { "SwitchCase": 1 }], 15 | "quotes": ["error", "single"], 16 | "semi": ["error", "always"], 17 | "no-console": ["error"], 18 | "no-empty": 2, 19 | "no-eq-null": 2, 20 | "no-new": 0, 21 | "no-fallthrough": 0, 22 | "no-unreachable": 0 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/manipulation/appendSlide.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function (slides) { 4 | const swiper = this; 5 | const { $wrapperEl, params } = swiper; 6 | if (params.loop) { 7 | swiper.loopDestroy(); 8 | } 9 | if (typeof slides === 'object' && 'length' in slides) { 10 | for (let i = 0; i < slides.length; i += 1) { 11 | if (slides[i]) $wrapperEl.append(slides[i]); 12 | } 13 | } else { 14 | $wrapperEl.append(slides); 15 | } 16 | if (params.loop) { 17 | swiper.loopCreate(); 18 | } 19 | if (!(params.observer && Support.observer)) { 20 | swiper.update(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/manipulation/appendSlide.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function (slides) { 4 | const swiper = this; 5 | const { $wrapperEl, params } = swiper; 6 | if (params.loop) { 7 | swiper.loopDestroy(); 8 | } 9 | if (typeof slides === 'object' && 'length' in slides) { 10 | for (let i = 0; i < slides.length; i += 1) { 11 | if (slides[i]) $wrapperEl.append(slides[i]); 12 | } 13 | } else { 14 | $wrapperEl.append(slides); 15 | } 16 | if (params.loop) { 17 | swiper.loopCreate(); 18 | } 19 | if (!(params.observer && Support.observer)) { 20 | swiper.update(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /common/prototype/arrayPrototype.js: -------------------------------------------------------------------------------- 1 | Array.prototype.insert = function(start, value) { 2 | this.splice(start, 0, value); 3 | return this; 4 | } 5 | 6 | Array.prototype.remove = function(value) { 7 | let index = this.indexOf(value); 8 | if(index != -1) { 9 | this.splice(index,1); 10 | } 11 | return this; 12 | } 13 | Array.prototype.removeArr = function(arr) { 14 | let i = 0, length = arr.length; 15 | let thisLength = this.length; 16 | for(i; i 2 |
3 | 4 |
5 | 6 | 7 | 25 | 26 | 38 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: 'airbnb-base', 3 | plugins: [ 4 | 'import' 5 | ], 6 | rules: { 7 | 'max-len': ['error', 1000, 2, { 8 | ignoreUrls: true, 9 | ignoreComments: false, 10 | ignoreRegExpLiterals: true, 11 | ignoreStrings: true, 12 | ignoreTemplateLiterals: true, 13 | }], 14 | 'comma-dangle': ['error', { 15 | arrays: 'always-multiline', 16 | objects: 'always-multiline', 17 | imports: 'always-multiline', 18 | exports: 'always-multiline', 19 | functions: 'never', 20 | }], 21 | 'prefer-destructuring': ['off'], 22 | }, 23 | globals: { 24 | 'window': true, 25 | 'document': true, 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /h5/dist/css/pages/book/search.css: -------------------------------------------------------------------------------- 1 | body{padding-bottom:0}.search-list{text-align:center;width:100%;height:7rem;overflow:hidden;padding:.5rem .25rem;border-bottom:1px dashed #896461;display:block}.search-list>.search-img-box{display:table-cell;width:5.8rem;height:6rem;line-height:6rem;vertical-align:middle;float:left}.search-list>.search-img-box>img{max-width:100%;max-height:100%;vertical-align:middle}.search-list>.search-info-box{text-align:left;line-height:1rem;height:6rem;overflow:hidden}.search-list>.search-info-box>span{display:block}.search-list>.search-info-box>div.description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.search-list>.search-info-box>div.description>span{float:left}.no-more{text-align:center;line-height:2rem} -------------------------------------------------------------------------------- /adminApi/routes/ip/startReptile.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool, db, log } = require("../../tool/require"); 4 | let {ipReptileService} = require("../../service/"); 5 | /* 6 | * ip列表 7 | * page 页数 8 | * limit 一页几条 9 | * */ 10 | router.use('', oauth(2004), async function(req, res, next) { 11 | 12 | let startPage = tool.getParams(req, 'startPage') || 1; 13 | let endPage = tool.getParams(req, 'endPage') || 3; 14 | 15 | ipReptileService.startReptile(startPage, endPage).then((msg) => { 16 | res.send(tool.toJson(null, msg, 1000)); 17 | }).catch((err) => { 18 | res.send(tool.toJson(null, err, 1002)); 19 | }); 20 | }); 21 | 22 | module.exports = router; 23 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/main-components/breadcrumb-nav.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 28 | 29 | -------------------------------------------------------------------------------- /adminApi/routes/reptile/restartCatalog.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const {oauth, tool, db, log, fs, path} = require("../../tool/require"); 4 | const {reptileService} = require("../../service/"); 5 | /* 6 | * 再次爬取 7 | * 也就是爬取错误列表 8 | * */ 9 | router.use('', oauth(4007), async function (req, res, next) { 10 | let errorId = parseInt(tool.getParams(req, 'errorId')); 11 | let tiType = tool.getParams(req, 'tiType') == 1 ? true:false; //当tiType为1时,是替代 12 | reptileService.restartCatalog(errorId,tiType).then((msg) => { 13 | res.send(tool.toJson(msg, null, 1000)); 14 | }).catch((err) => { 15 | res.send(tool.toJson(null, err, 1002)); 16 | }); 17 | }); 18 | 19 | module.exports = router; 20 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/swiper.js: -------------------------------------------------------------------------------- 1 | // Swiper Class 2 | import Swiper from './components/core/core-class'; 3 | 4 | // Core Modules 5 | import Device from './modules/device/device'; 6 | import Support from './modules/support/support'; 7 | import Browser from './modules/browser/browser'; 8 | import Resize from './modules/resize/resize'; 9 | import Observer from './modules/observer/observer'; 10 | 11 | //IMPORT_COMPONENTS 12 | 13 | const components = [ 14 | Device, 15 | Support, 16 | Browser, 17 | Resize, 18 | Observer, 19 | //INSTALL_COMPONENTS 20 | ]; 21 | 22 | if (typeof Swiper.use === 'undefined') { 23 | Swiper.use = Swiper.Class.use; 24 | Swiper.installModule = Swiper.Class.installModule; 25 | } 26 | 27 | Swiper.use(components); 28 | 29 | //EXPORT 30 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/swiper.js: -------------------------------------------------------------------------------- 1 | // Swiper Class 2 | import Swiper from './components/core/core-class'; 3 | 4 | // Core Modules 5 | import Device from './modules/device/device'; 6 | import Support from './modules/support/support'; 7 | import Browser from './modules/browser/browser'; 8 | import Resize from './modules/resize/resize'; 9 | import Observer from './modules/observer/observer'; 10 | 11 | //IMPORT_COMPONENTS 12 | 13 | const components = [ 14 | Device, 15 | Support, 16 | Browser, 17 | Resize, 18 | Observer, 19 | //INSTALL_COMPONENTS 20 | ]; 21 | 22 | if (typeof Swiper.use === 'undefined') { 23 | Swiper.use = Swiper.Class.use; 24 | Swiper.installModule = Swiper.Class.installModule; 25 | } 26 | 27 | Swiper.use(components); 28 | 29 | //EXPORT 30 | -------------------------------------------------------------------------------- /h5/views/common/footer.pug: -------------------------------------------------------------------------------- 1 | mixin footer(myUrl) 2 | footer(class="footMenu clearfix") 3 | a(href="/book/" class=myUrl=="/book/index" ? "act" : "" style="width:50%;") 4 | div(class="footMenu-top") 5 | icon(class="iconfont icon-books") 6 | div(class="footMenu-bottom") 书架 7 | a(href="/home/" class=myUrl=="/home/index" ? "act" : "" style="width:50%;") 8 | div(class="footMenu-top") 9 | icon(class="iconfont icon-shouye") 10 | div(class="footMenu-bottom") 书城 11 | //-a(href="/users/" class=myUrl=="/users/index" ? "act" : "") 12 | //- div(class="footMenu-top") 13 | //- icon(class="iconfont icon-geren") 14 | //- div(class="footMenu-bottom") 个人 -------------------------------------------------------------------------------- /adminApi/routes/reptile/oneKeyRestartCatalog.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const {oauth, tool, db, log, fs, path} = require("../../tool/require"); 4 | const {reptileService} = require("../../service/"); 5 | /* 6 | * 一键爬取错误列表 7 | * 也就是爬取错误列表 8 | * */ 9 | router.use('', oauth(4008), async function (req, res, next) { 10 | let bookName = tool.getParams(req, 'bookName'); 11 | let tiType = tool.getParams(req, 'tiType') == 1 ? true:false; //当tiType为1时,是替代 12 | reptileService.oneKeyRestartCatalog(bookName,tiType).then((msg) => { 13 | res.send(tool.toJson(msg, null, 1000)); 14 | }).catch((err) => { 15 | res.send(tool.toJson(null, err, 1002)); 16 | }); 17 | }); 18 | 19 | module.exports = router; 20 | -------------------------------------------------------------------------------- /h5/dist-views/common/footer.pug: -------------------------------------------------------------------------------- 1 | mixin footer(myUrl) 2 | footer(class="footMenu clearfix") 3 | a(href="/book/" class=myUrl=="/book/index" ? "act" : "" style="width:50%;") 4 | div(class="footMenu-top") 5 | icon(class="iconfont icon-books") 6 | div(class="footMenu-bottom") 书架 7 | a(href="/home/" class=myUrl=="/home/index" ? "act" : "" style="width:50%;") 8 | div(class="footMenu-top") 9 | icon(class="iconfont icon-shouye") 10 | div(class="footMenu-bottom") 书城 11 | //-a(href="/users/" class=myUrl=="/users/index" ? "act" : "") 12 | //- div(class="footMenu-top") 13 | //- icon(class="iconfont icon-geren") 14 | //- div(class="footMenu-bottom") 个人 -------------------------------------------------------------------------------- /iview-admin-dev/src/views/access/access.less: -------------------------------------------------------------------------------- 1 | .access{ 2 | &-user-con{ 3 | height: 200px; 4 | } 5 | &-current-user-con{ 6 | text-align: center; 7 | padding-top: 10px; 8 | img{ 9 | display: block; 10 | width: 100px; 11 | height: 100px; 12 | border: 2px solid #dddde2; 13 | border-radius: 50%; 14 | margin: 0px auto 10px; 15 | } 16 | p{ 17 | display: block; 18 | padding: 20px 0 0; 19 | b{ 20 | margin: 0 10px; 21 | color: #2d8cf0; 22 | } 23 | } 24 | } 25 | &-change-access-con{ 26 | &-row{ 27 | height: 200px; 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /h5/lib/rev-path/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rev-path", 3 | "version": "2.0.0", 4 | "description": "Create a revved file path", 5 | "license": "MIT", 6 | "repository": "sindresorhus/rev-path", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=4" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava" 17 | }, 18 | "files": [ 19 | "index.js" 20 | ], 21 | "keywords": [ 22 | "rev", 23 | "revving", 24 | "web", 25 | "file", 26 | "name", 27 | "filename", 28 | "path", 29 | "cache", 30 | "caching" 31 | ], 32 | "dependencies": { 33 | "modify-filename": "^1.0.0" 34 | }, 35 | "devDependencies": { 36 | "ava": "*", 37 | "xo": "*" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /h5/views/pages/home/ejs.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | EJS模板 9 | 10 | 11 | 12 |

EJS模板引擎

13 |

这是很简单的一个小流程就不在一一的标注流程了,注释的很清楚了

14 |

这里是姓名: <%= name %>

15 |

这里是性别: <%= sex %>

16 | 17 | 18 |

这里是性别: <%= content %>

19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /h5/dist-views/pages/home/ejs.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | EJS模板 9 | 10 | 11 | 12 |

EJS模板引擎

13 |

这是很简单的一个小流程就不在一一的标注流程了,注释的很清楚了

14 |

这里是姓名: <%= name %>

15 |

这里是性别: <%= sex %>

16 | 17 | 18 |

这里是性别: <%= content %>

19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/images/loadImage.js: -------------------------------------------------------------------------------- 1 | import { window } from 'ssr-window'; 2 | 3 | export default function (imageEl, src, srcset, sizes, checkForComplete, callback) { 4 | let image; 5 | function onReady() { 6 | if (callback) callback(); 7 | } 8 | if (!imageEl.complete || !checkForComplete) { 9 | if (src) { 10 | image = new window.Image(); 11 | image.onload = onReady; 12 | image.onerror = onReady; 13 | if (sizes) { 14 | image.sizes = sizes; 15 | } 16 | if (srcset) { 17 | image.srcset = srcset; 18 | } 19 | if (src) { 20 | image.src = src; 21 | } 22 | } else { 23 | onReady(); 24 | } 25 | } else { 26 | // image already loaded... 27 | onReady(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/images/loadImage.js: -------------------------------------------------------------------------------- 1 | import { window } from 'ssr-window'; 2 | 3 | export default function (imageEl, src, srcset, sizes, checkForComplete, callback) { 4 | let image; 5 | function onReady() { 6 | if (callback) callback(); 7 | } 8 | if (!imageEl.complete || !checkForComplete) { 9 | if (src) { 10 | image = new window.Image(); 11 | image.onload = onReady; 12 | image.onerror = onReady; 13 | if (sizes) { 14 | image.sizes = sizes; 15 | } 16 | if (srcset) { 17 | image.srcset = srcset; 18 | } 19 | if (src) { 20 | image.src = src; 21 | } 22 | } else { 23 | onReady(); 24 | } 25 | } else { 26 | // image already loaded... 27 | onReady(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/update/index.js: -------------------------------------------------------------------------------- 1 | import updateSize from './updateSize'; 2 | import updateSlides from './updateSlides'; 3 | import updateAutoHeight from './updateAutoHeight'; 4 | import updateSlidesOffset from './updateSlidesOffset'; 5 | import updateSlidesProgress from './updateSlidesProgress'; 6 | import updateProgress from './updateProgress'; 7 | import updateSlidesClasses from './updateSlidesClasses'; 8 | import updateActiveIndex from './updateActiveIndex'; 9 | import updateClickedSlide from './updateClickedSlide'; 10 | 11 | export default { 12 | updateSize, 13 | updateSlides, 14 | updateAutoHeight, 15 | updateSlidesOffset, 16 | updateSlidesProgress, 17 | updateProgress, 18 | updateSlidesClasses, 19 | updateActiveIndex, 20 | updateClickedSlide, 21 | }; 22 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/update/index.js: -------------------------------------------------------------------------------- 1 | import updateSize from './updateSize'; 2 | import updateSlides from './updateSlides'; 3 | import updateAutoHeight from './updateAutoHeight'; 4 | import updateSlidesOffset from './updateSlidesOffset'; 5 | import updateSlidesProgress from './updateSlidesProgress'; 6 | import updateProgress from './updateProgress'; 7 | import updateSlidesClasses from './updateSlidesClasses'; 8 | import updateActiveIndex from './updateActiveIndex'; 9 | import updateClickedSlide from './updateClickedSlide'; 10 | 11 | export default { 12 | updateSize, 13 | updateSlides, 14 | updateAutoHeight, 15 | updateSlidesOffset, 16 | updateSlidesProgress, 17 | updateProgress, 18 | updateSlidesClasses, 19 | updateActiveIndex, 20 | updateClickedSlide, 21 | }; 22 | -------------------------------------------------------------------------------- /common/prototype/datePrototype.js: -------------------------------------------------------------------------------- 1 | Date.prototype.Format = function(fmt) { //author: zouqj 2 | fmt = fmt ? fmt:'yyyy-MM-dd hh:mm:ss'; 3 | 4 | var o = { 5 | "M+": this.getMonth() + 1, //月份 6 | "d+": this.getDate(), //日 7 | "h+": this.getHours(), //小时 8 | "m+": this.getMinutes(), //分 9 | "s+": this.getSeconds(), //秒 10 | "q+": Math.floor((this.getMonth() + 3) / 3), //季度 11 | "S": this.getMilliseconds() //毫秒 12 | }; 13 | if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); 14 | for (var k in o) 15 | if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); 16 | return fmt; 17 | }; -------------------------------------------------------------------------------- /common/tool/require.js: -------------------------------------------------------------------------------- 1 | let fs = require("fs"); 2 | let rp = require("request-promise"); 3 | let request = require("request"); 4 | let timoRp = require("./timoRp.js"); 5 | let cheerio = require("cheerio"); 6 | let iconv = require("iconv-lite"); 7 | let morgan = require("morgan"); 8 | let path = require("path"); 9 | let db = require("./mysql.js"); 10 | let tool = require("./tool.js"); 11 | let oauth = require("./oauth.js"); 12 | let log = require('tracer').colorConsole(); 13 | let async = require("async"); 14 | let xlsx = require('node-xlsx'); 15 | 16 | module.exports = { 17 | fs, 18 | rp, 19 | request, 20 | timoRp, 21 | cheerio, 22 | iconv, 23 | morgan, 24 | path, 25 | db, 26 | tool, 27 | oauth, 28 | log, 29 | async, 30 | xlsx 31 | // wss 32 | }; -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/slide/slideToClosest.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars: "off" */ 2 | export default function (speed = this.params.speed, runCallbacks = true, internal) { 3 | const swiper = this; 4 | let index = swiper.activeIndex; 5 | const snapIndex = Math.floor(index / swiper.params.slidesPerGroup); 6 | 7 | if (snapIndex < swiper.snapGrid.length - 1) { 8 | const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 9 | 10 | const currentSnap = swiper.snapGrid[snapIndex]; 11 | const nextSnap = swiper.snapGrid[snapIndex + 1]; 12 | 13 | if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) { 14 | index = swiper.params.slidesPerGroup; 15 | } 16 | } 17 | 18 | return swiper.slideTo(index, speed, runCallbacks, internal); 19 | } 20 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/slide/slideToClosest.js: -------------------------------------------------------------------------------- 1 | /* eslint no-unused-vars: "off" */ 2 | export default function (speed = this.params.speed, runCallbacks = true, internal) { 3 | const swiper = this; 4 | let index = swiper.activeIndex; 5 | const snapIndex = Math.floor(index / swiper.params.slidesPerGroup); 6 | 7 | if (snapIndex < swiper.snapGrid.length - 1) { 8 | const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 9 | 10 | const currentSnap = swiper.snapGrid[snapIndex]; 11 | const nextSnap = swiper.snapGrid[snapIndex + 1]; 12 | 13 | if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) { 14 | index = swiper.params.slidesPerGroup; 15 | } 16 | } 17 | 18 | return swiper.slideTo(index, speed, runCallbacks, internal); 19 | } 20 | -------------------------------------------------------------------------------- /adminApi/routes/log/delete.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool, path, fs, log } = require("../../tool/require"); 4 | const { logService } = require("../../service/"); 5 | 6 | router.use('', oauth(3002), async function(req, res, next) { 7 | 8 | let logType = parseInt(tool.getParams(req, 'logType')); 9 | let nameArr = tool.getParams(req, 'nameArr'); 10 | 11 | if(nameArr.indexOf('../') != -1) { 12 | res.send(tool.toJson(null, 'nameArr参数不对', 1002)); 13 | return; 14 | } 15 | 16 | logService.dele(logType, nameArr).then((data) => { 17 | res.send(tool.toJson(data, null, 1000)); 18 | }).catch((err) => { 19 | res.send(tool.toJson(null, err, 1002)); 20 | }); 21 | }); 22 | 23 | module.exports = router; 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "timotaoshu", 3 | "version": "2.0.1", 4 | "description": "mysql\r redis", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "dependencies": { 10 | "async": "^2.6.1", 11 | "cheerio": "^1.0.0-rc.2", 12 | "compression": "^1.7.3", 13 | "iconv-lite": "^0.4.19", 14 | "jwt-simple": "^0.5.1", 15 | "morgan": "~1.9.0", 16 | "multer": "^1.3.1", 17 | "mysql": "^2.15.0", 18 | "node-xlsx": "^0.12.1", 19 | "redis": "^2.8.0", 20 | "request": "^2.85.0", 21 | "request-promise": "^4.2.2", 22 | "tracer": "^0.8.15" 23 | }, 24 | "devDependencies": { 25 | "babel-cli": "^6.26.0", 26 | "babel-preset-es2015": "^6.24.1", 27 | "babel-preset-es2017": "^6.24.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /adminApi/routes/permission/staffList.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool,db } = require("../../tool/require"); 4 | 5 | router.use('', oauth(6101), async function(req, res, next) { 6 | let page = tool.getParams(req, 'page') || 1; 7 | let limit = tool.getParams(req, 'limit') || 10; 8 | 9 | let userList = await db.query(`select users.id, users.roleId, users.name, users.mobile, role.roleName from users INNER JOIN role on users.roleId = role.id limit ${(page-1) * limit},${limit}`); 10 | let count = (await db.query(`select count(*) from users`))[0]["count(*)"]; 11 | let userData = { 12 | count: count, 13 | userList: userList 14 | } 15 | res.send(tool.toJson(userData, '', 1000)); 16 | }); 17 | 18 | module.exports = router; 19 | -------------------------------------------------------------------------------- /adminApi/routes/log/list.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const {oauth, tool, db, log, fs, path} = require("../../tool/require"); 4 | const { logService } = require("../../service/"); 5 | 6 | /* 7 | * page 页数 8 | * limit 一页几条 9 | * 10 | * */ 11 | router.use('', oauth(3003), async function (req, res, next) { 12 | 13 | let logType = parseInt(tool.getParams(req, 'logType')) || 1; 14 | let page = parseInt(tool.getParams(req, 'page')) || 1; 15 | let limit = parseInt(tool.getParams(req, 'limit')) || 20; 16 | 17 | 18 | logService.list(logType,page,limit).then((logList) => { 19 | res.send(tool.toJson(logList, null, 1000)); 20 | }).catch((err) => { 21 | res.send(tool.toJson(null, err, 1002)); 22 | }); 23 | }); 24 | 25 | module.exports = router; 26 | -------------------------------------------------------------------------------- /h5/src/js/common/rem.js: -------------------------------------------------------------------------------- 1 | ;(function (doc, win) { 2 | var docEl = doc.documentElement, 3 | resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', 4 | recalc = function () { 5 | var clientWidth = docEl.clientWidth; 6 | if (typeof(clientWidth) == 'number' && clientWidth <= 750) { //手机端自适应, 基础20 7 | docEl.style.fontSize = 20 * (clientWidth / 375) + 'px'; 8 | } else if (typeof(clientWidth) == 'number' && clientWidth > 750) { //pc端基础为40/2 20 手机端的适配 9 | docEl.style.fontSize = '40' + 'px'; 10 | } 11 | }; 12 | if (!doc.addEventListener) return; 13 | win.addEventListener(resizeEvt, recalc, false); 14 | doc.addEventListener('DOMContentLoaded', recalc, false); 15 | recalc(); 16 | })(document, window); -------------------------------------------------------------------------------- /iview-admin-dev/src/views/login.less: -------------------------------------------------------------------------------- 1 | .login{ 2 | width: 100%; 3 | height: 100%; 4 | background-image: url('https://file.iviewui.com/iview-admin/login_bg.jpg'); 5 | background-size: cover; 6 | background-position: center; 7 | position: relative; 8 | &-con{ 9 | position: absolute; 10 | right: 160px; 11 | top: 50%; 12 | transform: translateY(-60%); 13 | width: 300px; 14 | &-header{ 15 | font-size: 16px; 16 | font-weight: 300; 17 | text-align: center; 18 | padding: 30px 0; 19 | } 20 | .form-con{ 21 | padding: 10px 0 0; 22 | } 23 | .login-tip{ 24 | font-size: 10px; 25 | text-align: center; 26 | color: #c3c3c3; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /common/tool/queue.js: -------------------------------------------------------------------------------- 1 | let async = require("async"); 2 | 3 | let queue = async.queue(function (obj, cb) { 4 | obj.pro.apply(this, obj.params).then(async (data) => { 5 | obj.result && await obj.result.apply(this, data); 6 | await cb(); 7 | }).catch(async (err) => { 8 | console.log("queue报错啦"); 9 | console.log(err); 10 | obj.error && await obj.error(err); 11 | await cb(err); 12 | }); 13 | }, 150); 14 | 15 | queue.empty = function() { 16 | // console.log("当最后一个任务交给worker执行时,会调用empty函数"); 17 | // console.log("开始最后一个ip检查"); 18 | } 19 | queue.saturated = function() { 20 | // console.log("worker数量将用完时,会调用saturated函数"); 21 | 22 | } 23 | queue.drain = function() { 24 | // console.log("哭泣") 25 | // console.log("当所有任务都执行完时,会调用drain函数"); 26 | } 27 | 28 | 29 | module.exports = queue; -------------------------------------------------------------------------------- /iview-admin-dev/src/locale/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Locales from './locale'; 3 | import zhLocale from 'iview/src/locale/lang/zh-CN'; 4 | import enLocale from 'iview/src/locale/lang/en-US'; 5 | import zhTLocale from 'iview/src/locale/lang/zh-TW'; 6 | 7 | // 自动设置语言 8 | const navLang = navigator.language; 9 | const localLang = (navLang === 'zh-CN' || navLang === 'en-US') ? navLang : false; 10 | const lang = window.localStorage.lang || localLang || 'zh-CN'; 11 | 12 | Vue.config.lang = lang; 13 | 14 | // 多语言配置 15 | const locales = Locales; 16 | const mergeZH = Object.assign(zhLocale, locales['zh-CN']); 17 | const mergeEN = Object.assign(enLocale, locales['en-US']); 18 | const mergeTW = Object.assign(zhTLocale, locales['zh-TW']); 19 | Vue.locale('zh-CN', mergeZH); 20 | Vue.locale('en-US', mergeEN); 21 | Vue.locale('zh-TW', mergeTW); 22 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/manipulation/prependSlide.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function (slides) { 4 | const swiper = this; 5 | const { params, $wrapperEl, activeIndex } = swiper; 6 | 7 | if (params.loop) { 8 | swiper.loopDestroy(); 9 | } 10 | let newActiveIndex = activeIndex + 1; 11 | if (typeof slides === 'object' && 'length' in slides) { 12 | for (let i = 0; i < slides.length; i += 1) { 13 | if (slides[i]) $wrapperEl.prepend(slides[i]); 14 | } 15 | newActiveIndex = activeIndex + slides.length; 16 | } else { 17 | $wrapperEl.prepend(slides); 18 | } 19 | if (params.loop) { 20 | swiper.loopCreate(); 21 | } 22 | if (!(params.observer && Support.observer)) { 23 | swiper.update(); 24 | } 25 | swiper.slideTo(newActiveIndex, 0, false); 26 | } 27 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/manipulation/prependSlide.js: -------------------------------------------------------------------------------- 1 | import Support from '../../../utils/support'; 2 | 3 | export default function (slides) { 4 | const swiper = this; 5 | const { params, $wrapperEl, activeIndex } = swiper; 6 | 7 | if (params.loop) { 8 | swiper.loopDestroy(); 9 | } 10 | let newActiveIndex = activeIndex + 1; 11 | if (typeof slides === 'object' && 'length' in slides) { 12 | for (let i = 0; i < slides.length; i += 1) { 13 | if (slides[i]) $wrapperEl.prepend(slides[i]); 14 | } 15 | newActiveIndex = activeIndex + slides.length; 16 | } else { 17 | $wrapperEl.prepend(slides); 18 | } 19 | if (params.loop) { 20 | swiper.loopCreate(); 21 | } 22 | if (!(params.observer && Support.observer)) { 23 | swiper.update(); 24 | } 25 | swiper.slideTo(newActiveIndex, 0, false); 26 | } 27 | -------------------------------------------------------------------------------- /common/tool/ipQueue.js: -------------------------------------------------------------------------------- 1 | let async = require("async"); 2 | 3 | let ipQueue = async.queue(function (obj, cb) { 4 | obj.pro.apply(this, obj.params).then(async (data) => { 5 | obj.result && await obj.result.apply(this, data); 6 | await cb(); 7 | }).catch(async (err) => { 8 | console.log("ipQueue报错啦"); 9 | console.log(err); 10 | obj.error && await obj.error(err); 11 | await cb(err); 12 | }); 13 | }, 500); 14 | 15 | ipQueue.empty = function() { 16 | // console.log("当最后一个任务交给worker执行时,会调用empty函数"); 17 | // console.log("开始最后一个ip检查"); 18 | } 19 | ipQueue.saturated = function() { 20 | // console.log("worker数量将用完时,会调用saturated函数"); 21 | 22 | } 23 | ipQueue.drain = function() { 24 | // console.log("哭泣") 25 | // console.log("当所有任务都执行完时,会调用drain函数"); 26 | } 27 | 28 | 29 | module.exports = ipQueue; -------------------------------------------------------------------------------- /h5/src/css/common/search.less: -------------------------------------------------------------------------------- 1 | /*搜索框样式*/ 2 | 3 | .book-search{ 4 | text-align: center; 5 | padding: 0.4rem 0; 6 | color:#333; 7 | background: @catalog-background-color; 8 | &>input.book-search-input{ 9 | background: #FFF; 10 | color: #000; 11 | padding: .2rem .3rem; 12 | margin: 0 .5rem; 13 | border: 1px solid @timo-color; 14 | width: 6rem; 15 | border-radius:.2rem; 16 | &:focus{ 17 | box-shadow:0 0 5px @timo-color; 18 | } 19 | } 20 | &>a.book-searct-a{ 21 | display: inline-block; 22 | line-height: 1; 23 | padding: .2rem .3rem; 24 | border-radius: .2rem; 25 | border: 1px solid @timo-color; 26 | background: @timo-color; 27 | color: #fff; 28 | margin-right: .5rem; 29 | vertical-align: middle; 30 | } 31 | } -------------------------------------------------------------------------------- /iview-admin-dev/src/views/main-components/message-tip.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 31 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/scrollbar/scrollbar.less: -------------------------------------------------------------------------------- 1 | /* Scrollbar */ 2 | .swiper-scrollbar { 3 | border-radius: 10px; 4 | position: relative; 5 | -ms-touch-action: none; 6 | background: rgba(0,0,0,0.1); 7 | .swiper-container-horizontal > & { 8 | position: absolute; 9 | left: 1%; 10 | bottom: 3px; 11 | z-index: 50; 12 | height: 5px; 13 | width: 98%; 14 | } 15 | .swiper-container-vertical > & { 16 | position: absolute; 17 | right: 3px; 18 | top: 1%; 19 | z-index: 50; 20 | width: 5px; 21 | height: 98%; 22 | } 23 | } 24 | .swiper-scrollbar-drag { 25 | height: 100%; 26 | width: 100%; 27 | position: relative; 28 | background: rgba(0,0,0,0.5); 29 | border-radius: 10px; 30 | left: 0; 31 | top: 0; 32 | } 33 | .swiper-scrollbar-cursor-drag { 34 | cursor: move; 35 | } 36 | .swiper-scrollbar-lock { 37 | display: none; 38 | } -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/scrollbar/scrollbar.less: -------------------------------------------------------------------------------- 1 | /* Scrollbar */ 2 | .swiper-scrollbar { 3 | border-radius: 10px; 4 | position: relative; 5 | -ms-touch-action: none; 6 | background: rgba(0,0,0,0.1); 7 | .swiper-container-horizontal > & { 8 | position: absolute; 9 | left: 1%; 10 | bottom: 3px; 11 | z-index: 50; 12 | height: 5px; 13 | width: 98%; 14 | } 15 | .swiper-container-vertical > & { 16 | position: absolute; 17 | right: 3px; 18 | top: 1%; 19 | z-index: 50; 20 | width: 5px; 21 | height: 98%; 22 | } 23 | } 24 | .swiper-scrollbar-drag { 25 | height: 100%; 26 | width: 100%; 27 | position: relative; 28 | background: rgba(0,0,0,0.5); 29 | border-radius: 10px; 30 | left: 0; 31 | top: 0; 32 | } 33 | .swiper-scrollbar-cursor-drag { 34 | cursor: move; 35 | } 36 | .swiper-scrollbar-lock { 37 | display: none; 38 | } -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/transition/transitionEnd.js: -------------------------------------------------------------------------------- 1 | export default function (runCallbacks = true, direction) { 2 | const swiper = this; 3 | const { activeIndex, previousIndex } = swiper; 4 | swiper.animating = false; 5 | swiper.setTransition(0); 6 | 7 | let dir = direction; 8 | if (!dir) { 9 | if (activeIndex > previousIndex) dir = 'next'; 10 | else if (activeIndex < previousIndex) dir = 'prev'; 11 | else dir = 'reset'; 12 | } 13 | 14 | swiper.emit('transitionEnd'); 15 | 16 | if (runCallbacks && activeIndex !== previousIndex) { 17 | if (dir === 'reset') { 18 | swiper.emit('slideResetTransitionEnd'); 19 | return; 20 | } 21 | swiper.emit('slideChangeTransitionEnd'); 22 | if (dir === 'next') { 23 | swiper.emit('slideNextTransitionEnd'); 24 | } else { 25 | swiper.emit('slidePrevTransitionEnd'); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/transition/transitionEnd.js: -------------------------------------------------------------------------------- 1 | export default function (runCallbacks = true, direction) { 2 | const swiper = this; 3 | const { activeIndex, previousIndex } = swiper; 4 | swiper.animating = false; 5 | swiper.setTransition(0); 6 | 7 | let dir = direction; 8 | if (!dir) { 9 | if (activeIndex > previousIndex) dir = 'next'; 10 | else if (activeIndex < previousIndex) dir = 'prev'; 11 | else dir = 'reset'; 12 | } 13 | 14 | swiper.emit('transitionEnd'); 15 | 16 | if (runCallbacks && activeIndex !== previousIndex) { 17 | if (dir === 'reset') { 18 | swiper.emit('slideResetTransitionEnd'); 19 | return; 20 | } 21 | swiper.emit('slideChangeTransitionEnd'); 22 | if (dir === 'next') { 23 | swiper.emit('slideNextTransitionEnd'); 24 | } else { 25 | swiper.emit('slidePrevTransitionEnd'); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /api文档/timoh5/mo-ban.md: -------------------------------------------------------------------------------- 1 | ### 接口模板(不对外开放,忽视) 2 | 3 | 1、接口地址:/catalogList 4 | 5 | 2、参数 6 | 7 | | 参数名 | 参数类型 | 是否必填 | 备注 | 8 | | :--- | :--- | :--- | :--- | 9 | | | | | | 10 | | | | | | 11 | 12 | 3、接口返回结构 13 | 14 | ```js 15 | data: { 16 | "count": 全部小说类型数量 17 | "bookTypeList": [ 18 | { 19 | "count(bookType)": 多少本这种类型的小说 20 | "bookType":"都市小说" 21 | }, 22 | { 23 | "count(bookType)": 多少本这种类型的小说 24 | "bookType":"言情小说" 25 | } 26 | 27 | ] 28 | } 29 | ``` 30 | 31 | 4、接口返回例子 32 | 33 | ```js 34 | { 35 | "code": 1000, 36 | "data": { 37 | "bookTypeList": [ 38 | { 39 | "count(bookType)": 40, 40 | "bookType": "都市小说" 41 | }, 42 | { 43 | "count(bookType)": 3, 44 | "bookType": "言情小说" 45 | } 46 | ], 47 | "count": 11 48 | }, 49 | "msg": "" 50 | } 51 | ``` 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/file-upload/upload.less: -------------------------------------------------------------------------------- 1 | .admin-upload-list{ 2 | display: inline-block; 3 | width: 60px; 4 | height: 60px; 5 | text-align: center; 6 | line-height: 60px; 7 | border: 1px solid transparent; 8 | border-radius: 4px; 9 | overflow: hidden; 10 | background: #fff; 11 | position: relative; 12 | box-shadow: 0 1px 1px rgba(0,0,0,.2); 13 | margin-right: 4px; 14 | } 15 | .admin-upload-list img{ 16 | width: 100%; 17 | height: 100%; 18 | } 19 | .admin-upload-list-cover{ 20 | display: none; 21 | position: absolute; 22 | top: 0; 23 | bottom: 0; 24 | left: 0; 25 | right: 0; 26 | background: rgba(0,0,0,.6); 27 | } 28 | .admin-upload-list:hover .admin-upload-list-cover{ 29 | display: block; 30 | } 31 | .admin-upload-list-cover i{ 32 | color: #fff; 33 | font-size: 20px; 34 | cursor: pointer; 35 | margin: 0 2px; 36 | } -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/transition/transitionStart.js: -------------------------------------------------------------------------------- 1 | export default function (runCallbacks = true, direction) { 2 | const swiper = this; 3 | const { activeIndex, params, previousIndex } = swiper; 4 | if (params.autoHeight) { 5 | swiper.updateAutoHeight(); 6 | } 7 | 8 | let dir = direction; 9 | if (!dir) { 10 | if (activeIndex > previousIndex) dir = 'next'; 11 | else if (activeIndex < previousIndex) dir = 'prev'; 12 | else dir = 'reset'; 13 | } 14 | 15 | swiper.emit('transitionStart'); 16 | 17 | if (runCallbacks && activeIndex !== previousIndex) { 18 | if (dir === 'reset') { 19 | swiper.emit('slideResetTransitionStart'); 20 | return; 21 | } 22 | swiper.emit('slideChangeTransitionStart'); 23 | if (dir === 'next') { 24 | swiper.emit('slideNextTransitionStart'); 25 | } else { 26 | swiper.emit('slidePrevTransitionStart'); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/transition/transitionStart.js: -------------------------------------------------------------------------------- 1 | export default function (runCallbacks = true, direction) { 2 | const swiper = this; 3 | const { activeIndex, params, previousIndex } = swiper; 4 | if (params.autoHeight) { 5 | swiper.updateAutoHeight(); 6 | } 7 | 8 | let dir = direction; 9 | if (!dir) { 10 | if (activeIndex > previousIndex) dir = 'next'; 11 | else if (activeIndex < previousIndex) dir = 'prev'; 12 | else dir = 'reset'; 13 | } 14 | 15 | swiper.emit('transitionStart'); 16 | 17 | if (runCallbacks && activeIndex !== previousIndex) { 18 | if (dir === 'reset') { 19 | swiper.emit('slideResetTransitionStart'); 20 | return; 21 | } 22 | swiper.emit('slideChangeTransitionStart'); 23 | if (dir === 'next') { 24 | swiper.emit('slideNextTransitionStart'); 25 | } else { 26 | swiper.emit('slidePrevTransitionStart'); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/home/components/wb-img.vue: -------------------------------------------------------------------------------- 1 | 6 | 15 | 38 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/images/preloadImages.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | swiper.imagesToLoad = swiper.$el.find('img'); 4 | function onReady() { 5 | if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; 6 | if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; 7 | if (swiper.imagesLoaded === swiper.imagesToLoad.length) { 8 | if (swiper.params.updateOnImagesReady) swiper.update(); 9 | swiper.emit('imagesReady'); 10 | } 11 | } 12 | for (let i = 0; i < swiper.imagesToLoad.length; i += 1) { 13 | const imageEl = swiper.imagesToLoad[i]; 14 | swiper.loadImage( 15 | imageEl, 16 | imageEl.currentSrc || imageEl.getAttribute('src'), 17 | imageEl.srcset || imageEl.getAttribute('srcset'), 18 | imageEl.sizes || imageEl.getAttribute('sizes'), 19 | true, 20 | onReady 21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/images/preloadImages.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | const swiper = this; 3 | swiper.imagesToLoad = swiper.$el.find('img'); 4 | function onReady() { 5 | if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; 6 | if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; 7 | if (swiper.imagesLoaded === swiper.imagesToLoad.length) { 8 | if (swiper.params.updateOnImagesReady) swiper.update(); 9 | swiper.emit('imagesReady'); 10 | } 11 | } 12 | for (let i = 0; i < swiper.imagesToLoad.length; i += 1) { 13 | const imageEl = swiper.imagesToLoad[i]; 14 | swiper.loadImage( 15 | imageEl, 16 | imageEl.currentSrc || imageEl.getAttribute('src'), 17 | imageEl.srcset || imageEl.getAttribute('srcset'), 18 | imageEl.sizes || imageEl.getAttribute('sizes'), 19 | true, 20 | onReady 21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /adminApi/service/reptile/startReptile.js: -------------------------------------------------------------------------------- 1 | const getBooksFromJson = require("../../reptileTool/getBooksFromJson.js"); 2 | 3 | 4 | 5 | const startReptile = async () => { 6 | return new Promise(async (resolve, reject) => { 7 | 8 | // reject("mysql服务器爆棚,暂不允许爬取"); 9 | // return; 10 | let startTime = new Date().getTime(); 11 | if(global.isReptile) { 12 | if((startTime - (global.reptileLastTime || 0)) > 1000*60*60){ //距离上次爬取超过一个小时 13 | global.isReptile = false; 14 | } 15 | } 16 | if(global.isReptile) { 17 | reject("正在爬取中...") 18 | } else { 19 | global.reptileLastTime = startTime; 20 | global.isReptile = true; 21 | getBooksFromJson(() => { 22 | global.isReptile = false; 23 | }); 24 | resolve("开始爬取"); 25 | } 26 | }); 27 | } 28 | 29 | 30 | 31 | 32 | 33 | module.exports = startReptile; -------------------------------------------------------------------------------- /h5/dist/lib/swiper/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swiper", 3 | "repository": { 4 | "type": "git", 5 | "url": "https://github.com/nolimits4web/Swiper.git" 6 | }, 7 | "description": "Most modern mobile touch slider and framework with hardware accelerated transitions", 8 | "version": "4.2.5", 9 | "author": "Vladimir Kharlampidi", 10 | "homepage": "http://www.idangero.us/swiper/", 11 | "keywords": ["swiper", "swipe", "slider", "touch", "ios", "mobile", "cordova", "phonegap", "app", "framework", "carousel", "gallery"], 12 | "dependencies": { 13 | }, 14 | "scripts": [ 15 | "dist/js/swiper.js" 16 | ], 17 | "main": [ 18 | "dist/js/swiper.js", 19 | "dist/css/swiper.css" 20 | ], 21 | "styles": [ 22 | "dist/css/swiper.css" 23 | ], 24 | "license": ["MIT"], 25 | "ignore": [ 26 | ".*", 27 | "demos", 28 | "gulpfile", 29 | "build", 30 | "node_modules", 31 | "playground", 32 | "package.json" 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swiper", 3 | "repository": { 4 | "type": "git", 5 | "url": "https://github.com/nolimits4web/Swiper.git" 6 | }, 7 | "description": "Most modern mobile touch slider and framework with hardware accelerated transitions", 8 | "version": "4.2.5", 9 | "author": "Vladimir Kharlampidi", 10 | "homepage": "http://www.idangero.us/swiper/", 11 | "keywords": ["swiper", "swipe", "slider", "touch", "ios", "mobile", "cordova", "phonegap", "app", "framework", "carousel", "gallery"], 12 | "dependencies": { 13 | }, 14 | "scripts": [ 15 | "dist/js/swiper.js" 16 | ], 17 | "main": [ 18 | "dist/js/swiper.js", 19 | "dist/css/swiper.css" 20 | ], 21 | "styles": [ 22 | "dist/css/swiper.css" 23 | ], 24 | "license": ["MIT"], 25 | "ignore": [ 26 | ".*", 27 | "demos", 28 | "gulpfile", 29 | "build", 30 | "node_modules", 31 | "playground", 32 | "package.json" 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /h5/lib/rev-path/readme.md: -------------------------------------------------------------------------------- 1 | # rev-path [![Build Status](https://travis-ci.org/sindresorhus/rev-path.svg?branch=master)](https://travis-ci.org/sindresorhus/rev-path) 2 | 3 | > Create a [revved file path](http://blog.risingstack.com/automatic-cache-busting-for-your-css/) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install rev-path 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const revPath = require('rev-path'); 17 | const hash = 'bb9d8fe615' 18 | 19 | const path = revPath('src/unicorn.png', hash); 20 | //=> 'src/unicorn-bb9d8fe615.png' 21 | 22 | revPath('src/unicorn.png', Date.now()); 23 | //=> 'src/unicorn-1432309925925.png' 24 | 25 | // You can also revert an already hashed path 26 | revPath.revert(path, hash); 27 | //=> 'src/unicorn.png' 28 | ``` 29 | 30 | 31 | ## Related 32 | 33 | - [rev-file](https://github.com/sindresorhus/rev-file) - Get the revved file path of a file 34 | 35 | 36 | ## License 37 | 38 | MIT © [Sindre Sorhus](https://sindresorhus.com) 39 | -------------------------------------------------------------------------------- /adminApi/reptileTool/getNextPage.js: -------------------------------------------------------------------------------- 1 | const {fs, rp, timoRp, cheerio, iconv, path, tool, db, log} = require("../tool/require2"); 2 | // 下一页目录 3 | async function getNextPage({$, reptileCommon}){ 4 | let result = null, count = 0; 5 | while(!result && count <= 10) { 6 | let option2 = { 7 | uri: reptileCommon.getNextPage($), 8 | userAgent: reptileCommon.userAgent, 9 | encoding: null, 10 | transform: function (body) { 11 | // let body2 = iconv.decode(body, "gbk"); //用来查看页面 12 | return cheerio.load(iconv.decode(body, reptileCommon.code), {decodeEntities: false}); 13 | } 14 | } 15 | try{ 16 | result = await timoRp(option2); 17 | } catch(err) { 18 | count++; 19 | log.error(`爬取失败:${err},第${count}次失败,失败地址:${option2.uri}失败代理ip:${option2.proxy}`); 20 | } 21 | } 22 | return result; 23 | } 24 | 25 | module.exports = getNextPage; -------------------------------------------------------------------------------- /adminApi/routes/reptile/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool, db, log,reptileConfig } = require("../../tool/require"); 4 | 5 | /* 6 | * 渠道列表 7 | * page 页数 8 | * limit 一页几条 9 | * 10 | * */ 11 | router.use('', oauth(4004), async function(req, res, next) { 12 | let page = tool.getParams(req, 'page') || 1; 13 | let limit = tool.getParams(req, 'limit') || 10; 14 | 15 | let data = null; 16 | try{ 17 | let reptileList = await reptileConfig.getReptileList(); 18 | let count = reptileList.length; 19 | 20 | reptileList.forEach((value, index) => { 21 | reptileList[index] = JSON.parse(value); 22 | }) 23 | 24 | data = { 25 | reptileList, 26 | count 27 | }; 28 | res.send(tool.toJson(data, '', 1000)); 29 | } catch(err) { 30 | res.send(tool.toJson(null, err, 1002)); 31 | } 32 | }); 33 | 34 | module.exports = router; 35 | -------------------------------------------------------------------------------- /adminApi/routes/reptile/updateReptileList.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { log,db,oauth, tool,reptileConfig } = require("../../tool/require"); 4 | 5 | /* 6 | * page 页数 7 | * limit 一页几条 8 | * 9 | * */ 10 | router.use('', oauth(4005), async function(req, res, next) { 11 | 12 | // let limit = tool.getParams(req, 'limit') || 20; 13 | // let page = tool.getParams(req, 'page') || 1; 14 | 15 | try{ 16 | let reptileList = await reptileConfig.refreshReptileList(); 17 | let count = reptileList.length; 18 | 19 | reptileList.forEach((value, index) => { 20 | reptileList[index] = JSON.parse(value); 21 | }); 22 | let data = { 23 | reptileList, 24 | count 25 | }; 26 | res.send(tool.toJson(data, '', 1000)); 27 | } catch(err) { 28 | res.send(tool.toJson(null, JSON.stringify(err), 1002)); 29 | } 30 | }); 31 | 32 | module.exports = router; 33 | -------------------------------------------------------------------------------- /h5/dist/css/common/font/iconfont.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_810586_pamqgips18.eot);src:url(//at.alicdn.com/t/font_810586_pamqgips18.eot?#iefix) format('embedded-opentype'),url(//at.alicdn.com/t/font_810586_pamqgips18.woff) format('woff'),url(//at.alicdn.com/t/font_810586_pamqgips18.ttf) format('truetype'),url(//at.alicdn.com/t/font_810586_pamqgips18.svg#iconfont) format('svg')}.iconfont{font-family:iconfont!important;font-size:1.1rem;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:sub}.icon-shujia:before{content:"\e7ec"}.icon-shouye:before{content:"\e60c"}.icon-geren:before{content:"\e60a"}.icon-wangqishujia:before{content:"\e617"}.icon-shujia1:before{content:"\eb3f"}.icon-books:before{content:"\e6d5"}.icon-wodeshujia:before{content:"\e72b"}.icon-xuanze:before{content:"\e611"}.icon-Toright:before{content:"\e600"}.icon-Totop:before{content:"\e805"}.icon-Toboottom:before{content:"\e804"}.icon-Toleft:before{content:"\e601"} -------------------------------------------------------------------------------- /h5/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "h5", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./bin/h5", 7 | "dev": "node ./bin/h5" 8 | }, 9 | "dependencies": { 10 | "babel-core": "^6.26.3", 11 | "babel-preset-env": "^1.7.0", 12 | "clean": "^4.0.2", 13 | "cookie-parser": "~1.4.3", 14 | "debug": "~2.6.9", 15 | "ejs": "^2.6.1", 16 | "express": "~4.16.0", 17 | "gulp": "^3.9.1", 18 | "gulp-autoprefixer": "^6.0.0", 19 | "gulp-babel": "^7.0.1", 20 | "gulp-clean": "^0.4.0", 21 | "gulp-clean-css": "^3.10.0", 22 | "gulp-concat": "^2.6.1", 23 | "gulp-imagemin": "^4.1.0", 24 | "gulp-less": "^4.0.1", 25 | "gulp-rev": "^8.1.1", 26 | "gulp-rev-replace": "^0.4.4", 27 | "gulp-uglify": "^3.0.1", 28 | "http-errors": "~1.6.2", 29 | "less-middleware": "~2.2.1", 30 | "morgan": "~1.9.0", 31 | "pug": "2.0.0-beta11", 32 | "vconsole": "^3.2.0" 33 | }, 34 | "devDependencies": {} 35 | } 36 | -------------------------------------------------------------------------------- /api文档/timoh5/lie-biao-jie-kou/xiao-shuo-lei-xing-lie-biao.md: -------------------------------------------------------------------------------- 1 | ### 小说类型列表接口 2 | 3 | 1、接口地址:/bookTypeList 4 | 5 | 2、参数 6 | 7 | | 参数名 | 参数类型 | 是否必填 | 备注 | 8 | | :--- | :--- | :--- | :--- | 9 | | page | int | 否 | 页数,默认1 | 10 | | limit | int | 否 | 一页几条,默认100 | 11 | 12 | 3、接口返回结构 13 | 14 | ```js 15 | data: { 16 | "count": 全部小说类型数量 17 | "bookTypeList": [ 18 | { 19 | "count(bookType)": 多少本这种类型的小说 20 | "bookType":"都市小说" 21 | }, 22 | { 23 | "count(bookType)": 多少本这种类型的小说 24 | "bookType":"言情小说" 25 | } 26 | 27 | ] 28 | } 29 | ``` 30 | 31 | 4、接口返回例子 32 | 33 | ```js 34 | { 35 | "code": 1000, 36 | "data": { 37 | "bookTypeList": [ 38 | { 39 | "count(bookType)": 40, 40 | "bookType": "都市小说" 41 | }, 42 | { 43 | "count(bookType)": 3, 44 | "bookType": "言情小说" 45 | } 46 | ], 47 | "count": 11 48 | }, 49 | "msg": "" 50 | } 51 | ``` 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /adminApi/routes/book/updateCatalogIsJin.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | const { oauth, tool, db, log } = require("../../tool/require"); 4 | 5 | /* 6 | * 切换章节isJin 7 | * catalogId 章节id 8 | * isJin 1禁用 2不禁用 9 | * */ 10 | router.use('', oauth(1104), async function(req, res, next) { 11 | let catalogId = parseInt(tool.getParams(req, 'catalogId')); 12 | let isJin = parseInt(tool.getParams(req, 'isJin')); 13 | 14 | if(!catalogId) { 15 | res.send(tool.toJson(null, 'catalogId参数不合法', 1002)); 16 | return; 17 | } 18 | if(!isJin) { 19 | res.send(tool.toJson(null, 'isJin参数不合法', 1002)); 20 | return; 21 | } 22 | 23 | 24 | try{ 25 | await db.query(`update catalog set isJin=${isJin} where id=${catalogId}` ); 26 | res.send(tool.toJson('修改成功', null, 1000)); 27 | }catch(err) { 28 | res.send(tool.toJson(null, '修改失败', 1002)); 29 | } 30 | 31 | 32 | }); 33 | 34 | module.exports = router; 35 | -------------------------------------------------------------------------------- /h5/src/js/pages/home/index.js: -------------------------------------------------------------------------------- 1 | ;(function() { 2 | window.addEventListener('load', function () { 3 | init(); 4 | }); 5 | 6 | function init(){ 7 | // var swiper = new Swiper('.swiper-container', { 8 | // pagination: { 9 | // el: '.swiper-pagination', 10 | // }, 11 | // }); 12 | 13 | 14 | //搜索功能 15 | window.touchEvent.tap($(".book-searct-a")[0], search); 16 | $('.book-search-input')[0].onkeypress = function (e) { 17 | if (e.keyCode == 13) { 18 | search(); 19 | } 20 | } 21 | } 22 | 23 | 24 | /* 25 | * 搜索功能 26 | * */ 27 | function search(){ 28 | let bookName = $('.book-search-input')[0].value || ''; 29 | if(!bookName){ 30 | return; 31 | } 32 | if(!bookName.trim()) { 33 | return; 34 | } 35 | location.href="/book/search?bookName=" + bookName; 36 | } 37 | })(); 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /adminApi/service/ip/removeRepeat.js: -------------------------------------------------------------------------------- 1 | const { oauth, tool, db, log } = require("../../tool/require"); 2 | 3 | 4 | 5 | async function removeRepeat() { 6 | return new Promise(async (resolve, reject) => { 7 | if(global.reptileIp) { 8 | reject(`代理IP正在爬取中,请稍后再试`); 9 | return; 10 | } 11 | 12 | if(global.removeRepeat) { 13 | reject(`代理IP正在去重中,请耐心等待`) 14 | return; 15 | } 16 | global.removeRepeat = true; 17 | try{ 18 | 19 | let ipList = await tool.redisData.ipList.getAllIpList(); 20 | let ipList2 = tool.distinct(ipList); 21 | await tool.redisData.ipList.updateIpList(ipList2); 22 | global.removeRepeat = false; 23 | resolve(`代理IP去重完毕`); 24 | }catch(err){ 25 | global.removeRepeat = false; 26 | log.error(err); 27 | reject(`代理ip去重失败,错误原因:${err}`); 28 | } 29 | }) 30 | } 31 | 32 | 33 | 34 | 35 | module.exports = removeRepeat; -------------------------------------------------------------------------------- /iview-admin-dev/src/store/modules/user.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie'; 2 | 3 | const user = { 4 | state: { 5 | user:Cookies.get("user") ? JSON.parse(Cookies.get("user")) : {} 6 | }, 7 | mutations: { 8 | logout (state, vm) { 9 | Cookies.remove('token'); 10 | Cookies.remove('user'); 11 | Cookies.remove('access'); 12 | state.user = {}; 13 | // 恢复默认样式 14 | let themeLink = document.querySelector('link[name="theme"]'); 15 | themeLink.setAttribute('href', ''); 16 | // 清空打开的页面等数据,但是保存主题数据 17 | let theme = ''; 18 | if (localStorage.theme) { 19 | theme = localStorage.theme; 20 | } 21 | localStorage.clear(); 22 | if (theme) { 23 | localStorage.theme = theme; 24 | } 25 | }, 26 | setUser(state,user) { 27 | state.user = user; 28 | } 29 | } 30 | }; 31 | 32 | export default user; 33 | -------------------------------------------------------------------------------- /h5/dist/lib/swiper/src/components/core/update/updateSize.js: -------------------------------------------------------------------------------- 1 | import Utils from '../../../utils/utils'; 2 | 3 | export default function () { 4 | const swiper = this; 5 | let width; 6 | let height; 7 | const $el = swiper.$el; 8 | if (typeof swiper.params.width !== 'undefined') { 9 | width = swiper.params.width; 10 | } else { 11 | width = $el[0].clientWidth; 12 | } 13 | if (typeof swiper.params.height !== 'undefined') { 14 | height = swiper.params.height; 15 | } else { 16 | height = $el[0].clientHeight; 17 | } 18 | if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) { 19 | return; 20 | } 21 | 22 | // Subtract paddings 23 | width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10); 24 | height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10); 25 | 26 | Utils.extend(swiper, { 27 | width, 28 | height, 29 | size: swiper.isHorizontal() ? width : height, 30 | }); 31 | } 32 | -------------------------------------------------------------------------------- /h5/src/lib/swiper/src/components/core/update/updateSize.js: -------------------------------------------------------------------------------- 1 | import Utils from '../../../utils/utils'; 2 | 3 | export default function () { 4 | const swiper = this; 5 | let width; 6 | let height; 7 | const $el = swiper.$el; 8 | if (typeof swiper.params.width !== 'undefined') { 9 | width = swiper.params.width; 10 | } else { 11 | width = $el[0].clientWidth; 12 | } 13 | if (typeof swiper.params.height !== 'undefined') { 14 | height = swiper.params.height; 15 | } else { 16 | height = $el[0].clientHeight; 17 | } 18 | if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) { 19 | return; 20 | } 21 | 22 | // Subtract paddings 23 | width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10); 24 | height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10); 25 | 26 | Utils.extend(swiper, { 27 | width, 28 | height, 29 | size: swiper.isHorizontal() ? width : height, 30 | }); 31 | } 32 | -------------------------------------------------------------------------------- /iview-admin-dev/src/views/my-components/draggable-list/draggable-list.less: -------------------------------------------------------------------------------- 1 | .iview-admin-draggable-list{ 2 | height: 100%; 3 | } 4 | .iview-admin-draggable-list li{ 5 | padding: 9px; 6 | border: 1px solid #e7ebee; 7 | border-radius: 3px; 8 | margin-bottom: 5px; 9 | cursor: pointer; 10 | position: relative; 11 | transition: all .2s; 12 | } 13 | .iview-admin-draggable-list li:hover{ 14 | color: #87b4ee; 15 | border-color: #87b4ee; 16 | transition: all .2s; 17 | } 18 | .iview-admin-draggable-delete{ 19 | height: 100%; 20 | position: absolute; 21 | right: -8px; 22 | top: 0px; 23 | display: none; 24 | } 25 | .iview-admin-draggable-list li:hover .iview-admin-draggable-delete{ 26 | display: block; 27 | } 28 | .placeholder-style{ 29 | display: block !important; 30 | color: transparent; 31 | border-style: dashed !important; 32 | } 33 | .delte-item-animation{ 34 | opacity: 0; 35 | transition: all .2s; 36 | } 37 | .iview-admin-draggable-list{ 38 | overflow: auto 39 | } --------------------------------------------------------------------------------