From 405ee3f226f6db62fa17b2d0cb9e1bf62996a0b2 Mon Sep 17 00:00:00 2001 From: zhangdaihao Date: Sun, 19 May 2019 18:54:09 +0800 Subject: [PATCH] =?UTF-8?q?jeecg-boot=202.0=20=E6=A8=A1=E5=9D=97=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E7=89=88=E6=9C=AC=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +- ant-design-jeecg-vue/.eslintignore | 1 + ant-design-jeecg-vue/LICENSE | 2 +- ant-design-jeecg-vue/README.md | 2 +- ant-design-jeecg-vue/package.json | 10 +- ant-design-jeecg-vue/public/index.html | 1 + ant-design-jeecg-vue/src/api/api.js | 6 +- .../assets/less/{common.css => common.less} | 19 +- ant-design-jeecg-vue/src/assets/pdf4.jpg | Bin 0 -> 50960 bytes .../src/components/bpm/DynamicComponent.vue | 35 + .../src/components/bpm/FormCommonModal.vue | 72 + .../src/components/bpm/ProcNodeInfoModel.vue | 120 + .../components/bpm/ProcessInstPicModal.vue | 136 + .../src/components/chart/AreaChartTy.vue | 30 +- .../src/components/chart/Bar.vue | 14 +- .../src/components/chart/BarAndLine.vue | 57 + .../src/components/chart/BarMultid.vue | 55 +- .../src/components/chart/DashChartDemo.vue | 67 +- .../src/components/chart/LineChartMultid.vue | 91 +- .../src/components/chart/Pie.vue | 66 +- .../src/components/chart/README.md | 39 + .../src/components/dict/JDictSelectTag.vue | 36 +- .../src/components/dict/JMultiSelectTag.vue | 92 + .../src/components/dict/JSearchSelectTag.vue | 170 + .../src/components/jeecg/JCheckbox.vue | 1 + .../src/components/jeecg/JCodeEditor.vue | 409 + .../src/components/jeecg/JDate.vue | 5 + .../src/components/jeecg/JEditableTable.vue | 771 +- .../src/components/jeecg/JEditor.vue | 13 +- .../src/components/jeecg/JGraphicCode.vue | 163 + .../src/components/jeecg/JSelectMultiple.vue | 2 +- .../src/components/jeecg/JSlider.vue | 111 + .../src/components/jeecg/JTreeTable.vue | 96 + .../src/components/jeecg/JUpload.vue | 172 + .../src/components/jeecg/README.md | 84 + .../components/jeecg/README_JEditableTable.md | 145 +- .../components/jeecgbiz/JSearchUserByDep.vue | 10 +- .../src/components/jeecgbiz/JSelectDepart.vue | 125 + .../components/jeecgbiz/JSelectMultiUser.vue | 70 + ...eUserModal.vue => JSelectMultipleUser.vue} | 4 +- .../components/jeecgbiz/JSelectUserByDep.vue | 76 + .../jeecgbiz/SearchUserByDepModal.vue | 308 - .../jeecgbiz/modal/JSelectDepartModal.vue | 216 + .../jeecgbiz/modal/JSelectMultiUserModal.vue | 274 + .../JSelectUserByDepModal.vue} | 27 +- .../components/layouts/IframeFReportView.vue | 47 + .../src/components/layouts/TabLayout.vue | 36 +- .../src/components/menu/SideMenu.vue | 89 +- .../src/components/menu/index.js | 226 +- .../src/components/page/GlobalHeader.vue | 131 +- .../src/components/page/GlobalLayout.vue | 19 + .../src/components/setting/SettingDrawer.vue | 9 +- .../src/components/tools/HeaderNotice.vue | 120 +- .../src/components/tools/ShowAnnouncement.vue | 97 + .../src/components/tools/UserMenu.vue | 22 +- .../src/components/tools/UserPassword.vue | 157 + .../src/config/router.config.js | 400 +- ant-design-jeecg-vue/src/main.js | 10 +- .../src/mixins/DisabledAuthFilterMixin.js | 22 + ...eToManyMixin.js => JEditableTableMixin.js} | 5 +- .../src/mixins/JeecgListMixin.js | 72 +- ant-design-jeecg-vue/src/permission.js | 6 +- ant-design-jeecg-vue/src/store/modules/app.js | 4 +- .../src/store/modules/user.js | 15 +- .../src/store/mutation-types.js | 3 + .../src/utils/JEditableTableUtil.js | 4 +- ant-design-jeecg-vue/src/utils/authFilter.js | 112 + .../src/utils/hasPermission.js | 121 +- ant-design-jeecg-vue/src/utils/util.js | 67 +- ant-design-jeecg-vue/src/utils/vueBus.js | 5 + .../src/views/jeecg/ImagPreview.vue | 119 + .../src/views/jeecg/ImgDragSort.vue | 75 + .../src/views/jeecg/ImgTurnPage.vue | 147 + .../src/views/jeecg/JSearchUserByDepList.vue | 43 - .../src/views/jeecg/JeecgDemoList.vue | 22 +- .../views/jeecg/JeecgEditableTableExample.vue | 114 +- .../src/views/jeecg/JeecgOrderMainList.vue | 22 +- .../src/views/jeecg/JeecgPdfView.vue | 122 + .../src/views/jeecg/JeecgTreeTable.vue | 49 + .../src/views/jeecg/JoaDemoList.vue | 250 + .../src/views/jeecg/RowspanTable.vue | 285 + .../src/views/jeecg/SearchUserByDepList.vue | 43 - .../src/views/jeecg/SelectDemo.vue | 306 +- .../src/views/jeecg/SplitPanel.vue | 32 + .../src/views/jeecg/TableExpandeSub.vue | 4 - .../src/views/jeecg/modules/JoaDemoForm.vue | 160 + .../views/jeecg/modules/PdfPreviewModal.vue | 56 + .../src/views/jeecg/modules/SplitPanelA.vue | 27 + .../src/views/jeecg/modules/SplitPanelB.vue | 27 + .../views/jeecg/modules/SplitPanelModal.vue | 63 + .../jeecg/report/ArchivesStatisticst.vue | 8 +- .../src/views/jeecg/report/ViserChartDemo.vue | 7 +- .../views/modules/message/SysMessageList.vue | 49 +- .../message/SysMessageTemplateList.vue | 4 +- .../message/modules/SysMessageModal.vue | 1 + .../modules/SysMessageTemplateModal.vue | 85 +- .../views/modules/monitor/DiskMonitoring.vue | 49 + .../src/views/modules/monitor/HttpTrace.vue | 148 + .../src/views/modules/monitor/JvmInfo.vue | 169 + .../src/views/modules/monitor/RedisInfo.vue | 177 + .../views/modules/monitor/RedisTerminal.vue | 13 + .../src/views/modules/monitor/SystemInfo.vue | 137 + .../src/views/modules/monitor/TomcatInfo.vue | 149 + .../online/cgreport/OnlCgreportHeadList.vue | 218 - .../cgreport/auto/OnlCgreportAutoList.vue | 208 - .../auto/OnlCgreportQueryFormItem.vue | 91 - .../cgreport/modules/OnlCgreportHeadModal.vue | 562 - .../src/views/system/DataLogList.vue | 41 +- .../src/views/system/DepartList.vue | 87 +- .../src/views/system/DepartList2.vue | 235 +- .../src/views/system/DepartUserList.vue | 194 + .../src/views/system/DictList.vue | 74 +- .../src/views/system/LogList.vue | 11 +- .../views/system/PermissionDataRuleList.vue | 33 +- .../src/views/system/PermissionList.vue | 7 +- .../src/views/system/QuartzJobList.vue | 32 +- .../src/views/system/RoleList.vue | 36 +- .../src/views/system/RoleUserList.vue | 497 + .../src/views/system/SysAnnouncementList.vue | 66 +- .../src/views/system/UserAnnouncementList.vue | 180 + .../src/views/system/UserList.vue | 72 +- .../src/views/system/modules/DeptBaseInfo.vue | 113 + .../src/views/system/modules/DeptUserInfo.vue | 285 + .../views/system/modules/DictItemModal.vue | 19 +- .../src/views/system/modules/DictModal.vue | 89 +- .../views/system/modules/PasswordModal.vue | 6 +- .../modules/PermissionDataRuleModal.vue | 21 +- .../views/system/modules/PermissionModal.vue | 30 +- .../system/modules/RoleDataruleModal.vue | 5 +- .../src/views/system/modules/RoleModal.vue | 12 +- .../system/modules/SelectUserListModal.vue | 266 + .../views/system/modules/SelectUserModal.vue | 275 + .../system/modules/SysAnnouncementModal.vue | 109 +- .../system/modules/SysUserAgentModal.vue | 194 + .../src/views/system/modules/UserModal.vue | 173 +- .../views/system/modules/UserRoleModal.vue | 7 +- ant-design-jeecg-vue/src/views/user/Login.vue | 261 +- ant-design-jeecg-vue/yarn.lock | 10218 ---- jeecg-boot/README.md | 199 +- .../jeecg-boot-mysql.sql} | 1999 +- jeecg-boot/db/jeecg-boot-oracle_11g.sql | 3741 ++ jeecg-boot/db/jeecg-boot-sqlserver_2008.sql | 3263 ++ jeecg-boot/docs/- 项目说明 | 17 - jeecg-boot/jeecg-boot-base-common/pom.xml | 33 + .../java/org/jeecg/common/api/vo/Result.java | 18 +- .../common/aspect/annotation/AutoLog.java | 4 +- .../jeecg/common/aspect/annotation/Dict.java | 0 .../aspect/annotation/PermissionData.java | 8 +- .../jeecg/common/constant/CommonConstant.java | 28 +- .../common/constant/CommonSendStatus.java | 2 +- .../common/constant/DataBaseConstant.java | 13 +- .../common/exception/JeecgBootException.java | 0 .../exception/JeecgBootExceptionHandler.java | 20 +- .../jeecg/common/system/api/ISysBaseAPI.java | 75 + .../base/controller/JeecgController.java | 101 + .../system/base/entity/JeecgEntity.java | 50 + .../system/base/service/JeecgService.java | 12 + .../base/service/impl/JeecgServiceImpl.java | 19 + .../system/controller/CommonController.java | 93 +- .../common/system/query/QueryCondition.java | 0 .../common/system/query/QueryGenerator.java | 134 +- .../common/system/query/QueryRuleEnum.java | 4 +- .../system/util/JeecgDataAutorUtils.java | 8 +- .../jeecg/common/system}/util/JwtUtil.java | 23 +- .../org/jeecg/common/system/vo/DictModel.java | 31 + .../org/jeecg/common/system/vo/LoginUser.java | 83 + .../common/system/vo}/SysUserCacheInfo.java | 32 +- .../org/jeecg/common}/util/BrowserType.java | 4 +- .../org/jeecg/common}/util/BrowserUtils.java | 4 +- .../java/org/jeecg/common/util/DateUtils.java | 5 +- .../java/org/jeecg/common/util/IPUtils.java | 4 +- .../java/org/jeecg/common/util/MD5Util.java | 0 .../org/jeecg/common/util/MyClassLoader.java | 2 +- .../org/jeecg/common/util/PasswordUtil.java | 0 .../java/org/jeecg/common/util/RedisUtil.java | 2 +- .../jeecg/common/util/SpringContextUtils.java | 0 .../org/jeecg/common/util/UUIDGenerator.java | 2 +- .../jeecg/common/util/YouBianCodeUtil.java | 2 +- .../util}/jsonschema/CommonProperty.java | 25 +- .../util}/jsonschema/JsonSchemaDescrip.java | 2 +- .../util}/jsonschema/JsonschemaUtil.java | 5 +- .../jsonschema/validate/NumberProperty.java | 7 +- .../jsonschema/validate/PopupProperty.java | 76 + .../jsonschema/validate/StringProperty.java | 7 +- .../org/jeecg/common/util/oConvertUtils.java | 29 +- .../util/superSearch/ObjectParseUtil.java | 4 +- .../util/superSearch/QueryRuleEnum.java | 4 +- .../common/util/superSearch/QueryRuleVo.java | 0 .../system/entity/SysPermissionDataRule.java | 2 +- jeecg-boot/jeecg-boot-module-system/pom.xml | 39 + .../main/java/org/jeecg/JeecgApplication.java | 37 + .../src/main/java/org/jeecg/JeecgOneGUI.java | 4 +- .../java/org/jeecg/JeecgOneToMainUtil.java | 2 +- .../java/org/jeecg/config/AutoPoiConfig.java | 4 +- .../org/jeecg/config/MybatisPlusConfig.java | 2 +- .../java/org/jeecg/config/RedisConfig.java | 37 +- .../java/org/jeecg/config/ShiroConfig.java | 27 +- .../java/org/jeecg/config/Swagger2Config.java | 6 +- .../org/jeecg/config/WebMvcConfiguration.java | 2 +- .../config/mybatis/MybatisInterceptor.java | 44 +- .../modules/demo/mock/MockController.java | 9 +- .../jeecg/modules/demo/mock/json/area.json | 0 .../demo/mock/json/asyn_tree_list_0.json | 29 + .../demo/mock/json/asyn_tree_list_1.json | 29 + .../demo/mock/json/asyn_tree_list_2.json | 29 + .../demo/mock/json/asyn_tree_list_3.json | 29 + .../demo/mock/json/asyn_tree_list_31.json | 29 + .../demo/mock/json/getCntrNoCountInfo.json | 63 + .../demo/mock/json/graphreport_chart.json | 0 .../modules/demo/mock/json/permission.json | 0 .../demo/mock/json/permission_no_page.json | 0 .../jeecg/modules/demo/mock/json/role.json | 0 .../jeecg/modules/demo/mock/json/service.json | 0 .../modules/demo/mock/json/sysdatalog.json | 0 .../modules/demo/mock/json/task_process.json | 0 .../jeecg/modules/demo/mock/json/user.json | 0 .../modules/demo/mock/json/user_info.json | 0 .../demo/mock/json/workplace_activity.json | 0 .../demo/mock/json/workplace_projects.json | 0 .../demo/mock/json/workplace_radar.json | 0 .../demo/mock/json/workplace_teams.json | 0 .../test/controller/JeecgDemoController.java | 178 +- .../controller/JeecgOrderDMainController.java | 7 +- .../controller/JeecgOrderMainController.java | 32 +- .../test/controller/JoaDemoController.java} | 139 +- .../modules/demo/test/entity/JeecgDemo.java | 59 +- .../demo/test/entity/JeecgOrderCustomer.java | 6 +- .../demo/test/entity/JeecgOrderMain.java | 6 +- .../demo/test/entity/JeecgOrderTicket.java | 6 +- .../modules/demo/test/entity/JoaDemo.java | 67 + .../demo/test/mapper/JeecgDemoMapper.java | 6 +- .../test/mapper/JeecgOrderCustomerMapper.java | 6 +- .../test/mapper/JeecgOrderMainMapper.java | 6 +- .../test/mapper/JeecgOrderTicketMapper.java | 6 +- .../demo/test/mapper/JoaDemoMapper.java | 15 + .../demo/test/mapper/xml/JeecgDemoMapper.xml | 0 .../mapper/xml/JeecgOrderCustomerMapper.xml | 0 .../test/mapper/xml/JeecgOrderMainMapper.xml | 0 .../mapper/xml/JeecgOrderTicketMapper.xml | 0 .../demo/test/mapper/xml/JoaDemoMapper.xml} | 2 +- .../demo/test/service/IJeecgDemoService.java | 12 +- .../service/IJeecgOrderCustomerService.java | 6 +- .../test/service/IJeecgOrderMainService.java | 6 +- .../service/IJeecgOrderTicketService.java | 6 +- .../demo/test/service/IJoaDemoService.java | 15 + .../service/impl/JeecgDemoServiceImpl.java | 12 +- .../impl/JeecgOrderCustomerServiceImpl.java | 6 +- .../impl/JeecgOrderMainServiceImpl.java | 6 +- .../impl/JeecgOrderTicketServiceImpl.java | 6 +- .../test/service/impl/JoaDemoServiceImpl.java | 19 + .../demo/test/vo/JeecgOrderMainPage.java | 0 .../controller/SysMessageController.java | 188 + .../SysMessageTemplateController.java | 216 + .../modules/message/entity/MsgParams.java | 0 .../modules/message/entity/SysMessage.java | 51 +- .../message/entity/SysMessageTemplate.java | 38 + .../message/handle/ISendMsgHandle.java | 0 .../handle/enums/SendMsgStatusEnum.java | 0 .../message/handle/enums/SendMsgTypeEnum.java | 0 .../handle/impl/EmailSendMsgHandle.java | 0 .../message/handle/impl/SmsSendMsgHandle.java | 0 .../message/handle/impl/WxSendMsgHandle.java | 0 .../jeecg/modules/message/job/SendMsgJob.java | 2 +- .../message/mapper/SysMessageMapper.java | 6 +- .../mapper/SysMessageTemplateMapper.java | 6 +- .../message/mapper/xml/SysMessageMapper.xml | 0 .../mapper/xml/SysMessageTemplateMapper.xml | 0 .../message/service/ISysMessageService.java | 14 + .../service/ISysMessageTemplateService.java | 14 +- .../service/impl/SysMessageServiceImpl.java | 11 +- .../impl/SysMessageTemplateServiceImpl.java | 11 +- .../modules/message/util/PushMsgUtil.java | 15 +- .../controller/ActuatorRedisController.java | 91 + .../modules/monitor/domain/RedisInfo.java | 0 .../exception/RedisConnectException.java | 0 .../modules/monitor/service/RedisService.java | 0 .../service/impl/RedisServiceImpl.java | 2 +- .../modules/ngalain/aop/LogRecordAspect.java | 0 .../ngalain/controller/NgAlainController.java | 53 +- .../modules/ngalain/mapper/NgAlainMapper.java | 0 .../ngalain/mapper/xml/NgAlainMapper.xml | 0 .../ngalain/service/NgAlainService.java | 0 .../service/impl/NgAlainServiceImpl.java | 0 .../controller/QuartzJobController.java | 186 +- .../modules/quartz/entity/QuartzJob.java | 6 +- .../jeecg/modules/quartz/job/SampleJob.java | 2 +- .../modules/quartz/job/SampleParamJob.java | 2 +- .../quartz/mapper/QuartzJobMapper.java | 6 +- .../quartz/mapper/xml/QuartzJobMapper.xml | 0 .../quartz/service/IQuartzJobService.java | 14 +- .../service/impl/QuartzJobServiceImpl.java | 146 + .../jeecg/modules/shiro/authc/JwtToken.java | 2 +- .../modules/shiro/authc/ShiroRealm.java} | 126 +- .../modules/shiro/authc/aop/JwtFilter.java | 18 +- .../shiro/authc/aop/ResourceCheckFilter.java | 69 + .../jeecg/modules/shiro/vo/DefContants.java | 0 .../jeecg/modules/shiro/vo/ResponseBean.java | 0 .../org/jeecg/modules/shiro/vo/UserBean.java | 0 .../modules/shiro/web/TestWebController.java | 5 +- .../modules/system}/aspect/AutoLogAspect.java | 19 +- .../modules/system}/aspect/DictAspect.java | 10 +- .../system}/aspect/PermissionDataAspect.java | 14 +- .../controller/DuplicateCheckController.java | 9 +- .../system/controller/LoginController.java | 67 +- .../controller/SysAnnouncementController.java | 144 +- .../SysAnnouncementSendController.java | 242 + .../controller/SysDataLogController.java | 2 +- .../controller/SysDepartController.java | 317 + .../system/controller/SysDictController.java | 45 +- .../controller/SysDictItemController.java | 5 +- .../system/controller/SysLogController.java | 2 +- .../controller/SysPermissionController.java | 417 +- .../system/controller/SysRoleController.java | 50 +- .../controller/SysUserAgentController.java | 255 + .../system/controller/SysUserController.java | 301 +- .../system/entity/SysAnnouncement.java | 21 +- .../system/entity/SysAnnouncementSend.java | 48 + .../modules/system/entity/SysDataLog.java | 0 .../modules/system/entity/SysDepart.java | 16 +- .../jeecg/modules/system/entity/SysDict.java | 2 +- .../modules/system/entity/SysDictItem.java | 2 +- .../jeecg/modules/system/entity/SysLog.java | 2 +- .../modules/system/entity/SysPermission.java | 37 +- .../system/entity/SysPermissionDataRule.java | 83 + .../jeecg/modules/system/entity/SysRole.java | 2 +- .../system/entity/SysRolePermission.java | 2 +- .../jeecg/modules/system/entity/SysUser.java | 11 +- .../modules/system/entity/SysUserAgent.java | 74 + .../modules/system/entity/SysUserDepart.java | 0 .../modules/system/entity/SysUserRole.java | 2 +- .../system/mapper/SysAnnouncementMapper.java | 12 +- .../mapper/SysAnnouncementSendMapper.java | 31 + .../system/mapper/SysDataLogMapper.java | 0 .../system/mapper/SysDepartMapper.java | 2 +- .../system/mapper/SysDictItemMapper.java | 2 +- .../modules/system/mapper/SysDictMapper.java | 21 +- .../modules/system/mapper/SysLogMapper.java | 13 +- .../mapper/SysPermissionDataRuleMapper.java | 2 +- .../system/mapper/SysPermissionMapper.java | 6 +- .../modules/system/mapper/SysRoleMapper.java | 2 +- .../mapper/SysRolePermissionMapper.java | 2 +- .../system/mapper/SysUserAgentMapper.java | 17 + .../system/mapper/SysUserDepartMapper.java | 0 .../modules/system/mapper/SysUserMapper.java | 47 + .../system/mapper/SysUserRoleMapper.java | 2 +- .../mapper/xml/SysAnnouncementMapper.xml | 37 + .../mapper/xml/SysAnnouncementSendMapper.xml | 48 + .../system/mapper/xml/SysDataLogMapper.xml | 0 .../system/mapper/xml/SysDepartMapper.xml | 0 .../system/mapper/xml/SysDictItemMapper.xml | 0 .../system/mapper/xml/SysDictMapper.xml | 18 +- .../system/mapper/xml/SysLogMapper.xml | 4 +- .../xml/SysPermissionDataRuleMapper.xml | 0 .../system/mapper/xml/SysPermissionMapper.xml | 1 + .../system/mapper/xml/SysUserAgentMapper.xml} | 2 +- .../system/mapper/xml/SysUserDepartMapper.xml | 0 .../system/mapper/xml/SysUserMapper.xml | 31 + .../system/model/AnnouncementSendModel.java | 54 + .../modules/system/model/DepartIdModel.java | 2 +- .../system/model/DuplicateCheckVo.java | 6 +- .../system/model/SysDepartTreeModel.java | 2 +- .../modules/system/model/SysDictTree.java | 2 +- .../modules/system/model/SysLoginModel.java | 11 +- .../system/model/SysPermissionTree.java | 26 + .../system/model/SysUserDepartsVO.java | 0 .../jeecg/modules/system/model/TreeModel.java | 15 +- .../modules/system/model/TreeSelectModel.java | 0 .../service/ISysAnnouncementSendService.java | 28 + .../service/ISysAnnouncementService.java | 25 + .../system/service/ISysDataLogService.java | 0 .../system/service/ISysDepartService.java | 9 +- .../system/service/ISysDictItemService.java | 2 +- .../system/service/ISysDictService.java | 19 +- .../system/service/ISysLogService.java | 11 +- .../ISysPermissionDataRuleService.java | 16 +- .../system/service/ISysPermissionService.java | 2 +- .../service/ISysRolePermissionService.java | 10 +- .../system/service/ISysRoleService.java | 2 +- .../system/service/ISysUserAgentService.java | 14 + .../system/service/ISysUserDepartService.java | 2 +- .../system/service/ISysUserRoleService.java | 2 +- .../system/service/ISysUserService.java | 91 + .../service/impl/AutoPoiDictService.java | 15 +- .../impl/SysAnnouncementSendServiceImpl.java | 39 + .../impl/SysAnnouncementServiceImpl.java | 120 + .../system/service/impl/SysBaseApiImpl.java | 201 + .../service/impl/SysDataLogServiceImpl.java | 0 .../service/impl/SysDepartServiceImpl.java | 16 +- .../service/impl/SysDictItemServiceImpl.java | 2 +- .../service/impl/SysDictServiceImpl.java | 51 +- .../service/impl/SysLogServiceImpl.java | 15 +- .../impl/SysPermissionDataRuleImpl.java | 53 +- .../impl/SysPermissionServiceImpl.java | 10 +- .../impl/SysRolePermissionServiceImpl.java | 100 + .../service/impl/SysRoleServiceImpl.java | 2 +- .../service/impl/SysUserAgentServiceImpl.java | 19 + .../impl/SysUserDepartServiceImpl.java | 25 +- .../service/impl/SysUserRoleServiceImpl.java | 9 +- .../service/impl/SysUserServiceImpl.java | 190 + .../system/util/FindsDepartsChildrenUtil.java | 4 +- .../system/util/PermissionDataUtil.java | 33 +- .../modules/system/vo/SysDepartUsersVO.java | 23 + .../jeecg/modules/system/vo/SysDictPage.java | 0 .../modules/system/vo/SysUserRoleVO.java | 23 + .../src/main/resources/application-dev.yml | 1 + .../src/main/resources/application-prod.yml | 1 + .../src/main/resources/application-test.yml | 1 + .../src/main/resources/application.yml | 9 + .../src/main/resources/banner.txt | 0 .../src/main/resources/db/data-mysql.sql | 0 .../src/main/resources/db/schema-mysql.sql | 0 .../controller/${entityName}Controller.javai | 36 +- .../entity/${entityName}.javai | 18 +- .../mapper/${entityName}Mapper.javai | 6 +- .../mapper/xml/${entityName}Mapper.xml | 0 .../service/I${entityName}Service.javai | 6 +- .../impl/${entityName}ServiceImpl.javai | 6 +- .../vue/${entityName}List.vuei | 24 +- .../vue/modules/${entityName}Modal.vuei | 2 +- .../${entityName}Modal__Style#Drawer.vuei | 0 .../${entityName}Controller.javai | 16 +- .../${entityPackage}/${entityName}.javai | 6 +- .../${entityName}Mapper.javai | 6 +- .../xml/${entityName}Mapper.xml | 0 .../I${entityName}Service.javai | 6 +- .../impl/${entityName}ServiceImpl.javai | 6 +- .../${entityPackage}/${entityName}List.vuei | 24 +- .../modules/${entityName}Modal.vuei | 0 .../${entityName}Modal__Style#Drawer.vuei | 0 .../controller/${entityName}Controller.javai | 16 +- .../entity/${entityName}.javai | 6 +- .../${entityPackage}/entity/[1-n]Entity.javai | 6 +- .../mapper/${entityName}Mapper.javai | 6 +- .../${entityPackage}/mapper/[1-n]Mapper.javai | 6 +- .../mapper/xml/${entityName}Mapper.xml | 0 .../mapper/xml/[1-n]Mapper.xml | 0 .../service/I${entityName}Service.javai | 6 +- .../service/[1-n]Service.javai | 6 +- .../impl/${entityName}ServiceImpl.javai | 10 +- .../service/impl/[1-n]ServiceImpl.javai | 6 +- .../vo/${entityName}Page.javai | 6 + .../vue/${entityName}List.vuei | 41 +- .../vue/modules/${entityName}Modal.vuei | 4 +- .../controller/${entityName}Controller.javai | 16 +- .../entity/${entityName}.javai | 6 +- .../${entityPackage}/entity/[1-n]Entity.javai | 6 +- .../mapper/${entityName}Mapper.javai | 6 +- .../${entityPackage}/mapper/[1-n]Mapper.javai | 6 +- .../mapper/xml/${entityName}Mapper.xml | 0 .../mapper/xml/[1-n]Mapper.xml | 0 .../service/I${entityName}Service.javai | 6 +- .../service/[1-n]Service.javai | 6 +- .../impl/${entityName}ServiceImpl.javai | 10 +- .../service/impl/[1-n]ServiceImpl.javai | 6 +- .../vo/${entityName}Page.javai | 6 + .../vue/${entityName}List.vuei | 39 +- .../${entityPackage}/vue/[1-n]List.vuei | 0 .../vue/modules/${entityName}Modal.vuei | 0 .../vue/modules/[1-n]Modal.vuei | 0 .../resources/jeecg/jeecg_config.properties | 0 .../resources/jeecg/jeecg_database.properties | 0 .../src/main/resources/logback-spring.xml | 1 + .../src/main/resources/static/demo1.html | 0 .../src/main/resources/static/generic/LICENSE | 177 + .../resources/static/generic/build/pdf.js | 8021 ++++ .../static/generic/build/pdf.worker.js | 39372 ++++++++++++++++ .../static/generic/web/cmaps/78-EUC-H.bcmap | Bin 0 -> 2404 bytes .../static/generic/web/cmaps/78-EUC-V.bcmap | Bin 0 -> 173 bytes .../static/generic/web/cmaps/78-H.bcmap | Bin 0 -> 2379 bytes .../static/generic/web/cmaps/78-RKSJ-H.bcmap | Bin 0 -> 2398 bytes .../static/generic/web/cmaps/78-RKSJ-V.bcmap | Bin 0 -> 173 bytes .../static/generic/web/cmaps/78-V.bcmap | Bin 0 -> 169 bytes .../generic/web/cmaps/78ms-RKSJ-H.bcmap | Bin 0 -> 2651 bytes .../generic/web/cmaps/78ms-RKSJ-V.bcmap | Bin 0 -> 290 bytes .../generic/web/cmaps/83pv-RKSJ-H.bcmap | Bin 0 -> 905 bytes .../generic/web/cmaps/90ms-RKSJ-H.bcmap | Bin 0 -> 721 bytes .../generic/web/cmaps/90ms-RKSJ-V.bcmap | Bin 0 -> 290 bytes .../generic/web/cmaps/90msp-RKSJ-H.bcmap | Bin 0 -> 715 bytes .../generic/web/cmaps/90msp-RKSJ-V.bcmap | Bin 0 -> 291 bytes .../generic/web/cmaps/90pv-RKSJ-H.bcmap | Bin 0 -> 982 bytes .../generic/web/cmaps/90pv-RKSJ-V.bcmap | Bin 0 -> 260 bytes .../static/generic/web/cmaps/Add-H.bcmap | Bin 0 -> 2419 bytes .../static/generic/web/cmaps/Add-RKSJ-H.bcmap | Bin 0 -> 2413 bytes .../static/generic/web/cmaps/Add-RKSJ-V.bcmap | Bin 0 -> 287 bytes .../static/generic/web/cmaps/Add-V.bcmap | Bin 0 -> 282 bytes .../generic/web/cmaps/Adobe-CNS1-0.bcmap | Bin 0 -> 317 bytes .../generic/web/cmaps/Adobe-CNS1-1.bcmap | Bin 0 -> 371 bytes .../generic/web/cmaps/Adobe-CNS1-2.bcmap | Bin 0 -> 376 bytes .../generic/web/cmaps/Adobe-CNS1-3.bcmap | Bin 0 -> 401 bytes .../generic/web/cmaps/Adobe-CNS1-4.bcmap | Bin 0 -> 405 bytes .../generic/web/cmaps/Adobe-CNS1-5.bcmap | Bin 0 -> 406 bytes .../generic/web/cmaps/Adobe-CNS1-6.bcmap | Bin 0 -> 406 bytes .../generic/web/cmaps/Adobe-CNS1-UCS2.bcmap | Bin 0 -> 41193 bytes .../generic/web/cmaps/Adobe-GB1-0.bcmap | Bin 0 -> 217 bytes .../generic/web/cmaps/Adobe-GB1-1.bcmap | Bin 0 -> 250 bytes .../generic/web/cmaps/Adobe-GB1-2.bcmap | Bin 0 -> 465 bytes .../generic/web/cmaps/Adobe-GB1-3.bcmap | Bin 0 -> 470 bytes .../generic/web/cmaps/Adobe-GB1-4.bcmap | Bin 0 -> 601 bytes .../generic/web/cmaps/Adobe-GB1-5.bcmap | Bin 0 -> 625 bytes .../generic/web/cmaps/Adobe-GB1-UCS2.bcmap | Bin 0 -> 33974 bytes .../generic/web/cmaps/Adobe-Japan1-0.bcmap | Bin 0 -> 225 bytes .../generic/web/cmaps/Adobe-Japan1-1.bcmap | Bin 0 -> 226 bytes .../generic/web/cmaps/Adobe-Japan1-2.bcmap | Bin 0 -> 233 bytes .../generic/web/cmaps/Adobe-Japan1-3.bcmap | Bin 0 -> 242 bytes .../generic/web/cmaps/Adobe-Japan1-4.bcmap | Bin 0 -> 337 bytes .../generic/web/cmaps/Adobe-Japan1-5.bcmap | Bin 0 -> 430 bytes .../generic/web/cmaps/Adobe-Japan1-6.bcmap | Bin 0 -> 485 bytes .../generic/web/cmaps/Adobe-Japan1-UCS2.bcmap | Bin 0 -> 40951 bytes .../generic/web/cmaps/Adobe-Korea1-0.bcmap | Bin 0 -> 241 bytes .../generic/web/cmaps/Adobe-Korea1-1.bcmap | Bin 0 -> 386 bytes .../generic/web/cmaps/Adobe-Korea1-2.bcmap | Bin 0 -> 391 bytes .../generic/web/cmaps/Adobe-Korea1-UCS2.bcmap | Bin 0 -> 23293 bytes .../static/generic/web/cmaps/B5-H.bcmap | Bin 0 -> 1086 bytes .../static/generic/web/cmaps/B5-V.bcmap | Bin 0 -> 142 bytes .../static/generic/web/cmaps/B5pc-H.bcmap | Bin 0 -> 1099 bytes .../static/generic/web/cmaps/B5pc-V.bcmap | Bin 0 -> 144 bytes .../static/generic/web/cmaps/CNS-EUC-H.bcmap | Bin 0 -> 1780 bytes .../static/generic/web/cmaps/CNS-EUC-V.bcmap | Bin 0 -> 1920 bytes .../static/generic/web/cmaps/CNS1-H.bcmap | Bin 0 -> 706 bytes .../static/generic/web/cmaps/CNS1-V.bcmap | Bin 0 -> 143 bytes .../static/generic/web/cmaps/CNS2-H.bcmap | Bin 0 -> 504 bytes .../static/generic/web/cmaps/CNS2-V.bcmap | 3 + .../static/generic/web/cmaps/ETHK-B5-H.bcmap | Bin 0 -> 4426 bytes .../static/generic/web/cmaps/ETHK-B5-V.bcmap | Bin 0 -> 158 bytes .../static/generic/web/cmaps/ETen-B5-H.bcmap | Bin 0 -> 1125 bytes .../static/generic/web/cmaps/ETen-B5-V.bcmap | Bin 0 -> 158 bytes .../generic/web/cmaps/ETenms-B5-H.bcmap | 3 + .../generic/web/cmaps/ETenms-B5-V.bcmap | Bin 0 -> 172 bytes .../static/generic/web/cmaps/EUC-H.bcmap | Bin 0 -> 578 bytes .../static/generic/web/cmaps/EUC-V.bcmap | Bin 0 -> 170 bytes .../static/generic/web/cmaps/Ext-H.bcmap | Bin 0 -> 2536 bytes .../static/generic/web/cmaps/Ext-RKSJ-H.bcmap | Bin 0 -> 2542 bytes .../static/generic/web/cmaps/Ext-RKSJ-V.bcmap | Bin 0 -> 218 bytes .../static/generic/web/cmaps/Ext-V.bcmap | Bin 0 -> 215 bytes .../static/generic/web/cmaps/GB-EUC-H.bcmap | Bin 0 -> 549 bytes .../static/generic/web/cmaps/GB-EUC-V.bcmap | Bin 0 -> 179 bytes .../static/generic/web/cmaps/GB-H.bcmap | 4 + .../static/generic/web/cmaps/GB-V.bcmap | Bin 0 -> 175 bytes .../static/generic/web/cmaps/GBK-EUC-H.bcmap | Bin 0 -> 14692 bytes .../static/generic/web/cmaps/GBK-EUC-V.bcmap | Bin 0 -> 180 bytes .../static/generic/web/cmaps/GBK2K-H.bcmap | Bin 0 -> 19662 bytes .../static/generic/web/cmaps/GBK2K-V.bcmap | Bin 0 -> 219 bytes .../static/generic/web/cmaps/GBKp-EUC-H.bcmap | Bin 0 -> 14686 bytes .../static/generic/web/cmaps/GBKp-EUC-V.bcmap | Bin 0 -> 181 bytes .../static/generic/web/cmaps/GBT-EUC-H.bcmap | Bin 0 -> 7290 bytes .../static/generic/web/cmaps/GBT-EUC-V.bcmap | Bin 0 -> 180 bytes .../static/generic/web/cmaps/GBT-H.bcmap | Bin 0 -> 7269 bytes .../static/generic/web/cmaps/GBT-V.bcmap | Bin 0 -> 176 bytes .../generic/web/cmaps/GBTpc-EUC-H.bcmap | Bin 0 -> 7298 bytes .../generic/web/cmaps/GBTpc-EUC-V.bcmap | Bin 0 -> 182 bytes .../static/generic/web/cmaps/GBpc-EUC-H.bcmap | Bin 0 -> 557 bytes .../static/generic/web/cmaps/GBpc-EUC-V.bcmap | Bin 0 -> 181 bytes .../static/generic/web/cmaps/H.bcmap | Bin 0 -> 553 bytes .../static/generic/web/cmaps/HKdla-B5-H.bcmap | Bin 0 -> 2654 bytes .../static/generic/web/cmaps/HKdla-B5-V.bcmap | Bin 0 -> 148 bytes .../static/generic/web/cmaps/HKdlb-B5-H.bcmap | Bin 0 -> 2414 bytes .../static/generic/web/cmaps/HKdlb-B5-V.bcmap | Bin 0 -> 148 bytes .../generic/web/cmaps/HKgccs-B5-H.bcmap | Bin 0 -> 2292 bytes .../generic/web/cmaps/HKgccs-B5-V.bcmap | Bin 0 -> 149 bytes .../generic/web/cmaps/HKm314-B5-H.bcmap | Bin 0 -> 1772 bytes .../generic/web/cmaps/HKm314-B5-V.bcmap | Bin 0 -> 149 bytes .../generic/web/cmaps/HKm471-B5-H.bcmap | Bin 0 -> 2171 bytes .../generic/web/cmaps/HKm471-B5-V.bcmap | Bin 0 -> 149 bytes .../static/generic/web/cmaps/HKscs-B5-H.bcmap | Bin 0 -> 4437 bytes .../static/generic/web/cmaps/HKscs-B5-V.bcmap | Bin 0 -> 159 bytes .../static/generic/web/cmaps/Hankaku.bcmap | Bin 0 -> 132 bytes .../static/generic/web/cmaps/Hiragana.bcmap | Bin 0 -> 124 bytes .../static/generic/web/cmaps/KSC-EUC-H.bcmap | Bin 0 -> 1848 bytes .../static/generic/web/cmaps/KSC-EUC-V.bcmap | Bin 0 -> 164 bytes .../static/generic/web/cmaps/KSC-H.bcmap | Bin 0 -> 1831 bytes .../generic/web/cmaps/KSC-Johab-H.bcmap | Bin 0 -> 16791 bytes .../generic/web/cmaps/KSC-Johab-V.bcmap | Bin 0 -> 166 bytes .../static/generic/web/cmaps/KSC-V.bcmap | Bin 0 -> 160 bytes .../generic/web/cmaps/KSCms-UHC-H.bcmap | Bin 0 -> 2787 bytes .../generic/web/cmaps/KSCms-UHC-HW-H.bcmap | Bin 0 -> 2789 bytes .../generic/web/cmaps/KSCms-UHC-HW-V.bcmap | Bin 0 -> 169 bytes .../generic/web/cmaps/KSCms-UHC-V.bcmap | Bin 0 -> 166 bytes .../generic/web/cmaps/KSCpc-EUC-H.bcmap | Bin 0 -> 2024 bytes .../generic/web/cmaps/KSCpc-EUC-V.bcmap | Bin 0 -> 166 bytes .../static/generic/web/cmaps/Katakana.bcmap | Bin 0 -> 100 bytes .../static/generic/web/cmaps/LICENSE | 36 + .../static/generic/web/cmaps/NWP-H.bcmap | Bin 0 -> 2765 bytes .../static/generic/web/cmaps/NWP-V.bcmap | Bin 0 -> 252 bytes .../static/generic/web/cmaps/RKSJ-H.bcmap | Bin 0 -> 534 bytes .../static/generic/web/cmaps/RKSJ-V.bcmap | Bin 0 -> 170 bytes .../static/generic/web/cmaps/Roman.bcmap | Bin 0 -> 96 bytes .../generic/web/cmaps/UniCNS-UCS2-H.bcmap | Bin 0 -> 48280 bytes .../generic/web/cmaps/UniCNS-UCS2-V.bcmap | Bin 0 -> 156 bytes .../generic/web/cmaps/UniCNS-UTF16-H.bcmap | Bin 0 -> 50419 bytes .../generic/web/cmaps/UniCNS-UTF16-V.bcmap | Bin 0 -> 156 bytes .../generic/web/cmaps/UniCNS-UTF32-H.bcmap | Bin 0 -> 52679 bytes .../generic/web/cmaps/UniCNS-UTF32-V.bcmap | Bin 0 -> 160 bytes .../generic/web/cmaps/UniCNS-UTF8-H.bcmap | Bin 0 -> 53629 bytes .../generic/web/cmaps/UniCNS-UTF8-V.bcmap | Bin 0 -> 157 bytes .../generic/web/cmaps/UniGB-UCS2-H.bcmap | Bin 0 -> 43366 bytes .../generic/web/cmaps/UniGB-UCS2-V.bcmap | Bin 0 -> 193 bytes .../generic/web/cmaps/UniGB-UTF16-H.bcmap | Bin 0 -> 44086 bytes .../generic/web/cmaps/UniGB-UTF16-V.bcmap | Bin 0 -> 178 bytes .../generic/web/cmaps/UniGB-UTF32-H.bcmap | Bin 0 -> 45738 bytes .../generic/web/cmaps/UniGB-UTF32-V.bcmap | Bin 0 -> 182 bytes .../generic/web/cmaps/UniGB-UTF8-H.bcmap | Bin 0 -> 46837 bytes .../generic/web/cmaps/UniGB-UTF8-V.bcmap | Bin 0 -> 181 bytes .../generic/web/cmaps/UniJIS-UCS2-H.bcmap | Bin 0 -> 25439 bytes .../generic/web/cmaps/UniJIS-UCS2-HW-H.bcmap | Bin 0 -> 119 bytes .../generic/web/cmaps/UniJIS-UCS2-HW-V.bcmap | Bin 0 -> 680 bytes .../generic/web/cmaps/UniJIS-UCS2-V.bcmap | Bin 0 -> 664 bytes .../generic/web/cmaps/UniJIS-UTF16-H.bcmap | Bin 0 -> 39443 bytes .../generic/web/cmaps/UniJIS-UTF16-V.bcmap | Bin 0 -> 643 bytes .../generic/web/cmaps/UniJIS-UTF32-H.bcmap | Bin 0 -> 40539 bytes .../generic/web/cmaps/UniJIS-UTF32-V.bcmap | Bin 0 -> 677 bytes .../generic/web/cmaps/UniJIS-UTF8-H.bcmap | Bin 0 -> 41695 bytes .../generic/web/cmaps/UniJIS-UTF8-V.bcmap | Bin 0 -> 678 bytes .../web/cmaps/UniJIS2004-UTF16-H.bcmap | Bin 0 -> 39534 bytes .../web/cmaps/UniJIS2004-UTF16-V.bcmap | Bin 0 -> 647 bytes .../web/cmaps/UniJIS2004-UTF32-H.bcmap | Bin 0 -> 40630 bytes .../web/cmaps/UniJIS2004-UTF32-V.bcmap | Bin 0 -> 681 bytes .../generic/web/cmaps/UniJIS2004-UTF8-H.bcmap | Bin 0 -> 41779 bytes .../generic/web/cmaps/UniJIS2004-UTF8-V.bcmap | Bin 0 -> 682 bytes .../web/cmaps/UniJISPro-UCS2-HW-V.bcmap | Bin 0 -> 705 bytes .../generic/web/cmaps/UniJISPro-UCS2-V.bcmap | Bin 0 -> 689 bytes .../generic/web/cmaps/UniJISPro-UTF8-V.bcmap | Bin 0 -> 726 bytes .../web/cmaps/UniJISX0213-UTF32-H.bcmap | Bin 0 -> 40517 bytes .../web/cmaps/UniJISX0213-UTF32-V.bcmap | Bin 0 -> 684 bytes .../web/cmaps/UniJISX02132004-UTF32-H.bcmap | Bin 0 -> 40608 bytes .../web/cmaps/UniJISX02132004-UTF32-V.bcmap | Bin 0 -> 688 bytes .../generic/web/cmaps/UniKS-UCS2-H.bcmap | Bin 0 -> 25783 bytes .../generic/web/cmaps/UniKS-UCS2-V.bcmap | Bin 0 -> 178 bytes .../generic/web/cmaps/UniKS-UTF16-H.bcmap | Bin 0 -> 26327 bytes .../generic/web/cmaps/UniKS-UTF16-V.bcmap | Bin 0 -> 164 bytes .../generic/web/cmaps/UniKS-UTF32-H.bcmap | Bin 0 -> 26451 bytes .../generic/web/cmaps/UniKS-UTF32-V.bcmap | Bin 0 -> 168 bytes .../generic/web/cmaps/UniKS-UTF8-H.bcmap | Bin 0 -> 27790 bytes .../generic/web/cmaps/UniKS-UTF8-V.bcmap | Bin 0 -> 169 bytes .../static/generic/web/cmaps/V.bcmap | Bin 0 -> 166 bytes .../static/generic/web/cmaps/WP-Symbol.bcmap | Bin 0 -> 179 bytes .../static/generic/web/compatibility.js | 577 + .../web/compressed.tracemonkey-pldi-09.pdf | Bin 0 -> 1016315 bytes .../resources/static/generic/web/debugger.js | 620 + .../generic/web/images/annotation-check.svg | 11 + .../generic/web/images/annotation-comment.svg | 16 + .../generic/web/images/annotation-help.svg | 26 + .../generic/web/images/annotation-insert.svg | 10 + .../generic/web/images/annotation-key.svg | 11 + .../web/images/annotation-newparagraph.svg | 11 + .../generic/web/images/annotation-noicon.svg | 7 + .../generic/web/images/annotation-note.svg | 42 + .../web/images/annotation-paragraph.svg | 16 + .../web/images/findbarButton-next-rtl.png | Bin 0 -> 199 bytes .../web/images/findbarButton-next-rtl@2x.png | Bin 0 -> 304 bytes .../generic/web/images/findbarButton-next.png | Bin 0 -> 193 bytes .../web/images/findbarButton-next@2x.png | Bin 0 -> 296 bytes .../web/images/findbarButton-previous-rtl.png | Bin 0 -> 193 bytes .../images/findbarButton-previous-rtl@2x.png | Bin 0 -> 296 bytes .../web/images/findbarButton-previous.png | Bin 0 -> 199 bytes .../web/images/findbarButton-previous@2x.png | Bin 0 -> 304 bytes .../static/generic/web/images/grab.cur | Bin 0 -> 326 bytes .../static/generic/web/images/grabbing.cur | Bin 0 -> 326 bytes .../generic/web/images/loading-icon.gif | Bin 0 -> 2545 bytes .../generic/web/images/loading-small.png | Bin 0 -> 7402 bytes .../generic/web/images/loading-small@2x.png | Bin 0 -> 16131 bytes ...ondaryToolbarButton-documentProperties.png | Bin 0 -> 403 bytes ...aryToolbarButton-documentProperties@2x.png | Bin 0 -> 933 bytes .../secondaryToolbarButton-firstPage.png | Bin 0 -> 179 bytes .../secondaryToolbarButton-firstPage@2x.png | Bin 0 -> 266 bytes .../secondaryToolbarButton-handTool.png | Bin 0 -> 301 bytes .../secondaryToolbarButton-handTool@2x.png | Bin 0 -> 583 bytes .../secondaryToolbarButton-lastPage.png | Bin 0 -> 175 bytes .../secondaryToolbarButton-lastPage@2x.png | Bin 0 -> 276 bytes .../secondaryToolbarButton-rotateCcw.png | Bin 0 -> 360 bytes .../secondaryToolbarButton-rotateCcw@2x.png | Bin 0 -> 731 bytes .../secondaryToolbarButton-rotateCw.png | Bin 0 -> 359 bytes .../secondaryToolbarButton-rotateCw@2x.png | Bin 0 -> 714 bytes .../static/generic/web/images/shadow.png | Bin 0 -> 290 bytes .../static/generic/web/images/texture.png | Bin 0 -> 2418 bytes .../web/images/toolbarButton-bookmark.png | Bin 0 -> 174 bytes .../web/images/toolbarButton-bookmark@2x.png | Bin 0 -> 260 bytes .../web/images/toolbarButton-download.png | Bin 0 -> 259 bytes .../web/images/toolbarButton-download@2x.png | Bin 0 -> 425 bytes .../web/images/toolbarButton-menuArrows.png | Bin 0 -> 108 bytes .../images/toolbarButton-menuArrows@2x.png | Bin 0 -> 152 bytes .../web/images/toolbarButton-openFile.png | Bin 0 -> 295 bytes .../web/images/toolbarButton-openFile@2x.png | Bin 0 -> 550 bytes .../web/images/toolbarButton-pageDown-rtl.png | Bin 0 -> 242 bytes .../images/toolbarButton-pageDown-rtl@2x.png | Bin 0 -> 398 bytes .../web/images/toolbarButton-pageDown.png | Bin 0 -> 238 bytes .../web/images/toolbarButton-pageDown@2x.png | Bin 0 -> 396 bytes .../web/images/toolbarButton-pageUp-rtl.png | Bin 0 -> 245 bytes .../images/toolbarButton-pageUp-rtl@2x.png | Bin 0 -> 405 bytes .../web/images/toolbarButton-pageUp.png | Bin 0 -> 246 bytes .../web/images/toolbarButton-pageUp@2x.png | Bin 0 -> 403 bytes .../images/toolbarButton-presentationMode.png | Bin 0 -> 321 bytes .../toolbarButton-presentationMode@2x.png | Bin 0 -> 586 bytes .../web/images/toolbarButton-print.png | Bin 0 -> 257 bytes .../web/images/toolbarButton-print@2x.png | Bin 0 -> 464 bytes .../web/images/toolbarButton-search.png | Bin 0 -> 309 bytes .../web/images/toolbarButton-search@2x.png | Bin 0 -> 653 bytes ...olbarButton-secondaryToolbarToggle-rtl.png | Bin 0 -> 246 bytes ...arButton-secondaryToolbarToggle-rtl@2x.png | Bin 0 -> 456 bytes .../toolbarButton-secondaryToolbarToggle.png | Bin 0 -> 243 bytes ...oolbarButton-secondaryToolbarToggle@2x.png | Bin 0 -> 458 bytes .../toolbarButton-sidebarToggle-rtl.png | Bin 0 -> 225 bytes .../toolbarButton-sidebarToggle-rtl@2x.png | Bin 0 -> 344 bytes .../images/toolbarButton-sidebarToggle.png | Bin 0 -> 225 bytes .../images/toolbarButton-sidebarToggle@2x.png | Bin 0 -> 331 bytes .../images/toolbarButton-viewAttachments.png | Bin 0 -> 384 bytes .../toolbarButton-viewAttachments@2x.png | Bin 0 -> 871 bytes .../images/toolbarButton-viewOutline-rtl.png | Bin 0 -> 177 bytes .../toolbarButton-viewOutline-rtl@2x.png | Bin 0 -> 394 bytes .../web/images/toolbarButton-viewOutline.png | Bin 0 -> 178 bytes .../images/toolbarButton-viewOutline@2x.png | Bin 0 -> 331 bytes .../images/toolbarButton-viewThumbnail.png | Bin 0 -> 185 bytes .../images/toolbarButton-viewThumbnail@2x.png | Bin 0 -> 220 bytes .../web/images/toolbarButton-zoomIn.png | Bin 0 -> 136 bytes .../web/images/toolbarButton-zoomIn@2x.png | Bin 0 -> 160 bytes .../web/images/toolbarButton-zoomOut.png | Bin 0 -> 88 bytes .../web/images/toolbarButton-zoomOut@2x.png | Bin 0 -> 109 bytes .../main/resources/static/generic/web/l10n.js | 1033 + .../generic/web/locale/locale.properties | 312 + .../web/locale/zh-CN/viewer.properties | 167 + .../resources/static/generic/web/viewer.css | 1999 + .../resources/static/generic/web/viewer.html | 418 + .../resources/static/generic/web/viewer.js | 7614 +++ .../main/resources/static/view/userlist.html | 0 .../src/main/resources/templates/demo3.ftl | 0 .../resources/templates/pdfPreviewIframe.ftl | 30 + .../src/test/java/org/jeecg/SampleTest.java | 0 jeecg-boot/pom.xml | 120 +- .../main/java/org/jeecg/JeecgApplication.java | 16 - .../jeecg/common/system/api/ISysBaseAPI.java | 12 - .../demo/mock/json/getCntrNoCountInfo.json | 27 - .../SysMessageTemplateController.java | 267 - .../message/entity/SysMessageTemplate.java | 58 - .../message/service/ISysMessageService.java | 14 - .../monitor/controller/RedisController.java | 46 - .../cgreport/controller/OnlCgreportAPI.java | 253 - .../controller/OnlCgreportHeadController.java | 269 - .../controller/OnlCgreportItemController.java | 183 - .../OnlCgreportParamController.java | 183 - .../online/cgreport/def/CgReportConstant.java | 70 - .../cgreport/entity/OnlCgreportHead.java | 57 - .../cgreport/entity/OnlCgreportItem.java | 66 - .../cgreport/entity/OnlCgreportParam.java | 50 - .../mapper/OnlCgreportHeadMapper.java | 52 - .../mapper/OnlCgreportItemMapper.java | 15 - .../mapper/OnlCgreportParamMapper.java | 15 - .../mapper/xml/OnlCgreportHeadMapper.xml | 58 - .../mapper/xml/OnlCgreportParamMapper.xml | 5 - .../cgreport/model/OnlCgreportModel.java | 79 - .../service/CgReportExcelServiceI.java | 24 - .../service/IOnlCgreportHeadService.java | 51 - .../service/IOnlCgreportItemService.java | 20 - .../service/IOnlCgreportParamService.java | 15 - .../impl/CgReportExcelServiceImpl.java | 144 - .../impl/OnlCgreportHeadServiceImpl.java | 242 - .../impl/OnlCgreportItemServiceImpl.java | 50 - .../impl/OnlCgreportParamServiceImpl.java | 19 - .../cgreport/util/CgReportQueryParamUtil.java | 178 - .../modules/online/cgreport/util/SqlUtil.java | 260 - .../service/impl/QuartzJobServiceImpl.java | 29 - .../shiro/authc/aop/ResourceCheckFilter.java | 72 - .../controller/SysDepartController.java | 193 - .../modules/system/mapper/SysUserMapper.java | 22 - .../system/mapper/xml/SysUserMapper.xml | 10 - .../service/ISysAnnouncementService.java | 14 - .../system/service/ISysUserService.java | 49 - .../impl/SysAnnouncementServiceImpl.java | 19 - .../system/service/impl/SysBaseAPI.java | 48 - .../impl/SysRolePermissionServiceImpl.java | 42 - .../service/impl/SysUserServiceImpl.java | 105 - jeecg-boot/src/main/resources/application.yml | 3 - 770 files changed, 85014 insertions(+), 19508 deletions(-) create mode 100644 ant-design-jeecg-vue/.eslintignore rename ant-design-jeecg-vue/src/assets/less/{common.css => common.less} (55%) create mode 100644 ant-design-jeecg-vue/src/assets/pdf4.jpg create mode 100644 ant-design-jeecg-vue/src/components/bpm/DynamicComponent.vue create mode 100644 ant-design-jeecg-vue/src/components/bpm/FormCommonModal.vue create mode 100644 ant-design-jeecg-vue/src/components/bpm/ProcNodeInfoModel.vue create mode 100644 ant-design-jeecg-vue/src/components/bpm/ProcessInstPicModal.vue create mode 100644 ant-design-jeecg-vue/src/components/chart/BarAndLine.vue create mode 100644 ant-design-jeecg-vue/src/components/dict/JMultiSelectTag.vue create mode 100644 ant-design-jeecg-vue/src/components/dict/JSearchSelectTag.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecg/JCodeEditor.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecg/JGraphicCode.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecg/JSlider.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecg/JTreeTable.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecg/JUpload.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecgbiz/JSelectDepart.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecgbiz/JSelectMultiUser.vue rename ant-design-jeecg-vue/src/components/jeecgbiz/{SelectMultipleUserModal.vue => JSelectMultipleUser.vue} (98%) create mode 100644 ant-design-jeecg-vue/src/components/jeecgbiz/JSelectUserByDep.vue delete mode 100644 ant-design-jeecg-vue/src/components/jeecgbiz/SearchUserByDepModal.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectDepartModal.vue create mode 100644 ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectMultiUserModal.vue rename ant-design-jeecg-vue/src/components/jeecgbiz/{JSearchUserByDepModal.vue => modal/JSelectUserByDepModal.vue} (94%) create mode 100644 ant-design-jeecg-vue/src/components/layouts/IframeFReportView.vue create mode 100644 ant-design-jeecg-vue/src/components/tools/ShowAnnouncement.vue create mode 100644 ant-design-jeecg-vue/src/components/tools/UserPassword.vue create mode 100644 ant-design-jeecg-vue/src/mixins/DisabledAuthFilterMixin.js rename ant-design-jeecg-vue/src/mixins/{JEditableTableOneToManyMixin.js => JEditableTableMixin.js} (96%) create mode 100644 ant-design-jeecg-vue/src/utils/authFilter.js create mode 100644 ant-design-jeecg-vue/src/utils/vueBus.js create mode 100644 ant-design-jeecg-vue/src/views/jeecg/ImagPreview.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/ImgDragSort.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/ImgTurnPage.vue delete mode 100644 ant-design-jeecg-vue/src/views/jeecg/JSearchUserByDepList.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/JeecgPdfView.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/JeecgTreeTable.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/JoaDemoList.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/RowspanTable.vue delete mode 100644 ant-design-jeecg-vue/src/views/jeecg/SearchUserByDepList.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/SplitPanel.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/modules/JoaDemoForm.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/modules/PdfPreviewModal.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelA.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelB.vue create mode 100644 ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelModal.vue create mode 100644 ant-design-jeecg-vue/src/views/modules/monitor/DiskMonitoring.vue create mode 100644 ant-design-jeecg-vue/src/views/modules/monitor/HttpTrace.vue create mode 100644 ant-design-jeecg-vue/src/views/modules/monitor/JvmInfo.vue create mode 100644 ant-design-jeecg-vue/src/views/modules/monitor/RedisInfo.vue create mode 100644 ant-design-jeecg-vue/src/views/modules/monitor/RedisTerminal.vue create mode 100644 ant-design-jeecg-vue/src/views/modules/monitor/SystemInfo.vue create mode 100644 ant-design-jeecg-vue/src/views/modules/monitor/TomcatInfo.vue delete mode 100644 ant-design-jeecg-vue/src/views/modules/online/cgreport/OnlCgreportHeadList.vue delete mode 100644 ant-design-jeecg-vue/src/views/modules/online/cgreport/auto/OnlCgreportAutoList.vue delete mode 100644 ant-design-jeecg-vue/src/views/modules/online/cgreport/auto/OnlCgreportQueryFormItem.vue delete mode 100644 ant-design-jeecg-vue/src/views/modules/online/cgreport/modules/OnlCgreportHeadModal.vue create mode 100644 ant-design-jeecg-vue/src/views/system/DepartUserList.vue create mode 100644 ant-design-jeecg-vue/src/views/system/RoleUserList.vue create mode 100644 ant-design-jeecg-vue/src/views/system/UserAnnouncementList.vue create mode 100644 ant-design-jeecg-vue/src/views/system/modules/DeptBaseInfo.vue create mode 100644 ant-design-jeecg-vue/src/views/system/modules/DeptUserInfo.vue create mode 100644 ant-design-jeecg-vue/src/views/system/modules/SelectUserListModal.vue create mode 100644 ant-design-jeecg-vue/src/views/system/modules/SelectUserModal.vue create mode 100644 ant-design-jeecg-vue/src/views/system/modules/SysUserAgentModal.vue delete mode 100644 ant-design-jeecg-vue/yarn.lock rename jeecg-boot/{docs/db/jeecg-boot_1.1.0-20190415.sql => db/jeecg-boot-mysql.sql} (85%) create mode 100644 jeecg-boot/db/jeecg-boot-oracle_11g.sql create mode 100644 jeecg-boot/db/jeecg-boot-sqlserver_2008.sql delete mode 100644 jeecg-boot/docs/- 项目说明 create mode 100644 jeecg-boot/jeecg-boot-base-common/pom.xml rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/api/vo/Result.java (74%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/aspect/annotation/AutoLog.java (94%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/aspect/annotation/Dict.java (100%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/aspect/annotation/PermissionData.java (86%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/constant/CommonConstant.java (50%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/constant/CommonSendStatus.java (91%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/constant/DataBaseConstant.java (92%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/exception/JeecgBootException.java (100%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java (73%) create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/base/controller/JeecgController.java create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/base/entity/JeecgEntity.java create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/base/service/JeecgService.java create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/base/service/impl/JeecgServiceImpl.java rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/system/controller/CommonController.java (63%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/system/query/QueryCondition.java (100%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/system/query/QueryGenerator.java (81%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/system/query/QueryRuleEnum.java (97%) rename jeecg-boot/{src/main/java/org/jeecg/modules => jeecg-boot-base-common/src/main/java/org/jeecg/common}/system/util/JeecgDataAutorUtils.java (94%) rename jeecg-boot/{src/main/java/org/jeecg/modules/shiro/authc => jeecg-boot-base-common/src/main/java/org/jeecg/common/system}/util/JwtUtil.java (90%) create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/vo/DictModel.java create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/vo/LoginUser.java rename jeecg-boot/{src/main/java/org/jeecg/modules/system/model => jeecg-boot-base-common/src/main/java/org/jeecg/common/system/vo}/SysUserCacheInfo.java (67%) rename jeecg-boot/{src/main/java/org/jeecg/modules/online/cgreport => jeecg-boot-base-common/src/main/java/org/jeecg/common}/util/BrowserType.java (61%) rename jeecg-boot/{src/main/java/org/jeecg/modules/online/cgreport => jeecg-boot-base-common/src/main/java/org/jeecg/common}/util/BrowserUtils.java (98%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/DateUtils.java (99%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/IPUtils.java (97%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/MD5Util.java (100%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/MyClassLoader.java (99%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/PasswordUtil.java (100%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/RedisUtil.java (99%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/SpringContextUtils.java (100%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/UUIDGenerator.java (98%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/YouBianCodeUtil.java (99%) rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-base-common/src/main/java/org/jeecg/common/util}/jsonschema/CommonProperty.java (84%) rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-base-common/src/main/java/org/jeecg/common/util}/jsonschema/JsonSchemaDescrip.java (97%) rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-base-common/src/main/java/org/jeecg/common/util}/jsonschema/JsonschemaUtil.java (88%) rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-base-common/src/main/java/org/jeecg/common/util}/jsonschema/validate/NumberProperty.java (94%) create mode 100644 jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/util/jsonschema/validate/PopupProperty.java rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-base-common/src/main/java/org/jeecg/common/util}/jsonschema/validate/StringProperty.java (91%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/oConvertUtils.java (94%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/superSearch/ObjectParseUtil.java (96%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/superSearch/QueryRuleEnum.java (96%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/common/util/superSearch/QueryRuleVo.java (100%) rename jeecg-boot/{ => jeecg-boot-base-common}/src/main/java/org/jeecg/modules/system/entity/SysPermissionDataRule.java (97%) create mode 100644 jeecg-boot/jeecg-boot-module-system/pom.xml create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgApplication.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/JeecgOneGUI.java (88%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/JeecgOneToMainUtil.java (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/config/AutoPoiConfig.java (95%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/config/MybatisPlusConfig.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/config/RedisConfig.java (67%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/config/ShiroConfig.java (85%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/config/Swagger2Config.java (93%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/config/WebMvcConfiguration.java (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java (77%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/MockController.java (95%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/area.json (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/mock/json/asyn_tree_list_0.json create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/mock/json/asyn_tree_list_1.json create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/mock/json/asyn_tree_list_2.json create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/mock/json/asyn_tree_list_3.json create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/mock/json/asyn_tree_list_31.json create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/mock/json/getCntrNoCountInfo.json rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/graphreport_chart.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/permission.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/permission_no_page.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/role.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/service.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/sysdatalog.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/task_process.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/user.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/user_info.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/workplace_activity.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/workplace_projects.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/workplace_radar.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/mock/json/workplace_teams.json (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/controller/JeecgDemoController.java (60%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/controller/JeecgOrderDMainController.java (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/controller/JeecgOrderMainController.java (92%) rename jeecg-boot/{src/main/java/org/jeecg/modules/message/controller/SysMessageController.java => jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/controller/JoaDemoController.java} (59%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/entity/JeecgDemo.java (58%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/entity/JeecgOrderCustomer.java (95%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/entity/JeecgOrderMain.java (95%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/entity/JeecgOrderTicket.java (95%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/entity/JoaDemo.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/JeecgDemoMapper.java (85%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/JeecgOrderCustomerMapper.java (91%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/JeecgOrderMainMapper.java (82%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/JeecgOrderTicketMapper.java (91%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/mapper/JoaDemoMapper.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/xml/JeecgDemoMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/xml/JeecgOrderCustomerMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/xml/JeecgOrderMainMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/mapper/xml/JeecgOrderTicketMapper.xml (100%) rename jeecg-boot/{src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementMapper.xml => jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/mapper/xml/JoaDemoMapper.xml} (67%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/IJeecgDemoService.java (52%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/IJeecgOrderCustomerService.java (84%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/IJeecgOrderMainService.java (93%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/IJeecgOrderTicketService.java (84%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/service/IJoaDemoService.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/impl/JeecgDemoServiceImpl.java (85%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/impl/JeecgOrderCustomerServiceImpl.java (92%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/impl/JeecgOrderMainServiceImpl.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/service/impl/JeecgOrderTicketServiceImpl.java (92%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/service/impl/JoaDemoServiceImpl.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/demo/test/vo/JeecgOrderMainPage.java (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/SysMessageController.java create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/SysMessageTemplateController.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/entity/MsgParams.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/entity/SysMessage.java (59%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/SysMessageTemplate.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/handle/ISendMsgHandle.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/handle/enums/SendMsgStatusEnum.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/handle/enums/SendMsgTypeEnum.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/handle/impl/SmsSendMsgHandle.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/handle/impl/WxSendMsgHandle.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/job/SendMsgJob.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/mapper/SysMessageMapper.java (82%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/mapper/SysMessageTemplateMapper.java (87%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/mapper/xml/SysMessageMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/mapper/xml/SysMessageTemplateMapper.xml (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/ISysMessageService.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/service/ISysMessageTemplateService.java (51%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/service/impl/SysMessageServiceImpl.java (54%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/service/impl/SysMessageTemplateServiceImpl.java (69%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/message/util/PushMsgUtil.java (83%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/monitor/controller/ActuatorRedisController.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/monitor/domain/RedisInfo.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/monitor/exception/RedisConnectException.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/monitor/service/RedisService.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/monitor/service/impl/RedisServiceImpl.java (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/ngalain/aop/LogRecordAspect.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/ngalain/controller/NgAlainController.java (72%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/ngalain/mapper/NgAlainMapper.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/ngalain/mapper/xml/NgAlainMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/ngalain/service/NgAlainService.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/ngalain/service/impl/NgAlainServiceImpl.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/quartz/controller/QuartzJobController.java (61%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/quartz/entity/QuartzJob.java (95%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/quartz/job/SampleJob.java (96%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/quartz/job/SampleParamJob.java (97%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/quartz/mapper/QuartzJobMapper.java (85%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/quartz/mapper/xml/QuartzJobMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/quartz/service/IQuartzJobService.java (52%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/quartz/service/impl/QuartzJobServiceImpl.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/shiro/authc/JwtToken.java (96%) rename jeecg-boot/{src/main/java/org/jeecg/modules/shiro/authc/MyRealm.java => jeecg-boot-module-system/src/main/java/org/jeecg/modules/shiro/authc/ShiroRealm.java} (59%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/shiro/authc/aop/JwtFilter.java (90%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/shiro/authc/aop/ResourceCheckFilter.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/shiro/vo/DefContants.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/shiro/vo/ResponseBean.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/shiro/vo/UserBean.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/shiro/web/TestWebController.java (95%) rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-module-system/src/main/java/org/jeecg/modules/system}/aspect/AutoLogAspect.java (92%) rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-module-system/src/main/java/org/jeecg/modules/system}/aspect/DictAspect.java (93%) rename jeecg-boot/{src/main/java/org/jeecg/common => jeecg-boot-module-system/src/main/java/org/jeecg/modules/system}/aspect/PermissionDataAspect.java (95%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/DuplicateCheckController.java (93%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/LoginController.java (65%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java (71%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysDataLogController.java (99%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysDictController.java (90%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysLogController.java (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java (57%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java (91%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserAgentController.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/controller/SysUserController.java (62%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysAnnouncement.java (86%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysAnnouncementSend.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysDataLog.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysDepart.java (88%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysDict.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysDictItem.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysLog.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysPermission.java (71%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysPermissionDataRule.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysRole.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysRolePermission.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysUser.java (93%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysUserAgent.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysUserDepart.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/entity/SysUserRole.java (97%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementMapper.java (54%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysDataLogMapper.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysDepartMapper.java (96%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysDictItemMapper.java (95%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java (59%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysLogMapper.java (56%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysPermissionDataRuleMapper.java (96%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java (93%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysRoleMapper.java (94%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysRolePermissionMapper.java (94%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserAgentMapper.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysUserDepartMapper.java (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java (97%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementMapper.xml create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysDataLogMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictItemMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml (71%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysLogMapper.xml (79%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionDataRuleMapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml (97%) rename jeecg-boot/{src/main/java/org/jeecg/modules/online/cgreport/mapper/xml/OnlCgreportItemMapper.xml => jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserAgentMapper.xml} (65%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserDepartMapper.xml (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/model/AnnouncementSendModel.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/DepartIdModel.java (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/DuplicateCheckVo.java (94%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/SysDepartTreeModel.java (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/SysDictTree.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java (70%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/SysPermissionTree.java (91%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/SysUserDepartsVO.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/TreeModel.java (90%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/model/TreeSelectModel.java (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementSendService.java create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysDataLogService.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysDepartService.java (88%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java (94%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysDictService.java (60%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysLogService.java (63%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysPermissionDataRuleService.java (71%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysRolePermissionService.java (63%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java (96%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysUserAgentService.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java (96%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysUserService.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/AutoPoiDictService.java (86%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementSendServiceImpl.java create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysDataLogServiceImpl.java (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java (92%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java (97%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java (68%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysLogServiceImpl.java (64%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionDataRuleImpl.java (55%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java (96%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysRolePermissionServiceImpl.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysRoleServiceImpl.java (97%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysUserAgentServiceImpl.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java (86%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java (97%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/util/FindsDepartsChildrenUtil.java (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/util/PermissionDataUtil.java (59%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/SysDepartUsersVO.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/java/org/jeecg/modules/system/vo/SysDictPage.java (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/SysUserRoleVO.java rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/application-dev.yml (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/application-prod.yml (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/application-test.yml (99%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/application.yml rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/banner.txt (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/db/data-mysql.sql (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/db/schema-mysql.sql (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai (84%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai (72%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany2 => jeecg-boot-module-system/src/main/resources/jeecg/code-template/one}/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai (80%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai (77%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai (86%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei (89%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei (99%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/controller/${entityPackage}/${entityName}Controller.javai (96%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/entity/${entityPackage}/${entityName}.javai (94%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/mapper/${entityPackage}/${entityName}Mapper.javai (80%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/mapper/${entityPackage}/xml/${entityName}Mapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/service/${entityPackage}/I${entityName}Service.javai (77%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/service/${entityPackage}/impl/${entityName}ServiceImpl.javai (86%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/vue/${entityPackage}/${entityName}List.vuei (89%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/vue/${entityPackage}/modules/${entityName}Modal.vuei (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/vue/${entityPackage}/modules/${entityName}Modal__Style#Drawer.vuei (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai (97%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai (93%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/entity/[1-n]Entity.javai (94%) rename jeecg-boot/{src/main/resources/jeecg/code-template/one => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany}/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai (80%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany2 => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany}/java/${bussiPackage}/${entityPackage}/mapper/[1-n]Mapper.javai (85%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/[1-n]Mapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai (92%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany2 => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany}/java/${bussiPackage}/${entityPackage}/service/[1-n]Service.javai (84%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany2 => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany}/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai (97%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/[1-n]ServiceImpl.javai (92%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai (91%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei (87%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei (98%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai (97%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai (93%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/entity/[1-n]Entity.javai (94%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany2}/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai (80%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany2}/java/${bussiPackage}/${entityPackage}/mapper/[1-n]Mapper.javai (85%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/mapper/xml/[1-n]Mapper.xml (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai (92%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany2}/java/${bussiPackage}/${entityPackage}/service/[1-n]Service.javai (84%) rename jeecg-boot/{src/main/resources/jeecg/code-template/onetomany => jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany2}/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai (97%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/service/impl/[1-n]ServiceImpl.javai (92%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai (91%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei (91%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/vue/[1-n]List.vuei (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/vue/modules/[1-n]Modal.vuei (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/jeecg_config.properties (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/jeecg/jeecg_database.properties (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/logback-spring.xml (94%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/static/demo1.html (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/LICENSE create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/build/pdf.js create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/build/pdf.worker.js create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78-RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78ms-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/78ms-RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/83pv-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/90ms-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/90ms-RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/90msp-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/90msp-RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/90pv-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/90pv-RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Add-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Add-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Add-RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Add-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-0.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-1.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-3.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-4.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-5.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-6.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-CNS1-UCS2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-GB1-0.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-GB1-1.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-GB1-2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-GB1-3.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-GB1-4.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-GB1-5.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-GB1-UCS2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-0.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-1.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-3.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-4.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-5.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-6.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Japan1-UCS2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Korea1-0.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Korea1-1.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Korea1-2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Adobe-Korea1-UCS2.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/B5pc-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/B5pc-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/CNS-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/CNS-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/CNS1-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/CNS1-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/CNS2-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/CNS2-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/ETHK-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/ETHK-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/ETen-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/ETen-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/ETenms-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/ETenms-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Ext-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Ext-RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Ext-RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Ext-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GB-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GB-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GB-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GB-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBK-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBK-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBK2K-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBK2K-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBKp-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBKp-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBT-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBT-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBT-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBT-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBTpc-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBTpc-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBpc-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/GBpc-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKdla-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKdla-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKdlb-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKdlb-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKgccs-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKgccs-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKm314-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKm314-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKm471-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKm471-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKscs-B5-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/HKscs-B5-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Hankaku.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Hiragana.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSC-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSC-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSC-Johab-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSC-Johab-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSCms-UHC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSCms-UHC-HW-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSCms-UHC-HW-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSCms-UHC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSCpc-EUC-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/KSCpc-EUC-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Katakana.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/LICENSE create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/NWP-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/NWP-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/RKSJ-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/RKSJ-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/Roman.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UCS2-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UCS2-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UTF16-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UTF16-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UTF32-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UTF32-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UTF8-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniCNS-UTF8-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UCS2-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UCS2-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UTF16-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UTF16-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UTF32-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UTF32-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UTF8-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniGB-UTF8-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UCS2-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UCS2-HW-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UCS2-HW-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UCS2-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UTF16-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UTF16-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UTF32-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UTF32-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UTF8-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS-UTF8-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS2004-UTF16-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS2004-UTF16-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS2004-UTF32-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS2004-UTF32-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS2004-UTF8-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJIS2004-UTF8-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJISPro-UCS2-HW-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJISPro-UCS2-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJISPro-UTF8-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJISX0213-UTF32-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJISX0213-UTF32-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJISX02132004-UTF32-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniJISX02132004-UTF32-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UCS2-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UCS2-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UTF16-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UTF16-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UTF32-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UTF32-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UTF8-H.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/UniKS-UTF8-V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/V.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/cmaps/WP-Symbol.bcmap create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/compatibility.js create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/compressed.tracemonkey-pldi-09.pdf create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/debugger.js create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-check.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-comment.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-help.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-insert.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-key.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-newparagraph.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-noicon.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-note.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/annotation-paragraph.svg create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-next-rtl.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-next-rtl@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-next.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-next@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-previous-rtl.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-previous-rtl@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-previous.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/findbarButton-previous@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/grab.cur create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/grabbing.cur create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/loading-icon.gif create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/loading-small.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/loading-small@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-documentProperties.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-documentProperties@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-firstPage.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-firstPage@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-handTool.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-handTool@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-lastPage.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-lastPage@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-rotateCcw.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-rotateCcw@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-rotateCw.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/secondaryToolbarButton-rotateCw@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/shadow.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/texture.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-bookmark.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-bookmark@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-download.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-download@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-menuArrows.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-menuArrows@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-openFile.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-openFile@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageDown-rtl.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageDown-rtl@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageDown.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageDown@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageUp-rtl.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageUp-rtl@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageUp.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-pageUp@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-presentationMode.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-presentationMode@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-print.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-print@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-search.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-search@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-secondaryToolbarToggle-rtl.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-secondaryToolbarToggle.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-secondaryToolbarToggle@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-sidebarToggle-rtl.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-sidebarToggle-rtl@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-sidebarToggle.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-sidebarToggle@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewAttachments.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewAttachments@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewOutline-rtl.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewOutline-rtl@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewOutline.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewOutline@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewThumbnail.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-viewThumbnail@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-zoomIn.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-zoomIn@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-zoomOut.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/images/toolbarButton-zoomOut@2x.png create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/l10n.js create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/locale/locale.properties create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/locale/zh-CN/viewer.properties create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/viewer.css create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/viewer.html create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/static/generic/web/viewer.js rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/static/view/userlist.html (100%) rename jeecg-boot/{ => jeecg-boot-module-system}/src/main/resources/templates/demo3.ftl (100%) create mode 100644 jeecg-boot/jeecg-boot-module-system/src/main/resources/templates/pdfPreviewIframe.ftl rename jeecg-boot/{ => jeecg-boot-module-system}/src/test/java/org/jeecg/SampleTest.java (100%) delete mode 100644 jeecg-boot/src/main/java/org/jeecg/JeecgApplication.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/demo/mock/json/getCntrNoCountInfo.json delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/message/controller/SysMessageTemplateController.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/message/entity/SysMessageTemplate.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/message/service/ISysMessageService.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/monitor/controller/RedisController.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/controller/OnlCgreportAPI.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/controller/OnlCgreportHeadController.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/controller/OnlCgreportItemController.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/controller/OnlCgreportParamController.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/def/CgReportConstant.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/entity/OnlCgreportHead.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/entity/OnlCgreportItem.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/entity/OnlCgreportParam.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/mapper/OnlCgreportHeadMapper.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/mapper/OnlCgreportItemMapper.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/mapper/OnlCgreportParamMapper.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/mapper/xml/OnlCgreportHeadMapper.xml delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/mapper/xml/OnlCgreportParamMapper.xml delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/model/OnlCgreportModel.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/CgReportExcelServiceI.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/IOnlCgreportHeadService.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/IOnlCgreportItemService.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/IOnlCgreportParamService.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/impl/CgReportExcelServiceImpl.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/impl/OnlCgreportHeadServiceImpl.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/impl/OnlCgreportItemServiceImpl.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/service/impl/OnlCgreportParamServiceImpl.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/util/CgReportQueryParamUtil.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/online/cgreport/util/SqlUtil.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/quartz/service/impl/QuartzJobServiceImpl.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/shiro/authc/aop/ResourceCheckFilter.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/service/ISysUserService.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/service/impl/SysBaseAPI.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/service/impl/SysRolePermissionServiceImpl.java delete mode 100644 jeecg-boot/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java delete mode 100644 jeecg-boot/src/main/resources/application.yml diff --git a/README.md b/README.md index 5d693734..c54ee926 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Jeecg-Boot 快速开发平台(前后端分离版本) =============== -当前最新版本: 1.1(发布日期:20190415) +当前最新版本: 2.0.0(发布日期:20190520) 项目介绍: ----------------------------------- @@ -52,11 +52,11 @@ Jeecg-Boot快速开发平台,可以应用在任何J2EE项目的开发中,尤 ----------------------------------- #### 后端 -- 基础框架:Spring Boot 2.0.3.RELEASE +- 基础框架:Spring Boot 2.1.3.RELEASE - 持久层框架:Mybatis-plus_3.0.6 -- 安全框架:Apache Shiro 1.4.0-RC2,Jwt_3.4.1 +- 安全框架:Apache Shiro 1.4.0,Jwt_3.7.0 - 数据库连接池:阿里巴巴Druid 1.1.10 @@ -89,7 +89,7 @@ Jeecg-Boot快速开发平台,可以应用在任何J2EE项目的开发中,尤 - 依赖管理:Maven -- 数据库:MySQL5.0 & Oracle 11g +- 数据库:MySQL5.0 & Oracle 11g & Sqlserver2005 - 缓存:Redis @@ -242,7 +242,7 @@ Jeecg-Boot快速开发平台,可以应用在任何J2EE项目的开发中,尤 - jdk8 - mysql - redis -- 数据库脚步:jeecg-boot\docs\jeecg-boot_1.1.0-20190415.sql +- 数据库脚步:jeecg-boot\docs\jeecg-boot-mysql.sql - 默认登录账号: admin/123456 diff --git a/ant-design-jeecg-vue/.eslintignore b/ant-design-jeecg-vue/.eslintignore new file mode 100644 index 00000000..dbc86908 --- /dev/null +++ b/ant-design-jeecg-vue/.eslintignore @@ -0,0 +1 @@ +/src \ No newline at end of file diff --git a/ant-design-jeecg-vue/LICENSE b/ant-design-jeecg-vue/LICENSE index 03c5fe35..22a76de3 100644 --- a/ant-design-jeecg-vue/LICENSE +++ b/ant-design-jeecg-vue/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 jeecg-boot +Copyright (c) 2019 DaiHao Zhang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/ant-design-jeecg-vue/README.md b/ant-design-jeecg-vue/README.md index 44012490..d1cd3b27 100644 --- a/ant-design-jeecg-vue/README.md +++ b/ant-design-jeecg-vue/README.md @@ -1,7 +1,7 @@ Ant Design Jeecg Vue ==== -当前最新版本: 1.1.0(发布日期:20190415) +当前最新版本: 2.0.0(发布日期:20190518) Overview ---- diff --git a/ant-design-jeecg-vue/package.json b/ant-design-jeecg-vue/package.json index 3ea0328c..26e9452b 100644 --- a/ant-design-jeecg-vue/package.json +++ b/ant-design-jeecg-vue/package.json @@ -1,6 +1,6 @@ { "name": "vue-antd-jeecg", - "version": "1.1.0", + "version": "2.0.0", "private": true, "scripts": { "serve": "vue-cli-service serve --open", @@ -15,6 +15,8 @@ "ant-design-vue": "^1.3.1", "apexcharts": "^3.6.5", "axios": "^0.18.0", + "clipboard": "^2.0.4", + "codemirror": "^5.46.0", "dayjs": "^1.8.0", "enquire.js": "^2.1.6", "js-cookie": "^2.2.0", @@ -29,10 +31,14 @@ "vue-class-component": "^6.0.0", "vue-cropper": "^0.4.8", "vue-i18n": "^8.7.0", + "vue-loader": "^15.7.0", "vue-ls": "^3.2.0", - "vue-print-nb-jeecg": "^1.0.5", + "vue-photo-preview": "^1.1.3", + "vue-print-nb-jeecg": "^1.0.7", "vue-property-decorator": "^7.3.0", "vue-router": "^3.0.1", + "vue-splitpane": "^1.0.4", + "vuedraggable": "^2.20.0", "vuex": "^3.0.1", "vuex-class": "^0.3.1" }, diff --git a/ant-design-jeecg-vue/public/index.html b/ant-design-jeecg-vue/public/index.html index 9b938e50..581cbae7 100644 --- a/ant-design-jeecg-vue/public/index.html +++ b/ant-design-jeecg-vue/public/index.html @@ -224,6 +224,7 @@ window._CONFIG = {}; window._CONFIG['domianURL'] = 'http://localhost:8080/jeecg-boot'; window._CONFIG['imgDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/view'; + window._CONFIG['pdfDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/pdf/pdfPreviewIframe'; diff --git a/ant-design-jeecg-vue/src/api/api.js b/ant-design-jeecg-vue/src/api/api.js index 5306ff03..c26eca91 100644 --- a/ant-design-jeecg-vue/src/api/api.js +++ b/ant-design-jeecg-vue/src/api/api.js @@ -5,7 +5,6 @@ import { getAction,deleteAction,putAction,postAction} from '@/api/manage' ////图片预览请求地址 // const imgView = "http://localhost:8080/jeecg-boot/sys/common/view/"; - //角色管理 const addRole = (params)=>postAction("/sys/role/add",params); const editRole = (params)=>putAction("/sys/role/edit",params); @@ -39,7 +38,8 @@ const queryTreeListForRole = (params)=>getAction("/sys/role/queryTreeList",param const queryListAsync = (params)=>getAction("/sys/permission/queryListAsync",params); const queryRolePermission = (params)=>getAction("/sys/permission/queryRolePermission",params); const saveRolePermission = (params)=>postAction("/sys/permission/saveRolePermission",params); -const queryPermissionsByUser = (params)=>getAction("/sys/permission/queryByUser",params); +//const queryPermissionsByUser = (params)=>getAction("/sys/permission/queryByUser",params); +const queryPermissionsByUser = (params)=>getAction("/sys/permission/getUserPermissionByToken",params); const loadAllRoleIds = (params)=>getAction("/sys/permission/loadAllRoleIds",params); const getPermissionRuleList = (params)=>getAction("/sys/permission/getPermRuleListByPermId",params); const queryPermissionRule = (params)=>getAction("/sys/permission/queryPermissionRule",params); @@ -130,7 +130,7 @@ export { queryUserByDepId, queryUserRoleMap, duplicateCheck, - queryTreeListForRole + queryTreeListForRole, } diff --git a/ant-design-jeecg-vue/src/assets/less/common.css b/ant-design-jeecg-vue/src/assets/less/common.less similarity index 55% rename from ant-design-jeecg-vue/src/assets/less/common.css rename to ant-design-jeecg-vue/src/assets/less/common.less index 717295ad..62f28a8a 100644 --- a/ant-design-jeecg-vue/src/assets/less/common.css +++ b/ant-design-jeecg-vue/src/assets/less/common.less @@ -1,9 +1,12 @@ -/*列表上方操作按钮*/ +/*列表上方操作按钮区域*/ .ant-card-body .table-operator { margin-bottom: 18px; } - +/** Button按钮间距 */ +.table-operator .ant-btn { + margin-right: 6px +} /*列表td的padding设置 可以控制列表大小*/ .ant-table-tbody .ant-table-row td { padding-top: 15px; @@ -26,4 +29,14 @@ height: 90% !important; overflow-y: hidden } - +/*列表中有图片的加这个样式 参考用户管理*/ +.anty-img-wrap { + height: 25px; + position: relative; +} +.anty-img-wrap > img { + max-height: 100%; +} +/*列表中范围查询样式*/ +.query-group-cust{width: calc(50% - 10px)} +.query-group-split-cust:before{content:"~";width: 20px;display: inline-block;text-align: center} diff --git a/ant-design-jeecg-vue/src/assets/pdf4.jpg b/ant-design-jeecg-vue/src/assets/pdf4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10166e09eb8fd10c134e9d708fb91017baf0d406 GIT binary patch literal 50960 zcmXtg1z6MX_x1-AQBY92L1_V{l@bhMbO}{=AF>r3S{H zd#0uS03wop=Cl?kfPcB*sbS^=LDcl5Ut~~P1`C)D!5-W-4xHJ-2c%d|`K^Z#4`501 zlw28`|4Odj^WIR%B?b-@x)PB7Uh5E&sAI>FZG$6ajAC86Ec)K8d*QIko1nW zg?Ss}rxWsw8C1=L`&FZA4H)WSn{VIS9rBu(!b15I0G5YD$^ZphLCYJv;QGE z`N8h{$5H}IeRLnYO?R{%V|3!J?!;(`HVFag_?!8EFxiiP_26*=U*9T(m)f}6tgo4y zIG1WW$JETB<7<{Y<{9qE5txvM-!0U0JxfMRlE5VJXJv zI?|u4qsgt-dy0M8O}5+Y2J6l352VS^U&-#<4GC#>3Z-UQ^3@1?#J8MUrHh)e6sx%* z`5zV80;2avyeYza1Kr}BLX2!P6!=0C_)Lz-NOPCPv+P1l%^Ly=m+Rrzqy7`j|9CR? zQSrn^wea5D=)~4T*|Ce^v|(Y{Hnxhah3{81HMQadh3V4{#ByP+rnMe%otny|br!vo z@_XAY?*7FX6cVr4RK!bMXG@KW?pG`NSFd;TW)J5|p>rB}2c>fRa9pB{p_-bTngD%Y z7FXIqfO>amyX{&xCogH8oQJCF42bsY@IUDSWf=()LA*vEMmMIy^5vo+9RuiJ#{#x4 z+918apVv*tA~;_T_eizQ5;c>KKl8WR}p6a~qdzlA3@^LnO7Mph)*JT;r4kaHPr;%&a*i(D~OJV6Hx7*{#=>sfD8$p&Gtf~Zf{YxKfaVoWTRCq-AYhma!#^)0!tC`wPw84;f zQTvxiKe=J{c5^kSkK^f-$0=}~n9G^*$-+=B{yFTIDLgcYCBU|Z8T$Em+DcajeJe{l zv9?0H8tY4-WIYazuV`A}Io(Y_DDl7QnJ<61g|BBM86%9N`G_tOOytkRpwD)q2m_31~Q=#z*yMQ$ISfkkNaix?icv|rJ?!qdQb&`2E4 zL=+$yR-;#kybVL)¬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 N-BZ7tciZ^&{{Uk + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/bpm/FormCommonModal.vue b/ant-design-jeecg-vue/src/components/bpm/FormCommonModal.vue new file mode 100644 index 00000000..91bb19ee --- /dev/null +++ b/ant-design-jeecg-vue/src/components/bpm/FormCommonModal.vue @@ -0,0 +1,72 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/bpm/ProcNodeInfoModel.vue b/ant-design-jeecg-vue/src/components/bpm/ProcNodeInfoModel.vue new file mode 100644 index 00000000..2094ac7b --- /dev/null +++ b/ant-design-jeecg-vue/src/components/bpm/ProcNodeInfoModel.vue @@ -0,0 +1,120 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/bpm/ProcessInstPicModal.vue b/ant-design-jeecg-vue/src/components/bpm/ProcessInstPicModal.vue new file mode 100644 index 00000000..3cada199 --- /dev/null +++ b/ant-design-jeecg-vue/src/components/bpm/ProcessInstPicModal.vue @@ -0,0 +1,136 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/chart/AreaChartTy.vue b/ant-design-jeecg-vue/src/components/chart/AreaChartTy.vue index ea1b42f5..1d813eb2 100644 --- a/ant-design-jeecg-vue/src/components/chart/AreaChartTy.vue +++ b/ant-design-jeecg-vue/src/components/chart/AreaChartTy.vue @@ -1,12 +1,12 @@ + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/jeecgbiz/SearchUserByDepModal.vue b/ant-design-jeecg-vue/src/components/jeecgbiz/SearchUserByDepModal.vue deleted file mode 100644 index 20c9768b..00000000 --- a/ant-design-jeecg-vue/src/components/jeecgbiz/SearchUserByDepModal.vue +++ /dev/null @@ -1,308 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectDepartModal.vue b/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectDepartModal.vue new file mode 100644 index 00000000..71f6759b --- /dev/null +++ b/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectDepartModal.vue @@ -0,0 +1,216 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectMultiUserModal.vue b/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectMultiUserModal.vue new file mode 100644 index 00000000..e55fd714 --- /dev/null +++ b/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectMultiUserModal.vue @@ -0,0 +1,274 @@ + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/jeecgbiz/JSearchUserByDepModal.vue b/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue similarity index 94% rename from ant-design-jeecg-vue/src/components/jeecgbiz/JSearchUserByDepModal.vue rename to ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue index f4982b72..afd8a775 100644 --- a/ant-design-jeecg-vue/src/components/jeecgbiz/JSearchUserByDepModal.vue +++ b/ant-design-jeecg-vue/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue @@ -1,5 +1,4 @@ + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/layouts/TabLayout.vue b/ant-design-jeecg-vue/src/components/layouts/TabLayout.vue index 1ef77ab0..0fa07553 100644 --- a/ant-design-jeecg-vue/src/components/layouts/TabLayout.vue +++ b/ant-design-jeecg-vue/src/components/layouts/TabLayout.vue @@ -1,5 +1,5 @@ @@ -53,10 +54,92 @@ required: true } }, + computed:{ + smenuStyle() { + let style = { 'padding': '0' } + if (this.fixSiderbar) { + style['height'] = 'calc(100% - 59px)' + style['overflow'] = 'auto' + style['overflow-x'] = 'hidden' + } + return style + } + }, methods: { onSelect (obj) { this.$emit('menuSelect', obj) } } } - \ No newline at end of file + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/menu/index.js b/ant-design-jeecg-vue/src/components/menu/index.js index 59b0cf60..ecf7095c 100644 --- a/ant-design-jeecg-vue/src/components/menu/index.js +++ b/ant-design-jeecg-vue/src/components/menu/index.js @@ -34,149 +34,155 @@ export default { } }, computed: { - rootSubmenuKeys: (vm) => { - let keys = [] + rootSubmenuKeys: vm => { + const keys = [] vm.menu.forEach(item => keys.push(item.path)) return keys } }, - created () { + mounted () { this.updateMenu() }, watch: { collapsed (val) { if (val) { - this.cachedOpenKeys = this.openKeys + this.cachedOpenKeys = this.openKeys.concat() this.openKeys = [] } else { this.openKeys = this.cachedOpenKeys } }, - '$route': function () { + $route: function () { this.updateMenu() } }, methods: { - renderIcon: function (h, icon) { - return icon === 'none' || icon === undefined ? null - : h(Icon, { props: { type: icon !== undefined ? icon : '' } }) - }, - renderMenuItem: function (h, menu, pIndex, index) { - // 判断是否带参数路由URL,是的话,采用path跳转方式 - if(menu.route && menu.route === '0'){ - return h(Item, { key: menu.path ? menu.path : 'item_' + pIndex + '_' + index }, - [ - h( - 'router-link', - //--update-begin----author:scott---date:20190320------for:改造菜单路由跳转规则,原来是跳转到组件,现在改造成跳转URL(为了支持参数URL菜单)------ - { attrs: { to: { path: menu.path } } }, - //--update-end----author:scott---date:20190320------for:改造菜单路由跳转规则,原来是跳转到组件,现在改造成跳转URL(为了支持参数URL菜单)------ - [ - this.renderIcon(h, menu.meta.icon), - h('span', [ menu.meta.title ]) - ] - ) - ] - ) - }else{ - // 默认采用组件跳转方式 - return h(Item, { key: menu.path ? menu.path : 'item_' + pIndex + '_' + index }, - [ - h( - 'router-link', - { attrs: { to: { name: menu.name } } }, - [ - this.renderIcon(h, menu.meta.icon), - h('span', [ menu.meta.title ]) - ] - ) - ] - ) - } - - }, - renderSubMenu: function (h, menu, pIndex, index) { - const this2_ = this; - let subItem = [ h('span', - { slot: 'title' }, - [ - this.renderIcon(h, menu.meta.icon), - h('span', [ menu.meta.title ]) - ] - ) ] - let itemArr = [] - let pIndex_ = pIndex + '_' + index - if (!menu.alwaysShow) { - menu.children.forEach(function (item, i) { - itemArr.push(this2_.renderItem(h, item, pIndex_, i)) - }) - } - return h( - SubMenu, - { key: menu.path ? menu.path : 'submenu_' + pIndex + '_' + index }, - subItem.concat(itemArr) - ) - }, - renderItem: function (h, menu, pIndex, index) { - if (!menu.hidden) { - return menu.children && !menu.alwaysShow ? this.renderSubMenu(h, menu, pIndex, index) : this.renderMenuItem(h, menu, pIndex, index) - } - }, - renderMenu: function (h, menuTree) { - const this2_ = this - let menuArr = [] - menuTree.forEach(function (menu, i) { - if (!menu.hidden) { - menuArr.push(this2_.renderItem(h, menu, '0', i)) - } - }) - return menuArr - }, + // select menu item onOpenChange (openKeys) { - const latestOpenKey = openKeys.find(key => this.openKeys.indexOf(key) === -1) - if (this.rootSubmenuKeys.indexOf(latestOpenKey) === -1) { + + // 在水平模式下时执行,并且不再执行后续 + if (this.mode === 'horizontal') { + this.openKeys = openKeys + return + } + // 非水平模式时 + const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) + if (!this.rootSubmenuKeys.includes(latestOpenKey)) { this.openKeys = openKeys } else { - this.openKeys = latestOpenKey ? [ latestOpenKey ] : [] + this.openKeys = latestOpenKey ? [latestOpenKey] : [] } }, updateMenu () { - let routes = this.$route.matched.concat() - if (routes.length >= 4 && this.$route.meta.hidden) { + const routes = this.$route.matched.concat() + const { hidden } = this.$route.meta + if (routes.length >= 3 && hidden) { routes.pop() - this.selectedKeys = [ routes[2].path ] + this.selectedKeys = [routes[routes.length - 1].path] } else { - this.selectedKeys = [ routes.pop().path ] + this.selectedKeys = [routes.pop().path] } - - let openKeys = [] + const openKeys = [] if (this.mode === 'inline') { - routes.forEach((item) => { + routes.forEach(item => { openKeys.push(item.path) }) } + //update-begin-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 + if(!this.selectedKeys || this.selectedKeys[0].indexOf(":")<0){ + this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + } + //update-end-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 + }, - this.collapsed ? this.cachedOpenKeys = openKeys : this.openKeys = openKeys + // render + renderItem (menu) { + if (!menu.hidden) { + return menu.children && !menu.hideChildrenInMenu ? this.renderSubMenu(menu) : this.renderMenuItem(menu) + } + return null + }, + renderMenuItem (menu) { + const target = menu.meta.target || null + const tag = target && 'a' || 'router-link' + let props = { to: { name: menu.name } } + if(menu.route && menu.route === '0'){ + props = { to: { path: menu.path } } + } + + const attrs = { href: menu.path, target: menu.meta.target } + + if (menu.children && menu.hideChildrenInMenu) { + // 把有子菜单的 并且 父菜单是要隐藏子菜单的 + // 都给子菜单增加一个 hidden 属性 + // 用来给刷新页面时, selectedKeys 做控制用 + menu.children.forEach(item => { + item.meta = Object.assign(item.meta, { hidden: true }) + }) + } + + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + + ) + }, + renderSubMenu (menu) { + const itemArr = [] + if (!menu.hideChildrenInMenu) { + menu.children.forEach(item => itemArr.push(this.renderItem(item))) + } + return ( + + + {this.renderIcon(menu.meta.icon)} + {menu.meta.title} + + {itemArr} + + ) + }, + renderIcon (icon) { + if (icon === 'none' || icon === undefined) { + return null + } + const props = {} + typeof (icon) === 'object' ? props.component = icon : props.type = icon + return ( + + ) } }, - render (h) { - return h( - Menu, - { - props: { - theme: this.$props.theme, - mode: this.$props.mode, - openKeys: this.openKeys, - selectedKeys: this.selectedKeys - }, - on: { - openChange: this.onOpenChange, - select: (obj) => { - this.selectedKeys = obj.selectedKeys - this.$emit('select', obj) - } - } - }, this.renderMenu(h, this.menu) + + render () { + const { mode, theme, menu } = this + const props = { + mode: mode, + theme: theme, + openKeys: this.openKeys + } + const on = { + select: obj => { + this.selectedKeys = obj.selectedKeys + this.$emit('select', obj) + }, + openChange: this.onOpenChange + } + + const menuTree = menu.map(item => { + if (item.hidden) { + return null + } + return this.renderItem(item) + }) + // {...{ props, on: on }} + return ( +

+ {menuTree} + ) } -} \ No newline at end of file +} diff --git a/ant-design-jeecg-vue/src/components/page/GlobalHeader.vue b/ant-design-jeecg-vue/src/components/page/GlobalHeader.vue index 926db82e..18c50d84 100644 --- a/ant-design-jeecg-vue/src/components/page/GlobalHeader.vue +++ b/ant-design-jeecg-vue/src/components/page/GlobalHeader.vue @@ -27,13 +27,11 @@
-
-
- -
+
+
{ - count++ - let scrollWidth = document.getElementById('top-nav-scroll-width') - if (scrollWidth == null) { - clearInterval(timer) - return - } - let menu = scrollWidth.getElementsByClassName('ant-menu')[0] - if (menu) { - let widthCount = 0 - let menuItems = menu.getElementsByTagName('li') - for (let item of menuItems) { - if (item.className.indexOf('ant-menu-overflowed-submenu') === -1) { - widthCount += item.offsetWidth - } - } - // 由于首次从侧边菜单模式下切换到顶部菜单模式下没有buildTopMenuStyle,所以这里需要build一下 - if (this.topMenuStyle.scrollWidth['width'] === '10000px') { - // 防止递归调用 - this.$nextTick(() => { - this.buildTopMenuStyle() - }) - } - this.topMenuStyle.scrollWidth['width'] = `${widthCount + 10}px` - // 将滚动条位置滚动到当前选中的菜单处 - if (count === 1) { - topNavScrollToSelectItem(document) - } - } - // 校准数据三次再关闭定时器 - if (count === 3) { - clearInterval(timer) - } - }, 100) } - //update-end--author:sunjianlei---date:20190408------for: 顶部导航栏增加横向滚动条----- + //update-begin--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮----- } } @@ -268,52 +215,4 @@ /* update_end author:scott date:20190220 for: 缩小首页布局顶部的高度*/ - /* update_begin author:sunjianlei date:20190408 for: 修改顶部导航栏滚动条的样式 */ - #top-nav-scroll-view { - $scrollBarSize: 8px; - - /* 定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ - &::-webkit-scrollbar { - width: $scrollBarSize; - height: $scrollBarSize; - background-color: transparent; - } - - /* 定义滚动条轨道 */ - &::-webkit-scrollbar-track { - background-color: transparent; - } - - /* 定义滑块 */ - &::-webkit-scrollbar-thumb { - border-radius: $scrollBarSize; - background-color: #eee; - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); - - &:hover { - background-color: #dddddd; - } - - &:active { - background-color: #bbbbbb; - } - } - } - - /** 暗色系滚动条样式 */ - .dark #top-nav-scroll-view { - &::-webkit-scrollbar-thumb { - background-color: #666666; - - &:hover { - background-color: #808080; - } - - &:active { - background-color: #999999; - } - } - } - - /* update_end author:sunjianlei date:20190408 for: 修改顶部导航栏滚动条的样式 */ \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/page/GlobalLayout.vue b/ant-design-jeecg-vue/src/components/page/GlobalLayout.vue index 05d33675..7f8530e5 100644 --- a/ant-design-jeecg-vue/src/components/page/GlobalLayout.vue +++ b/ant-design-jeecg-vue/src/components/page/GlobalLayout.vue @@ -24,6 +24,7 @@ v-else mode="inline" :menus="menus" + @menuSelect="myMenuSelect" :theme="navTheme" :collapsed="collapsed" :collapsible="true"> @@ -98,6 +99,7 @@ data() { return { collapsed: false, + activeMenu:{}, menus: [] } }, @@ -136,9 +138,26 @@ if (!this.isDesktop()) { this.collapsed = false } + }, + //update-begin-author:taoyan date:20190430 for:动态路由title显示配置的菜单title而不是其对应路由的title + myMenuSelect(value){ + //此处触发动态路由被点击事件 + this.findMenuBykey(this.menus,value.key) + this.$emit("dynamicRouterShow",value.key,this.activeMenu.meta.title) + }, + findMenuBykey(menus,key){ + for(let i of menus){ + if(i.path==key){ + this.activeMenu = {...i} + }else if(i.children && i.children.length>0){ + this.findMenuBykey(i.children,key) + } + } } + //update-end-author:taoyan date:20190430 for:动态路由title显示配置的菜单title而不是其对应路由的title } } + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/components/tools/UserMenu.vue b/ant-design-jeecg-vue/src/components/tools/UserMenu.vue index 92fb7f26..34a48e96 100644 --- a/ant-design-jeecg-vue/src/components/tools/UserMenu.vue +++ b/ant-design-jeecg-vue/src/components/tools/UserMenu.vue @@ -1,7 +1,9 @@ + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/ImgDragSort.vue b/ant-design-jeecg-vue/src/views/jeecg/ImgDragSort.vue new file mode 100644 index 00000000..e6aa5f8b --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/ImgDragSort.vue @@ -0,0 +1,75 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/ImgTurnPage.vue b/ant-design-jeecg-vue/src/views/jeecg/ImgTurnPage.vue new file mode 100644 index 00000000..460bf94d --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/ImgTurnPage.vue @@ -0,0 +1,147 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/JSearchUserByDepList.vue b/ant-design-jeecg-vue/src/views/jeecg/JSearchUserByDepList.vue deleted file mode 100644 index 250ab33c..00000000 --- a/ant-design-jeecg-vue/src/views/jeecg/JSearchUserByDepList.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/JeecgDemoList.vue b/ant-design-jeecg-vue/src/views/jeecg/JeecgDemoList.vue index 02c2135a..7fe882ae 100644 --- a/ant-design-jeecg-vue/src/views/jeecg/JeecgDemoList.vue +++ b/ant-design-jeecg-vue/src/views/jeecg/JeecgDemoList.vue @@ -61,8 +61,8 @@ 新增 创建单据 一对多 - 导出 - + 导出 + 导入 @@ -231,28 +231,12 @@ list: "/test/jeecgDemo/list", delete: "/test/jeecgDemo/delete", deleteBatch: "/test/jeecgDemo/deleteBatch", + exportXlsUrl: "/test/jeecgDemo/exportXls" }, fieldList:superQueryFieldList } }, methods: { - exportXls(){ - let paramsStr = encodeURI(JSON.stringify(this.getQueryParams())); - console.log('paramsStr: ' + paramsStr) - let url = `${window._CONFIG['domianURL']}/test/jeecgDemo/exportXls?paramsStr=${paramsStr}`; - window.location.href = url; - }, - handleImportExcel(info){ - if (info.file.status !== 'uploading') { - console.log(info.file, info.fileList); - } - if (info.file.status === 'done') { - this.$message.success(`${info.file.name} 文件上传成功`); - this.loadData(); - } else if (info.file.status === 'error') { - this.$message.error(`${info.file.name} 文件上传失败.`); - } - }, initDictConfig() { console.log("--我才是真的方法!--") //初始化字典 - 性别 diff --git a/ant-design-jeecg-vue/src/views/jeecg/JeecgEditableTableExample.vue b/ant-design-jeecg-vue/src/views/jeecg/JeecgEditableTableExample.vue index 8bb1a2e6..979116af 100644 --- a/ant-design-jeecg-vue/src/views/jeecg/JeecgEditableTableExample.vue +++ b/ant-design-jeecg-vue/src/views/jeecg/JeecgEditableTableExample.vue @@ -23,18 +23,23 @@ :rowSelection="true" :actionButton="true" style="margin-top: 8px;" - @selectRowChange="handleSelectRowChange"/> + @selectRowChange="handleSelectRowChange"> + + + + diff --git a/ant-design-jeecg-vue/src/views/jeecg/JeecgPdfView.vue b/ant-design-jeecg-vue/src/views/jeecg/JeecgPdfView.vue new file mode 100644 index 00000000..20669155 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/JeecgPdfView.vue @@ -0,0 +1,122 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/JeecgTreeTable.vue b/ant-design-jeecg-vue/src/views/jeecg/JeecgTreeTable.vue new file mode 100644 index 00000000..bd717d15 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/JeecgTreeTable.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/ant-design-jeecg-vue/src/views/jeecg/JoaDemoList.vue b/ant-design-jeecg-vue/src/views/jeecg/JoaDemoList.vue new file mode 100644 index 00000000..b7cc6803 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/JoaDemoList.vue @@ -0,0 +1,250 @@ + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/RowspanTable.vue b/ant-design-jeecg-vue/src/views/jeecg/RowspanTable.vue new file mode 100644 index 00000000..3b27b945 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/RowspanTable.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/ant-design-jeecg-vue/src/views/jeecg/SearchUserByDepList.vue b/ant-design-jeecg-vue/src/views/jeecg/SearchUserByDepList.vue deleted file mode 100644 index 4c4ab63f..00000000 --- a/ant-design-jeecg-vue/src/views/jeecg/SearchUserByDepList.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/SelectDemo.vue b/ant-design-jeecg-vue/src/views/jeecg/SelectDemo.vue index c6aafec2..c888d5ab 100644 --- a/ant-design-jeecg-vue/src/views/jeecg/SelectDemo.vue +++ b/ant-design-jeecg-vue/src/views/jeecg/SelectDemo.vue @@ -2,7 +2,7 @@
- + @@ -10,7 +10,7 @@ @@ -41,63 +41,325 @@ + + + + + + + + + + + + + + + + + 选中的部门ID(v-decorator):{{ getDepartIdValue() }} + + + + + + + + + 选中的部门ID(v-model):{{ departId }} + + + + + + + + + + 选中的用户(v-model):{{ userRealName }} + + + + + + + + + + 选中的用户(v-model):{{ multiUser }} + + + + + + + + + + 多选组合(v-model):{{ jcheckbox.values }} + + + + + + + + + + 代码输入框(v-model):{{ jcodedditor.value }} + + + + + + + + + + 日期选择框(v-model):{{ jdate.value }} + + + + + + + + + + 富文本编辑器(v-model):{{ jeditor.value }} + + + + + + + + + + 过长剪切:{{ jellipsis.value }} + + + + + + + + + + 验证码:{{ jgraphicCode.value }} + + + + + + + + + + 滑块验证码验证通过:{{ jslider.value }} + + + + + + + + + + 多选下拉框(v-model):{{ jselectMultiple.value }} + + + + + + + + 最大化弹窗 + + + + + + + + + + + + +
- + - +
diff --git a/ant-design-jeecg-vue/src/views/jeecg/SplitPanel.vue b/ant-design-jeecg-vue/src/views/jeecg/SplitPanel.vue new file mode 100644 index 00000000..8d128fba --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/SplitPanel.vue @@ -0,0 +1,32 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/TableExpandeSub.vue b/ant-design-jeecg-vue/src/views/jeecg/TableExpandeSub.vue index 249fa6dd..a7ba3b01 100644 --- a/ant-design-jeecg-vue/src/views/jeecg/TableExpandeSub.vue +++ b/ant-design-jeecg-vue/src/views/jeecg/TableExpandeSub.vue @@ -237,10 +237,6 @@ margin-bottom: 18px; } - .ant-layout-content { - margin: 12px 16px 0 !important; - } - .ant-table-tbody .ant-table-row td { padding-top: 15px; padding-bottom: 15px; diff --git a/ant-design-jeecg-vue/src/views/jeecg/modules/JoaDemoForm.vue b/ant-design-jeecg-vue/src/views/jeecg/modules/JoaDemoForm.vue new file mode 100644 index 00000000..f817c4b2 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/modules/JoaDemoForm.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/modules/PdfPreviewModal.vue b/ant-design-jeecg-vue/src/views/jeecg/modules/PdfPreviewModal.vue new file mode 100644 index 00000000..1e232e40 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/modules/PdfPreviewModal.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelA.vue b/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelA.vue new file mode 100644 index 00000000..96b6b4b5 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelA.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelB.vue b/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelB.vue new file mode 100644 index 00000000..9008b002 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelB.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelModal.vue b/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelModal.vue new file mode 100644 index 00000000..a63702a0 --- /dev/null +++ b/ant-design-jeecg-vue/src/views/jeecg/modules/SplitPanelModal.vue @@ -0,0 +1,63 @@ + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/jeecg/report/ArchivesStatisticst.vue b/ant-design-jeecg-vue/src/views/jeecg/report/ArchivesStatisticst.vue index 326fc287..0903dc53 100644 --- a/ant-design-jeecg-vue/src/views/jeecg/report/ArchivesStatisticst.vue +++ b/ant-design-jeecg-vue/src/views/jeecg/report/ArchivesStatisticst.vue @@ -12,7 +12,7 @@ - + 重置 - + @@ -40,7 +40,7 @@ - + - + diff --git a/ant-design-jeecg-vue/src/views/jeecg/report/ViserChartDemo.vue b/ant-design-jeecg-vue/src/views/jeecg/report/ViserChartDemo.vue index dabc5320..63ee4fbd 100644 --- a/ant-design-jeecg-vue/src/views/jeecg/report/ViserChartDemo.vue +++ b/ant-design-jeecg-vue/src/views/jeecg/report/ViserChartDemo.vue @@ -63,6 +63,10 @@ + + + + @@ -82,13 +86,14 @@ import RankList from '@/components/chart/RankList' import TransferBar from '@/components/chart/TransferBar' import Trend from '@/components/chart/Trend' + import BarAndLine from '@/components/chart/BarAndLine' export default { name: 'ViserChartDemo', components: { Bar, MiniBar, BarMultid, AreaChartTy, LineChartMultid, Pie, Radar, DashChartDemo, MiniProgress, RankList, - TransferBar, Trend, Liquid, MiniArea + TransferBar, Trend, Liquid, MiniArea, BarAndLine }, data() { return { diff --git a/ant-design-jeecg-vue/src/views/modules/message/SysMessageList.vue b/ant-design-jeecg-vue/src/views/modules/message/SysMessageList.vue index f181af2d..60d65282 100644 --- a/ant-design-jeecg-vue/src/views/modules/message/SysMessageList.vue +++ b/ant-design-jeecg-vue/src/views/modules/message/SysMessageList.vue @@ -6,13 +6,13 @@ - - + + - - + + diff --git a/ant-design-jeecg-vue/src/views/system/modules/RoleDataruleModal.vue b/ant-design-jeecg-vue/src/views/system/modules/RoleDataruleModal.vue index 88975480..bb5b75b1 100644 --- a/ant-design-jeecg-vue/src/views/system/modules/RoleDataruleModal.vue +++ b/ant-design-jeecg-vue/src/views/system/modules/RoleDataruleModal.vue @@ -1,7 +1,7 @@ @@ -92,8 +98,12 @@ import { httpAction } from '@/api/manage' import pick from 'lodash.pick' import moment from "moment" + import { getAction } from '@/api/manage' + import JDate from '@/components/jeecg/JDate' + import SelectUserListModal from "./SelectUserListModal"; export default { + components: {SelectUserListModal}, name: "SysAnnouncementModal", data () { return { @@ -114,14 +124,19 @@ form: this.$form.createForm(this), validatorRules:{ title:{rules: [{ required: true, message: '请输入标题!' }]}, + msgCategory:{rules: [{ required: true, message: '请选择消息类型!' }]}, + msgType:{rules: [{ required: true, message: '请选择通告对象类型!' }]}, }, url: { + queryByIds: "/sys/user/queryByIds", add: "/sys/annountCement/add", edit: "/sys/annountCement/edit", }, userType:false, - visible: false, - confirmLoading: false, + userIds:[], + selectedUser:[], + disabled:false, + msgContent:"", } }, created () { @@ -132,18 +147,38 @@ }, edit (record) { this.form.resetFields(); - this.model = Object.assign({}, record); + this.disable = false; this.visible = true; + this.getUser(record); + }, + getUser(record){ + this.model = Object.assign({}, record); + //this.model.msgContent.replace("
","\n"); + console.log(this.model.msgContent); + // 指定用户 + if(record&&record.msgType === "USER"){ + this.userType = true; + this.userIds = record.userIds; + getAction(this.url.queryByIds,{userIds:this.userIds}).then((res)=>{ + if(res.success){ + for(var i=0;i { - this.form.setFieldsValue(pick(this.model,'titile','msgContent','priority','msgType')) - //时间格式化 + this.form.setFieldsValue(pick(this.model,'titile','msgContent','sender','priority','msgCategory','msgType','sendStatus','delFlag')) this.form.setFieldsValue({startTime:this.model.startTime?moment(this.model.startTime):null}) this.form.setFieldsValue({endTime:this.model.endTime?moment(this.model.endTime):null}) + this.form.setFieldsValue({sendTime:this.model.sendTime?moment(this.model.sendTime):null}) + this.form.setFieldsValue({cancelTime:this.model.cancelTime?moment(this.model.cancelTime):null}) }); - }, close () { this.$emit('close'); + this.selectedUser = []; this.visible = false; }, handleOk () { @@ -162,6 +197,9 @@ method = 'put'; } let formData = Object.assign(this.model, values); + if(this.userType){ + formData.userIds = this.userIds; + } //时间格式化 formData.startTime = formData.startTime?formData.startTime.format('YYYY-MM-DD HH:mm:ss'):null; formData.endTime = formData.endTime?formData.endTime.format('YYYY-MM-DD HH:mm:ss'):null; @@ -185,18 +223,37 @@ }) }, handleCancel () { - this.close() + this.visible = false; + this.$emit('close'); + this.resetUser(); + }, + resetUser (){ + this.userType = false; + this.userIds = []; + this.selectedUser = []; + this.disabled = false; + this.$refs.UserListModal.edit(null,null); + }, + selectUserIds() { + this.$refs.UserListModal.add(this.selectedUser,this.userIds); }, chooseMsgType(value) { if("USER" == value) { this.userType = true; } else { this.userType = false; + this.selectedUser = []; + this.userIds = []; } }, - selectUserIds() { - console.log(1); - this.$refs.modalSelectUser.show(); + // 子modal回调 + choseUser:function(userList){ + this.selectedUser = []; + this.userIds = []; + for(var i=0;i + + + + + + + + + + + 选择用户 + + + + + + + + + + + 有效 + 无效 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ant-design-jeecg-vue/src/views/system/modules/UserModal.vue b/ant-design-jeecg-vue/src/views/system/modules/UserModal.vue index 4c9fe084..c44996a9 100644 --- a/ant-design-jeecg-vue/src/views/system/modules/UserModal.vue +++ b/ant-design-jeecg-vue/src/views/system/modules/UserModal.vue @@ -39,7 +39,7 @@ - + - + - 头像 + 头像
上传
@@ -100,7 +102,11 @@ - + + + + + @@ -123,8 +129,10 @@ // 引入搜索部门弹出框的组件 import departWindow from './DepartWindow' import { ACCESS_TOKEN } from "@/store/mutation-types" - import { getAction, httpAction } from '@/api/manage' + import { getAction, httpAction,putAction } from '@/api/manage' import {addUser,editUser,queryUserRole,queryall,checkUsername } from '@/api/api' + import { disabledAuthFilter } from "@/utils/authFilter" + export default { name: "RoleModal", components: { @@ -132,6 +140,10 @@ }, data () { return { + departDisabled: false, //是否是我的部门调用该页面 + deptId: '', + roleDisabled: false, //是否是角色维护调用该页面 + roleId: '', modalWidth:800, drawerWidth:700, modaltoggleFlag:true, @@ -170,7 +182,7 @@ phone:{rules: [{validator: this.validatePhone}]}, email:{rules: [{type: 'email', message: '请输入正确格式的电子邮箱!',}]}, roles:{} - // sex:{initialValue:((!this.model.sex)?"": (this.model.sex+""))} + // sex:{initialValue:((!this.model.sex)?"": (this.model.sex+""))} }, title:"操作", visible: false, @@ -189,12 +201,15 @@ confirmLoading: false, headers:{}, form:this.$form.createForm(this), + picUrl: "", url: { addUDepartIds:"/sys/user/addUDepartIds", // 引入为用户添加部门信息需要的url editUDepartIds:"/sys/user/editUDepartIds", // 引入为用户更新部门信息需要的url fileUpload: window._CONFIG['domianURL']+"/sys/common/upload", imgerver: window._CONFIG['domianURL']+"/sys/common/view", userWithDepart: "/sys/user/userDepartList", // 引入为指定用户查看部门信息需要的url + userId:"/sys/user/generateUserId", // 引入生成添加用户情况下的url + syncUserByUserName:"/process/extActProcess/doSyncUserByUserName",//同步用户到工作流 }, } }, @@ -209,6 +224,9 @@ } }, methods: { + disabledAuth(code){ + return disabledAuthFilter(code); + }, //窗口最大化切换 toggleScreen(){ if(this.modaltoggleFlag){ @@ -244,8 +262,9 @@ this.userId="" }, add () { + this.picUrl = ""; this.refresh() - this.edit({}); + this.edit({activitiSync:'1'}); }, edit (record) { this.resetScreenSize(); // 调用此方法,根据屏幕宽度自适应调整抽屉的宽度 @@ -255,12 +274,13 @@ that.form.resetFields(); if(record.hasOwnProperty("id")){ that.loadUserRoles(record.id); + this.picUrl = "Has no pic url yet"; } that.userId = record.id; that.visible = true; that.model = Object.assign({}, record); that.$nextTick(() => { - that.form.setFieldsValue(pick(this.model,'username','sex','realname','email','phone')) + that.form.setFieldsValue(pick(this.model,'username','sex','realname','email','phone','activitiSync')) }); // 调用查询用户对应的部门信息的方法 that.checkedDepartKeys = []; @@ -292,6 +312,13 @@ }, moment, handleSubmit () { + if(this.departDisabled===true){ + this.handleSubmitDepart(); + return + }else if(this.roleDisabled===true){ + this.handleSubmitRole() + return + } const that = this; // 触发表单验证 this.form.validateFields((err, values) => { @@ -319,6 +346,97 @@ if(res.success){ that.$message.success(res.message); that.$emit('ok'); + //同步用户到工作流 + this.handleSyncUser(this.model.username); + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + that.checkedDepartNames = []; + that.close(); + }) + + } + }) + }, + // 提交表单(我的部门调用) + handleSubmitDepart(){ + const that = this; + // 触发表单验证 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let avatar = that.model.avatar; + if (!values.birthday) { + values.birthday = ''; + } else { + values.birthday = values.birthday.format(this.dateFormat); + } + let formData = Object.assign(this.model, values); + formData.avatar = avatar; + formData.selectedroles = this.roleId; + + //生成userId + getAction(this.url.userId).then((res) => { + if (res.success) { + this.userId = res.result; + console.log("generateUserId:" + this.userId) + formData.id = that.userId; + console.log("formData.id:" + formData.id) + this.addDepartsToUser1(that, formData); // 调用根据当前用户添加部门信息的方法 + addUser(formData).then((res) => { + if (res.success) { + that.$message.success(res.message); + that.$emit('ok'); + //同步用户到工作流 + this.handleSyncUser(this.model.username); + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + that.checkedDepartNames = []; + that.close(); + }) + } + }) + } + }) + }, + //提交表单(角色维护调用) + handleSubmitRole(){ + const that = this; + // 触发表单验证 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let avatar = that.model.avatar; + if(!values.birthday){ + values.birthday = ''; + }else{ + values.birthday = values.birthday.format(this.dateFormat); + } + let formData = Object.assign(this.model, values); + formData.avatar = avatar; + formData.selectedroles = this.selectedRole.length>0?this.selectedRole.join(","):''; + if(this.roleId!=''){ + formData.selectedroles = this.roleId; + } + that.addDepartsToUser(that,formData); // 调用根据当前用户添加部门信息的方法 + let obj; + if(!this.model.id){ + formData.id = this.userId; + obj=addUser(formData); + }else{ + obj=editUser(formData); + } + obj.then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.$emit('ok'); + //同步用户到工作流 + this.handleSyncUser(this.model.username); }else{ that.$message.warning(res.message); } @@ -334,7 +452,6 @@ handleCancel () { this.close() }, - // 根据当前用户添加部门信息的方法 addDepartsToUser(that,formData){ let httpurl = ''; @@ -354,8 +471,30 @@ } }) }, + // 根据当前用户添加部门信息的方法(我的部门调用) + addDepartsToUser1: function() { + let httpurl = '' + let method = '' + httpurl += this.url.addUDepartIds + method = 'post'; + let departIdList = []; + departIdList.push(this.deptId); + httpAction(httpurl, { userId: this.userId, departIdList: departIdList }, method).then((res) => { + if (res.success) { + this.userId = '' + this.deptId = '' + this.departIdList = [] + } else { + this.$message.warning(res.message) + } + }) + }, validateToNextPassword (rule, value, callback) { const form = this.form; + const confirmpassword=form.getFieldValue('confirmpassword'); + if (value && confirmpassword && value !== confirmpassword) { + callback('两次输入的密码不一样!'); + } if (value && this.confirmDirty) { form.validateFields(['confirm'], { force: true }) } @@ -410,6 +549,7 @@ //TODO 验证文件大小 }, handleChange (info) { + this.picUrl = ""; if (info.file.status === 'uploading') { this.uploadLoading = true return @@ -420,6 +560,7 @@ console.log(response); if(response.success){ this.model.avatar = response.message; + this.picUrl = "Has no pic url yet"; }else{ this.$message.warning(response.message); } @@ -455,6 +596,18 @@ this.drawerWidth = 700; } }, + handleSyncUser(userName) { + try{ + var that = this; + putAction(that.url.syncUserByUserName, {userName:userName}).then((res) => { + //if (res.success) { + //that.$message.success(res.message); + // } else { + //that.$message.warning(res.message); + //} + }) + }catch (e){} + }, } } diff --git a/ant-design-jeecg-vue/src/views/system/modules/UserRoleModal.vue b/ant-design-jeecg-vue/src/views/system/modules/UserRoleModal.vue index 8dadf4e9..3ec6ae2d 100644 --- a/ant-design-jeecg-vue/src/views/system/modules/UserRoleModal.vue +++ b/ant-design-jeecg-vue/src/views/system/modules/UserRoleModal.vue @@ -20,8 +20,8 @@ @select="onTreeNodeSelect" :expandedKeys="expandedKeysss" :checkStrictly="checkStrictly"> - - {{ slotTitle }} + + {{ slotTitle }} @@ -132,8 +132,9 @@ handleSubmit(){ let that = this; let params = { + roleId:that.roleId, permissionIds:that.checkedKeys.join(","), - roleId:that.roleId + lastpermissionIds:that.defaultCheckedKeys.join(","), }; that.loading = true; console.log("请求参数:",params); diff --git a/ant-design-jeecg-vue/src/views/user/Login.vue b/ant-design-jeecg-vue/src/views/user/Login.vue index 3a36a5d3..c2664860 100644 --- a/ant-design-jeecg-vue/src/views/user/Login.vue +++ b/ant-design-jeecg-vue/src/views/user/Login.vue @@ -1,43 +1,73 @@