├── .gitignore ├── README.md ├── dokit-front ├── .editorconfig ├── .env.development ├── .env.production ├── .eslintignore ├── .eslintrc.js ├── .travis.yml ├── LICENSE ├── README.md ├── babel.config.js ├── jest.config.js ├── package.json ├── plopfile.js ├── postcss.config.js ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.vue │ ├── api │ │ ├── app.js │ │ ├── code.js │ │ ├── connect.js │ │ ├── data.js │ │ ├── database.js │ │ ├── deploy.js │ │ ├── deployHistory.js │ │ ├── dept.js │ │ ├── dict.js │ │ ├── dictDetail.js │ │ ├── email.js │ │ ├── genConfig.js │ │ ├── generator.js │ │ ├── job.js │ │ ├── localStorage.js │ │ ├── log.js │ │ ├── login.js │ │ ├── menu.js │ │ ├── online.js │ │ ├── picture.js │ │ ├── qiniu.js │ │ ├── redis.js │ │ ├── role.js │ │ ├── server.js │ │ ├── serverDeploy.js │ │ ├── test.js │ │ ├── timing.js │ │ └── user.js │ ├── assets │ │ ├── 401_images │ │ │ └── 401.gif │ │ ├── 404_images │ │ │ ├── 404.png │ │ │ └── 404_cloud.png │ │ ├── icons │ │ │ ├── index.js │ │ │ ├── svg │ │ │ │ ├── Steve-Jobs.svg │ │ │ │ ├── alipay.svg │ │ │ │ ├── anq.svg │ │ │ │ ├── app.svg │ │ │ │ ├── backup.svg │ │ │ │ ├── bug.svg │ │ │ │ ├── chain.svg │ │ │ │ ├── chart.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── codeConsole.svg │ │ │ │ ├── component.svg │ │ │ │ ├── dashboard.svg │ │ │ │ ├── database.svg │ │ │ │ ├── date.svg │ │ │ │ ├── deploy.svg │ │ │ │ ├── dept.svg │ │ │ │ ├── dev.svg │ │ │ │ ├── develop.svg │ │ │ │ ├── dictionary.svg │ │ │ │ ├── documentation.svg │ │ │ │ ├── drag.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── education.svg │ │ │ │ ├── email.svg │ │ │ │ ├── error.svg │ │ │ │ ├── example.svg │ │ │ │ ├── excel.svg │ │ │ │ ├── exit-fullscreen.svg │ │ │ │ ├── eye-open.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── form.svg │ │ │ │ ├── fullscreen.svg │ │ │ │ ├── fwb.svg │ │ │ │ ├── github.svg │ │ │ │ ├── gonggao.svg │ │ │ │ ├── guide.svg │ │ │ │ ├── icon.svg │ │ │ │ ├── image.svg │ │ │ │ ├── index.svg │ │ │ │ ├── international.svg │ │ │ │ ├── ipvisits.svg │ │ │ │ ├── java.svg │ │ │ │ ├── language.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── log.svg │ │ │ │ ├── login.svg │ │ │ │ ├── markdown.svg │ │ │ │ ├── menu.svg │ │ │ │ ├── mnt.svg │ │ │ │ ├── money.svg │ │ │ │ ├── monitor.svg │ │ │ │ ├── password.svg │ │ │ │ ├── peoples.svg │ │ │ │ ├── permission.svg │ │ │ │ ├── phone.svg │ │ │ │ ├── qiniu.svg │ │ │ │ ├── redis.svg │ │ │ │ ├── role.svg │ │ │ │ ├── search.svg │ │ │ │ ├── server.svg │ │ │ │ ├── shopping.svg │ │ │ │ ├── size.svg │ │ │ │ ├── source.svg │ │ │ │ ├── sqlMonitor.svg │ │ │ │ ├── swagger.svg │ │ │ │ ├── sys-tools.svg │ │ │ │ ├── system.svg │ │ │ │ ├── system1.svg │ │ │ │ ├── timing.svg │ │ │ │ ├── tools.svg │ │ │ │ ├── unlock.svg │ │ │ │ ├── user.svg │ │ │ │ ├── user1.svg │ │ │ │ ├── validCode.svg │ │ │ │ ├── visits.svg │ │ │ │ ├── web.svg │ │ │ │ ├── weixin.svg │ │ │ │ └── zujian.svg │ │ │ └── svgo.yml │ │ ├── images │ │ │ ├── avatar.png │ │ │ ├── background.jpg │ │ │ └── logo.png │ │ └── styles │ │ │ ├── btn.scss │ │ │ ├── description.scss │ │ │ ├── eladmin.scss │ │ │ ├── element-ui.scss │ │ │ ├── element-variables.scss │ │ │ ├── index.scss │ │ │ ├── mixin.scss │ │ │ ├── sidebar.scss │ │ │ ├── transition.scss │ │ │ └── variables.scss │ ├── components │ │ ├── Breadcrumb │ │ │ └── index.vue │ │ ├── Crud │ │ │ ├── CRUD.operation.vue │ │ │ ├── Pagination.vue │ │ │ ├── RR.operation.vue │ │ │ ├── UD.operation.vue │ │ │ └── crud.js │ │ ├── DateRangePicker │ │ │ └── index.vue │ │ ├── Dict │ │ │ ├── Dict.js │ │ │ └── index.js │ │ ├── Echarts │ │ │ ├── BarChart.vue │ │ │ ├── Category.vue │ │ │ ├── Funnel.vue │ │ │ ├── Gauge.vue │ │ │ ├── Graph.vue │ │ │ ├── HeatMap.vue │ │ │ ├── Line3D.vue │ │ │ ├── PieChart.vue │ │ │ ├── Point.vue │ │ │ ├── RadarChart.vue │ │ │ ├── Rich.vue │ │ │ ├── Sankey.vue │ │ │ ├── Scatter.vue │ │ │ ├── Sunburst.vue │ │ │ ├── ThemeRiver.vue │ │ │ └── WordCloud.vue │ │ ├── ErrorLog │ │ │ └── index.vue │ │ ├── GithubCorner │ │ │ └── index.vue │ │ ├── Hamburger │ │ │ └── index.vue │ │ ├── HeaderSearch │ │ │ └── index.vue │ │ ├── IconSelect │ │ │ ├── index.vue │ │ │ └── requireIcons.js │ │ ├── Iframe │ │ │ └── index.vue │ │ ├── JavaEdit │ │ │ └── index.vue │ │ ├── Pagination │ │ │ └── index.vue │ │ ├── PanThumb │ │ │ └── index.vue │ │ ├── Permission │ │ │ ├── index.js │ │ │ └── permission.js │ │ ├── RightPanel │ │ │ └── index.vue │ │ ├── Screenfull │ │ │ └── index.vue │ │ ├── SizeSelect │ │ │ └── index.vue │ │ ├── SvgIcon │ │ │ └── index.vue │ │ ├── ThemePicker │ │ │ └── index.vue │ │ ├── WarnLog │ │ │ └── index.vue │ │ └── YamlEdit │ │ │ └── index.vue │ ├── layout │ │ ├── components │ │ │ ├── AppMain.vue │ │ │ ├── Navbar.vue │ │ │ ├── Settings │ │ │ │ └── index.vue │ │ │ ├── Sidebar │ │ │ │ ├── FixiOSBug.js │ │ │ │ ├── Item.vue │ │ │ │ ├── Link.vue │ │ │ │ ├── Logo.vue │ │ │ │ ├── SidebarItem.vue │ │ │ │ └── index.vue │ │ │ ├── TagsView │ │ │ │ ├── ScrollPane.vue │ │ │ │ └── index.vue │ │ │ └── index.js │ │ ├── index.vue │ │ └── mixin │ │ │ └── ResizeHandler.js │ ├── main.js │ ├── mixins │ │ └── crud.js │ ├── router │ │ ├── index.js │ │ └── routers.js │ ├── settings.js │ ├── store │ │ ├── getters.js │ │ ├── index.js │ │ └── modules │ │ │ ├── api.js │ │ │ ├── app.js │ │ │ ├── errorLog.js │ │ │ ├── permission.js │ │ │ ├── settings.js │ │ │ ├── tagsView.js │ │ │ └── user.js │ ├── utils │ │ ├── auth.js │ │ ├── clipboard.js │ │ ├── datetime.js │ │ ├── error-log.js │ │ ├── get-page-title.js │ │ ├── index.js │ │ ├── open-window.js │ │ ├── permission.js │ │ ├── request.js │ │ ├── rsaEncrypt.js │ │ ├── scroll-to.js │ │ ├── shortcuts.js │ │ ├── upload.js │ │ └── validate.js │ └── views │ │ ├── components │ │ ├── Echarts.vue │ │ ├── Editor.vue │ │ ├── MarkDown.vue │ │ ├── YamlEdit.vue │ │ └── icons │ │ │ ├── element-icons.js │ │ │ ├── index.vue │ │ │ └── svg-icons.js │ │ ├── dashboard │ │ ├── LineChart.vue │ │ ├── PanelGroup.vue │ │ └── resize.js │ │ ├── features │ │ ├── 401.vue │ │ ├── 404.vue │ │ └── redirect.vue │ │ ├── form │ │ └── index.vue │ │ ├── generator │ │ ├── config.vue │ │ ├── index.vue │ │ └── preview.vue │ │ ├── home.vue │ │ ├── login.vue │ │ ├── mnt │ │ ├── app │ │ │ └── index.vue │ │ ├── database │ │ │ ├── execute.vue │ │ │ └── index.vue │ │ ├── deploy │ │ │ ├── deploy.vue │ │ │ ├── index.vue │ │ │ └── sysRestore.vue │ │ ├── deployHistory │ │ │ └── index.vue │ │ └── server │ │ │ └── index.vue │ │ ├── monitor │ │ ├── log │ │ │ ├── errorLog.vue │ │ │ ├── index.vue │ │ │ └── search.vue │ │ ├── online │ │ │ └── index.vue │ │ ├── redis │ │ │ └── index.vue │ │ ├── server │ │ │ └── index.vue │ │ └── sql │ │ │ └── index.vue │ │ ├── system │ │ ├── dept │ │ │ └── index.vue │ │ ├── dict │ │ │ ├── dictDetail.vue │ │ │ └── index.vue │ │ ├── job │ │ │ ├── form.vue │ │ │ ├── header.vue │ │ │ └── index.vue │ │ ├── menu │ │ │ └── index.vue │ │ ├── role │ │ │ └── index.vue │ │ ├── timing │ │ │ ├── index.vue │ │ │ └── log.vue │ │ └── user │ │ │ ├── center.vue │ │ │ ├── center │ │ │ ├── updateEmail.vue │ │ │ └── updatePass.vue │ │ │ └── index.vue │ │ ├── test │ │ ├── error │ │ │ └── index.vue │ │ └── gen │ │ │ └── index.vue │ │ └── tools │ │ ├── email │ │ ├── config.vue │ │ ├── index.vue │ │ └── send.vue │ │ ├── picture │ │ └── index.vue │ │ ├── storage │ │ ├── index.vue │ │ ├── local │ │ │ └── index.vue │ │ └── qiniu │ │ │ ├── form.vue │ │ │ └── index.vue │ │ └── swagger │ │ └── index.vue ├── static │ └── .gitkeep └── vue.config.js ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── perye │ │ └── dokit │ │ ├── DokitApplication.java │ │ ├── annotation │ │ ├── AnonymousAccess.java │ │ ├── DataPermission.java │ │ ├── Limit.java │ │ ├── Log.java │ │ ├── Query.java │ │ ├── rest │ │ │ ├── AnonymousDeleteMapping.java │ │ │ ├── AnonymousGetMapping.java │ │ │ ├── AnonymousPatchMapping.java │ │ │ ├── AnonymousPostMapping.java │ │ │ └── AnonymousPutMapping.java │ │ └── type │ │ │ └── LogActionType.java │ │ ├── aspect │ │ ├── LimitAspect.java │ │ ├── LimitType.java │ │ └── LogAspect.java │ │ ├── base │ │ ├── BaseDTO.java │ │ ├── BaseEntity.java │ │ └── BaseMapper.java │ │ ├── config │ │ ├── AuditorConfig.java │ │ ├── ConfigBeanConfiguration.java │ │ ├── ConfigurerAdapter.java │ │ ├── DokitPermissionConfig.java │ │ ├── FileProperties.java │ │ ├── FilterConfig.java │ │ ├── JobRunner.java │ │ ├── MultipartConfig.java │ │ ├── QuartzConfig.java │ │ ├── RsaProperties.java │ │ ├── SecurityConfig.java │ │ ├── WebSocketConfig.java │ │ ├── bean │ │ │ ├── LoginCode.java │ │ │ ├── LoginCodeEnum.java │ │ │ ├── LoginProperties.java │ │ │ └── SecurityProperties.java │ │ └── xss │ │ │ ├── XssFilter.java │ │ │ └── XssHttpServletRequestWrapper.java │ │ ├── controller │ │ ├── AppController.java │ │ ├── AuthorizationController.java │ │ ├── DatabaseController.java │ │ ├── DeployController.java │ │ ├── DeployHistoryController.java │ │ ├── DeptController.java │ │ ├── DictController.java │ │ ├── DictDetailController.java │ │ ├── EmailController.java │ │ ├── GenConfigController.java │ │ ├── GeneratorController.java │ │ ├── JobController.java │ │ ├── LimitController.java │ │ ├── LocalStorageController.java │ │ ├── LogController.java │ │ ├── MenuController.java │ │ ├── MonitorController.java │ │ ├── OnlineController.java │ │ ├── PictureController.java │ │ ├── QiniuController.java │ │ ├── QuartzJobController.java │ │ ├── RoleController.java │ │ ├── ServerDeployController.java │ │ ├── UserController.java │ │ └── VerifyController.java │ │ ├── dto │ │ ├── AppDto.java │ │ ├── DatabaseDto.java │ │ ├── DeployDto.java │ │ ├── DeployHistoryDto.java │ │ ├── DeptDto.java │ │ ├── DeptSmallDto.java │ │ ├── DictDetailDto.java │ │ ├── DictDto.java │ │ ├── DictSmallDto.java │ │ ├── JobDTO.java │ │ ├── JobSmallDto.java │ │ ├── LocalStorageDto.java │ │ ├── LogErrorDto.java │ │ ├── LogSmallDto.java │ │ ├── MenuDto.java │ │ ├── RoleDto.java │ │ ├── RoleSmallDto.java │ │ ├── ServerDeployDto.java │ │ └── UserDto.java │ │ ├── entity │ │ ├── App.java │ │ ├── ColumnInfo.java │ │ ├── Database.java │ │ ├── Deploy.java │ │ ├── DeployHistory.java │ │ ├── Dept.java │ │ ├── Dict.java │ │ ├── DictDetail.java │ │ ├── EmailConfig.java │ │ ├── GenConfig.java │ │ ├── Job.java │ │ ├── LocalStorage.java │ │ ├── Log.java │ │ ├── Menu.java │ │ ├── Picture.java │ │ ├── QiniuConfig.java │ │ ├── QiniuContent.java │ │ ├── QuartzJob.java │ │ ├── QuartzLog.java │ │ ├── Role.java │ │ ├── ServerDeploy.java │ │ └── User.java │ │ ├── enums │ │ ├── CodeBiEnum.java │ │ ├── CodeEnum.java │ │ ├── DataScopeEnum.java │ │ └── RequestMethodEnum.java │ │ ├── exception │ │ ├── BadConfigurationException.java │ │ ├── BadRequestException.java │ │ ├── EntityExistException.java │ │ └── EntityNotFoundException.java │ │ ├── handler │ │ ├── ApiError.java │ │ └── GlobalExceptionHandler.java │ │ ├── mapstruct │ │ ├── AppMapper.java │ │ ├── DatabaseMapper.java │ │ ├── DeployHistoryMapper.java │ │ ├── DeployMapper.java │ │ ├── DeptMapper.java │ │ ├── DeptSmallMapper.java │ │ ├── DictDetailMapper.java │ │ ├── DictMapper.java │ │ ├── DictSmallMapper.java │ │ ├── JobMapper.java │ │ ├── JobSmallMapper.java │ │ ├── LocalStorageMapper.java │ │ ├── LogErrorMapper.java │ │ ├── LogSmallMapper.java │ │ ├── MenuMapper.java │ │ ├── RoleMapper.java │ │ ├── RoleSmallMapper.java │ │ ├── ServerDeployMapper.java │ │ └── UserMapper.java │ │ ├── query │ │ ├── AppQueryCriteria.java │ │ ├── DatabaseQueryCriteria.java │ │ ├── DeployHistoryQueryCriteria.java │ │ ├── DeployQueryCriteria.java │ │ ├── DeptQueryCriteria.java │ │ ├── DictDetailQueryCriteria.java │ │ ├── DictQueryCriteria.java │ │ ├── JobQueryCriteria.java │ │ ├── LocalStorageQueryCriteria.java │ │ ├── LogQueryCriteria.java │ │ ├── MenuQueryCriteria.java │ │ ├── PictureQueryCriteria.java │ │ ├── QiniuQueryCriteria.java │ │ ├── QuartzJobQueryCriteria.java │ │ ├── RoleQueryCriteria.java │ │ ├── ServerDeployQueryCriteria.java │ │ └── UserQueryCriteria.java │ │ ├── redis │ │ └── RedisConfig.java │ │ ├── repository │ │ ├── AppRepository.java │ │ ├── ColumnInfoRepository.java │ │ ├── DatabaseRepository.java │ │ ├── DeployHistoryRepository.java │ │ ├── DeployRepository.java │ │ ├── DeptRepository.java │ │ ├── DictDetailRepository.java │ │ ├── DictRepository.java │ │ ├── EmailRepository.java │ │ ├── GenConfigRepository.java │ │ ├── JobRepository.java │ │ ├── LocalStorageRepository.java │ │ ├── LogRepository.java │ │ ├── MenuRepository.java │ │ ├── PictureRepository.java │ │ ├── QiNiuConfigRepository.java │ │ ├── QiniuContentRepository.java │ │ ├── QuartzJobRepository.java │ │ ├── QuartzLogRepository.java │ │ ├── RoleRepository.java │ │ ├── ServerDeployRepository.java │ │ └── UserRepository.java │ │ ├── security │ │ ├── JwtAccessDeniedHandler.java │ │ ├── JwtAuthenticationEntryPoint.java │ │ ├── TokenConfigurer.java │ │ ├── TokenFilter.java │ │ ├── TokenProvider.java │ │ └── service │ │ │ └── UserCacheClean.java │ │ ├── service │ │ ├── AppService.java │ │ ├── DataService.java │ │ ├── DatabaseService.java │ │ ├── DeployHistoryService.java │ │ ├── DeployService.java │ │ ├── DeptService.java │ │ ├── DictDetailService.java │ │ ├── DictService.java │ │ ├── EmailService.java │ │ ├── GenConfigService.java │ │ ├── GeneratorService.java │ │ ├── JobService.java │ │ ├── LocalStorageService.java │ │ ├── LogService.java │ │ ├── MenuService.java │ │ ├── MonitorService.java │ │ ├── OnlineUserService.java │ │ ├── PictureService.java │ │ ├── QiNiuService.java │ │ ├── QuartzJobService.java │ │ ├── RoleService.java │ │ ├── ServerDeployService.java │ │ ├── UserService.java │ │ ├── VerifyService.java │ │ └── impl │ │ │ ├── AppServiceImpl.java │ │ │ ├── DataServiceImpl.java │ │ │ ├── DatabaseServiceImpl.java │ │ │ ├── DeployHistoryServiceImpl.java │ │ │ ├── DeployServiceImpl.java │ │ │ ├── DeptServiceImpl.java │ │ │ ├── DictDetailServiceImpl.java │ │ │ ├── DictServiceImpl.java │ │ │ ├── EmailServiceImpl.java │ │ │ ├── GenConfigServiceImpl.java │ │ │ ├── GeneratorServiceImpl.java │ │ │ ├── JobServiceImpl.java │ │ │ ├── LocalStorageServiceImpl.java │ │ │ ├── LogServiceImpl.java │ │ │ ├── MenuServiceImpl.java │ │ │ ├── MonitorServiceImpl.java │ │ │ ├── PictureServiceImpl.java │ │ │ ├── QiNiuServiceImpl.java │ │ │ ├── QuartzJobServiceImpl.java │ │ │ ├── RoleServiceImpl.java │ │ │ ├── ServerDeployServiceImpl.java │ │ │ ├── UserDetailsServiceImpl.java │ │ │ ├── UserServiceImpl.java │ │ │ └── VerifyServiceImpl.java │ │ ├── swagger2 │ │ └── SwaggerConfig.java │ │ ├── task │ │ └── TestTask.java │ │ ├── thread │ │ ├── AsyncTaskExecutePool.java │ │ ├── AsyncTaskProperties.java │ │ ├── TheadFactoryName.java │ │ └── ThreadPoolExecutorUtil.java │ │ ├── utils │ │ ├── Arith.java │ │ ├── CacheKey.java │ │ ├── CallBack.java │ │ ├── ColUtil.java │ │ ├── DataTypeEnum.java │ │ ├── DateUtil.java │ │ ├── DoKitConstant.java │ │ ├── EncryptUtils.java │ │ ├── EscapeUtil.java │ │ ├── ExecuteShellUtil.java │ │ ├── ExecutionJob.java │ │ ├── FileUtil.java │ │ ├── GenUtil.java │ │ ├── HTMLFilter.java │ │ ├── PageUtil.java │ │ ├── QiNiuUtil.java │ │ ├── QuartzManage.java │ │ ├── QuartzRunnable.java │ │ ├── QueryHelp.java │ │ ├── RedisUtils.java │ │ ├── RequestHolder.java │ │ ├── RsaUtils.java │ │ ├── ScpClientUtil.java │ │ ├── SecurityUtils.java │ │ ├── SpringContextHolder.java │ │ ├── SqlUtils.java │ │ ├── StringUtils.java │ │ ├── ThrowableUtil.java │ │ ├── TranslatorUtil.java │ │ ├── ValidationUtil.java │ │ ├── VerifyCodeUtils.java │ │ ├── ZipUtils.java │ │ └── http │ │ │ └── HttpUtils.java │ │ ├── vo │ │ ├── AuthUserDto.java │ │ ├── EmailVo.java │ │ ├── JwtUserDto.java │ │ ├── MenuMetaVo.java │ │ ├── MenuVo.java │ │ ├── OnlineUserDto.java │ │ ├── TableInfo.java │ │ ├── TradeVo.java │ │ └── UserPassVo.java │ │ └── websocket │ │ ├── MsgType.java │ │ ├── SocketMsg.java │ │ └── WebSocketServer.java └── resources │ ├── banner.txt │ ├── config │ ├── application-dev.yml │ ├── application-prod.yml │ └── application.yml │ ├── generator.properties │ ├── ip2region │ └── ip2region.db │ ├── log4jdbc.log4j2.properties │ ├── logback.xml │ ├── sql │ └── dokit.sql │ └── template │ ├── email │ ├── email.ftl │ └── taskAlarm.ftl │ └── generator │ ├── admin │ ├── Controller.ftl │ ├── Dto.ftl │ ├── Entity.ftl │ ├── Mapper.ftl │ ├── QueryCriteria.ftl │ ├── Repository.ftl │ ├── Service.ftl │ └── ServiceImpl.ftl │ └── front │ ├── api.ftl │ └── index.ftl └── test └── java └── com └── perye └── dokit └── DokitApplicationTests.java /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | /.gradle/ 5 | node_modules/ 6 | dist/ 7 | npm-debug.log* 8 | yarn-debug.log* 9 | yarn-error.log* 10 | **/*.log 11 | 12 | tests/**/coverage/ 13 | tests/e2e/reports 14 | selenium-debug.log 15 | 16 | *.local 17 | 18 | package-lock.json 19 | yarn.lock 20 | 21 | ### STS ### 22 | .apt_generated 23 | .classpath 24 | .factorypath 25 | .project 26 | .settings 27 | .springBeans 28 | .sts4-cache 29 | 30 | ### IntelliJ IDEA ### 31 | .idea 32 | *.iws 33 | *.iml 34 | *.ipr 35 | 36 | ### NetBeans ### 37 | /nbproject/private/ 38 | /nbbuild/ 39 | /dist/ 40 | /nbdist/ 41 | /.nb-gradle/ 42 | #build/ 43 | 44 | ### VS Code ### 45 | .vscode/ 46 | .mvn/ 47 | mvnw 48 | mvnw.cmd 49 | -------------------------------------------------------------------------------- /dokit-front/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /dokit-front/.env.development: -------------------------------------------------------------------------------- 1 | ENV = 'development' 2 | 3 | # 接口地址 4 | VUE_APP_BASE_API = 'http://192.168.2.54:8000' 5 | VUE_APP_WS_API = 'ws://192.168.2.54:8000' 6 | 7 | # 是否启用 babel-plugin-dynamic-import-node插件 8 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 9 | -------------------------------------------------------------------------------- /dokit-front/.env.production: -------------------------------------------------------------------------------- 1 | ENV = 'production' 2 | 3 | # 接口地址 4 | VUE_APP_BASE_API = 'http://193.112.143.187:8080' 5 | VUE_APP_WS_API = 'ws://193.112.143.187:8080' 6 | -------------------------------------------------------------------------------- /dokit-front/.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | src/assets 3 | public 4 | dist 5 | -------------------------------------------------------------------------------- /dokit-front/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 10 3 | script: npm run test 4 | notifications: 5 | email: false 6 | -------------------------------------------------------------------------------- /dokit-front/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017-present PanJiaChen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /dokit-front/README.md: -------------------------------------------------------------------------------- 1 | # dokit-front 2 | 3 | #### Build Setup 4 | ``` bash 5 | # 安装依赖 6 | npm install 7 | or 8 | yarn install 9 | 10 | # 启动服务 localhost:8000 11 | npm run dev 12 | or 13 | yarn run dev 14 | 15 | # 构建生产环境 16 | npm run build 17 | or 18 | yarn run build 19 | ``` -------------------------------------------------------------------------------- /dokit-front/babel.config.js: -------------------------------------------------------------------------------- 1 | const plugins = ['@vue/babel-plugin-transform-vue-jsx'] 2 | // 生产环境移除console 3 | if (process.env.NODE_ENV === 'production') { 4 | plugins.push('transform-remove-console') 5 | } 6 | module.exports = { 7 | plugins: plugins, 8 | presets: [ 9 | '@vue/app' 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /dokit-front/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], 3 | transform: { 4 | '^.+\\.vue$': 'vue-jest', 5 | '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 6 | 'jest-transform-stub', 7 | '^.+\\.jsx?$': 'babel-jest' 8 | }, 9 | moduleNameMapper: { 10 | '^@/(.*)$': '/src/$1' 11 | }, 12 | snapshotSerializers: ['jest-serializer-vue'], 13 | testMatch: [ 14 | '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' 15 | ], 16 | collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], 17 | coverageDirectory: '/tests/unit/coverage', 18 | // 'collectCoverage': true, 19 | 'coverageReporters': [ 20 | 'lcov', 21 | 'text-summary' 22 | ], 23 | testURL: 'http://localhost/' 24 | } 25 | -------------------------------------------------------------------------------- /dokit-front/plopfile.js: -------------------------------------------------------------------------------- 1 | const viewGenerator = require('./plop-templates/view/prompt') 2 | const componentGenerator = require('./plop-templates/component/prompt') 3 | 4 | module.exports = function(plop) { 5 | plop.setGenerator('view', viewGenerator) 6 | plop.setGenerator('component', componentGenerator) 7 | } 8 | -------------------------------------------------------------------------------- /dokit-front/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /dokit-front/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perye/dokit/a99c4ede10c98dc3e45cf8f83e2ac209296c5e21/dokit-front/public/favicon.ico -------------------------------------------------------------------------------- /dokit-front/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | <%= webpackConfig.name %> 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /dokit-front/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /dokit-front/src/api/app.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/app', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/app', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/app', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /dokit-front/src/api/code.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function resetEmail(data) { 4 | return request({ 5 | url: 'api/code/resetEmail?email=' + data, 6 | method: 'post' 7 | }) 8 | } 9 | 10 | export function updatePass(pass) { 11 | return request({ 12 | url: 'api/users/updatePass/' + pass, 13 | method: 'get' 14 | }) 15 | } 16 | -------------------------------------------------------------------------------- /dokit-front/src/api/connect.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function testDbConnect(data) { 4 | return request({ 5 | url: 'api/database/testConnect', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function testServerConnect(data) { 12 | return request({ 13 | url: 'api/serverDeploy/testConnect', 14 | method: 'post', 15 | data 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /dokit-front/src/api/data.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | import qs from 'qs' 3 | 4 | export function initData(url, params) { 5 | return request({ 6 | url: url + '?' + qs.stringify(params, { indices: false }), 7 | method: 'get' 8 | }) 9 | } 10 | 11 | export function download(url, params) { 12 | return request({ 13 | url: url + '?' + qs.stringify(params, { indices: false }), 14 | method: 'get', 15 | responseType: 'blob' 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /dokit-front/src/api/database.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/database', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/database', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/database', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export function testDbConnection(data) { 28 | return request({ 29 | url: 'api/database/testConnect', 30 | method: 'post', 31 | data 32 | }) 33 | } 34 | 35 | export default { add, edit, del, testDbConnection } 36 | -------------------------------------------------------------------------------- /dokit-front/src/api/deployHistory.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function del(ids) { 4 | return request({ 5 | url: 'api/deployHistory', 6 | method: 'delete', 7 | data: ids 8 | }) 9 | } 10 | 11 | /** 12 | * 版本回退 13 | * @param data 选中行 14 | */ 15 | export function reducte(data) { 16 | return request({ 17 | url: 'api/deploy/serverReduction', 18 | method: 'post', 19 | data 20 | }) 21 | } 22 | -------------------------------------------------------------------------------- /dokit-front/src/api/dept.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getDepts(params) { 4 | return request({ 5 | url: 'api/dept', 6 | method: 'get', 7 | params 8 | }) 9 | } 10 | 11 | export function getDeptSuperior(ids) { 12 | const data = ids.length || ids.length === 0 ? ids : Array.of(ids) 13 | return request({ 14 | url: 'api/dept/superior', 15 | method: 'post', 16 | data 17 | }) 18 | } 19 | 20 | export function add(data) { 21 | return request({ 22 | url: 'api/dept', 23 | method: 'post', 24 | data 25 | }) 26 | } 27 | 28 | export function del(ids) { 29 | return request({ 30 | url: 'api/dept', 31 | method: 'delete', 32 | data: ids 33 | }) 34 | } 35 | 36 | export function edit(data) { 37 | return request({ 38 | url: 'api/dept', 39 | method: 'put', 40 | data 41 | }) 42 | } 43 | 44 | export default { add, edit, del, getDepts, getDeptSuperior } 45 | -------------------------------------------------------------------------------- /dokit-front/src/api/dict.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getDicts() { 4 | return request({ 5 | url: 'api/dict/all', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function add(data) { 11 | return request({ 12 | url: 'api/dict', 13 | method: 'post', 14 | data 15 | }) 16 | } 17 | 18 | export function del(ids) { 19 | return request({ 20 | url: 'api/dict/', 21 | method: 'delete', 22 | data: ids 23 | }) 24 | } 25 | 26 | export function edit(data) { 27 | return request({ 28 | url: 'api/dict', 29 | method: 'put', 30 | data 31 | }) 32 | } 33 | 34 | export default { add, edit, del } 35 | -------------------------------------------------------------------------------- /dokit-front/src/api/dictDetail.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get(dictName) { 4 | const params = { 5 | dictName, 6 | page: 0, 7 | size: 9999 8 | } 9 | return request({ 10 | url: 'api/dictDetail', 11 | method: 'get', 12 | params 13 | }) 14 | } 15 | 16 | export function getDictMap(dictName) { 17 | const params = { 18 | dictName, 19 | page: 0, 20 | size: 9999 21 | } 22 | return request({ 23 | url: 'api/dictDetail/map', 24 | method: 'get', 25 | params 26 | }) 27 | } 28 | 29 | export function add(data) { 30 | return request({ 31 | url: 'api/dictDetail', 32 | method: 'post', 33 | data 34 | }) 35 | } 36 | 37 | export function del(id) { 38 | return request({ 39 | url: 'api/dictDetail/' + id, 40 | method: 'delete' 41 | }) 42 | } 43 | 44 | export function edit(data) { 45 | return request({ 46 | url: 'api/dictDetail', 47 | method: 'put', 48 | data 49 | }) 50 | } 51 | 52 | export default { add, edit, del } 53 | -------------------------------------------------------------------------------- /dokit-front/src/api/email.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get() { 4 | return request({ 5 | url: 'api/email', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function update(data) { 11 | return request({ 12 | url: 'api/email', 13 | data, 14 | method: 'put' 15 | }) 16 | } 17 | 18 | export function send(data) { 19 | return request({ 20 | url: 'api/email', 21 | data, 22 | method: 'post' 23 | }) 24 | } 25 | -------------------------------------------------------------------------------- /dokit-front/src/api/genConfig.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get(tableName) { 4 | return request({ 5 | url: 'api/genConfig/' + tableName, 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function update(data) { 11 | return request({ 12 | url: 'api/genConfig', 13 | data, 14 | method: 'put' 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /dokit-front/src/api/generator.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getAllTable() { 4 | return request({ 5 | url: 'api/generator/tables/all', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function generator(tableName, type) { 11 | return request({ 12 | url: 'api/generator/' + tableName + '/' + type, 13 | method: 'post', 14 | responseType: type === 2 ? 'blob' : '' 15 | }) 16 | } 17 | 18 | export function save(data) { 19 | return request({ 20 | url: 'api/generator', 21 | data, 22 | method: 'put' 23 | }) 24 | } 25 | 26 | export function sync(tables) { 27 | return request({ 28 | url: 'api/generator/sync', 29 | method: 'post', 30 | data: tables 31 | }) 32 | } 33 | -------------------------------------------------------------------------------- /dokit-front/src/api/job.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getAllJob() { 4 | const params = { 5 | page: 0, 6 | size: 9999, 7 | enabled: true 8 | } 9 | return request({ 10 | url: 'api/job', 11 | method: 'get', 12 | params 13 | }) 14 | } 15 | 16 | export function add(data) { 17 | return request({ 18 | url: 'api/job', 19 | method: 'post', 20 | data 21 | }) 22 | } 23 | 24 | export function del(ids) { 25 | return request({ 26 | url: 'api/job', 27 | method: 'delete', 28 | data: ids 29 | }) 30 | } 31 | 32 | export function edit(data) { 33 | return request({ 34 | url: 'api/job', 35 | method: 'put', 36 | data 37 | }) 38 | } 39 | 40 | export default { add, edit, del } 41 | -------------------------------------------------------------------------------- /dokit-front/src/api/localStorage.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/localStorage', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/localStorage/', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/localStorage', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /dokit-front/src/api/log.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getErrDetail(id) { 4 | return request({ 5 | url: 'api/logs/error/' + id, 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function delAllError() { 11 | return request({ 12 | url: 'api/logs/del/error', 13 | method: 'delete' 14 | }) 15 | } 16 | 17 | export function delAllInfo() { 18 | return request({ 19 | url: 'api/logs/del/info', 20 | method: 'delete' 21 | }) 22 | } 23 | -------------------------------------------------------------------------------- /dokit-front/src/api/login.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function login(username, password, code, uuid) { 4 | return request({ 5 | url: 'auth/login', 6 | method: 'post', 7 | data: { 8 | username, 9 | password, 10 | code, 11 | uuid 12 | } 13 | }) 14 | } 15 | 16 | export function getInfo() { 17 | return request({ 18 | url: 'auth/info', 19 | method: 'get' 20 | }) 21 | } 22 | 23 | export function getCodeImg() { 24 | return request({ 25 | url: 'auth/code', 26 | method: 'get' 27 | }) 28 | } 29 | 30 | export function logout() { 31 | return request({ 32 | url: 'auth/logout', 33 | method: 'delete' 34 | }) 35 | } 36 | -------------------------------------------------------------------------------- /dokit-front/src/api/menu.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function getMenusTree(pid) { 4 | return request({ 5 | url: 'api/menus/lazy?pid=' + pid, 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function getMenus(params) { 11 | return request({ 12 | url: 'api/menus', 13 | method: 'get', 14 | params 15 | }) 16 | } 17 | 18 | export function getMenuSuperior(ids) { 19 | const data = ids.length || ids.length === 0 ? ids : Array.of(ids) 20 | return request({ 21 | url: 'api/menus/superior', 22 | method: 'post', 23 | data 24 | }) 25 | } 26 | 27 | export function buildMenus() { 28 | return request({ 29 | url: 'api/menus/build', 30 | method: 'get' 31 | }) 32 | } 33 | 34 | export function add(data) { 35 | return request({ 36 | url: 'api/menus', 37 | method: 'post', 38 | data 39 | }) 40 | } 41 | 42 | export function del(ids) { 43 | return request({ 44 | url: 'api/menus', 45 | method: 'delete', 46 | data: ids 47 | }) 48 | } 49 | 50 | export function edit(data) { 51 | return request({ 52 | url: 'api/menus', 53 | method: 'put', 54 | data 55 | }) 56 | } 57 | 58 | export default { add, edit, del, getMenusTree, getMenuSuperior, getMenus } 59 | -------------------------------------------------------------------------------- /dokit-front/src/api/online.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function del(keys) { 4 | return request({ 5 | url: 'auth/online', 6 | method: 'delete', 7 | data: keys 8 | }) 9 | } 10 | 11 | -------------------------------------------------------------------------------- /dokit-front/src/api/picture.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function del(ids) { 4 | return request({ 5 | url: 'api/pictures', 6 | method: 'delete', 7 | data: ids 8 | }) 9 | } 10 | 11 | export function sync() { 12 | return request({ 13 | url: 'api/pictures/synchronize', 14 | method: 'post' 15 | }) 16 | } 17 | 18 | export default { del, sync } 19 | -------------------------------------------------------------------------------- /dokit-front/src/api/qiniu.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get() { 4 | return request({ 5 | url: 'api/qiNiuContent/config', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | export function update(data) { 11 | return request({ 12 | url: 'api/qiNiuContent/config', 13 | data, 14 | method: 'put' 15 | }) 16 | } 17 | 18 | export function download(id) { 19 | return request({ 20 | url: 'api/qiNiuContent/download/' + id, 21 | method: 'get' 22 | }) 23 | } 24 | 25 | export function sync() { 26 | return request({ 27 | url: 'api/qiNiuContent/synchronize', 28 | method: 'post' 29 | }) 30 | } 31 | 32 | export function del(ids) { 33 | return request({ 34 | url: 'api/qiNiuContent', 35 | method: 'delete', 36 | data: ids 37 | }) 38 | } 39 | 40 | export default { del, download, sync } 41 | -------------------------------------------------------------------------------- /dokit-front/src/api/redis.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/redis', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(keys) { 12 | return request({ 13 | url: 'api/redis', 14 | method: 'delete', 15 | data: keys 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/redis', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { del } 28 | -------------------------------------------------------------------------------- /dokit-front/src/api/role.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获取所有的Role 4 | export function getAll() { 5 | return request({ 6 | url: 'api/roles/all', 7 | method: 'get' 8 | }) 9 | } 10 | 11 | export function add(data) { 12 | return request({ 13 | url: 'api/roles', 14 | method: 'post', 15 | data 16 | }) 17 | } 18 | 19 | export function get(id) { 20 | return request({ 21 | url: 'api/roles/' + id, 22 | method: 'get' 23 | }) 24 | } 25 | 26 | export function getLevel() { 27 | return request({ 28 | url: 'api/roles/level', 29 | method: 'get' 30 | }) 31 | } 32 | 33 | export function del(ids) { 34 | return request({ 35 | url: 'api/roles', 36 | method: 'delete', 37 | data: ids 38 | }) 39 | } 40 | 41 | export function edit(data) { 42 | return request({ 43 | url: 'api/roles', 44 | method: 'put', 45 | data 46 | }) 47 | } 48 | 49 | export function editMenu(data) { 50 | return request({ 51 | url: 'api/roles/menu', 52 | method: 'put', 53 | data 54 | }) 55 | } 56 | 57 | export default { add, edit, del, get, editMenu, getLevel } 58 | -------------------------------------------------------------------------------- /dokit-front/src/api/server.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function get() { 4 | return request({ 5 | url: 'api/monitor/server', 6 | method: 'get' 7 | }) 8 | } 9 | -------------------------------------------------------------------------------- /dokit-front/src/api/serverDeploy.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/serverDeploy', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/serverDeploy', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/serverDeploy', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /dokit-front/src/api/test.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/test', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/test/', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/test', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export default { add, edit, del } 28 | -------------------------------------------------------------------------------- /dokit-front/src/api/timing.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | export function add(data) { 4 | return request({ 5 | url: 'api/jobs', 6 | method: 'post', 7 | data 8 | }) 9 | } 10 | 11 | export function del(ids) { 12 | return request({ 13 | url: 'api/jobs', 14 | method: 'delete', 15 | data: ids 16 | }) 17 | } 18 | 19 | export function edit(data) { 20 | return request({ 21 | url: 'api/jobs', 22 | method: 'put', 23 | data 24 | }) 25 | } 26 | 27 | export function updateIsPause(id) { 28 | return request({ 29 | url: 'api/jobs/' + id, 30 | method: 'put' 31 | }) 32 | } 33 | 34 | export function execution(id) { 35 | return request({ 36 | url: 'api/jobs/exec/' + id, 37 | method: 'put' 38 | }) 39 | } 40 | 41 | export default { del, updateIsPause, execution, add, edit } 42 | -------------------------------------------------------------------------------- /dokit-front/src/api/user.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | import { encrypt } from '@/utils/rsaEncrypt' 3 | 4 | export function add(data) { 5 | return request({ 6 | url: 'api/users', 7 | method: 'post', 8 | data 9 | }) 10 | } 11 | 12 | export function del(ids) { 13 | return request({ 14 | url: 'api/users', 15 | method: 'delete', 16 | data: ids 17 | }) 18 | } 19 | 20 | export function edit(data) { 21 | return request({ 22 | url: 'api/users', 23 | method: 'put', 24 | data 25 | }) 26 | } 27 | 28 | export function editUser(data) { 29 | return request({ 30 | url: 'api/users/center', 31 | method: 'put', 32 | data 33 | }) 34 | } 35 | 36 | export function updatePass(user) { 37 | const data = { 38 | oldPass: encrypt(user.oldPass), 39 | newPass: encrypt(user.newPass) 40 | } 41 | return request({ 42 | url: 'api/users/updatePass/', 43 | method: 'post', 44 | data 45 | }) 46 | } 47 | 48 | export function updateEmail(form) { 49 | const data = { 50 | password: encrypt(form.pass), 51 | email: form.email 52 | } 53 | return request({ 54 | url: 'api/users/updateEmail/' + form.code, 55 | method: 'post', 56 | data 57 | }) 58 | } 59 | 60 | export default { add, edit, del } 61 | -------------------------------------------------------------------------------- /dokit-front/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perye/dokit/a99c4ede10c98dc3e45cf8f83e2ac209296c5e21/dokit-front/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /dokit-front/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perye/dokit/a99c4ede10c98dc3e45cf8f83e2ac209296c5e21/dokit-front/src/assets/404_images/404.png -------------------------------------------------------------------------------- /dokit-front/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perye/dokit/a99c4ede10c98dc3e45cf8f83e2ac209296c5e21/dokit-front/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg component 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/app.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/backup.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/clipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/codeConsole.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/component.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/deploy.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/dev.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/develop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/dictionary.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/documentation.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/drag.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/edit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/education.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/excel.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/eye-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/eye.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/fullscreen.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/gonggao.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/guide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/icon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/image.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/international.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/language.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/login.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/markdown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/money.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/monitor.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/password.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/peoples.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/size.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/system.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/timing.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/unlock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/user1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/validCode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/visits.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svg/zujian.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dokit-front/src/assets/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /dokit-front/src/assets/images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perye/dokit/a99c4ede10c98dc3e45cf8f83e2ac209296c5e21/dokit-front/src/assets/images/avatar.png -------------------------------------------------------------------------------- /dokit-front/src/assets/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perye/dokit/a99c4ede10c98dc3e45cf8f83e2ac209296c5e21/dokit-front/src/assets/images/background.jpg -------------------------------------------------------------------------------- /dokit-front/src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perye/dokit/a99c4ede10c98dc3e45cf8f83e2ac209296c5e21/dokit-front/src/assets/images/logo.png -------------------------------------------------------------------------------- /dokit-front/src/assets/styles/description.scss: -------------------------------------------------------------------------------- 1 | .my-blockquote{ 2 | margin: 0px 0px 10px; 3 | padding: 15px; 4 | line-height: 22px; 5 | border-left: 5px solid #00437B; 6 | border-radius: 0 2px 2px 0; 7 | background-color: #f2f2f2; 8 | } 9 | .my-code{ 10 | position: relative; 11 | padding: 15px; 12 | line-height: 20px; 13 | border-left: 5px solid #ddd; 14 | color: #333; 15 | font-family: Courier New; 16 | font-size: 12px 17 | } 18 | -------------------------------------------------------------------------------- /dokit-front/src/assets/styles/element-variables.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * I think element-ui's default theme color is too light for long-term use. 3 | * So I modified the default color and you can modify it to your liking. 4 | **/ 5 | 6 | /* theme color */ 7 | $--color-primary: #1890ff; 8 | $--color-success: #13ce66; 9 | $--color-warning: #FFBA00; 10 | $--color-danger: #ff4949; 11 | // $--color-info: #1E1E1E; 12 | 13 | $--button-font-weight: 400; 14 | 15 | // $--color-text-regular: #1f2d3d; 16 | 17 | $--border-color-light: #dfe4ed; 18 | $--border-color-lighter: #e6ebf5; 19 | 20 | $--table-border:1px solid#dfe6ec; 21 | 22 | /* icon font path, required */ 23 | $--font-path: '~element-ui/lib/theme-chalk/fonts'; 24 | 25 | @import "../../../node_modules/element-ui/packages/theme-chalk/src/index"; 26 | 27 | // the :export directive is the magic sauce for webpack 28 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 29 | :export { 30 | theme: $--color-primary; 31 | } 32 | -------------------------------------------------------------------------------- /dokit-front/src/assets/styles/transition.scss: -------------------------------------------------------------------------------- 1 | //globl transition css 2 | 3 | /*fade*/ 4 | .fade-enter-active, 5 | .fade-leave-active { 6 | transition: opacity 0.28s; 7 | } 8 | 9 | .fade-enter, 10 | .fade-leave-active { 11 | opacity: 0; 12 | } 13 | 14 | /*fade-transform*/ 15 | .fade-transform-leave-active, 16 | .fade-transform-enter-active { 17 | transition: all .5s; 18 | } 19 | .fade-transform-enter { 20 | opacity: 0; 21 | transform: translateX(-30px); 22 | } 23 | .fade-transform-leave-to { 24 | opacity: 0; 25 | transform: translateX(30px); 26 | } 27 | 28 | /*fade*/ 29 | .breadcrumb-enter-active, 30 | .breadcrumb-leave-active { 31 | transition: all .5s; 32 | } 33 | 34 | .breadcrumb-enter, 35 | .breadcrumb-leave-active { 36 | opacity: 0; 37 | transform: translateX(20px); 38 | } 39 | 40 | .breadcrumb-move { 41 | transition: all .5s; 42 | } 43 | 44 | .breadcrumb-leave-active { 45 | position: absolute; 46 | } 47 | -------------------------------------------------------------------------------- /dokit-front/src/assets/styles/variables.scss: -------------------------------------------------------------------------------- 1 | 2 | // base color 3 | $blue:#324157; 4 | $light-blue:#3A71A8; 5 | $red:#C03639; 6 | $pink: #E65D6E; 7 | $green: #30B08F; 8 | $tiffany: #4AB7BD; 9 | $yellow:#FEC171; 10 | $panGreen: #30B08F; 11 | 12 | // sidebar 13 | $menuText:#bfcbd9; 14 | $menuActiveText:#409EFF; 15 | $subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951 16 | 17 | $menuBg:#304156; 18 | $menuHover:#263445; 19 | 20 | $subMenuBg:#1f2d3d; 21 | $subMenuHover:#001528; 22 | 23 | $sideBarWidth: 205px; 24 | 25 | // the :export directive is the magic sauce for webpack 26 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 27 | :export { 28 | menuText: $menuText; 29 | menuActiveText: $menuActiveText; 30 | subMenuActiveText: $subMenuActiveText; 31 | menuBg: $menuBg; 32 | menuHover: $menuHover; 33 | subMenuBg: $subMenuBg; 34 | subMenuHover: $subMenuHover; 35 | sideBarWidth: $sideBarWidth; 36 | } 37 | -------------------------------------------------------------------------------- /dokit-front/src/components/Crud/Pagination.vue: -------------------------------------------------------------------------------- 1 | 13 | 20 | -------------------------------------------------------------------------------- /dokit-front/src/components/Crud/RR.operation.vue: -------------------------------------------------------------------------------- 1 | 8 | 22 | -------------------------------------------------------------------------------- /dokit-front/src/components/DateRangePicker/index.vue: -------------------------------------------------------------------------------- 1 | 45 | -------------------------------------------------------------------------------- /dokit-front/src/components/Dict/Dict.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import { get as getDictDetail } from '@/api/dictDetail' 3 | 4 | export default class Dict { 5 | constructor(dict) { 6 | this.dict = dict 7 | } 8 | 9 | async init(names, completeCallback) { 10 | if (names === undefined || name === null) { 11 | throw new Error('need Dict names') 12 | } 13 | const ps = [] 14 | names.forEach(n => { 15 | Vue.set(this.dict.dict, n, {}) 16 | Vue.set(this.dict.label, n, {}) 17 | Vue.set(this.dict, n, []) 18 | ps.push(getDictDetail(n).then(data => { 19 | this.dict[n].splice(0, 0, ...data.content) 20 | data.content.forEach(d => { 21 | Vue.set(this.dict.dict[n], d.value, d) 22 | Vue.set(this.dict.label[n], d.value, d.label) 23 | }) 24 | })) 25 | }) 26 | await Promise.all(ps) 27 | completeCallback() 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /dokit-front/src/components/Dict/index.js: -------------------------------------------------------------------------------- 1 | import Dict from './Dict' 2 | 3 | const install = function(Vue) { 4 | Vue.mixin({ 5 | data() { 6 | if (this.$options.dicts instanceof Array) { 7 | const dict = { 8 | dict: {}, 9 | label: {} 10 | } 11 | return { 12 | dict 13 | } 14 | } 15 | return {} 16 | }, 17 | created() { 18 | if (this.$options.dicts instanceof Array) { 19 | new Dict(this.dict).init(this.$options.dicts, () => { 20 | this.$nextTick(() => { 21 | this.$emit('dictReady') 22 | }) 23 | }) 24 | } 25 | } 26 | }) 27 | } 28 | 29 | export default { install } 30 | -------------------------------------------------------------------------------- /dokit-front/src/components/IconSelect/requireIcons.js: -------------------------------------------------------------------------------- 1 | 2 | const req = require.context('../../assets/icons/svg', false, /\.svg$/) 3 | const requireAll = requireContext => requireContext.keys() 4 | 5 | const re = /\.\/(.*)\.svg/ 6 | 7 | const icons = requireAll(req).map(i => { 8 | return i.match(re)[1] 9 | }) 10 | 11 | export default icons 12 | -------------------------------------------------------------------------------- /dokit-front/src/components/Iframe/index.vue: -------------------------------------------------------------------------------- 1 |