├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── README.zh-CN.md ├── doc ├── .vuepress │ ├── config.js │ └── public │ │ ├── favicon.ico │ │ └── logo.png ├── README.md ├── action │ ├── cache.md │ ├── jpaauditing.md │ ├── sqlite.md │ └── task.md ├── base │ ├── jdkAndMaven.md │ ├── modules.md │ ├── preface.md │ └── zanshan.jpg ├── config │ ├── application.md │ ├── beetl.md │ ├── ehcache.md │ ├── logback.md │ ├── shiro.md │ └── swagger.md ├── demo.gif ├── donate.md ├── ecosystem │ ├── code-generator.md │ ├── database-doc-generator.md │ └── doc │ │ ├── boy-list.png │ │ ├── code-generate.jpg │ │ ├── doc.jpg │ │ ├── generate-result.png │ │ ├── menu.png │ │ ├── role.png │ │ ├── summary.jpg │ │ ├── table.jpg │ │ └── word.jpg ├── feature │ ├── dict.md │ ├── img │ │ ├── admin.jpg │ │ ├── dict.jpg │ │ ├── loginLog.jpg │ │ ├── menu.jpg │ │ ├── monitor.jpg │ │ ├── src.jpg │ │ ├── sysConfig.jpg │ │ ├── user_role.jpg │ │ ├── web-js.jpg │ │ ├── web-page.jpg │ │ └── web.jpg │ ├── log.md │ ├── menu.md │ ├── modules.md │ └── monitor.md ├── helloworld │ ├── add.md │ ├── base.md │ ├── create_table.md │ ├── crud.md │ ├── delete.md │ ├── list.md │ ├── menuAndPermission.md │ └── update.md ├── img │ ├── action │ │ ├── task_add.png │ │ ├── task_list.png │ │ └── task_log.png │ ├── alipay.jpg │ ├── donate.jpg │ ├── haike.jpg │ ├── helloworld │ │ ├── menu.png │ │ └── role.png │ ├── quickstart │ │ ├── index.png │ │ └── login.png │ ├── resource │ │ └── menu_1.jpg │ └── wechat.jpg ├── other │ └── faq.md ├── package.json ├── quickstart │ ├── clone.md │ ├── config.md │ ├── index.jpg │ ├── initDb.md │ ├── login.jpg │ ├── quickstart.md │ └── startup.md ├── resource.md ├── yarn.lock └── 文档完善中 ├── material-core ├── pom.xml └── src │ └── main │ ├── java │ └── cn │ │ └── enilu │ │ └── material │ │ ├── aop │ │ ├── LogAop.java │ │ └── PermissionAop.java │ │ ├── bean │ │ ├── constant │ │ │ ├── Const.java │ │ │ ├── cache │ │ │ │ ├── Cache.java │ │ │ │ └── CacheKey.java │ │ │ ├── factory │ │ │ │ └── PageFactory.java │ │ │ ├── package-info.java │ │ │ └── state │ │ │ │ ├── BizLogType.java │ │ │ │ ├── LogSucceed.java │ │ │ │ ├── LogType.java │ │ │ │ ├── ManagerStatus.java │ │ │ │ ├── MenuStatus.java │ │ │ │ └── Order.java │ │ ├── core │ │ │ ├── BussinessLog.java │ │ │ ├── Permission.java │ │ │ └── ShiroUser.java │ │ ├── dictmap │ │ │ ├── CfgDict.java │ │ │ ├── CommonDict.java │ │ │ ├── DeleteDict.java │ │ │ ├── DeptDict.java │ │ │ ├── DictMap.java │ │ │ ├── LogDict.java │ │ │ ├── MenuDict.java │ │ │ ├── NoticeMap.java │ │ │ ├── RoleDict.java │ │ │ ├── SystemDict.java │ │ │ ├── TaskDict.java │ │ │ ├── UserDict.java │ │ │ └── base │ │ │ │ └── AbstractDictMap.java │ │ ├── dto │ │ │ └── UserDto.java │ │ ├── entity │ │ │ ├── BaseEntity.java │ │ │ ├── message │ │ │ │ ├── Message.java │ │ │ │ ├── MessageSender.java │ │ │ │ └── MessageTemplate.java │ │ │ ├── system │ │ │ │ ├── Cfg.java │ │ │ │ ├── Dept.java │ │ │ │ ├── Dict.java │ │ │ │ ├── FileInfo.java │ │ │ │ ├── LoginLog.java │ │ │ │ ├── Menu.java │ │ │ │ ├── Notice.java │ │ │ │ ├── OperationLog.java │ │ │ │ ├── Relation.java │ │ │ │ ├── Role.java │ │ │ │ ├── Task.java │ │ │ │ ├── TaskLog.java │ │ │ │ └── User.java │ │ │ └── test │ │ │ │ └── Boy.java │ │ ├── enumeration │ │ │ ├── BizExceptionEnum.java │ │ │ ├── ConfigKeyEnum.java │ │ │ ├── ProjectEnum.java │ │ │ ├── RedisQueueName.java │ │ │ ├── SerialNumberEnum.java │ │ │ ├── TypeEnum.java │ │ │ └── cms │ │ │ │ ├── BannerTypeEnum.java │ │ │ │ └── ChannelEnum.java │ │ ├── exception │ │ │ ├── ApplicationException.java │ │ │ ├── ExceptionEnum.java │ │ │ ├── InvalidKaptchaException.java │ │ │ ├── MailException.java │ │ │ ├── ParamException.java │ │ │ ├── ServiceExceptionEnum.java │ │ │ ├── SlConnectException.java │ │ │ ├── SlEvalException.java │ │ │ ├── ValidException.java │ │ │ ├── XSException.java │ │ │ └── XSRuntimeException.java │ │ └── vo │ │ │ ├── DictVo.java │ │ │ ├── QuartzJob.java │ │ │ ├── SpringContextHolder.java │ │ │ ├── front │ │ │ ├── Ret.java │ │ │ └── Rets.java │ │ │ ├── node │ │ │ ├── DeptNode.java │ │ │ ├── IsMenu.java │ │ │ ├── MenuNode.java │ │ │ ├── Node.java │ │ │ └── ZTreeNode.java │ │ │ └── query │ │ │ ├── DynamicSpecifications.java │ │ │ ├── MutiStrFactory.java │ │ │ ├── Page.java │ │ │ └── SearchFilter.java │ │ ├── dao │ │ ├── BaseRepository.java │ │ ├── BaseRepositoryFactoryBean.java │ │ ├── BaseRepositoryImpl.java │ │ ├── DaoConfiguration.java │ │ ├── cache │ │ │ ├── BaseCache.java │ │ │ ├── Cache.java │ │ │ ├── CacheDao.java │ │ │ ├── ConfigCache.java │ │ │ ├── DictCache.java │ │ │ ├── TokenCache.java │ │ │ ├── impl │ │ │ │ ├── ConfigCacheImpl.java │ │ │ │ ├── DictCacheImpl.java │ │ │ │ └── EhcacheDao.java │ │ │ └── package-info.java │ │ ├── message │ │ │ ├── MessageRepository.java │ │ │ ├── MessagesenderRepository.java │ │ │ └── MessagetemplateRepository.java │ │ └── system │ │ │ ├── CfgRepository.java │ │ │ ├── DeptRepository.java │ │ │ ├── DictRepository.java │ │ │ ├── FileInfoRepository.java │ │ │ ├── LoginLogRepository.java │ │ │ ├── MenuRepository.java │ │ │ ├── OperationLogRepository.java │ │ │ ├── RelationRepository.java │ │ │ ├── RoleRepository.java │ │ │ ├── SysNoticeRepository.java │ │ │ ├── TaskLogRepository.java │ │ │ ├── TaskRepository.java │ │ │ └── UserRepository.java │ │ ├── factory │ │ ├── DictFieldWarpperFactory.java │ │ └── UserFactory.java │ │ ├── platform │ │ ├── log │ │ │ ├── LogFactory.java │ │ │ ├── LogManager.java │ │ │ └── LogTaskFactory.java │ │ └── package-info.java │ │ ├── service │ │ ├── BaseService.java │ │ ├── CrudService.java │ │ ├── DeleteService.java │ │ ├── InsertService.java │ │ ├── SelectService.java │ │ ├── UpdateService.java │ │ ├── message │ │ │ ├── MessageService.java │ │ │ ├── MessagesenderService.java │ │ │ ├── MessagetemplateService.java │ │ │ ├── email │ │ │ │ ├── DefaultEmailSender.java │ │ │ │ └── EmailSender.java │ │ │ └── sms │ │ │ │ ├── SmsSender.java │ │ │ │ └── tencent │ │ │ │ └── TencentSmsSender.java │ │ ├── system │ │ │ ├── AccountService.java │ │ │ ├── CfgService.java │ │ │ ├── DeptService.java │ │ │ ├── DictService.java │ │ │ ├── FileService.java │ │ │ ├── IConstantFactory.java │ │ │ ├── LogObjectHolder.java │ │ │ ├── LoginLogService.java │ │ │ ├── MenuService.java │ │ │ ├── NoticeService.java │ │ │ ├── OperationLogService.java │ │ │ ├── RoleService.java │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ │ └── ConstantFactory.java │ │ └── task │ │ │ ├── BaseJob.java │ │ │ ├── JobExecuter.java │ │ │ ├── JobService.java │ │ │ ├── NoConurrentBaseJob.java │ │ │ ├── QuartzConfigration.java │ │ │ ├── TaskService.java │ │ │ ├── TaskUtils.java │ │ │ └── job │ │ │ └── HelloJob.java │ │ ├── shiro │ │ ├── ShiroDbRealm.java │ │ ├── ShiroKit.java │ │ ├── check │ │ │ ├── ICheck.java │ │ │ ├── PermissionCheckFactory.java │ │ │ └── PermissionCheckManager.java │ │ └── factory │ │ │ ├── IShiro.java │ │ │ └── ShiroFactroy.java │ │ ├── utils │ │ ├── BasicType.java │ │ ├── BeanUtil.java │ │ ├── BirthUtils.java │ │ ├── CollectionKit.java │ │ ├── Constants.java │ │ ├── Convert.java │ │ ├── CryptUtils.java │ │ ├── DateTime.java │ │ ├── DateTimeKit.java │ │ ├── DateUtil.java │ │ ├── HexKit.java │ │ ├── HttpKit.java │ │ ├── Lists.java │ │ ├── Log.java │ │ ├── MD5.java │ │ ├── Maps.java │ │ ├── MobileUtil.java │ │ ├── PageKit.java │ │ ├── RSAUtil.java │ │ ├── RandomUtils.java │ │ ├── StrKit.java │ │ ├── StringUtils.java │ │ ├── ToolUtil.java │ │ ├── WafKit.java │ │ ├── WafRequestWrapper.java │ │ ├── XmlHelper.java │ │ ├── ZipUtils.java │ │ └── cache │ │ │ ├── TimeCacheMap.java │ │ │ └── exception │ │ │ └── ToolBoxException.java │ │ ├── warpper │ │ ├── BaseControllerWarpper.java │ │ ├── DeptWarpper.java │ │ ├── DictWarpper.java │ │ ├── LogWarpper.java │ │ ├── MenuWarpper.java │ │ ├── NoticeWrapper.java │ │ ├── RoleWarpper.java │ │ └── UserWarpper.java │ │ └── web │ │ ├── listener │ │ ├── CacheListener.java │ │ └── ConfigListener.java │ │ └── package-info.java │ └── resources │ └── code │ └── code.json ├── material-generator ├── README.md ├── README.zh-CN.md ├── doc │ ├── boy-list.png │ ├── code-generate.jpg │ ├── generate-result.png │ └── menu.png ├── pom.xml └── src │ └── main │ ├── java │ └── cn │ │ └── enilu │ │ └── flash │ │ └── code │ │ ├── AbstractLoader.java │ │ ├── CodeConfig.java │ │ ├── ColumnDescriptor.java │ │ ├── EntityDescLoader.java │ │ ├── Generator.java │ │ ├── Loader.java │ │ ├── StrKit.java │ │ ├── TableDescLoader.java │ │ ├── TableDescriptor.java │ │ └── Utils.java │ └── resources │ └── code │ ├── code.json │ ├── controller.vm │ ├── repository.vm │ ├── service.vm │ └── view │ ├── add.html.vm │ ├── edit.html.vm │ ├── index.html.vm │ ├── index.js.vm │ └── info.js.vm ├── material-lab ├── README.md ├── pom.xml └── src │ └── main │ └── resources │ └── application.properties ├── material-manage ├── pom.xml └── src │ └── main │ ├── java │ └── cn │ │ └── enilu │ │ └── material │ │ └── admin │ │ ├── AdminApplication.java │ │ ├── AdminServletInitializer.java │ │ ├── common │ │ └── constant │ │ │ ├── enums │ │ │ └── Status.java │ │ │ └── state │ │ │ ├── ExpenseState.java │ │ │ ├── IsMenu.java │ │ │ └── MenuOpenStatus.java │ │ ├── config │ │ ├── DefaultFastjsonConfig.java │ │ ├── DruidConfig.java │ │ ├── EhCacheConfig.java │ │ ├── SpringSessionConfig.java │ │ ├── SwaggerConfig.java │ │ ├── UserIDAuditorConfig.java │ │ ├── properties │ │ │ ├── AppProperties.java │ │ │ └── BeetlProperties.java │ │ └── web │ │ │ ├── BeetlConfig.java │ │ │ └── ShiroConfig.java │ │ ├── core │ │ ├── CoreFlag.java │ │ ├── aop │ │ │ ├── BaseControllerExceptionHandler.java │ │ │ └── GlobalExceptionHandler.java │ │ ├── base │ │ │ ├── controller │ │ │ │ ├── BaseController.java │ │ │ │ ├── ErrorView.java │ │ │ │ └── GlobalController.java │ │ │ └── tips │ │ │ │ ├── ErrorTip.java │ │ │ │ ├── SuccessTip.java │ │ │ │ └── Tip.java │ │ ├── beetl │ │ │ ├── BeetlConfiguration.java │ │ │ └── ShiroExt.java │ │ ├── cache │ │ │ ├── BaseCacheFactory.java │ │ │ ├── CacheKit.java │ │ │ ├── EhcacheFactory.java │ │ │ ├── ICache.java │ │ │ └── ILoader.java │ │ ├── datascope │ │ │ └── DataScope.java │ │ ├── datasource │ │ │ └── DruidProperties.java │ │ ├── intercept │ │ │ ├── SessionInterceptor.java │ │ │ └── SessionTimeoutInterceptor.java │ │ ├── page │ │ │ ├── PageBT.java │ │ │ └── PageInfoBT.java │ │ ├── qr │ │ │ ├── ImgQrTool.java │ │ │ ├── MatrixToImageConfig.java │ │ │ ├── MatrixToImageWriter.java │ │ │ └── QrImage.java │ │ ├── support │ │ │ ├── BasicType.java │ │ │ ├── BeanKit.java │ │ │ ├── ClassKit.java │ │ │ ├── CollectionKit.java │ │ │ ├── DateTime.java │ │ │ ├── DateTimeKit.java │ │ │ ├── HexKit.java │ │ │ ├── ObjectKit.java │ │ │ ├── PageKit.java │ │ │ └── exception │ │ │ │ └── ToolBoxException.java │ │ ├── util │ │ │ ├── ApiMenuFilter.java │ │ │ ├── FileUtil.java │ │ │ ├── HttpSessionHolder.java │ │ │ ├── KaptchaUtil.java │ │ │ ├── NumUtil.java │ │ │ ├── PingYinUtil.java │ │ │ ├── RenderUtil.java │ │ │ ├── ResKit.java │ │ │ └── SqlUtil.java │ │ └── xss │ │ │ ├── XssFilter.java │ │ │ └── XssHttpServletRequestWrapper.java │ │ ├── modular │ │ ├── lab │ │ │ ├── controller │ │ │ │ └── LabController.java │ │ │ └── package-info.java │ │ ├── message │ │ │ ├── MessageController.java │ │ │ ├── MessagesenderController.java │ │ │ └── MessagetemplateController.java │ │ └── system │ │ │ ├── controller │ │ │ ├── BlackboardController.java │ │ │ ├── CfgController.java │ │ │ ├── DeptController.java │ │ │ ├── DictController.java │ │ │ ├── KaptchaController.java │ │ │ ├── LogController.java │ │ │ ├── LoginController.java │ │ │ ├── LoginLogController.java │ │ │ ├── MenuController.java │ │ │ ├── NoticeController.java │ │ │ ├── RoleController.java │ │ │ ├── TaskController.java │ │ │ └── UserMgrController.java │ │ │ └── transfer │ │ │ ├── ManagerUser.java │ │ │ ├── ReqAddManager.java │ │ │ └── ReqEditManager.java │ │ └── runner │ │ └── StartJob.java │ ├── resources │ ├── META-INF │ │ └── spring-devtools.properties │ ├── application-dev.properties │ ├── application-lab.properties │ ├── application-prod.properties │ ├── application.properties │ ├── banner.txt │ ├── ehcache.xml │ ├── import.sql │ └── logback.xml │ └── webapp │ ├── WEB-INF │ └── view │ │ ├── 404.html │ │ ├── common │ │ ├── _chat.html │ │ ├── _footer.html │ │ ├── _header.html │ │ ├── _sidebar.html │ │ ├── include.html │ │ ├── layout.html │ │ └── tags │ │ │ ├── NameCon.tag │ │ │ ├── SelectCon.tag │ │ │ ├── TimeCon.tag │ │ │ ├── avatar.tag │ │ │ ├── button.tag │ │ │ ├── datePicker.tag │ │ │ ├── input.tag │ │ │ ├── select.tag │ │ │ ├── table.tag │ │ │ └── textarea.tag │ │ ├── index.html │ │ ├── lab │ │ ├── actuator.html │ │ └── gis.html │ │ ├── login.html │ │ ├── message │ │ ├── history │ │ │ ├── message.html │ │ │ └── message_view.html │ │ ├── sender │ │ │ ├── sender.html │ │ │ ├── sender_add.html │ │ │ └── sender_edit.html │ │ └── template │ │ │ ├── template.html │ │ │ ├── template_add.html │ │ │ └── template_edit.html │ │ └── system │ │ ├── cfg │ │ ├── cfg.html │ │ ├── cfg_add.html │ │ └── cfg_edit.html │ │ ├── dept │ │ ├── dept.html │ │ ├── dept_add.html │ │ └── dept_edit.html │ │ ├── dict │ │ ├── dict.html │ │ ├── dict_add.html │ │ └── dict_edit.html │ │ ├── log │ │ ├── log.html │ │ └── login_log.html │ │ ├── menu │ │ ├── menu.html │ │ ├── menu_add.html │ │ └── menu_edit.html │ │ ├── role │ │ ├── role.html │ │ ├── role_add.html │ │ ├── role_assign.html │ │ └── role_edit.html │ │ ├── task │ │ ├── task.html │ │ ├── task_add.html │ │ ├── task_edit.html │ │ └── task_log.html │ │ └── user │ │ ├── user.html │ │ ├── user_add.html │ │ ├── user_chpwd.html │ │ ├── user_edit.html │ │ ├── user_roleassign.html │ │ └── user_view.html │ └── static │ ├── css │ ├── _fstyle.css │ ├── app.css │ ├── app.min.1.css │ ├── app.min.2.css │ ├── font-awesome.css │ ├── font-awesome.min.css │ ├── material.css │ └── plugins │ │ ├── bootstrap-table │ │ └── bootstrap-table.min.css │ │ ├── dataTables │ │ └── dataTables.bootstrap.css │ │ ├── jquery-treegrid │ │ └── css │ │ │ └── jquery.treegrid.css │ │ ├── validate │ │ └── bootstrapValidator.min.css │ │ ├── webuploader │ │ └── webuploader.css │ │ └── ztree │ │ ├── demo.css │ │ ├── img │ │ ├── diy │ │ │ ├── 1_close.png │ │ │ ├── 1_open.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ └── 9.png │ │ ├── line_conn.gif │ │ ├── loading.gif │ │ ├── zTreeStandard.gif │ │ └── zTreeStandard.png │ │ └── zTreeStyle.css │ ├── favicon.ico │ ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ ├── glyphicons-halflings-regular.woff2 │ ├── roboto │ │ ├── Roboto-Bold-webfont.eot │ │ ├── Roboto-Bold-webfont.svg │ │ ├── Roboto-Bold-webfont.ttf │ │ ├── Roboto-Bold-webfont.woff │ │ ├── Roboto-Light-webfont.eot │ │ ├── Roboto-Light-webfont.svg │ │ ├── Roboto-Light-webfont.ttf │ │ ├── Roboto-Light-webfont.woff │ │ ├── Roboto-Medium-webfont.eot │ │ ├── Roboto-Medium-webfont.svg │ │ ├── Roboto-Medium-webfont.ttf │ │ ├── Roboto-Medium-webfont.woff │ │ ├── Roboto-Regular-webfont.eot │ │ ├── Roboto-Regular-webfont.svg │ │ ├── Roboto-Regular-webfont.ttf │ │ ├── Roboto-Regular-webfont.woff │ │ ├── Roboto-Thin-webfont.eot │ │ ├── Roboto-Thin-webfont.svg │ │ ├── Roboto-Thin-webfont.ttf │ │ └── Roboto-Thin-webfont.woff │ ├── shadowsintolight │ │ ├── shadowsintolight-webfont.eot │ │ ├── shadowsintolight-webfont.svg │ │ ├── shadowsintolight-webfont.ttf │ │ ├── shadowsintolight-webfont.woff │ │ └── shadowsintolight-webfont.woff2 │ └── weather-icons │ │ ├── weather-icons.eot │ │ ├── weather-icons.svg │ │ ├── weather-icons.ttf │ │ └── weather-icons.woff │ ├── img │ ├── 300x200.gif │ ├── avatar.png │ ├── browsers │ │ ├── chrome.png │ │ ├── firefox.png │ │ ├── ie.png │ │ ├── opera.png │ │ └── safari.png │ ├── cal-header.jpg │ ├── headers │ │ └── sm │ │ │ └── 4.png │ ├── icons │ │ ├── ellipsis.png │ │ ├── ellipsis@2x.png │ │ ├── fullscreen.png │ │ ├── fullscreen@2x.png │ │ ├── menu-2.png │ │ ├── menu-2@2x.png │ │ ├── menu.png │ │ ├── menu@2x.png │ │ ├── message.png │ │ ├── message@2x.png │ │ ├── notification.png │ │ ├── notification@2x.png │ │ ├── pause.png │ │ ├── pause@2x.png │ │ ├── play.png │ │ ├── play@2x.png │ │ ├── search-2.png │ │ ├── search-2@2x.png │ │ ├── search.png │ │ ├── search@2x.png │ │ ├── speaker-2.png │ │ ├── speaker-2@2x.png │ │ ├── speaker.png │ │ ├── speaker@2x.png │ │ ├── task.png │ │ └── task@2x.png │ ├── notifications.png │ ├── profile-menu.png │ ├── profile-pics │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ ├── 8.jpg │ │ ├── 9.jpg │ │ ├── avatar.png │ │ ├── profile-pic-2.jpg │ │ └── profile-pic.jpg │ ├── select.png │ ├── select@2x.png │ └── thumbs-up.png │ ├── js │ ├── charts.js │ ├── common │ │ ├── Feng.js │ │ ├── ajax-object.js │ │ ├── bootstrap-table-object.js │ │ ├── tree-table-object.js │ │ ├── web-upload-object.js │ │ └── ztree-object.js │ ├── demo.js │ ├── flot-charts │ │ ├── bar-chart.js │ │ ├── curved-line-chart.js │ │ ├── dynamic-chart.js │ │ ├── line-chart.js │ │ └── pie-chart.js │ ├── functions.js │ ├── hplus.js │ ├── plugins │ │ ├── bootstrap-table │ │ │ ├── bootstrap-table-mobile.min.js │ │ │ ├── bootstrap-table.min.js │ │ │ └── locale │ │ │ │ ├── bootstrap-table-zh-CN.js │ │ │ │ └── bootstrap-table-zh-CN.min.js │ │ ├── dataTables │ │ │ ├── dataTables.bootstrap.js │ │ │ └── jquery.dataTables.js │ │ ├── jquery-treegrid │ │ │ ├── extension │ │ │ │ └── jquery.treegrid.extension.js │ │ │ └── js │ │ │ │ ├── jquery.treegrid.bootstrap3.js │ │ │ │ └── jquery.treegrid.min.js │ │ ├── layer │ │ │ ├── extend │ │ │ │ └── layer.ext.js │ │ │ ├── laydate │ │ │ │ ├── laydate.js │ │ │ │ ├── need │ │ │ │ │ └── laydate.css │ │ │ │ └── skins │ │ │ │ │ └── default │ │ │ │ │ ├── icon.png │ │ │ │ │ └── laydate.css │ │ │ ├── layer.min.js │ │ │ ├── layim │ │ │ │ ├── layim.css │ │ │ │ ├── layim.js │ │ │ │ └── loading.gif │ │ │ ├── mobile │ │ │ │ ├── layer.js │ │ │ │ └── need │ │ │ │ │ └── layer.css │ │ │ ├── skin │ │ │ │ ├── default │ │ │ │ │ ├── icon-ext.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── icon_ext.png │ │ │ │ │ ├── loading-0.gif │ │ │ │ │ ├── loading-1.gif │ │ │ │ │ └── loading-2.gif │ │ │ │ ├── layer.css │ │ │ │ └── layer.ext.css │ │ │ └── theme │ │ │ │ └── default │ │ │ │ ├── icon-ext.png │ │ │ │ ├── icon.png │ │ │ │ ├── layer.css │ │ │ │ ├── loading-0.gif │ │ │ │ ├── loading-1.gif │ │ │ │ └── loading-2.gif │ │ ├── validate │ │ │ ├── bootstrapValidator.min.js │ │ │ └── zh_CN.js │ │ ├── webuploader │ │ │ ├── README.md │ │ │ ├── Uploader.swf │ │ │ ├── webuploader.css │ │ │ ├── webuploader.custom.js │ │ │ ├── webuploader.custom.min.js │ │ │ ├── webuploader.fis.js │ │ │ ├── webuploader.flashonly.js │ │ │ ├── webuploader.flashonly.min.js │ │ │ ├── webuploader.html5only.js │ │ │ ├── webuploader.html5only.min.js │ │ │ ├── webuploader.js │ │ │ ├── webuploader.min.js │ │ │ ├── webuploader.noimage.js │ │ │ ├── webuploader.noimage.min.js │ │ │ ├── webuploader.nolog.js │ │ │ ├── webuploader.nolog.min.js │ │ │ ├── webuploader.withoutimage.js │ │ │ └── webuploader.withoutimage.min.js │ │ └── ztree │ │ │ └── jquery.ztree.all.min.js │ └── read-me.txt │ ├── lab │ ├── README.md │ └── gis │ │ ├── base │ │ ├── base_leaflet.draw.ext.js │ │ ├── base_map.js │ │ └── base_tilesUtils.js │ │ ├── images │ │ └── cz.png │ │ ├── index.js │ │ ├── js │ │ ├── base │ │ │ ├── base_leaflet.draw.ext.js │ │ │ ├── base_map.js │ │ │ └── base_tilesUtils.js │ │ ├── jslib │ │ │ ├── LMapLib.js │ │ │ ├── Leaflet.PolylineDecorator-master │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── example │ │ │ │ │ ├── example.html │ │ │ │ │ ├── example.js │ │ │ │ │ └── icon_plane.png │ │ │ │ ├── leaflet.polylineDecorator.js │ │ │ │ ├── leaflet.polylineDecorator.min.js │ │ │ │ ├── screenshot.png │ │ │ │ └── src │ │ │ │ │ ├── L.LineUtil.PolylineDecorator.js │ │ │ │ │ ├── L.PolylineDecorator.js │ │ │ │ │ ├── L.RotatedMarker.js │ │ │ │ │ └── L.Symbol.js │ │ │ ├── Leaflet.draw │ │ │ │ ├── icon_plane.png │ │ │ │ ├── images │ │ │ │ │ └── spritesheet.png │ │ │ │ ├── leaflet.draw-src.js │ │ │ │ ├── leaflet.draw.css │ │ │ │ └── leaflet.draw.js │ │ │ ├── Leaflet.plugins │ │ │ │ └── arc.js │ │ │ ├── Leaflet │ │ │ │ ├── images │ │ │ │ │ ├── Thumbs.db │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── marker-icon-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ └── marker-shadow.png │ │ │ │ ├── leaflet.css │ │ │ │ ├── leaflet.functionaltilelayer.js │ │ │ │ ├── leaflet.js │ │ │ │ ├── leaflet.markercluster.js │ │ │ │ └── leaflet.polylineDecorator.min.js │ │ │ ├── arc.js-gh-pages │ │ │ │ ├── README.md │ │ │ │ ├── arc.js │ │ │ │ ├── bezier.geojson │ │ │ │ ├── bezier.html │ │ │ │ ├── bezier.js │ │ │ │ ├── bezier.py │ │ │ │ ├── example │ │ │ │ │ ├── csv2arc.js │ │ │ │ │ ├── round.js │ │ │ │ │ ├── routes.csv │ │ │ │ │ └── tracks.geojson │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ ├── polymaps.js │ │ │ │ ├── sphericalmercator.js │ │ │ │ └── test.js │ │ │ ├── arcDecorator.js │ │ │ ├── bar.js │ │ │ └── mapColumnChart.js │ │ └── test │ │ │ ├── data │ │ │ └── cirlData.js │ │ │ └── demo.js │ │ └── leaflet │ │ ├── L.Control.Zoominfo.css │ │ ├── L.Control.Zoominfo.js │ │ ├── leaflet.css │ │ └── leaflet.js │ ├── less │ ├── app.less │ └── inc │ │ ├── 404.less │ │ ├── alert.less │ │ ├── base.less │ │ ├── bootstrap-master │ │ ├── alerts.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── glyphicons.less │ │ ├── grid.less │ │ ├── input-groups.less │ │ ├── jumbotron.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── mixins │ │ │ ├── alerts.less │ │ │ ├── background-variant.less │ │ │ ├── border-radius.less │ │ │ ├── buttons.less │ │ │ ├── center-block.less │ │ │ ├── clearfix.less │ │ │ ├── forms.less │ │ │ ├── gradients.less │ │ │ ├── grid-framework.less │ │ │ ├── grid.less │ │ │ ├── hide-text.less │ │ │ ├── image.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── nav-divider.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── opacity.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── progress-bar.less │ │ │ ├── reset-filter.less │ │ │ ├── resize.less │ │ │ ├── responsive-visibility.less │ │ │ ├── size.less │ │ │ ├── tab-focus.less │ │ │ ├── table-row.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ └── vendor-prefixes.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── normalize.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── popovers.less │ │ ├── print.less │ │ ├── progress-bars.less │ │ ├── responsive-embed.less │ │ ├── responsive-utilities.less │ │ ├── scaffolding.less │ │ ├── tables.less │ │ ├── theme.less │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ │ ├── bootstrap-overrides.less │ │ ├── breadcrumb.less │ │ ├── button.less │ │ ├── card.less │ │ ├── chart.less │ │ ├── chat.less │ │ ├── contacts.less │ │ ├── dropdown.less │ │ ├── font.less │ │ ├── footer.less │ │ ├── form.less │ │ ├── generics.less │ │ ├── header.less │ │ ├── ie-warning.less │ │ ├── invoice.less │ │ ├── less-plugins │ │ └── for.less │ │ ├── list.less │ │ ├── listview.less │ │ ├── login.less │ │ ├── media.less │ │ ├── messages.less │ │ ├── misc.less │ │ ├── mixin.less │ │ ├── modal.less │ │ ├── pagination.less │ │ ├── panel.less │ │ ├── photos.less │ │ ├── popover.less │ │ ├── preloader.less │ │ ├── pricing-table.less │ │ ├── print.less │ │ ├── profile.less │ │ ├── progress-bar.less │ │ ├── shadow.less │ │ ├── sidebar.less │ │ ├── skin.less │ │ ├── table.less │ │ ├── tabs.less │ │ ├── todo.less │ │ ├── tooltip.less │ │ ├── variables.less │ │ ├── vendor-overrides │ │ ├── bootgrid.less │ │ ├── bootstrap-datetimepicker.less │ │ ├── bootstrap-select.less │ │ ├── chosen.less │ │ ├── farbtastic.less │ │ ├── fileinput.less │ │ ├── fullcalendar.less │ │ ├── light-gallery.less │ │ ├── malihu-custom-scrollbar.less │ │ ├── mediaelement.less │ │ ├── noUiSlider.less │ │ ├── summernote.less │ │ ├── sweetalert.less │ │ ├── typeahead.less │ │ └── waves.less │ │ ├── wall.less │ │ ├── widgets.less │ │ └── wizard.less │ ├── modular │ ├── message │ │ ├── history │ │ │ └── message.js │ │ ├── sender │ │ │ ├── sender.js │ │ │ └── sender_info.js │ │ └── template │ │ │ ├── template.js │ │ │ └── template_info.js │ └── system │ │ ├── cfg │ │ ├── cfg.js │ │ └── cfg_info.js │ │ ├── dept │ │ ├── dept.js │ │ └── dept_info.js │ │ ├── dict │ │ ├── dict.js │ │ └── dict_info.js │ │ ├── log │ │ ├── log.js │ │ └── login_log.js │ │ ├── menu │ │ ├── menu.js │ │ └── menu_info.js │ │ ├── role │ │ ├── role.js │ │ └── role_info.js │ │ ├── task │ │ ├── task.js │ │ ├── task_info.js │ │ └── task_log.js │ │ └── user │ │ ├── user.js │ │ └── user_info.js │ └── vendors │ ├── bootgrid │ ├── .bower.json │ ├── .npmignore │ ├── jquery.bootgrid.css │ ├── jquery.bootgrid.fa.js │ ├── jquery.bootgrid.fa.min.js │ ├── jquery.bootgrid.js │ ├── jquery.bootgrid.min.css │ ├── jquery.bootgrid.min.js │ ├── jquery.bootgrid.updated.js │ └── jquery.bootgrid.updated.min.js │ ├── bootstrap-growl │ ├── bootstrap-growl.js │ └── bootstrap-growl.min.js │ ├── bootstrap-wizard │ ├── jquery.bootstrap.wizard.js │ └── jquery.bootstrap.wizard.min.js │ ├── bower.json │ ├── bower_components │ ├── Waves │ │ └── 0.7.4 │ │ │ ├── waves.css │ │ │ ├── waves.js │ │ │ ├── waves.min.css │ │ │ ├── waves.min.js │ │ │ └── waves.min.js.map │ ├── animate.css │ │ ├── animate.css │ │ └── animate.min.css │ ├── autosize │ │ └── 3.0.5 │ │ │ ├── autosize.js │ │ │ └── autosize.min.js │ ├── bootstrap-select │ │ └── 1.7.2 │ │ │ ├── css │ │ │ ├── bootstrap-select.css │ │ │ ├── bootstrap-select.css.map │ │ │ └── bootstrap-select.min.css │ │ │ └── js │ │ │ ├── bootstrap-select.js │ │ │ ├── bootstrap-select.js.map │ │ │ ├── bootstrap-select.min.js │ │ │ └── i18n │ │ │ ├── defaults-bg_BG.js │ │ │ ├── defaults-bg_BG.min.js │ │ │ ├── defaults-cs_CZ.js │ │ │ ├── defaults-cs_CZ.min.js │ │ │ ├── defaults-da_DK.js │ │ │ ├── defaults-da_DK.min.js │ │ │ ├── defaults-de_DE.js │ │ │ ├── defaults-de_DE.min.js │ │ │ ├── defaults-en_US.js │ │ │ ├── defaults-en_US.min.js │ │ │ ├── defaults-es_CL.js │ │ │ ├── defaults-es_CL.min.js │ │ │ ├── defaults-eu.js │ │ │ ├── defaults-eu.min.js │ │ │ ├── defaults-fa_IR.js │ │ │ ├── defaults-fa_IR.min.js │ │ │ ├── defaults-fr_FR.js │ │ │ ├── defaults-fr_FR.min.js │ │ │ ├── defaults-hu_HU.js │ │ │ ├── defaults-hu_HU.min.js │ │ │ ├── defaults-it_IT.js │ │ │ ├── defaults-it_IT.min.js │ │ │ ├── defaults-ko_KR.js │ │ │ ├── defaults-ko_KR.min.js │ │ │ ├── defaults-nl_NL.js │ │ │ ├── defaults-nl_NL.min.js │ │ │ ├── defaults-pl_PL.js │ │ │ ├── defaults-pl_PL.min.js │ │ │ ├── defaults-pt_BR.js │ │ │ ├── defaults-pt_BR.min.js │ │ │ ├── defaults-pt_PT.js │ │ │ ├── defaults-pt_PT.min.js │ │ │ ├── defaults-ro_RO.js │ │ │ ├── defaults-ro_RO.min.js │ │ │ ├── defaults-ru_RU.js │ │ │ ├── defaults-ru_RU.min.js │ │ │ ├── defaults-sk_SK.js │ │ │ ├── defaults-sk_SK.min.js │ │ │ ├── defaults-sl_SI.js │ │ │ ├── defaults-sl_SI.min.js │ │ │ ├── defaults-sv_SE.js │ │ │ ├── defaults-sv_SE.min.js │ │ │ ├── defaults-tr_TR.js │ │ │ ├── defaults-tr_TR.min.js │ │ │ ├── defaults-ua_UA.js │ │ │ ├── defaults-ua_UA.min.js │ │ │ ├── defaults-zh_CN.js │ │ │ ├── defaults-zh_CN.min.js │ │ │ ├── defaults-zh_TW.js │ │ │ └── defaults-zh_TW.min.js │ ├── bootstrap-sweetalert │ │ └── lib │ │ │ ├── sweet-alert-animations.less │ │ │ ├── sweet-alert-combine.less │ │ │ ├── sweet-alert.css │ │ │ ├── sweet-alert.js │ │ │ ├── sweet-alert.less │ │ │ └── sweet-alert.min.js │ ├── bootstrap │ │ └── 3.3.6 │ │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap-theme.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ └── npm.js │ ├── chosen │ │ ├── chosen.jquery.min.js │ │ └── chosen.min.css │ ├── eonasdan-bootstrap-datetimepicker │ │ └── 4.7.14 │ │ │ ├── css │ │ │ ├── bootstrap-datetimepicker.css │ │ │ └── bootstrap-datetimepicker.min.css │ │ │ └── js │ │ │ └── bootstrap-datetimepicker.min.js │ ├── flot-orderBars │ │ ├── .bower.json │ │ ├── README.md │ │ └── js │ │ │ └── jquery.flot.orderBars.js │ ├── flot.curvedlines │ │ └── curvedLines.js │ ├── flot │ │ ├── jquery.flot.js │ │ └── jquery.flot.resize.js │ ├── jquery.easy-pie-chart │ │ └── 2.1.6 │ │ │ ├── angular.easypiechart.min.js │ │ │ ├── easypiechart.min.js │ │ │ ├── jquery.easypiechart.js │ │ │ └── jquery.easypiechart.min.js │ ├── jquery │ │ └── 2.1.4 │ │ │ ├── jquery.js │ │ │ ├── jquery.min.js │ │ │ └── jquery.min.map │ ├── malihu-custom-scrollbar-plugin │ │ ├── jquery.mCustomScrollbar.concat.min.js │ │ ├── jquery.mCustomScrollbar.css │ │ ├── jquery.mCustomScrollbar.js │ │ ├── jquery.mCustomScrollbar.min.css │ │ └── mCSB_buttons.png │ ├── material-design-iconic-font │ │ └── dist │ │ │ ├── css │ │ │ ├── material-design-iconic-font.css │ │ │ └── material-design-iconic-font.min.css │ │ │ └── fonts │ │ │ ├── Material-Design-Iconic-Font.ttf │ │ │ └── Material-Design-Iconic-Font.woff │ ├── moment │ │ └── 2.10.6 │ │ │ ├── moment-with-locales.js │ │ │ ├── moment-with-locales.min.js │ │ │ └── moment.min.js │ ├── nouislider │ │ └── distribute │ │ │ ├── jquery.nouislider.all.js │ │ │ ├── jquery.nouislider.all.min.js │ │ │ ├── jquery.nouislider.js │ │ │ ├── jquery.nouislider.min.css │ │ │ ├── jquery.nouislider.min.js │ │ │ └── jquery.nouislider.pips.min.css │ └── summernote │ │ └── dist │ │ ├── summernote-bs3.css │ │ ├── summernote.css │ │ ├── summernote.js │ │ └── summernote.min.js │ ├── farbtastic │ ├── farbtastic.css │ ├── farbtastic.js │ ├── farbtastic.min.js │ ├── marker.png │ ├── mask.png │ └── wheel.png │ ├── fileinput │ ├── fileinput.js │ ├── fileinput.less │ └── fileinput.min.js │ ├── input-mask │ ├── input-mask.js │ └── input-mask.min.js │ ├── sparklines │ ├── jquery.sparkline.js │ └── jquery.sparkline.min.js │ └── summernote │ ├── .bower.json │ └── dist │ ├── summernote-bs3.css │ ├── summernote-updated.js │ ├── summernote-updated.min.js │ ├── summernote.css │ ├── summernote.js │ └── summernote.min.js └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | **/target 2 | .idea 3 | *.iml 4 | log 5 | *.log 6 | doc/.vuepress/dist 7 | doc/node_modules 8 | 备忘.md 9 | .classpath 10 | .factorypath 11 | .vscode 12 | .settings 13 | .project 14 | .DS_Store 15 | .settings 16 | .project 17 | launch.json 18 | website 19 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | ## latest 3 | - Fix 业务日志中如果获取不到字段值对应的中文名称则返回字段名本身,代替之前的null 4 | - Issue IN查询增加使用数组作为参数 5 | - Change 调整按钮样式 6 | - Issue BaseService增加缓存支持 7 | - Issue BaseService添加count方法 8 | - Issue 添加实现性质功能:使用leaflet提供gis服务 9 | - Issue 添加实验性质功能:使用actuator对应用进行监控 10 | - Issue 针对ajax-object.js返回的异常信息统一处理 11 | - Issue 代码生成功能针对列表页面生成根据字段排序功能 12 | - Issue service层封装根据sql和条件查询数据列表功能 13 | 14 | ## Fixes 15 | - Fix 更新缓存的时候连带更新常量工具类中使用的本地(TimeCacheMap)缓存 16 | -------------------------------------------------------------------------------- /doc/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /doc/.vuepress/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/.vuepress/public/logo.png -------------------------------------------------------------------------------- /doc/base/jdkAndMaven.md: -------------------------------------------------------------------------------- 1 | # 开发前必读 2 | 本章介绍本书所需要的一些准备工作. 请确保把各部分的准备工作完成 3 | 4 | 本文档基于Intellij IDEA,Mysql,Maven,JDK8这四个基本工具, 5 | 当然你也可以用Eclipse开发工具。 6 | 7 | **Jdk** 8 | 9 | - 请选用当前最新的版本,根据平台选用X64或X86版本的JDK8,并妥善安装 10 | 11 | **MySQL** 12 | 13 | - [Mysql官网](https://dev.mysql.com/) 14 | - [下载页面](https://dev.mysql.com/downloads/), 选用5.6以上系列的版本 15 | - 妥善安装,并配置账号密码 16 | 17 | 18 | **Intellij IDEA** 19 | - [Intellij IDEA官网](https://www.jetbrains.com/idea/) 20 | - [下载页面](https://www.jetbrains.com/idea/download/) 21 | - 请自行下载安装合适版本的IDEA(或者eclipse) 22 | 23 | **Lombok** 24 | - Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。 25 | - 本系统用通过给实体类增加@Data注解让给实体类自动生成setter,getter方法。 26 | - 开发之前需要安装开发工具对应的Lombok插件 27 | - 添加新的实体的时候要再类名上增加@Data注解。 28 | 29 | **Maven** 30 | -[下载页面](http://maven.apache.org/download.cgi) 31 | 32 | -------------------------------------------------------------------------------- /doc/base/modules.md: -------------------------------------------------------------------------------- 1 | # 基本包结构 2 | 3 | 本节详细说明本项目的基本目录结构 4 | 5 | ## material-admin模块 6 | 7 | material-admin包含3个核心模块: 8 | - material-core 项目核心模块,包括实体层,dao层,service层,以及各种工具类 9 | - material-generator 代码生成模块,配合IDEA Intellij的代码生成插件:webflash-generator可以提高开发效率 10 | - material-manage 项目web模块,包含项目页面内容,controller层 11 | 12 | 其中material-manage是一个java web模块 13 | 其他都为java se模块, 14 | -------------------------------------------------------------------------------- /doc/base/zanshan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/base/zanshan.jpg -------------------------------------------------------------------------------- /doc/config/application.md: -------------------------------------------------------------------------------- 1 | # application配置 2 | 3 | 完善中... -------------------------------------------------------------------------------- /doc/config/beetl.md: -------------------------------------------------------------------------------- 1 | # beetl模板配置 2 | 3 | 完善中... -------------------------------------------------------------------------------- /doc/config/ehcache.md: -------------------------------------------------------------------------------- 1 | # ehcache缓存配置 2 | 3 | 完善中... -------------------------------------------------------------------------------- /doc/config/logback.md: -------------------------------------------------------------------------------- 1 | # 日志输出配置 2 | 3 | 完善中... -------------------------------------------------------------------------------- /doc/config/shiro.md: -------------------------------------------------------------------------------- 1 | # shiro权限配置 2 | 3 | 完善中... -------------------------------------------------------------------------------- /doc/config/swagger.md: -------------------------------------------------------------------------------- 1 | # swagger在线文档配置 2 | 3 | 完善中... -------------------------------------------------------------------------------- /doc/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/demo.gif -------------------------------------------------------------------------------- /doc/donate.md: -------------------------------------------------------------------------------- 1 | 2 | ::: tip Donate 3 | 如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁表示鼓励 4 | ::: 5 | 6 | 7 | -------------------------------------------------------------------------------- /doc/ecosystem/doc/boy-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/boy-list.png -------------------------------------------------------------------------------- /doc/ecosystem/doc/code-generate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/code-generate.jpg -------------------------------------------------------------------------------- /doc/ecosystem/doc/doc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/doc.jpg -------------------------------------------------------------------------------- /doc/ecosystem/doc/generate-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/generate-result.png -------------------------------------------------------------------------------- /doc/ecosystem/doc/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/menu.png -------------------------------------------------------------------------------- /doc/ecosystem/doc/role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/role.png -------------------------------------------------------------------------------- /doc/ecosystem/doc/summary.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/summary.jpg -------------------------------------------------------------------------------- /doc/ecosystem/doc/table.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/table.jpg -------------------------------------------------------------------------------- /doc/ecosystem/doc/word.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/ecosystem/doc/word.jpg -------------------------------------------------------------------------------- /doc/feature/dict.md: -------------------------------------------------------------------------------- 1 | # 字典管理 2 | 3 | 该模块提供了对各种枚举数据进行维护的功能。 4 | 5 |  6 | 7 | 后台中常量工厂ConstantFactory封装了的对字典的常规功能。 8 | 9 | ## 根据名称获取其所有字典列表 10 | 11 | 使用场景,比如页面查询表单中需要一个联系人关系的下拉框来所搜索,具体用法为: 12 | 13 | ```html 14 | <#select id="account" name="我方账户" > 15 | @for(dict in constant.getDicts('学历类型')){ 16 | ${dict.name} 17 | @} 18 | #select> 19 | ``` 20 | 21 | 22 | ## 根据字典id获取字典名称 23 | 24 | 数据库中存的是字典id,但是页面展示需要具体的值 25 | 26 | ```java 27 | String degreeName = ConstantFactory.me().findByPnameAndCode("学历类型",1).getName(); 28 | model.addAttribute('degreeName',degreeName); 29 | ``` 30 | 31 | 32 | -------------------------------------------------------------------------------- /doc/feature/img/admin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/admin.jpg -------------------------------------------------------------------------------- /doc/feature/img/dict.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/dict.jpg -------------------------------------------------------------------------------- /doc/feature/img/loginLog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/loginLog.jpg -------------------------------------------------------------------------------- /doc/feature/img/menu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/menu.jpg -------------------------------------------------------------------------------- /doc/feature/img/monitor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/monitor.jpg -------------------------------------------------------------------------------- /doc/feature/img/src.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/src.jpg -------------------------------------------------------------------------------- /doc/feature/img/sysConfig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/sysConfig.jpg -------------------------------------------------------------------------------- /doc/feature/img/user_role.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/user_role.jpg -------------------------------------------------------------------------------- /doc/feature/img/web-js.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/web-js.jpg -------------------------------------------------------------------------------- /doc/feature/img/web-page.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/web-page.jpg -------------------------------------------------------------------------------- /doc/feature/img/web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/feature/img/web.jpg -------------------------------------------------------------------------------- /doc/feature/menu.md: -------------------------------------------------------------------------------- 1 | # 菜单管理 2 | 3 | 菜单管理包含两部分:一个是左侧菜单树的维护,一个是页面操作功能(主要是按钮)的维护。 4 | 不管是左侧菜单还是按钮,都需要在角色中进行配置才能正常显示出来。 5 | 6 | 先看下菜单列表大致了解下菜单管理都维护哪些内容: 7 | 8 |  9 | 10 | ## 左侧菜单维护 11 | - 菜单维护基本上采用了两级菜单形式:如上图所示:第一级菜单为“系统管理”,“系统管理”中包含了“用户管理”、“角色管理”等多个二级菜单。 12 | - 其中“系统管理”为虚拟菜单,点击“系统管理”并不会跳转到真实的页面而是展开其子菜单列表;所以虚拟菜单的请求地址应配置为“#”。 13 | - “系统管理”下的子菜单,例如“业务日志”需要配置请求地址,比如配置为“/log”,点击“业务日志”会跳转到业务日志列表页面。 14 | ## 页面功能维护 15 | - 菜单维护中的另外一种形式我功能(主要是操作按钮或者页面中的链接)的维护。点击按钮虽然不需要跳转到具体的页面但是也需要配置请求地址,因为代码中需要通过该地址来判断用户是否拥有操作权限。 16 | - 例如“业务日志”菜单中有三个子菜单:“清空日志”的请求地址配置为:"log/delLog",则页面进行控制权限的写法为: 17 | 18 | ```html 19 | @if(shiro.hasPermission("/log/delLog")){ 20 | <#button name="清空日志" icon="fa-minus" clickFun="OptLog.delLog()" space="true"/> 21 | @} 22 | ``` 23 | 24 | 25 | 菜单管理的其他维护参数不赘述,具体作用配置试用一下即可知晓。 -------------------------------------------------------------------------------- /doc/feature/monitor.md: -------------------------------------------------------------------------------- 1 | # 监控管理 2 | 3 | 这里的监控功能用的是alibaba druid自带的监控功能 4 | 5 |  -------------------------------------------------------------------------------- /doc/helloworld/create_table.md: -------------------------------------------------------------------------------- 1 | # 建表 2 | 比如我们要开发一个系统参数的管理功能,该功能主要对系统相关参数进行增删该查。 3 | 4 | ~~建表语句如下:~~ 5 | 6 | ```sql 7 | CREATE TABLE `t_sys_cfg` ( 8 | `id` bigint(64) NOT NULL AUTO_INCREMENT COMMENT '自增主键', 9 | `cfg_name` varchar(100) DEFAULT NULL COMMENT '参数名', 10 | `cfg_value` varchar(3000) DEFAULT NULL COMMENT '参数值', 11 | `cfg_desc` varchar(200) DEFAULT NULL COMMENT '参数描述', 12 | PRIMARY KEY (`id`) 13 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='系统参数'; 14 | ``` 15 | 16 | **注意** 17 | 18 | - 看到上面的 ~~建表语句如下:~~ 了么,知道为什么要划掉么?因为在使用本系统做开发的时候强烈建议不用自己建表,而是直接根据实体在系统启动的时候自动生成表。因为以后如果我们用代码生成工具的话,你要建个表,再写一遍实体类,不近工作做了两套,而且容易出现两别字段定义不一致的问题。 19 | - 当然在生产环境,我个人是不建议开启Spring Boot的自动更新表结构功能的,还是自己手动建表比较稳妥。 20 | -------------------------------------------------------------------------------- /doc/helloworld/crud.md: -------------------------------------------------------------------------------- 1 | # 简单的CRUD 2 | 3 | 本章将手把手带你开发一个增删该查功能,包含从建表到代码(controller,service,dao,页面),到权限控制,以及一个相对复杂的查询。 4 | 5 | **PS** 其实真正开发中你完全可以使用代码生成工具一键生成这些功能;不过工具再好用,过程自己还是要掌握的,对吧! 6 | 7 | 接下来我们要开发一个参数管理功能,用于对系统参数进行增删该查 8 | 9 | ## 本章知识点 10 | * [建表](./create_table.md) 11 | * [基础代码](./base.md) 12 | * [list](./list.md) 13 | * [add](./add.md) 14 | * [delete](./delete.md) 15 | * [update](./update.md) 16 | * [添加菜单和分配权限](./menuAndPermission.md) 17 | 18 | -------------------------------------------------------------------------------- /doc/helloworld/menuAndPermission.md: -------------------------------------------------------------------------------- 1 | # 添加菜单和分配权限 2 | 现在功能已经开发完毕了,但是在页面上并不能使用这个功能; 3 | 因为我没有给当前用不配置参数管理的权限。下面分两步骤启用参数管理功能 4 | 5 | - 在菜单管理中添加参数管理的功能,包括一个菜单项(点击链接进入列表页面)和一个个功能项(新增) 6 | - 在权限管理中给指定的角色配置上述两个资源 7 | - 在用户管理中给指定的用户配置指定的角色 8 | 9 | 10 | 11 | ## 添加菜单项 12 | 13 | 在菜单管理中添加4条记录,添加过程中要注意一下几点: 14 | - 父级编号:选中的父级编号决定了当前功能所属哪一个模块,比如“参数管理”这一项的父级编号选择“系统管理”,则“参数管理”这一功能菜单在“系统管理”模块下。 15 | - 是否是菜单:选择“是”,则菜单会在左侧菜单栏显示,选择“否”,则不会显示在左侧菜单栏。针对按钮功能要选择“否” 16 | - 请求地址,针对菜单选择“是”的记录,则该地址必须为页面打开的地址,针是否是菜单选择“否”的记录,则该地址必须与用作权限判断的字符串一致。 17 | 18 | ``` 19 | 比如“添加系统参数”这一项的请求地址为“cfg/add”, 则页面判断是否有操作权限的的代码为: 20 | 21 | @if(shiro.hasPermission("/cfg/add")){ 22 | <#button name="添加" icon="fa-plus" clickFun="Cfg.openAddCfg()" space="true"/> 23 | @} 24 | ``` 25 | 26 | 添加四条菜单记录: 27 | 28 | - 参数管理 29 | - 添加系统参数 30 | 31 |  32 | 33 | ## 为角色配置菜单项 34 | 35 |  36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /doc/img/action/task_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/action/task_add.png -------------------------------------------------------------------------------- /doc/img/action/task_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/action/task_list.png -------------------------------------------------------------------------------- /doc/img/action/task_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/action/task_log.png -------------------------------------------------------------------------------- /doc/img/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/alipay.jpg -------------------------------------------------------------------------------- /doc/img/donate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/donate.jpg -------------------------------------------------------------------------------- /doc/img/haike.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/haike.jpg -------------------------------------------------------------------------------- /doc/img/helloworld/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/helloworld/menu.png -------------------------------------------------------------------------------- /doc/img/helloworld/role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/helloworld/role.png -------------------------------------------------------------------------------- /doc/img/quickstart/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/quickstart/index.png -------------------------------------------------------------------------------- /doc/img/quickstart/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/quickstart/login.png -------------------------------------------------------------------------------- /doc/img/resource/menu_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/resource/menu_1.jpg -------------------------------------------------------------------------------- /doc/img/wechat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/img/wechat.jpg -------------------------------------------------------------------------------- /doc/other/faq.md: -------------------------------------------------------------------------------- 1 | # 常见问题 2 | 3 | ## 本地开发正常,打包运行的时候提交中文内容乱码,检查了数据库编码也没问题? 4 | 5 | 打包为jar包运行的时候可以指定运行时编码为UTF8: 6 | ``` 7 | java -Dfile.encoding=utf-8 -jar xxxxxxx.jar 8 | ``` 9 | 10 | ## 使用代码生成器的时候总是报找不到Generator类或者找不到code.json配置文件 11 | 12 | 下载项目后首先mvn package 保证项目能构建并打包成功再使用代码生成器 13 | 14 | -------------------------------------------------------------------------------- /doc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "docs:dev": "vuepress dev docs", 4 | "docs:build": "vuepress build docs" 5 | }, 6 | "devDependencies": { 7 | "@vuepress/plugin-google-analytics": "^1.0.0-alpha.0" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /doc/quickstart/clone.md: -------------------------------------------------------------------------------- 1 | # 克隆本项目 2 | 3 | 本项目地址为:[https://github.com/enilu/material-admin](https://github.com/enilu/material-admin),如果对你有用,欢迎给个star 4 | 5 | 项目共两个分,支分别为: 6 | - master 项目主分支 7 | - develop 开发分支,代码最新,但是不稳定 8 | 9 | 进入控制台输入以下命令将项目克隆到本地: 10 | 11 | git clone https://github.com/enilu/material-admin.git 12 | 13 | - 使用IDEA Intellij或者eclipse导入项目,记得开发工具要安装lombook插件哦 -------------------------------------------------------------------------------- /doc/quickstart/config.md: -------------------------------------------------------------------------------- 1 | # 配置项目 2 | 3 | 你已经下载项目,并且初始化好了数据库,那么接下来只需要更改相应的配置就可以运行该项目了 4 | 5 | - 更改src/resources/application-dev.properties配置: 6 | 7 | ```properties 8 | ## 开发环境配置,修改为真实的用户名密码 9 | spring.datasource.url=jdbc:mysql://localhost:3306/material 10 | spring.datasource.username=root 11 | spring.datasource.password=root 12 | 13 | ``` -------------------------------------------------------------------------------- /doc/quickstart/index.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/quickstart/index.jpg -------------------------------------------------------------------------------- /doc/quickstart/initDb.md: -------------------------------------------------------------------------------- 1 | # 初始化数据 2 | 3 | 本系统使用mysql数据库: 4 | 5 | - 在mysql中创建数据库 material 6 | 7 | ```sql 8 | CREATE DATABASE IF NOT EXISTS material DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 9 | 10 | ``` 11 | - 启动项目系统会自动建表并初始化数据。 -------------------------------------------------------------------------------- /doc/quickstart/login.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/quickstart/login.jpg -------------------------------------------------------------------------------- /doc/quickstart/quickstart.md: -------------------------------------------------------------------------------- 1 | # 10分钟把项目跑起来 2 | 3 | ## 真的10分钟吗? 4 | 当然,如果你的网速给力,并且依赖的软件都下载安装好了,并且手速够快,是不是前置条件有点多?^_^ 5 | 6 | 7 | ## 本章知识点 8 | - [克隆项目](./clone.md) 9 | - [初始化数据](./initDb.md) 10 | - [配置项目](./config.md) 11 | - [启动项目](./startup.md) -------------------------------------------------------------------------------- /doc/quickstart/startup.md: -------------------------------------------------------------------------------- 1 | # 启动项目 2 | 3 | - 右键直接运行 cn.enilu.material.admin.AdminApplication类即可启动material-manage后台管理系统 4 | - 系统默认是用8085端口,参考配置文件src/resources/application.properties 5 | ```properties 6 | server.port=8085 7 | ``` 8 | - 启动成功后访问http://localhost:8085 如下图所示 9 |  10 | - 输入用户名/密码:admin/admin即可登录: 11 |  12 | 13 | 14 | so,是不是很简单! -------------------------------------------------------------------------------- /doc/文档完善中: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/doc/文档完善中 -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/constant/Const.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.constant; 2 | 3 | /** 4 | * 系统常量 5 | * 6 | * @author fengshuonan 7 | * @date 2017年2月12日 下午9:42:53 8 | */ 9 | public interface Const { 10 | long SYSTEM_USER_ID=-1; 11 | 12 | /** 13 | * 用户密码加密key 14 | */ 15 | String CRYPT_DES_KEY = "sc123456"; 16 | /** 17 | * 系统默认的管理员密码 18 | */ 19 | String DEFAULT_PWD = "111111"; 20 | 21 | /** 22 | * 管理员角色的名字 23 | */ 24 | String ADMIN_NAME = "administrator"; 25 | 26 | /** 27 | * 管理员id 28 | */ 29 | Integer ADMIN_ID = 1; 30 | 31 | /** 32 | * 超级管理员角色id 33 | */ 34 | Integer ADMIN_ROLE_ID = 1; 35 | 36 | /** 37 | * 接口文档的菜单名 38 | */ 39 | String API_MENU_NAME = "接口文档"; 40 | 41 | } 42 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/constant/cache/Cache.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.constant.cache; 2 | 3 | /** 4 | * 所有缓存名称的集合 5 | * 6 | * @author fengshuonan 7 | * @date 2017-04-24 21:56 8 | */ 9 | public interface Cache { 10 | 11 | 12 | /** 13 | * 常量缓存 14 | */ 15 | String CONSTANT = "CONSTANT"; 16 | String APPLICATION = "APPLICATION"; 17 | } 18 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/constant/cache/CacheKey.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.constant.cache; 2 | 3 | /** 4 | * 缓存的key集合 5 | * 6 | * @author fengshuonan 7 | * @date 2017-04-25 9:37 8 | */ 9 | public interface CacheKey { 10 | 11 | /** 12 | * ConstantFactory中的缓存 13 | */ 14 | String ROLES_NAME = "roles_name_"; 15 | 16 | String SINGLE_ROLE_NAME = "single_role_name_"; 17 | 18 | String SINGLE_ROLE_TIP = "single_role_tip_"; 19 | 20 | String DEPT_NAME = "dept_name_"; 21 | 22 | String DICT_NAME = "dict_name_"; 23 | String DICT = "dict_"; 24 | 25 | 26 | String COURSE_NAME = "course_name_"; 27 | String ORG_NAME = "org_name_"; 28 | String DIC_ALL = "dic_all_"; 29 | String CFG = "cfg_"; 30 | String MENU_NAME = "menu_name_" ; 31 | String SYS_USER_NAME = "SYS_USER_NAME" ; 32 | } 33 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/constant/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Created on 2018/3/28 0028. 3 | * 4 | * @author enilu 5 | */ 6 | package cn.enilu.material.bean.constant; -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/constant/state/LogSucceed.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.constant.state; 2 | 3 | /** 4 | * 业务是否成功的日志记录 5 | * 6 | * @author fengshuonan 7 | * @Date 2017年1月22日 下午12:14:59 8 | */ 9 | public enum LogSucceed { 10 | 11 | SUCCESS("成功"), 12 | FAIL("失败"); 13 | 14 | String message; 15 | 16 | LogSucceed(String message) { 17 | this.message = message; 18 | } 19 | 20 | public String getMessage() { 21 | return message; 22 | } 23 | 24 | public void setMessage(String message) { 25 | this.message = message; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/constant/state/LogType.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.constant.state; 2 | 3 | /** 4 | * 日志类型 5 | * 6 | * @author fengshuonan 7 | * @Date 2017年1月22日 下午12:14:59 8 | */ 9 | public enum LogType { 10 | 11 | LOGIN("登录日志"), 12 | LOGIN_FAIL("登录失败日志"), 13 | EXIT("退出日志"), 14 | EXCEPTION("异常日志"), 15 | BUSSINESS("业务日志"); 16 | 17 | String message; 18 | 19 | LogType(String message) { 20 | this.message = message; 21 | } 22 | 23 | public String getMessage() { 24 | return message; 25 | } 26 | 27 | public void setMessage(String message) { 28 | this.message = message; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/constant/state/Order.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.constant.state; 2 | 3 | /** 4 | * 数据库排序 5 | * 6 | * @author fengshuonan 7 | * @Date 2017年5月31日20:48:41 8 | */ 9 | public enum Order { 10 | 11 | ASC("asc"), DESC("desc"); 12 | 13 | private String des; 14 | 15 | Order(String des) { 16 | this.des = des; 17 | } 18 | 19 | public String getDes() { 20 | return des; 21 | } 22 | 23 | public void setDes(String des) { 24 | this.des = des; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/core/BussinessLog.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.core; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | import cn.enilu.material.bean.dictmap.SystemDict; 5 | 6 | import java.lang.annotation.*; 7 | 8 | /** 9 | * 标记需要做业务日志的方法 10 | * 11 | * @author fengshuonan 12 | * @date 2017-03-31 12:46 13 | */ 14 | @Inherited 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Target({ElementType.METHOD}) 17 | public @interface BussinessLog { 18 | 19 | /** 20 | * 业务的名称,例如:"修改菜单" 21 | */ 22 | String value() default ""; 23 | 24 | /** 25 | * 被修改的实体的唯一标识,例如:菜单实体的唯一标识为"id" 26 | */ 27 | String key() default "id"; 28 | 29 | /** 30 | * 字典(用于查找key的中文名称和字段的中文名称) 31 | */ 32 | Class extends AbstractDictMap> dict() default SystemDict.class; 33 | } 34 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/core/Permission.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.core; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 权限注解 用于检查权限 规定访问权限 11 | * 12 | * @example @Permission({roleID1,roleID2}) 13 | * @example @Permission 14 | */ 15 | @Inherited 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Target({ElementType.METHOD}) 18 | public @interface Permission { 19 | String[] value() default {}; 20 | } 21 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/CfgDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 字典map 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:43 10 | */ 11 | public class CfgDict extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("cfgId","参数id"); 16 | put("cfgName","参数名称"); 17 | } 18 | 19 | @Override 20 | protected void initBeWrapped() { 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/CommonDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | public class CommonDict extends AbstractDictMap { 6 | @Override 7 | public void init() { 8 | put("id","ID"); 9 | put("name","名称"); 10 | put("code","编码"); 11 | put("title","标题"); 12 | put("remark","备注"); 13 | put("descript","备注"); 14 | } 15 | 16 | @Override 17 | protected void initBeWrapped() { 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/DeptDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 部门的映射 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:01 10 | */ 11 | public class DeptDict extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("deptId", "部门名称"); 16 | put("id","部门名称"); 17 | put("num", "部门排序"); 18 | put("pid", "上级名称"); 19 | put("simplename", "部门简称"); 20 | put("fullname", "部门全称"); 21 | put("tips", "备注"); 22 | } 23 | 24 | @Override 25 | protected void initBeWrapped() { 26 | putFieldWrapperMethodName("deptId", "getDeptName"); 27 | putFieldWrapperMethodName("pid", "getDeptName"); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/DictMap.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 字典map 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:43 10 | */ 11 | public class DictMap extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("dictId","字典名称"); 16 | put("dictName","字典名称"); 17 | put("dictValues","字典内容"); 18 | } 19 | 20 | @Override 21 | protected void initBeWrapped() { 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/LogDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 日志的字典 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:01 10 | */ 11 | public class LogDict extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("tips","备注"); 16 | } 17 | 18 | @Override 19 | protected void initBeWrapped() { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/MenuDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 菜单的字典 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:01 10 | */ 11 | public class MenuDict extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("menuId","菜单id"); 16 | put("id","菜单id"); 17 | put("code","菜单编号"); 18 | put("pcode","菜单父编号"); 19 | put("name","菜单名称"); 20 | put("icon","菜单图标"); 21 | put("url","url地址"); 22 | put("num","菜单排序号"); 23 | put("levels","菜单层级"); 24 | put("tips","备注"); 25 | put("status","菜单状态"); 26 | put("isopen","是否打开"); 27 | put("",""); 28 | } 29 | 30 | @Override 31 | protected void initBeWrapped() { 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/NoticeMap.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 通知的映射 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:01 10 | */ 11 | public class NoticeMap extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("title", "标题"); 16 | put("content", "内容"); 17 | } 18 | 19 | @Override 20 | protected void initBeWrapped() { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/RoleDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 角色的字典 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:01 10 | */ 11 | public class RoleDict extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("roleId","角色名称"); 16 | put("num","角色排序"); 17 | put("pid","角色的父级"); 18 | put("name","角色名称"); 19 | put("deptid","部门名称"); 20 | put("tips","备注"); 21 | put("ids","资源名称"); 22 | } 23 | 24 | @Override 25 | protected void initBeWrapped() { 26 | putFieldWrapperMethodName("pid","getSingleRoleName"); 27 | putFieldWrapperMethodName("deptid","getDeptName"); 28 | putFieldWrapperMethodName("roleId","getSingleRoleName"); 29 | putFieldWrapperMethodName("ids","getMenuNames"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/SystemDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 系统相关的字典 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:48 10 | */ 11 | public class SystemDict extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | 16 | } 17 | 18 | @Override 19 | protected void initBeWrapped() { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dictmap/TaskDict.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dictmap; 2 | 3 | import cn.enilu.material.bean.dictmap.base.AbstractDictMap; 4 | 5 | /** 6 | * 字典map 7 | * 8 | * @author fengshuonan 9 | * @date 2017-05-06 15:43 10 | */ 11 | public class TaskDict extends AbstractDictMap { 12 | 13 | @Override 14 | public void init() { 15 | put("taskId","任务id"); 16 | put("name","任务名称"); 17 | } 18 | 19 | @Override 20 | protected void initBeWrapped() { 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/dto/UserDto.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.dto; 2 | 3 | import lombok.Data; 4 | import org.springframework.format.annotation.DateTimeFormat; 5 | 6 | import java.util.Date; 7 | 8 | /** 9 | * 用户传输bean 10 | * 11 | * @author enilu.cn 12 | * @Date 2017/5/5 22:40 13 | */ 14 | @Data 15 | public class UserDto{ 16 | 17 | private Long id; 18 | private String account; 19 | private String password; 20 | private String salt; 21 | private String name; 22 | 23 | @DateTimeFormat(pattern = "yyyy-MM-dd") 24 | private Date birthday; 25 | private Integer sex; 26 | private String email; 27 | private String phone; 28 | private String roleid; 29 | private Long deptid; 30 | private Long eduorgid; 31 | private Integer status; 32 | private Date createtime; 33 | private Integer version; 34 | private String avatar; 35 | 36 | 37 | } 38 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/entity/system/FileInfo.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.entity.system; 2 | 3 | import cn.enilu.material.bean.entity.BaseEntity; 4 | import lombok.Data; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.Table; 9 | import javax.persistence.Transient; 10 | 11 | @Data 12 | @Entity 13 | @Table(name="t_sys_file_info") 14 | public class FileInfo extends BaseEntity { 15 | @Column 16 | private String originalFileName; 17 | @Column 18 | private String realFileName; 19 | @Transient 20 | private String ablatePath; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/entity/system/Notice.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.entity.system; 2 | 3 | import cn.enilu.material.bean.entity.BaseEntity; 4 | import lombok.Data; 5 | import org.hibernate.annotations.Table; 6 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; 7 | 8 | import javax.persistence.Column; 9 | import javax.persistence.Entity; 10 | import javax.persistence.EntityListeners; 11 | 12 | /** 13 | * Created on 2018/4/2 0002. 14 | * 15 | * @author enilu 16 | */ 17 | @Entity(name="t_sys_notice") 18 | @Table(appliesTo = "t_sys_notice",comment = "系统通知") 19 | @Data 20 | @EntityListeners(AuditingEntityListener.class) 21 | public class Notice extends BaseEntity { 22 | @Column 23 | private String title; 24 | @Column 25 | private Integer type; 26 | @Column 27 | private String content; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/entity/system/Relation.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.entity.system; 2 | 3 | import lombok.Data; 4 | import org.hibernate.annotations.Table; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | import javax.persistence.GeneratedValue; 9 | import javax.persistence.Id; 10 | 11 | 12 | /** 13 | * Created on 2018/4/2 0002. 14 | * 15 | * @author enilu 16 | */ 17 | @Entity(name="t_sys_relation") 18 | @Table(appliesTo = "t_sys_relation",comment = "角色菜单关系") 19 | @Data 20 | public class Relation { 21 | @Id 22 | @GeneratedValue 23 | private Long id; 24 | @Column 25 | private Long menuid; 26 | @Column 27 | private Long roleid; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/entity/test/Boy.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.entity.test; 2 | import cn.enilu.material.bean.entity.BaseEntity; 3 | import lombok.Data; 4 | import org.hibernate.annotations.Table; 5 | 6 | import javax.persistence.Column; 7 | import javax.persistence.Entity; 8 | /** 9 | * 该实体用于测试生成代码 10 | */ 11 | @Entity(name="t_test_boy") 12 | @Table(appliesTo = "t_test_boy",comment = "男孩") 13 | @Data 14 | 15 | public class Boy extends BaseEntity { 16 | @Column(columnDefinition = "VARCHAR(32) COMMENT '姓名'") 17 | private String name; 18 | @Column(columnDefinition = "INT COMMENT '年龄'") 19 | private Integer age; 20 | @Column(columnDefinition = "VARCHAR(12) COMMENT '生日'") 21 | private String birthday; 22 | @Column(name = "has_girl_friend",columnDefinition = "TINYINT COMMENT '是否有女朋友'") 23 | private Boolean hasGirFriend; 24 | } 25 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/enumeration/ConfigKeyEnum.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.enumeration; 2 | 3 | public enum ConfigKeyEnum { 4 | 5 | SYSTEM_FILE_UPLOAD_PATH("system.file.upload.path"), 6 | SYSTEM_APP_NAME("system.app.name"), 7 | SYSTEM_RESOURCE_VERSION("system.resource.version"), 8 | /** 9 | * 腾讯sms接口appid 10 | */ 11 | API_TENCENT_SMS_APPID("api.tencent.sms.appid"), 12 | /** 13 | * 腾讯sms接口appkey 14 | */ 15 | API_TENCENT_SMS_APPKEY("api.tencent.sms.appkey"), 16 | /** 17 | * 腾讯sms接口签名参数 18 | */ 19 | API_TENCENT_SMS_SIGN("api.tencent.sms.sign"); 20 | 21 | private String value; 22 | 23 | ConfigKeyEnum(String value) { 24 | this.value = value; 25 | } 26 | 27 | public String getValue() { 28 | return value; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/enumeration/ProjectEnum.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.enumeration; 2 | 3 | /** 4 | * Created by deanyule on 17/8/16. 5 | */ 6 | public enum ProjectEnum { 7 | 8 | SCORE_CARD("ScoreCard"), 9 | DOLPHIN_PROD("dolphin"), 10 | SNOW_PRODUCT("PRJ_SNOW_PRODUCT"); 11 | 12 | private String value; 13 | 14 | ProjectEnum(String value) { 15 | this.value = value; 16 | } 17 | 18 | public String getValue() { 19 | return value; 20 | } 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/enumeration/RedisQueueName.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.enumeration; 2 | 3 | /** 4 | * redis队列名称 5 | * Created by zt on 2017/8/25 0015. 6 | */ 7 | public enum RedisQueueName { 8 | CREDIT_LIMIT("credit_limit"),COLLECTION_TAG("collection_tag"); 9 | 10 | private String value; 11 | 12 | public String getValue() { 13 | return value; 14 | } 15 | 16 | public void setValue(String value) { 17 | this.value = value; 18 | } 19 | 20 | RedisQueueName(String value) { 21 | this.value = value; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/enumeration/cms/BannerTypeEnum.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.enumeration.cms; 2 | 3 | public enum BannerTypeEnum { 4 | 5 | INDEX("index"), 6 | NEWS("news"), 7 | CASE ("case"), 8 | PRODUCT("product"), 9 | SOLUTION("solution"); 10 | 11 | private String value; 12 | 13 | BannerTypeEnum(String value) { 14 | this.value = value; 15 | } 16 | 17 | public String getValue() { 18 | return value; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/enumeration/cms/ChannelEnum.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.enumeration.cms; 2 | 3 | public enum ChannelEnum { 4 | 5 | NEWS(1L,"news"), 6 | PRODUCT(2L,"product"), 7 | SOLUTION(3L,"solution"), 8 | CASE(4L,"case"); 9 | 10 | 11 | private String value; 12 | private Long id; 13 | ChannelEnum(Long id,String value) { 14 | this.id = id; 15 | this.value = value; 16 | } 17 | 18 | public String getValue() { 19 | return value; 20 | } 21 | public Long getId(){ 22 | return id; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/ApplicationException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | /** 4 | * 封装异常 5 | * 6 | * @author fengshuonan 7 | * @Date 2017/12/28 下午10:32 8 | */ 9 | public class ApplicationException extends RuntimeException { 10 | 11 | private Integer code; 12 | 13 | private String message; 14 | 15 | public ApplicationException(ServiceExceptionEnum serviceExceptionEnum) { 16 | this.code = serviceExceptionEnum.getCode(); 17 | this.message = serviceExceptionEnum.getMessage(); 18 | } 19 | 20 | public Integer getCode() { 21 | return code; 22 | } 23 | 24 | public void setCode(Integer code) { 25 | this.code = code; 26 | } 27 | 28 | @Override 29 | public String getMessage() { 30 | return message; 31 | } 32 | 33 | public void setMessage(String message) { 34 | this.message = message; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/InvalidKaptchaException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | /** 4 | * 验证码错误异常 5 | * 6 | * @author fengshuonan 7 | * @date 2017-05-05 23:52 8 | */ 9 | public class InvalidKaptchaException extends RuntimeException { 10 | } 11 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/MailException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | public class MailException extends Exception { 4 | 5 | public MailException(String msg) { 6 | super(msg); 7 | } 8 | 9 | public MailException(String msg, Throwable e) { 10 | super(msg, e); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/ParamException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | public class ParamException extends Exception { 4 | 5 | public ParamException(String msg) { 6 | super(msg); 7 | } 8 | 9 | public ParamException(String msg, Throwable e) { 10 | super(msg, e); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/ServiceExceptionEnum.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | /** 4 | * 抽象接口 5 | * 6 | * @author fengshuonan 7 | * @date 2017-12-28-下午10:27 8 | */ 9 | public interface ServiceExceptionEnum { 10 | 11 | /** 12 | * 获取异常编码 13 | */ 14 | Integer getCode(); 15 | 16 | /** 17 | * 获取异常信息 18 | */ 19 | String getMessage(); 20 | } 21 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/SlConnectException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | import java.util.List; 4 | 5 | public class SlConnectException extends Exception { 6 | 7 | private static final long serialVersionUID = 1L; 8 | 9 | private String errorCode; 10 | private List details; 11 | 12 | public SlConnectException(String errorCode, String errorMessage) { 13 | super(errorMessage); 14 | this.errorCode = errorCode; 15 | } 16 | 17 | public String getErrorCode() { 18 | return errorCode; 19 | } 20 | 21 | public List getDetails() { 22 | return details; 23 | } 24 | 25 | public void setDetails(List details) { 26 | this.details = details; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/SlEvalException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | import java.util.List; 4 | 5 | public class SlEvalException extends Exception { 6 | 7 | private static final long serialVersionUID = 1L; 8 | 9 | private String errorCode; 10 | private List details; 11 | 12 | public SlEvalException(String errorCode, String errorMessage) { 13 | super(errorMessage); 14 | this.errorCode = errorCode; 15 | } 16 | 17 | public String getErrorCode() { 18 | return errorCode; 19 | } 20 | 21 | public List getDetails() { 22 | return details; 23 | } 24 | 25 | public void setDetails(List details) { 26 | this.details = details; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/ValidException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | public class ValidException extends RuntimeException { 4 | 5 | public ValidException(String msg) { 6 | super(msg); 7 | } 8 | 9 | public ValidException(String msg, Throwable e) { 10 | super(msg, e); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/XSException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | /** 4 | * 定义通用异常 5 | * code 存储异常代码 6 | * @author czhou 7 | */ 8 | public class XSException extends Exception { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | private String code; 13 | 14 | public String getCode() { 15 | return this.code; 16 | } 17 | 18 | public XSException(String code, String message, Throwable t) { 19 | super(message, t); 20 | this.code = code; 21 | } 22 | 23 | public XSException(String code, String message) { 24 | this(code, message, null); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/exception/XSRuntimeException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.exception; 2 | 3 | @SuppressWarnings("serial") 4 | public class XSRuntimeException extends RuntimeException { 5 | 6 | public XSRuntimeException(String msg) { 7 | super(msg); 8 | } 9 | 10 | public XSRuntimeException(String msg, Throwable e) { 11 | super(msg, e); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/vo/DictVo.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.vo; 2 | 3 | /** 4 | * DictVo 5 | * 6 | * @author enilu 7 | * @version 2018/8/14 0014 8 | */ 9 | public class DictVo { 10 | private String key; 11 | private String value; 12 | 13 | public String getKey() { 14 | return key; 15 | } 16 | 17 | public void setKey(String key) { 18 | this.key = key; 19 | } 20 | 21 | public String getValue() { 22 | return value; 23 | } 24 | 25 | public void setValue(String value) { 26 | this.value = value; 27 | } 28 | 29 | public DictVo() { 30 | } 31 | 32 | public DictVo(String key, String value) { 33 | this.key = key; 34 | this.value = value; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/vo/QuartzJob.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.vo; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.io.Serializable; 7 | import java.util.Date; 8 | import java.util.Map; 9 | 10 | @Getter 11 | @Setter 12 | public class QuartzJob implements Serializable { 13 | private String jobId; 14 | private String jobName; 15 | private String jobGroup; 16 | private String jobClass; 17 | private String description; 18 | private String cronExpression; 19 | private boolean concurrent; 20 | private String jobStatus; 21 | private Date nextTime; 22 | private Date previousTime; 23 | private boolean disabled; 24 | private Map dataMap; 25 | } 26 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/vo/front/Rets.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.vo.front; 2 | 3 | public class Rets { 4 | 5 | public static final Integer SUCCESS = 20000; 6 | public static final Integer FAILURE = 9999; 7 | public static final Integer TOKEN_EXPIRE=50014; 8 | 9 | public static Ret success(Object data) { 10 | return new Ret(Rets.SUCCESS, "成功", data); 11 | } 12 | 13 | public static Ret failure(String msg) { 14 | return new Ret(Rets.FAILURE, msg, null); 15 | } 16 | 17 | public static Ret success() { 18 | return new Ret(Rets.SUCCESS, "成功", null); 19 | } 20 | public static Ret expire(){ 21 | return new Ret(Rets.TOKEN_EXPIRE,"token 过期",null); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/vo/node/DeptNode.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.vo.node; 2 | 3 | import cn.enilu.material.bean.entity.system.Dept; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | /** 9 | * DeptNode 10 | * 11 | * @author enilu 12 | * @version 2018/9/15 0015 13 | */ 14 | public class DeptNode extends Dept { 15 | 16 | private List children = new ArrayList<>(10); 17 | 18 | public List getChildren() { 19 | return children; 20 | } 21 | 22 | public void setChildren(List children) { 23 | this.children = children; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/bean/vo/node/Node.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.bean.vo.node; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | /** 9 | * Node 10 | * 11 | * @author enilu 12 | * @version 2018/11/24 0024 13 | */ 14 | @Data 15 | public class Node { 16 | private Long id; 17 | private Long pid; 18 | private String name; 19 | private Boolean checked; 20 | private List children = new ArrayList<>(10); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/DaoConfiguration.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 5 | 6 | /** 7 | * Name: DabConfiguration 8 | * User: Yao 9 | * Date: 2018/2/27 10 | * Time: 13:54 11 | */ 12 | @Configuration 13 | @EnableJpaRepositories("cn.enilu.material.dao") 14 | public class DaoConfiguration { 15 | } 16 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/cache/BaseCache.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.cache; 2 | 3 | 4 | import cn.enilu.material.bean.vo.SpringContextHolder; 5 | import cn.enilu.material.service.system.impl.ConstantFactory; 6 | 7 | /** 8 | * @author :enilu 9 | * @date :Created in 2020/4/26 19:07 10 | */ 11 | public abstract class BaseCache implements Cache { 12 | @Override 13 | public void cache() { 14 | SpringContextHolder.getBean(ConstantFactory.class).cleanLocalCache(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/cache/Cache.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.cache; 2 | 3 | /** 4 | * 顶级缓存接口 5 | */ 6 | public interface Cache { 7 | /** 8 | * 将数据库中的数据加载到缓存中 9 | */ 10 | void cache(); 11 | 12 | 13 | /** 14 | * 获取缓存数据 15 | * 16 | * @param key 17 | * @return 18 | */ 19 | Object get(String key); 20 | 21 | 22 | /** 23 | * 设置缓存数据 24 | * 25 | * @param key 26 | * @param val 27 | */ 28 | void set(String key, Object val); 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/cache/ConfigCache.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.cache; 2 | 3 | /** 4 | * 全局配置数据访问 5 | */ 6 | public interface ConfigCache extends Cache { 7 | 8 | 9 | /** 10 | * 获取全局配置参数值,可选本地缓存 11 | * @param key 12 | * @return 13 | */ 14 | String get(String key, boolean local); 15 | 16 | /** 17 | * 获取全局配置参数值(带默认值) 18 | * 19 | * @param key the key 20 | * @param def the default value 21 | * @return the config 22 | */ 23 | String get(String key, String def); 24 | 25 | /** 26 | * 删除缓存 27 | * @param key 28 | * @param val 29 | */ 30 | void del(String key, String val); 31 | } 32 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/cache/DictCache.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.cache; 2 | 3 | import cn.enilu.material.bean.entity.system.Dict; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * 字典缓存 9 | * 10 | * @author zt 11 | * @version 2018/12/23 0023 12 | */ 13 | public interface DictCache extends Cache{ 14 | 15 | List getDictsByPname(String dictName); 16 | String getDict(Long dictId); 17 | } 18 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/cache/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * package-info 3 | * 4 | * @version 2018/9/11 0011 5 | * @author enilu 6 | */ 7 | package cn.enilu.material.dao.cache; -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/message/MessageRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.message; 2 | 3 | 4 | import cn.enilu.material.bean.entity.message.Message; 5 | import cn.enilu.material.dao.BaseRepository; 6 | 7 | import java.util.ArrayList; 8 | 9 | 10 | public interface MessageRepository extends BaseRepository { 11 | void deleteAllByIdIn(ArrayList list); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/message/MessagesenderRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.message; 2 | 3 | 4 | import cn.enilu.material.bean.entity.message.MessageSender; 5 | import cn.enilu.material.dao.BaseRepository; 6 | 7 | 8 | public interface MessagesenderRepository extends BaseRepository { 9 | } 10 | 11 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/message/MessagetemplateRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.message; 2 | 3 | 4 | 5 | import cn.enilu.material.bean.entity.message.MessageTemplate; 6 | import cn.enilu.material.dao.BaseRepository; 7 | 8 | import java.util.List; 9 | 10 | 11 | public interface MessagetemplateRepository extends BaseRepository { 12 | MessageTemplate findByCode(String code); 13 | 14 | List findByIdMessageSender(Long idMessageSender); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/CfgRepository.java: -------------------------------------------------------------------------------- 1 | 2 | package cn.enilu.material.dao.system; 3 | 4 | import cn.enilu.material.bean.entity.system.Cfg; 5 | import cn.enilu.material.dao.BaseRepository; 6 | 7 | public interface CfgRepository extends BaseRepository { 8 | Cfg findByCfgName(String cfgName); 9 | } 10 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/DeptRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.system; 2 | 3 | 4 | import cn.enilu.material.bean.entity.system.Dept; 5 | import cn.enilu.material.dao.BaseRepository; 6 | import org.springframework.data.jpa.repository.Query; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * Created on 2018/3/21 0021. 12 | * 13 | * @author enilu 14 | */ 15 | public interface DeptRepository extends BaseRepository { 16 | List findByPidsLike(String pid); 17 | @Query(nativeQuery = true,value = "SELECT id, pid AS pId, simplename AS NAME, ( CASE WHEN (pId = 0 OR pId IS NULL) THEN 'true' ELSE 'false' END ) AS isOpen FROM t_sys_dept") 18 | List tree(); 19 | 20 | List findBySimplenameLikeOrFullnameLike(String name,String name2); 21 | } 22 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/DictRepository.java: -------------------------------------------------------------------------------- 1 | 2 | package cn.enilu.material.dao.system; 3 | 4 | 5 | import cn.enilu.material.bean.entity.system.Dict; 6 | import cn.enilu.material.dao.BaseRepository; 7 | 8 | import java.util.List; 9 | 10 | public interface DictRepository extends BaseRepository { 11 | List findByPid(Long pid); 12 | List findByNameAndPid(String name,Long pid); 13 | 14 | List findByNameLike(String name); 15 | } 16 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/FileInfoRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.system; 2 | 3 | import cn.enilu.material.bean.entity.system.FileInfo; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | import org.springframework.data.repository.PagingAndSortingRepository; 7 | 8 | public interface FileInfoRepository extends PagingAndSortingRepository 9 | , JpaRepository, JpaSpecificationExecutor { 10 | } 11 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/LoginLogRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.system; 2 | 3 | import cn.enilu.material.bean.entity.system.LoginLog; 4 | import cn.enilu.material.dao.BaseRepository; 5 | 6 | /** 7 | * Created on 2018/3/21 0021. 8 | * 9 | * @author enilu 10 | */ 11 | public interface LoginLogRepository extends BaseRepository{ 12 | } 13 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/OperationLogRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.system; 2 | 3 | 4 | import cn.enilu.material.bean.entity.system.OperationLog; 5 | import cn.enilu.material.dao.BaseRepository; 6 | import org.springframework.data.jpa.repository.Modifying; 7 | import org.springframework.data.jpa.repository.Query; 8 | 9 | import javax.transaction.Transactional; 10 | 11 | /** 12 | * Created on 2018/3/21 0021. 13 | * 14 | * @author enilu 15 | */ 16 | public interface OperationLogRepository extends BaseRepository { 17 | @Modifying 18 | @Transactional 19 | @Query(nativeQuery = true,value = "delete from t_sys_operation_log") 20 | int clear(); 21 | } 22 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/RelationRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.system; 2 | 3 | import cn.enilu.material.bean.entity.system.Relation; 4 | import cn.enilu.material.dao.BaseRepository; 5 | import org.springframework.data.jpa.repository.Modifying; 6 | import org.springframework.data.jpa.repository.Query; 7 | import org.springframework.transaction.annotation.Transactional; 8 | 9 | /** 10 | * Created on 2018/3/21 0021. 11 | * 12 | * @author enilu 13 | */ 14 | public interface RelationRepository extends BaseRepository { 15 | @Transactional 16 | @Modifying 17 | @Query(nativeQuery = true,value = "delete from t_sys_relation where roleid=?1") 18 | int deleteByRoleId(Long roleId); 19 | } 20 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/SysNoticeRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.system; 2 | 3 | 4 | import cn.enilu.material.bean.entity.system.Notice; 5 | import cn.enilu.material.dao.BaseRepository; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created on 2018/3/21 0021. 11 | * 12 | * @author enilu 13 | */ 14 | public interface SysNoticeRepository extends BaseRepository { 15 | List findByTitleLike(String name); 16 | } 17 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/TaskLogRepository.java: -------------------------------------------------------------------------------- 1 | 2 | package cn.enilu.material.dao.system; 3 | 4 | 5 | import cn.enilu.material.bean.entity.system.TaskLog; 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 8 | import org.springframework.data.repository.PagingAndSortingRepository; 9 | 10 | public interface TaskLogRepository extends PagingAndSortingRepository 11 | ,JpaSpecificationExecutor 12 | ,JpaRepository { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/TaskRepository.java: -------------------------------------------------------------------------------- 1 | 2 | package cn.enilu.material.dao.system; 3 | 4 | 5 | import cn.enilu.material.bean.entity.system.Task; 6 | import cn.enilu.material.dao.BaseRepository; 7 | 8 | import java.util.List; 9 | 10 | public interface TaskRepository extends BaseRepository { 11 | 12 | long countByNameLike(String name); 13 | 14 | List findByNameLike(String name); 15 | List findAllByDisabled(boolean disable); 16 | } 17 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/dao/system/UserRepository.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.dao.system; 2 | 3 | 4 | import cn.enilu.material.bean.entity.system.User; 5 | import cn.enilu.material.dao.BaseRepository; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created on 2018/3/21 0021. 11 | * 12 | * @author enilu 13 | */ 14 | public interface UserRepository extends BaseRepository { 15 | User findByAccount(String account); 16 | 17 | List findByRoleid(String idRole); 18 | } 19 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/platform/log/LogManager.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.platform.log; 2 | 3 | import java.util.TimerTask; 4 | import java.util.concurrent.ScheduledThreadPoolExecutor; 5 | import java.util.concurrent.TimeUnit; 6 | 7 | /** 8 | * 日志管理器 9 | * 10 | * @author fengshuonan 11 | * @date 2017-03-30 16:29 12 | */ 13 | public class LogManager { 14 | 15 | //日志记录操作延时 16 | private final int OPERATE_DELAY_TIME = 10; 17 | 18 | //异步操作记录日志的线程池 19 | private ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10); 20 | 21 | private LogManager() { 22 | } 23 | 24 | public static LogManager logManager = new LogManager(); 25 | 26 | public static LogManager me() { 27 | return logManager; 28 | } 29 | 30 | public void executeLog(TimerTask task) { 31 | executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/platform/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * package-info 3 | * 4 | * @version 2018/9/11 0011 5 | * @author enilu 6 | */ 7 | package cn.enilu.material.platform; -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/CrudService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service; 2 | 3 | /** 4 | * 5 | * @author :enilu 6 | * @date :Created in 2019/6/29 22:31 7 | */ 8 | public interface CrudService extends 9 | InsertService, 10 | UpdateService, 11 | DeleteService, 12 | SelectService { 13 | } 14 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/DeleteService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service; 2 | 3 | /** 4 | * 5 | * @author :enilu 6 | * @date :Created in 2019/6/29 22:29 7 | */ 8 | public interface DeleteService { 9 | 10 | /** 11 | * 根据主键删除记录 12 | * 13 | * @param id 主键 14 | */ 15 | void delete(ID id); 16 | 17 | /** 18 | * 根据主键删除记录 19 | * 20 | * @param ids 主键集合 21 | */ 22 | void delete(Iterable ids); 23 | 24 | /** 25 | * 清空表数据 26 | */ 27 | void clear(); 28 | } 29 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/InsertService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service; 2 | 3 | /** 4 | * 5 | * @author :enilu 6 | * @date :Created in 2019/6/29 22:28 7 | */ 8 | public interface InsertService { 9 | 10 | /** 11 | * 添加一条数据 12 | * 13 | * @param record 要添加的数据 14 | * @return 添加后生成的主键 15 | */ 16 | T insert(T record); 17 | } 18 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/UpdateService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service; 2 | 3 | /** 4 | * 5 | * @author :enilu 6 | * @date :Created in 2019/6/29 22:30 7 | */ 8 | public interface UpdateService { 9 | /** 10 | * 修改记录信息 11 | * 12 | * @param record 要修改的对象 13 | * @return 返回修改的记录 14 | */ 15 | T update(T record); 16 | } 17 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/message/MessagetemplateService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.message; 2 | 3 | import cn.enilu.material.bean.entity.message.MessageTemplate; 4 | import cn.enilu.material.dao.message.MessagetemplateRepository; 5 | import cn.enilu.material.service.BaseService; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * MessagetemplateService 10 | * 11 | * @author enilu 12 | * @version 2019/05/17 0017 13 | */ 14 | @Service 15 | public class MessagetemplateService extends BaseService { 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/message/sms/SmsSender.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.message.sms; 2 | 3 | public interface SmsSender { 4 | 5 | /** 6 | * 发送短信,如果内容content不为空,则直接发送内容 7 | * @param tplCode 短信运营商模板号码 8 | * @param receiver 9 | * @param args 10 | * @param content 11 | * @return 12 | */ 13 | boolean sendSms(String tplCode, String receiver, String[] args, String content); 14 | } 15 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/system/LoginLogService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.system; 2 | 3 | 4 | import cn.enilu.material.bean.entity.system.LoginLog; 5 | import cn.enilu.material.dao.system.LoginLogRepository; 6 | import cn.enilu.material.service.BaseService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * Created on 2018/3/26 0026. 11 | * 12 | * @author enilu 13 | */ 14 | @Service 15 | public class LoginLogService extends BaseService { 16 | } 17 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/system/NoticeService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.system; 2 | 3 | import cn.enilu.material.bean.entity.system.Notice; 4 | import cn.enilu.material.dao.system.SysNoticeRepository; 5 | import cn.enilu.material.service.BaseService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author :enilu 13 | * @date :Created in 2019/7/21 21:29 14 | */ 15 | @Service 16 | public class NoticeService extends BaseService { 17 | @Autowired 18 | private SysNoticeRepository sysNoticeRepository; 19 | public List findByTitleLike(String title) { 20 | return sysNoticeRepository.findByTitleLike(title); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/system/OperationLogService.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.system; 2 | 3 | import cn.enilu.material.bean.entity.system.OperationLog; 4 | import cn.enilu.material.dao.system.OperationLogRepository; 5 | import cn.enilu.material.service.BaseService; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * Created on 2018/3/26 0026. 10 | * 11 | * @author enilu 12 | */ 13 | @Service 14 | public class OperationLogService extends BaseService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/task/BaseJob.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.task; 2 | 3 | import cn.enilu.material.bean.vo.QuartzJob; 4 | import org.quartz.Job; 5 | import org.quartz.JobDataMap; 6 | import org.quartz.JobExecutionContext; 7 | import org.quartz.JobExecutionException; 8 | import org.springframework.stereotype.Component; 9 | 10 | @Component 11 | public class BaseJob implements Job { 12 | 13 | @Override 14 | public void execute(JobExecutionContext context) throws JobExecutionException { 15 | JobDataMap data = context.getJobDetail().getJobDataMap(); 16 | QuartzJob job = (QuartzJob) data.get("job"); 17 | try { 18 | TaskUtils.executeJob(job); 19 | } catch (Exception e) { 20 | throw new JobExecutionException(e); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/task/NoConurrentBaseJob.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.task; 2 | 3 | import org.quartz.DisallowConcurrentExecution; 4 | import org.springframework.stereotype.Component; 5 | 6 | @Component 7 | @DisallowConcurrentExecution 8 | public class NoConurrentBaseJob extends BaseJob { 9 | } 10 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/service/task/QuartzConfigration.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.service.task; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.scheduling.quartz.SchedulerFactoryBean; 6 | 7 | @Configuration 8 | public class QuartzConfigration { 9 | 10 | @Bean(name = "scheduler") 11 | public SchedulerFactoryBean schedulerFactory() { 12 | SchedulerFactoryBean bean = new SchedulerFactoryBean(); 13 | return bean; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/utils/Log.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.utils; 2 | 3 | 4 | import org.slf4j.Logger; 5 | import org.slf4j.LoggerFactory; 6 | 7 | /** 8 | * @author deanyule 9 | */ 10 | public class Log { 11 | 12 | public static Logger get(Class> clazz) { 13 | return LoggerFactory.getLogger(clazz); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/utils/cache/exception/ToolBoxException.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.utils.cache.exception; 2 | 3 | 4 | import cn.enilu.material.utils.StrKit; 5 | 6 | /** 7 | * 工具类初始化异常 8 | */ 9 | public class ToolBoxException extends RuntimeException{ 10 | private static final long serialVersionUID = 8247610319171014183L; 11 | 12 | public ToolBoxException(Throwable e) { 13 | super(e.getMessage(), e); 14 | } 15 | 16 | public ToolBoxException(String message) { 17 | super(message); 18 | } 19 | 20 | public ToolBoxException(String messageTemplate, Object... params) { 21 | super(StrKit.format(messageTemplate, params)); 22 | } 23 | 24 | public ToolBoxException(String message, Throwable throwable) { 25 | super(message, throwable); 26 | } 27 | 28 | public ToolBoxException(Throwable throwable, String messageTemplate, Object... params) { 29 | super(StrKit.format(messageTemplate, params), throwable); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/warpper/DeptWarpper.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.warpper; 2 | 3 | import cn.enilu.material.service.system.impl.ConstantFactory; 4 | import cn.enilu.material.utils.ToolUtil; 5 | 6 | import java.util.Map; 7 | 8 | /** 9 | * 部门列表的包装 10 | * 11 | * @author fengshuonan 12 | * @date 2017年4月25日 18:10:31 13 | */ 14 | public class DeptWarpper extends BaseControllerWarpper { 15 | 16 | public DeptWarpper(Object list) { 17 | super(list); 18 | } 19 | 20 | @Override 21 | public void warpTheMap(Map map) { 22 | 23 | Long pid = (Long) map.get("pid"); 24 | 25 | if (ToolUtil.isEmpty(pid) || pid.equals(0)) { 26 | map.put("pName", "--"); 27 | } else { 28 | map.put("pName", ConstantFactory.me().getDeptName(pid)); 29 | } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/warpper/MenuWarpper.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.warpper; 2 | 3 | import cn.enilu.material.bean.vo.node.IsMenu; 4 | import cn.enilu.material.service.system.impl.ConstantFactory; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | /** 10 | * 菜单列表的包装类 11 | * 12 | * @author fengshuonan 13 | * @date 2017年2月19日15:07:29 14 | */ 15 | public class MenuWarpper extends BaseControllerWarpper { 16 | 17 | public MenuWarpper(List> list) { 18 | super(list); 19 | } 20 | 21 | @Override 22 | public void warpTheMap(Map map) { 23 | map.put("statusName", ConstantFactory.me().getMenuStatusName((Integer) map.get("status"))); 24 | map.put("isMenuName", IsMenu.valueOf((Integer) map.get("ismenu"))); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/warpper/NoticeWrapper.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.warpper; 2 | 3 | import cn.enilu.material.service.system.impl.ConstantFactory; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * 部门列表的包装 9 | * 10 | * @author fengshuonan 11 | * @date 2017年4月25日 18:10:31 12 | */ 13 | public class NoticeWrapper extends BaseControllerWarpper { 14 | 15 | public NoticeWrapper(Object list) { 16 | super(list); 17 | } 18 | 19 | @Override 20 | public void warpTheMap(Map map) { 21 | Long creater = (Long) map.get("createBy"); 22 | map.put("createrName", ConstantFactory.me().getUserNameById(creater)); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/warpper/RoleWarpper.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.warpper; 2 | 3 | import cn.enilu.material.service.system.impl.ConstantFactory; 4 | 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | /** 9 | * 角色列表的包装类 10 | * 11 | * @author fengshuonan 12 | * @date 2017年2月19日10:59:02 13 | */ 14 | public class RoleWarpper extends BaseControllerWarpper { 15 | 16 | public RoleWarpper(List> list) { 17 | super(list); 18 | } 19 | 20 | @Override 21 | public void warpTheMap(Map map) { 22 | map.put("pName", ConstantFactory.me().getSingleRoleName((Long) map.get("pid"))); 23 | map.put("deptName", ConstantFactory.me().getDeptName((Long) map.get("deptid"))); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /material-core/src/main/java/cn/enilu/material/web/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * package-info 3 | * 4 | * @version 2018/11/27 0027 5 | * @author enilu 6 | */ 7 | package cn.enilu.material.web; -------------------------------------------------------------------------------- /material-core/src/main/resources/code/code.json: -------------------------------------------------------------------------------- 1 | { 2 | "codeConfig": { 3 | "type": "cn.enilu.flash.code.CodeConfig", 4 | "fields": { 5 | entityModel: "material-core", 6 | daoModel: "material-core", 7 | serviceModel: "material-core", 8 | controllerModel: "material-manage", 9 | viewModel: "material-manage" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /material-generator/doc/boy-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-generator/doc/boy-list.png -------------------------------------------------------------------------------- /material-generator/doc/code-generate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-generator/doc/code-generate.jpg -------------------------------------------------------------------------------- /material-generator/doc/generate-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-generator/doc/generate-result.png -------------------------------------------------------------------------------- /material-generator/doc/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-generator/doc/menu.png -------------------------------------------------------------------------------- /material-generator/src/main/java/cn/enilu/flash/code/AbstractLoader.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.flash.code; 2 | 3 | import org.nutz.ioc.Ioc; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * 基础的数据结构加载器 9 | * @author : zhangtao 10 | * 创建日期: 16-7-12 11 | */ 12 | public abstract class AbstractLoader { 13 | 14 | public abstract Map loadTables(Ioc ioc, 15 | String basePackageName, String baseUri, 16 | String servPackageName, 17 | String repositoryPackageName, 18 | String modPackageName) throws Exception; 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /material-generator/src/main/java/cn/enilu/flash/code/Loader.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.flash.code; 2 | 3 | import org.nutz.ioc.Ioc; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * 基础的数据结构加载器 9 | * 作者: zhangtao 10 | * 创建日期: 16-7-12 11 | */ 12 | public abstract class Loader { 13 | 14 | public abstract Map loadTables(Ioc ioc, 15 | String basePackageName, String baseUri, 16 | String servPackageName, 17 | String repositoryPackageName, 18 | String modPackageName) throws Exception; 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /material-generator/src/main/resources/code/code.json: -------------------------------------------------------------------------------- 1 | { 2 | "codeConfig": { 3 | "type": "cn.enilu.flash.code.CodeConfig", 4 | "fields": { 5 | entityModel: "material-core", 6 | daoModel: "material-core", 7 | serviceModel: "material-core", 8 | controllerModel: "material-manage", 9 | viewModel: "material-manage" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /material-generator/src/main/resources/code/repository.vm: -------------------------------------------------------------------------------- 1 | package ${packageName}; 2 | 3 | 4 | import ${table.EntityFullClassName}; 5 | import ${table.basePackageName}.dao.BaseRepository; 6 | 7 | 8 | public interface ${table.RepositoryClassName} extends BaseRepository<${table.EntityClassName},Long>{ 9 | 10 | } 11 | 12 | -------------------------------------------------------------------------------- /material-generator/src/main/resources/code/service.vm: -------------------------------------------------------------------------------- 1 | package ${packageName}; 2 | 3 | 4 | import ${table.EntityFullClassName}; 5 | import ${table.basePackageName}.${table.repoPackageName}.${table.EntityClassName}Repository; 6 | 7 | import ${table.basePackageName}.service.BaseService; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.stereotype.Service; 12 | 13 | @Service 14 | public class ${table.ServiceClassName} extends BaseService<${table.EntityClassName},Long,${table.RepositoryClassName}> { 15 | private Logger logger = LoggerFactory.getLogger(getClass()); 16 | @Autowired 17 | private ${table.RepositoryClassName} ${table.entityNameLowerFirstChar}Repository; 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /material-lab/README.md: -------------------------------------------------------------------------------- 1 | # material-lab 2 | 该模块包含一些实验特性的模块,主要探索spring boot的各种功能 3 | 4 | ## 集成actuator监控 5 | - 使用actuator可以方便的对spring boot应用做监控 6 | - 本引用之前的ehcache-core版本过低,需要升级: 7 | ```javascript 8 | 9 | net.sf.ehcache 10 | ehcache-core 11 | 2.6.11 12 | 13 | 调整为: 14 | 15 | net.sf.ehcache.internal 16 | ehcache-core 17 | 2.10.5 18 | 19 | ``` 20 | - 启用该功能后 访问http://localhost:8000/actuator/env -------------------------------------------------------------------------------- /material-lab/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | material-admin 7 | cn.enilu 8 | 0.1 9 | 10 | 4.0.0 11 | 12 | material-lab 13 | 14 | 15 | 16 | org.springframework.boot 17 | spring-boot-starter-actuator 18 | 19 | 20 | -------------------------------------------------------------------------------- /material-lab/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-lab/src/main/resources/application.properties -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/AdminServletInitializer.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin; 2 | 3 | import org.springframework.boot.builder.SpringApplicationBuilder; 4 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 5 | 6 | /** 7 | * Web程序启动类 8 | * 9 | * @author fengshuonan 10 | * @date 2017-05-21 9:43 11 | */ 12 | public class AdminServletInitializer extends SpringBootServletInitializer { 13 | 14 | @Override 15 | protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 16 | return builder.sources(AdminApplication.class); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/common/constant/enums/Status.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.common.constant.enums; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * 通用的业务状态 7 | * 8 | * @author zhfish 9 | */ 10 | public enum Status { 11 | 未启用(0), 12 | 启用(1); 13 | 14 | private int value; 15 | 16 | Status(final int value) { 17 | this.value = value; 18 | } 19 | 20 | 21 | public Serializable getValue() { 22 | return this.value; 23 | } 24 | 25 | @Override 26 | public String toString(){ 27 | switch (this.value) { 28 | case 0: 29 | return "未启用"; 30 | case 1: 31 | return "启用"; 32 | } 33 | return "未启用"; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/config/SpringSessionConfig.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.config; 2 | 3 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; 4 | 5 | /** 6 | * spring session配置 7 | * 8 | * @author fengshuonan 9 | * @date 2017-07-13 21:05 10 | */ 11 | //@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) //session过期时间 如果部署多机环境,需要打开注释 12 | @ConditionalOnProperty(prefix = "apps", name = "spring-session-open", havingValue = "true") 13 | public class SpringSessionConfig { 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/config/UserIDAuditorConfig.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.config; 2 | 3 | import cn.enilu.material.bean.constant.Const; 4 | import cn.enilu.material.bean.core.ShiroUser; 5 | import cn.enilu.material.shiro.ShiroKit; 6 | import org.springframework.context.annotation.Configuration; 7 | import org.springframework.data.domain.AuditorAware; 8 | 9 | import java.util.Optional; 10 | 11 | /** 12 | * UserIDAuditorBean 13 | * 14 | * @author zt 15 | * @version 2019/1/8 0008 16 | */ 17 | @Configuration 18 | public class UserIDAuditorConfig implements AuditorAware { 19 | @Override 20 | public Optional getCurrentAuditor() { 21 | ShiroUser shiroUser = ShiroKit.getUser(); 22 | if(shiroUser!=null){ 23 | return Optional.of(shiroUser.getId()); 24 | } 25 | return Optional.of(Const.SYSTEM_USER_ID); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/CoreFlag.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core; 2 | 3 | /** 4 | * 此类用来获取core模块的包路径 5 | * 6 | * @author fengshuonan 7 | * @Date 2017/12/5 下午12:44 8 | */ 9 | public class CoreFlag { 10 | 11 | } -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/base/tips/ErrorTip.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.base.tips; 2 | 3 | /** 4 | * 返回给前台的错误提示 5 | * 6 | * @author fengshuonan 7 | * @date 2016年11月12日 下午5:05:22 8 | */ 9 | public class ErrorTip extends Tip { 10 | 11 | public ErrorTip(int code, String message) { 12 | super(); 13 | this.code = code; 14 | this.message = message; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/base/tips/SuccessTip.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.base.tips; 2 | 3 | /** 4 | * 返回给前台的成功提示 5 | * 6 | * @author fengshuonan 7 | * @date 2016年11月12日 下午5:05:22 8 | */ 9 | public class SuccessTip extends Tip { 10 | 11 | public SuccessTip(){ 12 | super.code = 200; 13 | super.message = "操作成功"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/base/tips/Tip.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.base.tips; 2 | 3 | /** 4 | * 返回给前台的提示(最终转化为json形式) 5 | * 6 | * @author fengshuonan 7 | * @Date 2017年1月11日 下午11:58:00 8 | */ 9 | public abstract class Tip { 10 | 11 | protected int code; 12 | protected String message; 13 | 14 | public int getCode() { 15 | return code; 16 | } 17 | 18 | public void setCode(int code) { 19 | this.code = code; 20 | } 21 | 22 | public String getMessage() { 23 | return message; 24 | } 25 | 26 | public void setMessage(String message) { 27 | this.message = message; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/beetl/BeetlConfiguration.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.beetl; 2 | 3 | import cn.enilu.material.admin.core.util.KaptchaUtil; 4 | import cn.enilu.material.service.system.impl.ConstantFactory; 5 | import cn.enilu.material.utils.ToolUtil; 6 | import org.beetl.ext.spring.BeetlGroupUtilConfiguration; 7 | 8 | public class BeetlConfiguration extends BeetlGroupUtilConfiguration { 9 | 10 | @Override 11 | public void initOther() { 12 | 13 | groupTemplate.registerFunctionPackage("shiro", new ShiroExt()); 14 | groupTemplate.registerFunctionPackage("tool", new ToolUtil()); 15 | groupTemplate.registerFunctionPackage("kaptcha", new KaptchaUtil()); 16 | groupTemplate.registerFunctionPackage("constant",ConstantFactory.me()); 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/cache/ILoader.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package cn.enilu.material.admin.core.cache; 17 | 18 | /** 19 | * 数据重载 20 | */ 21 | public interface ILoader { 22 | Object load(); 23 | } 24 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/page/PageInfoBT.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.page; 2 | 3 | 4 | import cn.enilu.material.bean.vo.query.Page; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 分页结果的封装(for Bootstrap Table) 10 | * 11 | * @author fengshuonan 12 | * @Date 2017年1月22日 下午11:06:41 13 | */ 14 | public class PageInfoBT { 15 | 16 | // 结果集 17 | private List rows; 18 | 19 | // 总数 20 | private long total; 21 | 22 | public PageInfoBT(Page page) { 23 | this.rows = page.getRecords(); 24 | this.total = page.getTotal(); 25 | } 26 | 27 | public List getRows() { 28 | return rows; 29 | } 30 | 31 | public void setRows(List rows) { 32 | this.rows = rows; 33 | } 34 | 35 | public long getTotal() { 36 | return total; 37 | } 38 | 39 | public void setTotal(long total) { 40 | this.total = total; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/support/ObjectKit.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.support; 2 | 3 | /** 4 | * 一些通用的函数 5 | * 6 | * @author Looly 7 | * 8 | */ 9 | public class ObjectKit { 10 | /** 11 | * 比较两个对象是否相等。 12 | * 相同的条件有两个,满足其一即可: 13 | * 1. obj1 == null && obj2 == null; 2. obj1.equals(obj2) 14 | * 15 | * @param obj1 对象1 16 | * @param obj2 对象2 17 | * @return 是否相等 18 | */ 19 | public static boolean equals(Object obj1, Object obj2) { 20 | return (obj1 != null) ? (obj1.equals(obj2)) : (obj2 == null); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/util/HttpSessionHolder.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.util; 2 | 3 | import javax.servlet.http.HttpSession; 4 | 5 | /** 6 | * 非Controller中获取当前session的工具类 7 | * 8 | * @author fengshuonan 9 | * @date 2016年11月28日 上午10:24:31 10 | */ 11 | public class HttpSessionHolder { 12 | 13 | private static ThreadLocal tl = new ThreadLocal(); 14 | 15 | public static void put(HttpSession s) { 16 | tl.set(s); 17 | } 18 | 19 | public static HttpSession get() { 20 | return tl.get(); 21 | } 22 | 23 | public static void remove() { 24 | tl.remove(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/core/util/KaptchaUtil.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.core.util; 2 | 3 | import cn.enilu.material.admin.config.properties.AppProperties; 4 | import cn.enilu.material.bean.vo.SpringContextHolder; 5 | 6 | /** 7 | * 验证码工具类 8 | */ 9 | public class KaptchaUtil { 10 | 11 | /** 12 | * 获取验证码开关 13 | * 14 | * @author enilu.cn 15 | * @Date 2017/5/23 22:34 16 | */ 17 | public static Boolean getKaptchaOnOff() { 18 | return SpringContextHolder.getBean(AppProperties.class).getKaptchaOpen(); 19 | } 20 | } -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/modular/lab/controller/LabController.java: -------------------------------------------------------------------------------- 1 | package cn.enilu.material.admin.modular.lab.controller; 2 | 3 | import cn.enilu.material.admin.core.base.controller.BaseController; 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RequestMethod; 7 | 8 | /** 9 | * @author :enilu 10 | * @date :Created in 2019/9/3 16:53 11 | */ 12 | @RequestMapping("/lab") 13 | @Controller 14 | public class LabController extends BaseController { 15 | @RequestMapping(value="/actuator",method = RequestMethod.GET) 16 | public String index(){ 17 | return "/lab/actuator.html"; 18 | } 19 | @RequestMapping(value="/gis",method = RequestMethod.GET) 20 | public String gis(){ 21 | return "/lab/gis.html"; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material-manage/src/main/java/cn/enilu/material/admin/modular/lab/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * @author :enilu 3 | * @date :Created in 2019/9/3 16:54 4 | */ 5 | package cn.enilu.material.admin.modular.lab; -------------------------------------------------------------------------------- /material-manage/src/main/resources/META-INF/spring-devtools.properties: -------------------------------------------------------------------------------- 1 | restart.include.beetl=/beetl-2.7.15.jar -------------------------------------------------------------------------------- /material-manage/src/main/resources/application-dev.properties: -------------------------------------------------------------------------------- 1 | ## 开发环境配置 2 | spring.datasource.url=jdbc:mysql://enilu-db:3306/material?useUnicode=true&characterEncoding=UTF8&useSSL=false 3 | spring.datasource.username=material 4 | spring.datasource.password=material@123ABC 5 | 6 | 7 | ##实际开发和生产环境中注释掉下面配置 8 | spring.jpa.hibernate.ddl-auto=create 9 | #默认使用InnoDB引擎 10 | spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect 11 | spring.datasource.sql-script-encoding=utf-8 12 | spring.jpa.show-sql=true 13 | -------------------------------------------------------------------------------- /material-manage/src/main/resources/application-prod.properties: -------------------------------------------------------------------------------- 1 | ## 生产环境配置 2 | debug=false 3 | #Mysql属性配置文件,Spring-boot系统配置 4 | spring.datasource.url=jdbc:mysql://enilu-db:3306/material?useUnicode=true&characterEncoding=UTF8&useSSL=false 5 | spring.datasource.username=material 6 | spring.datasource.password=material@123ABC 7 | 8 | ##实际开发和生产环境中注释掉下面配置 9 | spring.jpa.hibernate.ddl-auto=create 10 | #默认使用InnoDB引擎 11 | spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect 12 | spring.datasource.sql-script-encoding=utf-8 13 | spring.jpa.show-sql=true 14 | -------------------------------------------------------------------------------- /material-manage/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | __ __ _ _____ _____ ____ ___ _ _ _ ____ __ __ ___ _ _ 2 | | \/ | / \ |_ _| | ____| | _ \ |_ _| / \ | | / \ | _ \ | \/ | |_ _| | \ | | 3 | | |\/| | / _ \ | | | _| | |_) | | | / _ \ | | / _ \ | | | | | |\/| | | | | \| | 4 | | | | | / ___ \ | | | |___ | _ < | | / ___ \ | |___ / ___ \ | |_| | | | | | | | | |\ | 5 | |_| |_| /_/ \_\ |_| |_____| |_| \_\ |___| /_/ \_\ |_____| /_/ \_\ |____/ |_| |_| |___| |_| \_| 6 | 7 | by enilu.cn -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/common/_footer.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/common/tags/NameCon.tag: -------------------------------------------------------------------------------- 1 | @/* 2 | 名称查询条件标签的参数说明: 3 | 4 | name : 查询条件的名称 5 | id : 查询内容的input框id 6 | type: 输入框类型:text,number 7 | @*/ 8 | 9 | 10 | 18 | 19 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/common/tags/SelectCon.tag: -------------------------------------------------------------------------------- 1 | @/* 2 | 选择查询条件标签的参数说明: 3 | 4 | name : 查询条件的名称 5 | id : 查询内容的input框id 6 | @*/ 7 | 8 | 9 | 10 | 11 | ${tagBody!} 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/common/tags/button.tag: -------------------------------------------------------------------------------- 1 | @/* 2 | 按钮标签中各个参数的说明: 3 | 4 | btnType : 按钮的类型决定了颜色(default-灰色,primary-绿色,success-蓝色,info-淡蓝色,warning-黄色,danger-红色,white-白色) 5 | space : 按钮左侧是否有间隔(true/false) 6 | clickFun : 点击按钮所执行的方法 7 | icon : 按钮上的图标的样式 8 | name : 按钮名称 9 | @*/ 10 | 11 | @var spaceCss = ""; 12 | @var btnType = ""; 13 | @if(isEmpty(space)){ 14 | @ spaceCss = ""; 15 | @}else{ 16 | @ spaceCss = "button-margin"; 17 | @} 18 | @if(isEmpty(btnCss)){ 19 | @ btnType = "primary"; 20 | @}else{ 21 | @ btnType = btnCss; 22 | @} 23 | 24 | @if(isNotEmpty(icon)){ 25 | 26 | @} 27 | ${name} 28 | 29 | 30 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/common/tags/table.tag: -------------------------------------------------------------------------------- 1 | @/* 2 | 表格标签的参数说明: 3 | 4 | id : table表格的id 5 | @*/ 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/common/tags/textarea.tag: -------------------------------------------------------------------------------- 1 | @/* 2 | textarea标签中各个参数的说明: 3 | name : 名称 4 | id : id 5 | underline : 是否带分割线 6 | rows : 行数 7 | cols : 列数 8 | readonly : 是否只读 9 | @*/ 10 | 11 | ${name} 12 | 13 | 14 | 19 | @if(isNotEmpty(value)){ 20 | ${value} 21 | @} 22 | 23 | 24 | 25 | 26 | @if(isNotEmpty(underline) && underline == 'true'){ 27 | 28 | @} 29 | 30 | 31 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/message/history/message_view.html: -------------------------------------------------------------------------------- 1 | @layout("/common/include.html"){ 2 | 3 | 4 | 5 | 6 | 7 | 8 | <#input name="消息模板" value="${item.tplCode}" readonly="readonly"/> 9 | 10 | 11 | <#input name="接收人" value="${item.receiver}" underline="true" readonly="readonly"/> 12 | 13 | 14 | <#textarea name="消息内容" value="${item.content}" readonly="readonly" rows="3" cols="50"/> 15 | 16 | 17 | 18 | 19 | 20 | 21 | @} 22 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/message/sender/sender.html: -------------------------------------------------------------------------------- 1 | @layout("/common/layout.html"){ 2 | 3 | 4 | 发送器列表 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | <#button name="添加" icon="fa-plus" clickFun="MessageSender.openAdd()"/> 13 | 14 | <#table id="MessageSenderTable"/> 15 | 16 | 17 | 18 | 19 | 20 | @} 21 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/message/template/template.html: -------------------------------------------------------------------------------- 1 | @layout("/common/layout.html"){ 2 | 3 | 模板列表 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | <#button name="添加" icon="fa-plus" clickFun="MessageTemplate.openAdd()"/> 13 | 14 | <#table id="MessageTemplateTable"/> 15 | 16 | 17 | 18 | 19 | 20 | @} 21 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/WEB-INF/view/system/task/task_log.html: -------------------------------------------------------------------------------- 1 | @layout("/common/include.html"){ 2 | 3 | 4 | 5 | 6 | 7 | <#table id="TaskLogTable"/> 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | @} 18 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/material.css: -------------------------------------------------------------------------------- 1 | .input-group .form-control{ 2 | float:none; 3 | } 4 | 5 | .ibox-title h5 { 6 | display: inline-block; 7 | font-size: 14px; 8 | margin: 0 0 7px; 9 | padding: 0; 10 | text-overflow: ellipsis; 11 | float: left; 12 | font-weight:600; 13 | margin-bottom:15px; 14 | } 15 | .dept-tree{ 16 | padding:10px 0px 0px 0px; 17 | } 18 | .ztree{ 19 | padding: 0px;margin: 5px; 20 | } 21 | .panel-ztree { 22 | box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.15); 23 | min-height: 644px; 24 | } 25 | .fixed-table-toolbar>div>div>.col-sm-6:first-child{ 26 | padding-left:0px; 27 | } 28 | 29 | .fixed-table-toolbar>div>div>div:first-child{ 30 | padding-left:0px; 31 | } 32 | .bs-checkbox { 33 | text-align: center !important; 34 | vertical-align: middle !important; 35 | } 36 | .fixed-table-pagination .pagination a { 37 | padding: 9px 12px !important; 38 | } 39 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/validate/bootstrapValidator.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * BootstrapValidator (http://bootstrapvalidator.com) 3 | * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3 4 | * 5 | * @version v0.5.3, built on 2014-11-05 9:14:18 PM 6 | * @author https://twitter.com/nghuuphuoc 7 | * @copyright (c) 2013 - 2014 Nguyen Huu Phuoc 8 | * @license Commercial: http://bootstrapvalidator.com/license/ 9 | * Non-commercial: http://creativecommons.org/licenses/by-nc-nd/3.0/ 10 | */ 11 | 12 | .bv-form .help-block{margin-bottom:0}.bv-form .tooltip-inner{text-align:left}.nav-tabs li.bv-tab-success>a{color:#3c763d}.nav-tabs li.bv-tab-error>a{color:#a94442}.bv-form .bv-icon-no-label{top:0}.bv-form .bv-icon-input-group{top:0;z-index:100} -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/webuploader/webuploader.css: -------------------------------------------------------------------------------- 1 | .webuploader-container { 2 | position: relative; 3 | } 4 | .webuploader-element-invisible { 5 | position: absolute !important; 6 | clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 7 | clip: rect(1px,1px,1px,1px); 8 | } 9 | .webuploader-pick { 10 | position: relative; 11 | display: inline-block; 12 | cursor: pointer; 13 | background: #1ab394; 14 | padding: 6px 12px; 15 | color: #fff; 16 | text-align: center; 17 | border-radius: 3px; 18 | overflow: hidden; 19 | font-size: 14px; 20 | font-weight: 400; 21 | } 22 | .webuploader-pick-hover { 23 | background: #18ab8d; 24 | } 25 | 26 | .webuploader-pick-disable { 27 | opacity: 0.6; 28 | pointer-events:none; 29 | } 30 | 31 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/1_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/1_close.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/1_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/1_open.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/2.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/3.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/4.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/5.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/6.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/7.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/8.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/diy/9.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/line_conn.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/loading.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/favicon.ico -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Bold-webfont.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Bold-webfont.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Bold-webfont.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Light-webfont.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Light-webfont.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Light-webfont.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Medium-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Medium-webfont.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Medium-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Medium-webfont.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Medium-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Medium-webfont.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Regular-webfont.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Regular-webfont.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Regular-webfont.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Thin-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Thin-webfont.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Thin-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Thin-webfont.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/roboto/Roboto-Thin-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/roboto/Roboto-Thin-webfont.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/shadowsintolight/shadowsintolight-webfont.woff2 -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/weather-icons/weather-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/weather-icons/weather-icons.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/weather-icons/weather-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/weather-icons/weather-icons.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/fonts/weather-icons/weather-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/fonts/weather-icons/weather-icons.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/300x200.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/300x200.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/avatar.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/browsers/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/browsers/chrome.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/browsers/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/browsers/firefox.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/browsers/ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/browsers/ie.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/browsers/opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/browsers/opera.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/browsers/safari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/browsers/safari.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/cal-header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/cal-header.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/headers/sm/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/headers/sm/4.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/ellipsis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/ellipsis.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/ellipsis@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/ellipsis@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/fullscreen.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/fullscreen@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/fullscreen@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/menu-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/menu-2.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/menu-2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/menu-2@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/menu.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/menu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/menu@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/message.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/message@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/message@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/notification.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/notification@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/notification@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/pause.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/pause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/pause@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/play.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/play@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/play@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/search-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/search-2.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/search-2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/search-2@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/search.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/search@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/speaker-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/speaker-2.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/speaker-2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/speaker-2@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/speaker.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/speaker@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/speaker@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/task.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/icons/task@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/icons/task@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/notifications.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-menu.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/1.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/2.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/3.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/4.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/5.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/6.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/7.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/8.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/9.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/avatar.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/profile-pic-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/profile-pic-2.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/profile-pics/profile-pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/profile-pics/profile-pic.jpg -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/select.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/select@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/select@2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/img/thumbs-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/img/thumbs-up.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/demo.js: -------------------------------------------------------------------------------- 1 | $(window).load(function(){ 2 | //Welcome Message (not for login page) 3 | function notify(message, type){ 4 | $.growl({ 5 | message: message 6 | },{ 7 | type: type, 8 | allow_dismiss: false, 9 | label: 'Cancel', 10 | className: 'btn-xs btn-inverse', 11 | placement: { 12 | from: 'top', 13 | align: 'right' 14 | }, 15 | delay: 11500, 16 | animate: { 17 | enter: 'animated fadeIn', 18 | exit: 'animated fadeOut' 19 | }, 20 | offset: { 21 | x: 20, 22 | y: 85 23 | } 24 | }); 25 | }; 26 | 27 | if (!$('.login-content')[0]) { 28 | notify('欢迎光临 Flash Material', 'inverse'); 29 | } 30 | }); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * bootstrap-table - v1.11.1 - 2017-02-22 3 | * https://github.com/wenzhixin/bootstrap-table 4 | * Copyright (c) 2017 zhixin wen 5 | * Licensed MIT License 6 | */ 7 | !function(a){"use strict";a.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(a){return"每页显示 "+a+" 条记录"},formatShowingRows:function(a,b,c){return"显示第 "+a+" 到第 "+b+" 条记录,总共 "+c+" 条记录"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"},formatExport:function(){return"导出数据"},formatClearFilters:function(){return"清空过滤"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-CN"])}(jQuery); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/jquery-treegrid/js/jquery.treegrid.bootstrap3.js: -------------------------------------------------------------------------------- 1 | $.extend($.fn.treegrid.defaults, { 2 | expanderExpandedClass: 'glyphicon glyphicon-chevron-down', 3 | expanderCollapsedClass: 'glyphicon glyphicon-chevron-right' 4 | }); 5 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/laydate/skins/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/laydate/skins/default/icon.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/layim/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/layim/loading.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/skin/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/skin/default/icon-ext.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/skin/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/skin/default/icon.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/skin/default/icon_ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/skin/default/icon_ext.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/skin/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/skin/default/loading-0.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/skin/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/skin/default/loading-1.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/skin/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/skin/default/loading-2.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/theme/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/theme/default/icon-ext.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/theme/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/theme/default/icon.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/theme/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/theme/default/loading-0.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/theme/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/theme/default/loading-1.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/layer/theme/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/layer/theme/default/loading-2.gif -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/webuploader/README.md: -------------------------------------------------------------------------------- 1 | 目录说明 2 | ======================== 3 | 4 | ```bash 5 | ├── Uploader.swf # SWF文件,当使用Flash运行时需要引入。 6 | ├ 7 | ├── webuploader.js # 完全版本。 8 | ├── webuploader.min.js # min版本 9 | ├ 10 | ├── webuploader.flashonly.js # 只有Flash实现的版本。 11 | ├── webuploader.flashonly.min.js # min版本 12 | ├ 13 | ├── webuploader.html5only.js # 只有Html5实现的版本。 14 | ├── webuploader.html5only.min.js # min版本 15 | ├ 16 | ├── webuploader.noimage.js # 去除图片处理的版本,包括HTML5和FLASH. 17 | ├── webuploader.noimage.min.js # min版本 18 | ├ 19 | ├── webuploader.custom.js # 自定义打包方案,请查看 Gruntfile.js,满足移动端使用。 20 | └── webuploader.custom.min.js # min版本 21 | ``` 22 | 23 | ## 示例 24 | 25 | 请把整个 Git 包下载下来放在 php 服务器下,因为默认提供的文件接受是用 php 编写的,打开 examples 页面便能查看示例效果。 -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/webuploader/Uploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/js/plugins/webuploader/Uploader.swf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/plugins/webuploader/webuploader.css: -------------------------------------------------------------------------------- 1 | .webuploader-container { 2 | position: relative; 3 | } 4 | .webuploader-element-invisible { 5 | position: absolute !important; 6 | clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 7 | clip: rect(1px,1px,1px,1px); 8 | } 9 | .webuploader-pick { 10 | position: relative; 11 | display: inline-block; 12 | cursor: pointer; 13 | background: #00b7ee; 14 | padding: 10px 15px; 15 | color: #fff; 16 | text-align: center; 17 | border-radius: 3px; 18 | overflow: hidden; 19 | } 20 | .webuploader-pick-hover { 21 | background: #00a2d4; 22 | } 23 | 24 | .webuploader-pick-disable { 25 | opacity: 0.6; 26 | pointer-events:none; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/js/read-me.txt: -------------------------------------------------------------------------------- 1 | I have created a seperate folder(flot-charts) for Flot Chart items. 2 | Each and every Flot chart I have used in this template have it's own js file inside flot-charts folder 3 | in order to get a clear picture of codes. -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/README.md: -------------------------------------------------------------------------------- 1 | 实验性质功能静态资源目录 2 | 如果不用可以将该目录和WEB-INF.view/lab目录一并删除 -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/images/cz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/images/cz.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.PolylineDecorator-master/example/icon_plane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.PolylineDecorator-master/example/icon_plane.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.PolylineDecorator-master/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.PolylineDecorator-master/screenshot.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.draw/icon_plane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.draw/icon_plane.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.draw/images/spritesheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet.draw/images/spritesheet.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/Thumbs.db -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/layers.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/Leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/arc.js-gh-pages/example/routes.csv: -------------------------------------------------------------------------------- 1 | lon1, lat1, lon2, lat2, name, other attribute 2 | -122, 48, -77, 39, "Seattle to DC", 1.0 3 | -122, 48, 0, 51, "Seattle to London", 2 4 | -77, 39, 0, 51, "DC to London", 3.1 -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/arc.js-gh-pages/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./arc'); 2 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/arc.js-gh-pages/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "arc", 3 | "description": "draw great circle arcs", 4 | "url": "https://github.com/springmeyer/arc.js", 5 | "keywords": [ 6 | "maps", 7 | "spherical", 8 | "globe", 9 | "rhumb line", 10 | "crow flies", 11 | "great circle" 12 | ], 13 | "contributors": [ 14 | "Dane Springmeyer " 15 | ], 16 | "repository" : { 17 | "type" : "git", 18 | "url" : "git://github.com/springmeyer/arc.js.git" 19 | }, 20 | "version": "0.0.2", 21 | "licenses": [{ 22 | "type": "BSD" 23 | }], 24 | "main": "./index", 25 | "engines": { 26 | "node": ">=0.4.0" 27 | }, 28 | "dependencies": { 29 | }, 30 | "devDependencies": { 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/arc.js-gh-pages/test.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var arc = require('./arc.js'); 4 | 5 | var features = []; 6 | var geojson = { 'type': 'FeatureCollection', 7 | 'features': features 8 | }; 9 | 10 | var routes = [ 11 | [new arc.Coord(-122, 48), new arc.Coord(-77, 39), {'name': 'Seattle to DC'}], 12 | [new arc.Coord(-122, 48), new arc.Coord(0, 51), {'name': 'Seattle to London'}], 13 | [new arc.Coord(-75.9375,35.460669951495305), new arc.Coord(146.25,-43.06888777416961), {'name': 'crosses dateline'}], 14 | [new arc.Coord(145.54687500000003,48.45835188280866 ), new arc.Coord(-112.5,-37.71859032558814), {'name': 'crosses dateline'}] 15 | ]; 16 | 17 | routes.forEach(function(route,idx) { 18 | var gc = new arc.GreatCircle(route[0], route[1], route[2]); 19 | var line = gc.Arc(50); 20 | features.push(line.json()); 21 | }); 22 | 23 | console.log(JSON.stringify(geojson)); 24 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/lab/gis/js/jslib/mapColumnChart.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/lab/gis/js/jslib/mapColumnChart.js -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition-property(~"height, visibility"); 31 | .transition-duration(.35s); 32 | .transition-timing-function(ease); 33 | } 34 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover, 6 | a&:focus { 7 | background-color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (will be removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a& { 9 | color: @color; 10 | 11 | .list-group-item-heading { 12 | color: inherit; 13 | } 14 | 15 | &:hover, 16 | &:focus { 17 | color: @color; 18 | background-color: darken(@background, 5%); 19 | } 20 | &.active, 21 | &.active:hover, 22 | &.active:focus { 23 | color: #fff; 24 | background-color: @color; 25 | border-color: @color; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | } 10 | &:first-child { 11 | > a, 12 | > span { 13 | .border-left-radius(@border-radius); 14 | } 15 | } 16 | &:last-child { 17 | > a, 18 | > span { 19 | .border-right-radius(@border-radius); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover, 6 | a&:focus { 7 | color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-master/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/bootstrap-overrides.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Media - Overriding the Media object to 3.2 version in order to prevent issues like text overflow. 3 | */ 4 | .media { 5 | .clearfix(); 6 | 7 | & > .pull-left { 8 | padding-right: 15px; 9 | } 10 | 11 | & > .pull-right { 12 | padding-left: 15px; 13 | } 14 | 15 | overflow: visible; 16 | } 17 | 18 | .media-heading { 19 | font-size: 14px; 20 | margin-bottom: 10px; 21 | } 22 | 23 | .media-body { 24 | zoom: 1; 25 | display: block; 26 | width: auto; 27 | } 28 | 29 | .media-object { 30 | border-radius: 2px; 31 | } 32 | 33 | .close { 34 | .opacity(0.5); 35 | font-weight: normal; 36 | text-shadow: none; 37 | 38 | &:hover { 39 | color: inherit; 40 | .opacity(1); 41 | } 42 | } 43 | 44 | .dl-horizontal dt { 45 | text-align: left; 46 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/breadcrumb.less: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | border-bottom: 1px solid #E5E5E5; 3 | border-radius: 0; 4 | 5 | 6 | 7 | & > li { 8 | 9 | & > a { 10 | color: #A9A9A9; 11 | 12 | &:hover { 13 | color: @breadcrumb-active-color; 14 | } 15 | } 16 | } 17 | } 18 | 19 | body { 20 | &:not(.sw-toggled) { 21 | .breadcrumb { 22 | @media (min-width: @screen-sm-min) { 23 | padding: 10px 33px 11px; 24 | } 25 | } 26 | } 27 | 28 | &.sw-toggled { 29 | .breadcrumb { 30 | @media (min-width: 1199px) { 31 | padding: 10px 33px 11px 280px; 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/font.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Roboto Light 3 | */ 4 | .font-face(roboto, 'Roboto-Light-webfont', 300, normal); 5 | 6 | /* 7 | * Roboto Regular 8 | */ 9 | .font-face(roboto, 'Roboto-Regular-webfont', 400, normal); 10 | 11 | /* 12 | * Roboto Medium 13 | */ 14 | .font-face(roboto, 'Roboto-Medium-webfont', 500, normal); 15 | 16 | /* 17 | * Roboto Bold 18 | */ 19 | .font-face(roboto, 'Roboto-Bold-webfont', 700, normal); 20 | 21 | /* 22 | * Shadow Light 23 | */ 24 | .font-face(shadowsintolight, 'shadowsintolight-webfont', 400, normal); 25 | 26 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/footer.less: -------------------------------------------------------------------------------- 1 | #footer { 2 | position: absolute; 3 | bottom: 0; 4 | text-align: center; 5 | width: 100%; 6 | height: @footer-height; 7 | color: #a2a2a2; 8 | padding-top: 35px; 9 | padding-bottom: 15px; 10 | 11 | .f-menu { 12 | display: block; 13 | width: 100%; 14 | .list-inline(); 15 | margin-top: 8px; 16 | 17 | & > li > a { 18 | color: #a2a2a2; 19 | 20 | &:hover { 21 | color: #777; 22 | } 23 | } 24 | } 25 | } 26 | 27 | @media (min-width: @screen-md-max) { 28 | body.sw-toggled { 29 | #footer { 30 | padding-left: @sidebar-left-width; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/invoice.less: -------------------------------------------------------------------------------- 1 | .invoice { 2 | min-width: 1100px; 3 | max-width: 1170px; 4 | } 5 | 6 | .i-logo { 7 | width: 150px; 8 | } 9 | 10 | .i-table { 11 | .highlight { 12 | background-color: #eee; 13 | border-bottom: 1px solid darken(#eee, 3%); 14 | } 15 | 16 | td.highlight { 17 | font-size: 14px; 18 | font-weight: 500; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/less-plugins/for.less: -------------------------------------------------------------------------------- 1 | 2 | .for(@i, @n) {.-each(@i)} 3 | .for(@n) when (isnumber(@n)) {.for(1, @n)} 4 | .for(@i, @n) when not (@i = @n) { 5 | .for((@i + (@n - @i) / abs(@n - @i)), @n); 6 | } 7 | 8 | .for(@array) when (default()) {.for-impl_(length(@array))} 9 | .for-impl_(@i) when (@i > 1) {.for-impl_((@i - 1))} 10 | .for-impl_(@i) when (@i > 0) {.-each(extract(@array, @i))} 11 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/list.less: -------------------------------------------------------------------------------- 1 | .clist { 2 | list-style: none; 3 | 4 | & > li { 5 | &:before { 6 | font-family: @font-icon-md; 7 | margin: 0 10px 0 -20px; 8 | vertical-align: middle; 9 | } 10 | } 11 | 12 | &.clist-angle > li:before { 13 | content: "\f2fb"; 14 | } 15 | 16 | &.clist-check > li:before { 17 | content: "\f26b"; 18 | } 19 | 20 | &.clist-star > li:before { 21 | content: "\f27d"; 22 | } 23 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/popover.less: -------------------------------------------------------------------------------- 1 | .popover { 2 | box-shadow: 0 2px 30px rgba(0, 0, 0, 0.2); 3 | } 4 | 5 | .popover-title { 6 | border-bottom: 0; 7 | padding: 15px; 8 | font-size: 12px; 9 | text-transform: uppercase; 10 | 11 | & + .popover-content { 12 | padding-top: 0; 13 | } 14 | } 15 | 16 | .popover-content { 17 | padding: 15px; 18 | 19 | p { 20 | margin-bottom: 0; 21 | } 22 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/progress-bar.less: -------------------------------------------------------------------------------- 1 | .progress { 2 | box-shadow: none; 3 | border-radius: 0; 4 | height: 5px; 5 | margin-bottom: 0; 6 | 7 | .progress-bar { 8 | box-shadow: none; 9 | } 10 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/shadow.less: -------------------------------------------------------------------------------- 1 | .z-depth { 2 | .z-depth-class(); 3 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/tooltip.less: -------------------------------------------------------------------------------- 1 | .tooltip-inner { 2 | border-radius: 1px; 3 | padding: 3px 10px 5px; 4 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/vendor-overrides/farbtastic.less: -------------------------------------------------------------------------------- 1 | .cp-container { 2 | position: relative; 3 | 4 | & > .input-group { 5 | 6 | input.cp-value { 7 | color: #000 !important; 8 | background: transparent !important; 9 | } 10 | 11 | .dropdown-menu { 12 | padding: 20px; 13 | margin-left: 10px; 14 | } 15 | } 16 | 17 | i.cp-value { 18 | width: 25px; 19 | height: 25px; 20 | border-radius: 2px; 21 | position: absolute; 22 | top: 0; 23 | right: 15px; 24 | } 25 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/vendor-overrides/malihu-custom-scrollbar.less: -------------------------------------------------------------------------------- 1 | .mCSB_scrollTools { 2 | width: 5px; 3 | 4 | .mCSB_dragger_bar { 5 | border-radius: 0 !important; 6 | } 7 | 8 | &.mCSB_scrollTools_horizontal, 9 | &.mCSB_scrollTools_vertical { 10 | margin: 0 !important; 11 | } 12 | 13 | &.mCSB_scrollTools_horizontal { 14 | height: 10px; 15 | } 16 | } 17 | 18 | .mCS-minimal-dark { 19 | &.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { 20 | background: rgba(0,0,0,0.4); 21 | } 22 | 23 | &.mCSB_scrollTools_onDrag .mCSB_dragger .mCSB_dragger_bar { 24 | background: rgba(0,0,0,0.5) !important; 25 | } 26 | } 27 | 28 | .mCSB_inside > .mCSB_container { 29 | margin-right: 0; 30 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/vendor-overrides/sweetalert.less: -------------------------------------------------------------------------------- 1 | .sweet-alert { 2 | border-radius: 2px; 3 | padding: 10px 30px; 4 | 5 | h2 { 6 | font-size: 16px; 7 | font-weight: 400; 8 | position: relative; 9 | z-index: 1; 10 | } 11 | 12 | .lead { 13 | font-size: 13px; 14 | } 15 | 16 | .btn { 17 | padding: 6px 12px; 18 | font-size: 13px; 19 | margin: 20px 2px 0; 20 | } 21 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/vendor-overrides/waves.less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/less/inc/vendor-overrides/waves.less -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/less/inc/wizard.less: -------------------------------------------------------------------------------- 1 | .fw-container { 2 | .tab-content { 3 | padding: 25px 0; 4 | } 5 | 6 | .fw-footer { 7 | text-align: center; 8 | margin: 30px 0 0; 9 | width: 100%; 10 | border-top: 2px solid #eee; 11 | padding: 15px 0; 12 | } 13 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bootgrid/.npmignore: -------------------------------------------------------------------------------- 1 | build 2 | demo 3 | dist/*.nupkg 4 | dist/*.zip 5 | docs 6 | lib 7 | *.nuspec 8 | test 9 | .gitattributes 10 | .gitignore 11 | .travis.yml 12 | bootgrid.jquery.json 13 | bower.json 14 | Gruntfile.js -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bootgrid/jquery.bootgrid.fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Bootgrid v1.3.1 - 09/11/2015 3 | * Copyright (c) 2014-2015 Rafael Staib (http://www.jquery-bootgrid.com) 4 | * Licensed under MIT http://www.opensource.org/licenses/MIT 5 | */ 6 | ;(function ($, window, undefined) 7 | { 8 | /*jshint validthis: true */ 9 | "use strict"; 10 | 11 | $.extend($.fn.bootgrid.Constructor.defaults.css, { 12 | icon: "icon fa", 13 | iconColumns: "fa-th-list", 14 | iconDown: "fa-sort-desc", 15 | iconRefresh: "fa-refresh", 16 | iconSearch: "fa-search", 17 | iconUp: "fa-sort-asc" 18 | }); 19 | })(jQuery, window); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bootgrid/jquery.bootgrid.fa.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Bootgrid v1.3.1 - 09/11/2015 3 | * Copyright (c) 2014-2015 Rafael Staib (http://www.jquery-bootgrid.com) 4 | * Licensed under MIT http://www.opensource.org/licenses/MIT 5 | */ 6 | !function(a,b,c){"use strict";a.extend(a.fn.bootgrid.Constructor.defaults.css,{icon:"icon fa",iconColumns:"fa-th-list",iconDown:"fa-sort-desc",iconRefresh:"fa-refresh",iconSearch:"fa-search",iconUp:"fa-sort-asc"})}(jQuery,window); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-cs_CZ.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic není vybráno",noneResultsText:"Žádné výsledky {0}",countSelectedText:"Označeno {0} z {1}",maxOptionsText:["Limit překročen ({n} {var} max)","Limit skupiny překročen ({n} {var} max)",["položek","položka"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-de_DE.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Bitte wählen...",noneResultsText:"Keine Ergebnisse für {0}",countSelectedText:"{0} von {1} ausgewählt",maxOptionsText:["Limit erreicht ({n} {var} max.)","Gruppen-Limit erreicht ({n} {var} max.)",["Eintrag","Einträge"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-es_CL.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"No hay selección",noneResultsText:"No hay resultados {0}",countSelectedText:"Seleccionados {0} de {1}",maxOptionsText:["Límite alcanzado ({n} {var} max)","Límite del grupo alcanzado({n} {var} max)",["elementos","element"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-eu.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hautapenik ez",noneResultsText:"Emaitzarik ez {0}",countSelectedText:"{1}(e)tik {0} hautatuta",maxOptionsText:["Mugara iritsita ({n} {var} gehienez)","Taldearen mugara iritsita ({n} {var} gehienez)",["elementu","elementu"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-fa_IR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"چیزی انتخاب نشده است",noneResultsText:"هیج مشابهی برای {0} پیدا نشد",countSelectedText:"{0} از {1} مورد انتخاب شده",maxOptionsText:["بیشتر ممکن نیست {حداکثر {n} عدد}","بیشتر ممکن نیست {حداکثر {n} عدد}"],selectAllText:"انتخاب همه",deselectAllText:"انتخاب هیچ کدام",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-hu_HU.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Válasszon!",noneResultsText:"Nincs találat {0}",countSelectedText:function(a,b){return"{n} elem kiválasztva"},maxOptionsText:function(a,b){return["Legfeljebb {n} elem választható","A csoportban legfeljebb {n} elem választható"]},selectAllText:"Mind",deselectAllText:"Egyik sem",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-it_IT.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nessuna selezione",noneResultsText:"Nessun risultato per {0}",countSelectedText:"Selezionati {0} di {1}",maxOptionsText:["Limite raggiunto ({n} {var} max)","Limite del gruppo raggiunto ({n} {var} max)",["elementi","elemento"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-ko_KR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"항목을 선택해주세요",noneResultsText:"{0} 검색 결과가 없습니다",countSelectedText:function(a,b){return"{0}개를 선택하였습니다"},maxOptionsText:function(a,b){return["{n}개까지 선택 가능합니다","해당 그룹은 {n}개까지 선택 가능합니다"]},selectAllText:"전체선택",deselectAllText:"전체해제",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-nl_NL.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Niets geselecteerd",noneResultsText:"Geen resultaten gevonden voor {0}",countSelectedText:"{0} van {1} geselecteerd",maxOptionsText:["Limiet bereikt ({n} {var} max)","Groep limiet bereikt ({n} {var} max)",["items","item"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-pl_PL.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nic nie zaznaczono",noneResultsText:"Brak wyników wyszukiwania {0}",countSelectedText:"Zaznaczono {0} z {1}",maxOptionsText:["Osiągnięto limit ({n} {var} max)","Limit grupy osiągnięty ({n} {var} max)",["elementy","element"]],selectAll:"Zaznacz wszystkie",deselectAll:"Odznacz wszystkie",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-pt_BR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nada selecionado",noneResultsText:"Nada encontrado contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite excedido (máx. {n} {var})","Limite do grupo excedido (máx. {n} {var})",["itens","item"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-pt_PT.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nenhum seleccionado",noneResultsText:"Sem resultados contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite ultrapassado (máx. {n} {var})","Limite de seleções ultrapassado (máx. {n} {var})",["itens","item"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-ro_RO.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nu a fost selectat nimic",noneResultsText:"Nu exista niciun rezultat {0}",countSelectedText:"{0} din {1} selectat(e)",maxOptionsText:["Limita a fost atinsa ({n} {var} max)","Limita de grup a fost atinsa ({n} {var} max)",["iteme","item"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-ru_RU.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Ничего не выбрано",noneResultsText:"Совпадений не найдено {0}",countSelectedText:"Выбрано {0} из {1}",maxOptionsText:["Достигнут предел ({n} {var} максимум)","Достигнут предел в группе ({n} {var} максимум)",["items","item"]],doneButtonText:"Закрыть",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-sk_SK.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Vyberte zo zoznamu",noneResultsText:"Pre výraz {0} neboli nájdené žiadne výsledky",countSelectedText:"Vybrané {0} z {1}",maxOptionsText:["Limit prekročený ({n} {var} max)","Limit skupiny prekročený ({n} {var} max)",["položiek","položka"]],selectAllText:"Vybrať všetky",deselectAllText:"Zrušiť výber",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-sl_SI.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Nič izbranega",noneResultsText:"Ni zadetkov za {0}",countSelectedText:function(a,b){"Število izbranih: {0}"},maxOptionsText:function(a,b){return["Omejitev dosežena (max. izbranih: {n})","Omejitev skupine dosežena (max. izbranih: {n})"]},selectAllText:"Izberi vse",deselectAllText:"Počisti izbor",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-sv_SE.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Inget valt",noneResultsText:"Inget sökresultat matchar {0}",countSelectedText:function(a,b){return 1===a?"{0} alternativ valt":"{0} alternativ valda"},maxOptionsText:function(a,b){return["Gräns uppnåd (max {n} alternativ)","Gräns uppnåd (max {n} gruppalternativ)"]},selectAllText:"Markera alla",deselectAllText:"Avmarkera alla",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-tr_TR.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Hiçbiri seçilmedi",noneResultsText:"Hiçbir sonuç bulunamadı {0}",countSelectedText:function(a,b){return"{0} öğe seçildi"},maxOptionsText:function(a,b){return[1==a?"Limit aşıldı (maksimum {n} sayıda öğe )":"Limit aşıldı (maksimum {n} sayıda öğe)","Grup limiti aşıldı (maksimum {n} sayıda öğe)"]},selectAllText:"Tümünü Seç",deselectAllText:"Seçiniz",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-ua_UA.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"Нічого не вибрано",noneResultsText:"Збігів не знайдено {0}",countSelectedText:"Вибрано {0} із {1}",maxOptionsText:["Досягнута межа ({n} {var} максимум)","Досягнута межа в групі ({n} {var} максимум)",["items","item"]],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-zh_CN.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"没有选中任何项",noneResultsText:"没有找到匹配项",countSelectedText:"选中{1}中的{0}项",maxOptionsText:["超出限制 (最多选择{n}项)","组选择超出限制(最多选择{n}组)"],multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-select/1.7.2/js/i18n/defaults-zh_TW.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2015 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"沒有選取任何項目",noneResultsText:"沒有找到符合的結果",countSelectedText:"已經選取{0}個項目",maxOptionsText:["超過限制 (最多選擇{n}項)","超過限制(最多選擇{n}組)"],selectAllText:"選取全部",deselectAllText:"全部取消",multipleSeparator:", "}}(jQuery)}); -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap-sweetalert/lib/sweet-alert-combine.less: -------------------------------------------------------------------------------- 1 | @import "../bootstrap/variables"; 2 | @import "../bootstrap/mixins"; 3 | @import "sweet-alert"; 4 | -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/bootstrap/3.3.6/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/flot-orderBars/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flot-orderBars", 3 | "homepage": "https://github.com/emmerich/flot-orderBars", 4 | "_release": "d44ff4f2fe", 5 | "_resolution": { 6 | "type": "branch", 7 | "branch": "master", 8 | "commit": "d44ff4f2fec4c8bb1254e59567ee39fa3684372e" 9 | }, 10 | "_source": "git://github.com/emmerich/flot-orderBars.git", 11 | "_target": "*", 12 | "_originalSource": "emmerich/flot-orderBars", 13 | "_direct": true 14 | } -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/malihu-custom-scrollbar-plugin/mCSB_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/bower_components/malihu-custom-scrollbar-plugin/mCSB_buttons.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/material-design-iconic-font/dist/fonts/Material-Design-Iconic-Font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/bower_components/material-design-iconic-font/dist/fonts/Material-Design-Iconic-Font.ttf -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/bower_components/material-design-iconic-font/dist/fonts/Material-Design-Iconic-Font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/bower_components/material-design-iconic-font/dist/fonts/Material-Design-Iconic-Font.woff -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/farbtastic/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/farbtastic/marker.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/farbtastic/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/farbtastic/mask.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/farbtastic/wheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enilu/material-admin/82fa7e8ca363fee26f3d9d65959e09d14f48978c/material-manage/src/main/webapp/static/vendors/farbtastic/wheel.png -------------------------------------------------------------------------------- /material-manage/src/main/webapp/static/vendors/summernote/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "summernote", 3 | "homepage": "http://summernote.org", 4 | "license": "MIT", 5 | "main": [ 6 | "./dist/summernote.js", 7 | "./dist/summernote.css" 8 | ], 9 | "ignore": [ 10 | "**/.*", 11 | "node_modules", 12 | "bower_components", 13 | "test", 14 | "tests" 15 | ], 16 | "dependencies": { 17 | "jquery": ">= 1.9.0", 18 | "bootstrap": ">= 3.0.1", 19 | "font-awesome": ">=4.2.0" 20 | }, 21 | "version": "0.6.16", 22 | "_release": "0.6.16", 23 | "_resolution": { 24 | "type": "version", 25 | "tag": "v0.6.16", 26 | "commit": "4a988eebc69b783f649e16e44511bea5afa73df8" 27 | }, 28 | "_source": "git://github.com/summernote/summernote.git", 29 | "_target": "~0.6.16", 30 | "_originalSource": "summernote", 31 | "_direct": true 32 | } --------------------------------------------------------------------------------