gitextract__5f6saff/ ├── .gitattributes ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── LICENSE ├── README-AI.md ├── README.en-US.md ├── README.md ├── check_jeecgenv.py ├── docker-compose-cloud.yml ├── docker-compose.yml ├── jeecg-boot/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── db/ │ │ ├── Dockerfile │ │ ├── jeecgboot-mysql-5.7.sql │ │ ├── tables_nacos.sql │ │ ├── tables_xxl_job.sql │ │ ├── 其他数据库脚本/ │ │ │ └── oracle11g dmp说明.txt │ │ └── 版本升级说明.md │ ├── docker-compose.yml │ ├── jeecg-boot-base-core/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── jeecg/ │ │ │ │ ├── common/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ ├── CommonAPI.java │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ ├── AiragFlowDTO.java │ │ │ │ │ │ │ ├── ApprovalCommentDTO.java │ │ │ │ │ │ │ ├── DataLogDTO.java │ │ │ │ │ │ │ ├── FileDownDTO.java │ │ │ │ │ │ │ ├── FileUploadDTO.java │ │ │ │ │ │ │ ├── LogDTO.java │ │ │ │ │ │ │ ├── OnlineAuthDTO.java │ │ │ │ │ │ │ ├── PushMessageDTO.java │ │ │ │ │ │ │ └── message/ │ │ │ │ │ │ │ ├── BusMessageDTO.java │ │ │ │ │ │ │ ├── BusTemplateMessageDTO.java │ │ │ │ │ │ │ ├── MessageDTO.java │ │ │ │ │ │ │ ├── TemplateDTO.java │ │ │ │ │ │ │ └── TemplateMessageDTO.java │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ └── Result.java │ │ │ │ │ ├── aspect/ │ │ │ │ │ │ ├── AutoLogAspect.java │ │ │ │ │ │ ├── DictAspect.java │ │ │ │ │ │ ├── PermissionDataAspect.java │ │ │ │ │ │ ├── UrlMatchEnum.java │ │ │ │ │ │ └── annotation/ │ │ │ │ │ │ ├── AutoDict.java │ │ │ │ │ │ ├── AutoLog.java │ │ │ │ │ │ ├── Dict.java │ │ │ │ │ │ ├── DynamicTable.java │ │ │ │ │ │ ├── OnlineAuth.java │ │ │ │ │ │ └── PermissionData.java │ │ │ │ │ ├── constant/ │ │ │ │ │ │ ├── CommonConstant.java │ │ │ │ │ │ ├── CommonSendStatus.java │ │ │ │ │ │ ├── DataBaseConstant.java │ │ │ │ │ │ ├── DynamicTableConstant.java │ │ │ │ │ │ ├── FillRuleConstant.java │ │ │ │ │ │ ├── PasswordConstant.java │ │ │ │ │ │ ├── ProvinceCityArea.java │ │ │ │ │ │ ├── ServiceNameConstants.java │ │ │ │ │ │ ├── SymbolConstant.java │ │ │ │ │ │ ├── TenantConstant.java │ │ │ │ │ │ ├── VxeSocketConst.java │ │ │ │ │ │ ├── WebsocketConst.java │ │ │ │ │ │ └── enums/ │ │ │ │ │ │ ├── CgformEnum.java │ │ │ │ │ │ ├── ClientTerminalTypeEnum.java │ │ │ │ │ │ ├── DateRangeEnum.java │ │ │ │ │ │ ├── DepartCategoryEnum.java │ │ │ │ │ │ ├── DySmsEnum.java │ │ │ │ │ │ ├── EmailTemplateEnum.java │ │ │ │ │ │ ├── FileTypeEnum.java │ │ │ │ │ │ ├── MessageTypeEnum.java │ │ │ │ │ │ ├── ModuleType.java │ │ │ │ │ │ ├── NoticeTypeEnum.java │ │ │ │ │ │ ├── OperateTypeEnum.java │ │ │ │ │ │ ├── PositionLevelEnum.java │ │ │ │ │ │ ├── RoleIndexConfigEnum.java │ │ │ │ │ │ ├── SysAnnmentTypeEnum.java │ │ │ │ │ │ ├── UniPushTypeEnum.java │ │ │ │ │ │ └── Vue3MessageHrefEnum.java │ │ │ │ │ ├── desensitization/ │ │ │ │ │ │ ├── SensitiveSerialize.java │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ ├── Sensitive.java │ │ │ │ │ │ │ ├── SensitiveDecode.java │ │ │ │ │ │ │ ├── SensitiveEncode.java │ │ │ │ │ │ │ └── SensitiveField.java │ │ │ │ │ │ ├── aspect/ │ │ │ │ │ │ │ └── SensitiveDataAspect.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ └── SensitiveEnum.java │ │ │ │ │ │ └── util/ │ │ │ │ │ │ └── SensitiveInfoUtil.java │ │ │ │ │ ├── es/ │ │ │ │ │ │ ├── JeecgElasticsearchTemplate.java │ │ │ │ │ │ └── QueryStringBuilder.java │ │ │ │ │ ├── exception/ │ │ │ │ │ │ ├── JeecgBoot401Exception.java │ │ │ │ │ │ ├── JeecgBootAssertException.java │ │ │ │ │ │ ├── JeecgBootBizTipException.java │ │ │ │ │ │ ├── JeecgBootException.java │ │ │ │ │ │ ├── JeecgBootExceptionHandler.java │ │ │ │ │ │ └── JeecgSqlInjectionException.java │ │ │ │ │ ├── handler/ │ │ │ │ │ │ └── IFillRuleHandler.java │ │ │ │ │ ├── system/ │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ └── EnumDict.java │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ │ └── JeecgController.java │ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ │ └── JeecgEntity.java │ │ │ │ │ │ │ └── service/ │ │ │ │ │ │ │ ├── JeecgService.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── JeecgServiceImpl.java │ │ │ │ │ │ ├── enhance/ │ │ │ │ │ │ │ └── UserFilterEnhance.java │ │ │ │ │ │ ├── query/ │ │ │ │ │ │ │ ├── MatchTypeEnum.java │ │ │ │ │ │ │ ├── QueryCondition.java │ │ │ │ │ │ │ ├── QueryGenerator.java │ │ │ │ │ │ │ └── QueryRuleEnum.java │ │ │ │ │ │ ├── util/ │ │ │ │ │ │ │ ├── JeecgDataAutorUtils.java │ │ │ │ │ │ │ ├── JwtUtil.java │ │ │ │ │ │ │ ├── ResourceUtil.java │ │ │ │ │ │ │ └── SqlConcatUtil.java │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ ├── ComboModel.java │ │ │ │ │ │ ├── DictModel.java │ │ │ │ │ │ ├── DictModelMany.java │ │ │ │ │ │ ├── DictQuery.java │ │ │ │ │ │ ├── DynamicDataSourceModel.java │ │ │ │ │ │ ├── LoginUser.java │ │ │ │ │ │ ├── SelectTreeModel.java │ │ │ │ │ │ ├── SysCategoryModel.java │ │ │ │ │ │ ├── SysDepartModel.java │ │ │ │ │ │ ├── SysFilesModel.java │ │ │ │ │ │ ├── SysPermissionDataRuleModel.java │ │ │ │ │ │ ├── SysUserCacheInfo.java │ │ │ │ │ │ └── UserAccountInfo.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── AssertUtils.java │ │ │ │ │ ├── BrowserType.java │ │ │ │ │ ├── BrowserUtils.java │ │ │ │ │ ├── CommonUtils.java │ │ │ │ │ ├── DateRangeUtils.java │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ ├── DySmsHelper.java │ │ │ │ │ ├── DySmsLimit.java │ │ │ │ │ ├── FileDownloadUtils.java │ │ │ │ │ ├── FillRuleUtil.java │ │ │ │ │ ├── HTMLUtils.java │ │ │ │ │ ├── ImportExcelUtil.java │ │ │ │ │ ├── IpUtils.java │ │ │ │ │ ├── Md5Util.java │ │ │ │ │ ├── MinioUtil.java │ │ │ │ │ ├── MyClassLoader.java │ │ │ │ │ ├── MyCommonsMultipartFile.java │ │ │ │ │ ├── PasswordUtil.java │ │ │ │ │ ├── PmsUtil.java │ │ │ │ │ ├── ReflectHelper.java │ │ │ │ │ ├── RestDesformUtil.java │ │ │ │ │ ├── RestUtil.java │ │ │ │ │ ├── ShiroThreadPoolExecutor.java │ │ │ │ │ ├── SpringContextUtils.java │ │ │ │ │ ├── SqlInjectionUtil.java │ │ │ │ │ ├── TencentSms.java │ │ │ │ │ ├── TokenUtils.java │ │ │ │ │ ├── UUIDGenerator.java │ │ │ │ │ ├── YouBianCodeUtil.java │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ └── db/ │ │ │ │ │ │ ├── DataSourceCachePool.java │ │ │ │ │ │ ├── DbTypeUtils.java │ │ │ │ │ │ ├── DynamicDBUtil.java │ │ │ │ │ │ └── FreemarkerParseFactory.java │ │ │ │ │ ├── encryption/ │ │ │ │ │ │ ├── AesEncryptUtil.java │ │ │ │ │ │ └── EncryptedString.java │ │ │ │ │ ├── filter/ │ │ │ │ │ │ ├── SsrfFileTypeFilter.java │ │ │ │ │ │ └── StrAttackFilter.java │ │ │ │ │ ├── oConvertUtils.java │ │ │ │ │ ├── oss/ │ │ │ │ │ │ └── OssBootUtil.java │ │ │ │ │ ├── security/ │ │ │ │ │ │ ├── AbstractQueryBlackListHandler.java │ │ │ │ │ │ ├── JdbcSecurityUtil.java │ │ │ │ │ │ ├── SecurityTools.java │ │ │ │ │ │ └── entity/ │ │ │ │ │ │ ├── MyKeyPair.java │ │ │ │ │ │ ├── SecurityReq.java │ │ │ │ │ │ ├── SecurityResp.java │ │ │ │ │ │ ├── SecuritySignReq.java │ │ │ │ │ │ └── SecuritySignResp.java │ │ │ │ │ ├── sqlparse/ │ │ │ │ │ │ ├── JSqlParserAllTableManager.java │ │ │ │ │ │ ├── JSqlParserUtils.java │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ └── SelectSqlInfo.java │ │ │ │ │ └── superSearch/ │ │ │ │ │ ├── ObjectParseUtil.java │ │ │ │ │ ├── QueryRuleEnum.java │ │ │ │ │ └── QueryRuleVo.java │ │ │ │ ├── config/ │ │ │ │ │ ├── AiRagConfigBean.java │ │ │ │ │ ├── AutoPoiConfig.java │ │ │ │ │ ├── AutoPoiDictConfig.java │ │ │ │ │ ├── CorsFilterCondition.java │ │ │ │ │ ├── DruidConfig.java │ │ │ │ │ ├── DruidWallConfigRegister.java │ │ │ │ │ ├── JeecgBaseConfig.java │ │ │ │ │ ├── JeecgCloudCondition.java │ │ │ │ │ ├── JeecgGaodeBaseConfig.java │ │ │ │ │ ├── JeecgSmsTemplateConfig.java │ │ │ │ │ ├── RestTemplateConfig.java │ │ │ │ │ ├── StaticConfig.java │ │ │ │ │ ├── Swagger2Config.java │ │ │ │ │ ├── Swagger3Config.java │ │ │ │ │ ├── TaskSchedulerConfig.java │ │ │ │ │ ├── WebMvcConfiguration.java │ │ │ │ │ ├── WebSocketConfig.java │ │ │ │ │ ├── filter/ │ │ │ │ │ │ ├── RequestBodyReserveFilter.java │ │ │ │ │ │ └── WebsocketFilter.java │ │ │ │ │ ├── firewall/ │ │ │ │ │ │ ├── SqlInjection/ │ │ │ │ │ │ │ ├── IDictTableWhiteListHandler.java │ │ │ │ │ │ │ └── SysDictTableWhite.java │ │ │ │ │ │ └── interceptor/ │ │ │ │ │ │ ├── LowCodeModeConfiguration.java │ │ │ │ │ │ ├── LowCodeModeInterceptor.java │ │ │ │ │ │ └── enums/ │ │ │ │ │ │ └── LowCodeUrlsEnum.java │ │ │ │ │ ├── mybatis/ │ │ │ │ │ │ ├── JeecgTenantParser.java │ │ │ │ │ │ ├── MybatisInterceptor.java │ │ │ │ │ │ ├── MybatisPlusSaasConfig.java │ │ │ │ │ │ ├── TenantContext.java │ │ │ │ │ │ ├── ThreadLocalDataHelper.java │ │ │ │ │ │ ├── aspect/ │ │ │ │ │ │ │ └── DynamicTableAspect.java │ │ │ │ │ │ └── interceptor/ │ │ │ │ │ │ └── DynamicDatasourceInterceptor.java │ │ │ │ │ ├── oss/ │ │ │ │ │ │ ├── MinioConfig.java │ │ │ │ │ │ └── OssConfiguration.java │ │ │ │ │ ├── shiro/ │ │ │ │ │ │ ├── IgnoreAuth.java │ │ │ │ │ │ ├── JwtToken.java │ │ │ │ │ │ ├── ShiroConfig.java │ │ │ │ │ │ ├── ShiroRealm.java │ │ │ │ │ │ ├── filters/ │ │ │ │ │ │ │ ├── CustomShiroFilterFactoryBean.java │ │ │ │ │ │ │ ├── JwtFilter.java │ │ │ │ │ │ │ └── ResourceCheckFilter.java │ │ │ │ │ │ └── ignore/ │ │ │ │ │ │ ├── IgnoreAuthPostProcessor.java │ │ │ │ │ │ └── InMemoryIgnoreAuth.java │ │ │ │ │ ├── sign/ │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ └── SignatureCheck.java │ │ │ │ │ │ ├── aspect/ │ │ │ │ │ │ │ └── SignatureCheckAspect.java │ │ │ │ │ │ ├── interceptor/ │ │ │ │ │ │ │ ├── SignAuthConfiguration.java │ │ │ │ │ │ │ └── SignAuthInterceptor.java │ │ │ │ │ │ └── util/ │ │ │ │ │ │ ├── BodyReaderHttpServletRequestWrapper.java │ │ │ │ │ │ ├── HttpUtils.java │ │ │ │ │ │ └── SignUtil.java │ │ │ │ │ ├── tencent/ │ │ │ │ │ │ └── JeecgTencent.java │ │ │ │ │ └── vo/ │ │ │ │ │ ├── BaiduApi.java │ │ │ │ │ ├── DomainUrl.java │ │ │ │ │ ├── Elasticsearch.java │ │ │ │ │ ├── Firewall.java │ │ │ │ │ ├── GaoDeApi.java │ │ │ │ │ ├── JeecgMinio.java │ │ │ │ │ ├── JeecgOSS.java │ │ │ │ │ ├── Path.java │ │ │ │ │ ├── Shiro.java │ │ │ │ │ └── WeiXinPay.java │ │ │ │ └── modules/ │ │ │ │ └── base/ │ │ │ │ ├── mapper/ │ │ │ │ │ ├── BaseCommonMapper.java │ │ │ │ │ └── xml/ │ │ │ │ │ └── BaseCommonMapper.xml │ │ │ │ └── service/ │ │ │ │ ├── BaseCommonService.java │ │ │ │ └── impl/ │ │ │ │ └── BaseCommonServiceImpl.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── spring/ │ │ │ │ │ └── org.springframework.boot.SpringApplicationRunListeners │ │ │ │ └── spring.factories │ │ │ ├── config/ │ │ │ │ └── default-spring-doc.properties │ │ │ ├── static/ │ │ │ │ └── pca.json │ │ │ └── templates/ │ │ │ └── email/ │ │ │ ├── bpm_cc_email.ftl │ │ │ ├── bpm_cuiban_email.ftl │ │ │ ├── bpm_new_task_email.ftl │ │ │ └── desform_new_data_email.ftl │ │ └── test/ │ │ └── java/ │ │ └── org/ │ │ └── jeecg/ │ │ └── test/ │ │ └── sqlparse/ │ │ └── TestIpUtil.java │ ├── jeecg-boot-module/ │ │ ├── jeecg-boot-module-airag/ │ │ │ ├── doc/ │ │ │ │ └── RAG/ │ │ │ │ └── main.py │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── jeecg/ │ │ │ │ │ ├── JeecgAiRagApplication.java │ │ │ │ │ └── modules/ │ │ │ │ │ └── airag/ │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── consts/ │ │ │ │ │ │ │ ├── AiAppConsts.java │ │ │ │ │ │ │ └── Prompts.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── AiragAppController.java │ │ │ │ │ │ │ └── AiragChatController.java │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ └── AiragApp.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── AiragAppMapper.java │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ └── AiragAppMapper.xml │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── IAiragAppService.java │ │ │ │ │ │ │ ├── IAiragChatService.java │ │ │ │ │ │ │ ├── IAiragVariableService.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ ├── AiragAppServiceImpl.java │ │ │ │ │ │ │ ├── AiragChatServiceImpl.java │ │ │ │ │ │ │ └── AiragVariableServiceImpl.java │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ ├── AiArticleWriteVersionVo.java │ │ │ │ │ │ ├── AiWriteGenerateVo.java │ │ │ │ │ │ ├── AppDebugParams.java │ │ │ │ │ │ ├── AppVariableVo.java │ │ │ │ │ │ ├── ChatConversation.java │ │ │ │ │ │ └── ChatSendParams.java │ │ │ │ │ ├── demo/ │ │ │ │ │ │ ├── JimuDataReader.java │ │ │ │ │ │ └── TestAiragEnhance.java │ │ │ │ │ ├── llm/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── EmbedStoreConfigBean.java │ │ │ │ │ │ │ └── KnowConfigBean.java │ │ │ │ │ │ ├── consts/ │ │ │ │ │ │ │ ├── FlowPluginContent.java │ │ │ │ │ │ │ └── LLMConsts.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── AiragBaseApiController.java │ │ │ │ │ │ │ ├── AiragKnowledgeController.java │ │ │ │ │ │ │ ├── AiragMcpController.java │ │ │ │ │ │ │ └── AiragModelController.java │ │ │ │ │ │ ├── document/ │ │ │ │ │ │ │ └── TikaDocumentParser.java │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ └── SaveToolsDTO.java │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ ├── AiragKnowledge.java │ │ │ │ │ │ │ ├── AiragKnowledgeDoc.java │ │ │ │ │ │ │ ├── AiragMcp.java │ │ │ │ │ │ │ └── AiragModel.java │ │ │ │ │ │ ├── handler/ │ │ │ │ │ │ │ ├── AIChatHandler.java │ │ │ │ │ │ │ ├── CommandExecUtil.java │ │ │ │ │ │ │ ├── EmbeddingHandler.java │ │ │ │ │ │ │ ├── JeecgToolsProvider.java │ │ │ │ │ │ │ └── PluginToolBuilder.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── AiragKnowledgeDocMapper.java │ │ │ │ │ │ │ ├── AiragKnowledgeMapper.java │ │ │ │ │ │ │ ├── AiragMcpMapper.java │ │ │ │ │ │ │ ├── AiragModelMapper.java │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ ├── AiragKnowledgeDocMapper.xml │ │ │ │ │ │ │ ├── AiragKnowledgeMapper.xml │ │ │ │ │ │ │ ├── AiragMcpMapper.xml │ │ │ │ │ │ │ └── AiragModelMapper.xml │ │ │ │ │ │ └── service/ │ │ │ │ │ │ ├── IAiragFlowPluginService.java │ │ │ │ │ │ ├── IAiragKnowledgeDocService.java │ │ │ │ │ │ ├── IAiragKnowledgeService.java │ │ │ │ │ │ ├── IAiragMcpService.java │ │ │ │ │ │ ├── IAiragModelService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── AiragBaseApiImpl.java │ │ │ │ │ │ ├── AiragFlowPluginServiceImpl.java │ │ │ │ │ │ ├── AiragKnowledgeDocServiceImpl.java │ │ │ │ │ │ ├── AiragKnowledgeServiceImpl.java │ │ │ │ │ │ ├── AiragMcpServiceImpl.java │ │ │ │ │ │ └── AiragModelServiceImpl.java │ │ │ │ │ ├── ocr/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── AiOcrController.java │ │ │ │ │ │ └── entity/ │ │ │ │ │ │ └── AiOcr.java │ │ │ │ │ ├── prompts/ │ │ │ │ │ │ ├── consts/ │ │ │ │ │ │ │ └── AiPromptsConsts.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── AiragExtDataController.java │ │ │ │ │ │ │ └── AiragPromptsController.java │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ ├── AiragExtData.java │ │ │ │ │ │ │ └── AiragPrompts.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── AiragExtDataMapper.java │ │ │ │ │ │ │ ├── AiragPromptsMapper.java │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ ├── AiragExtDataMapper.xml │ │ │ │ │ │ │ └── AiragPromptsMapper.xml │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── IAiragExtDataService.java │ │ │ │ │ │ │ ├── IAiragPromptsService.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ ├── AiragExtDataServiceImpl.java │ │ │ │ │ │ │ └── AiragPromptsServiceImpl.java │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ ├── AiragDebugVo.java │ │ │ │ │ │ └── AiragExperimentVo.java │ │ │ │ │ └── wordtpl/ │ │ │ │ │ ├── consts/ │ │ │ │ │ │ └── WordTitleEnum.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── EoaWordTemplateController.java │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── MergeColDTO.java │ │ │ │ │ │ ├── WordImageDTO.java │ │ │ │ │ │ ├── WordTableCellDTO.java │ │ │ │ │ │ ├── WordTableDTO.java │ │ │ │ │ │ ├── WordTableRowDTO.java │ │ │ │ │ │ ├── WordTextDTO.java │ │ │ │ │ │ └── WordTplGenDTO.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── EoaWordTemplate.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── EoaWordTemplateMapper.java │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ └── EoaWordTemplateMapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── IEoaWordTemplateService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── EoaWordTemplateServiceImpl.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── WordTplUtils.java │ │ │ │ │ └── WordUtil.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jeecg/ │ │ │ └── modules/ │ │ │ └── airag/ │ │ │ └── test/ │ │ │ ├── TestFileParse.java │ │ │ ├── TestFlows.java │ │ │ ├── TestLLM.java │ │ │ └── TestVector.java │ │ ├── jeecg-module-demo/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── jeecg/ │ │ │ │ └── modules/ │ │ │ │ └── demo/ │ │ │ │ ├── cloud/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── JcloudDemoFeignController.java │ │ │ │ │ │ └── JcloudDemoProviderController.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── JcloudDemoService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── JcloudDemoServiceImpl.java │ │ │ │ │ └── xxljob/ │ │ │ │ │ └── TestJobHandler.java │ │ │ │ ├── mcp/ │ │ │ │ │ └── McpDemoController.java │ │ │ │ ├── mock/ │ │ │ │ │ ├── MockController.java │ │ │ │ │ ├── json/ │ │ │ │ │ │ ├── area.json │ │ │ │ │ │ ├── area_mini.json │ │ │ │ │ │ ├── area_options.json │ │ │ │ │ │ ├── asyn_tree_list_0.json │ │ │ │ │ │ ├── asyn_tree_list_1.json │ │ │ │ │ │ ├── asyn_tree_list_2.json │ │ │ │ │ │ ├── asyn_tree_list_3.json │ │ │ │ │ │ ├── asyn_tree_list_31.json │ │ │ │ │ │ ├── getCntrNoCountInfo.json │ │ │ │ │ │ ├── getTubiao.json │ │ │ │ │ │ ├── graphreport_chart.json │ │ │ │ │ │ ├── permission.json │ │ │ │ │ │ ├── permission_no_page.json │ │ │ │ │ │ ├── role.json │ │ │ │ │ │ ├── service.json │ │ │ │ │ │ ├── sysdatalog.json │ │ │ │ │ │ ├── task_process.json │ │ │ │ │ │ ├── user.json │ │ │ │ │ │ ├── user_info.json │ │ │ │ │ │ ├── userinfo.json │ │ │ │ │ │ ├── workplace_activity.json │ │ │ │ │ │ ├── workplace_projects.json │ │ │ │ │ │ ├── workplace_radar.json │ │ │ │ │ │ └── workplace_teams.json │ │ │ │ │ └── vxe/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── VxeMockController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── MockEntity.java │ │ │ │ │ ├── json/ │ │ │ │ │ │ ├── ddjh.json │ │ │ │ │ │ ├── ddjh_s8.json │ │ │ │ │ │ └── dlglong.json │ │ │ │ │ └── websocket/ │ │ │ │ │ └── VxeSocket.java │ │ │ │ ├── online/ │ │ │ │ │ └── OnlCgformDemoController.java │ │ │ │ ├── shop/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ShopController.java │ │ │ │ │ └── entity/ │ │ │ │ │ ├── Order.java │ │ │ │ │ └── Product.java │ │ │ │ ├── test/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── BigScreenTemplatController.java │ │ │ │ │ │ ├── JeecgDemoController.java │ │ │ │ │ │ ├── JeecgDynamicDataController.java │ │ │ │ │ │ ├── JeecgOrderErpMainController.java │ │ │ │ │ │ ├── JeecgOrderMainController.java │ │ │ │ │ │ └── JoaDemoController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── JeecgDemo.java │ │ │ │ │ │ ├── JeecgOrderCustomer.java │ │ │ │ │ │ ├── JeecgOrderMain.java │ │ │ │ │ │ ├── JeecgOrderTicket.java │ │ │ │ │ │ └── JoaDemo.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── JeecgDemoMapper.java │ │ │ │ │ │ ├── JeecgOrderCustomerMapper.java │ │ │ │ │ │ ├── JeecgOrderMainMapper.java │ │ │ │ │ │ ├── JeecgOrderTicketMapper.java │ │ │ │ │ │ ├── JoaDemoMapper.java │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ ├── JeecgDemoMapper.xml │ │ │ │ │ │ ├── JeecgOrderCustomerMapper.xml │ │ │ │ │ │ ├── JeecgOrderMainMapper.xml │ │ │ │ │ │ ├── JeecgOrderTicketMapper.xml │ │ │ │ │ │ └── JoaDemoMapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── IJeecgDemoService.java │ │ │ │ │ │ ├── IJeecgDynamicDataService.java │ │ │ │ │ │ ├── IJeecgOrderCustomerService.java │ │ │ │ │ │ ├── IJeecgOrderMainService.java │ │ │ │ │ │ ├── IJeecgOrderTicketService.java │ │ │ │ │ │ ├── IJoaDemoService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── JeecgDemoServiceImpl.java │ │ │ │ │ │ ├── JeecgDynamicDataServiceImpl.java │ │ │ │ │ │ ├── JeecgOrderCustomerServiceImpl.java │ │ │ │ │ │ ├── JeecgOrderMainServiceImpl.java │ │ │ │ │ │ ├── JeecgOrderTicketServiceImpl.java │ │ │ │ │ │ └── JoaDemoServiceImpl.java │ │ │ │ │ └── vo/ │ │ │ │ │ └── JeecgOrderMainPage.java │ │ │ │ └── xxljob/ │ │ │ │ └── TestJobHandler.java │ │ │ └── resources/ │ │ │ ├── static/ │ │ │ │ └── bigscreen/ │ │ │ │ ├── template1/ │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── easyui.css │ │ │ │ │ │ ├── jquery-ui.css │ │ │ │ │ │ ├── main_design1.css │ │ │ │ │ │ └── room.css │ │ │ │ │ └── js/ │ │ │ │ │ ├── big_design1.js │ │ │ │ │ ├── china.js │ │ │ │ │ ├── echarts-wordcloud.js │ │ │ │ │ ├── geoCoord.js │ │ │ │ │ ├── resize.js │ │ │ │ │ └── room.js │ │ │ │ └── template2/ │ │ │ │ ├── css/ │ │ │ │ │ └── style.css │ │ │ │ └── js/ │ │ │ │ ├── base.js │ │ │ │ ├── china.js │ │ │ │ ├── data/ │ │ │ │ │ ├── city.json │ │ │ │ │ └── guangdong.js │ │ │ │ ├── layer/ │ │ │ │ │ ├── extend/ │ │ │ │ │ │ └── layer.ext.js │ │ │ │ │ ├── laydate/ │ │ │ │ │ │ ├── laydate.js │ │ │ │ │ │ ├── need/ │ │ │ │ │ │ │ └── laydate.css │ │ │ │ │ │ └── skins/ │ │ │ │ │ │ ├── danlan/ │ │ │ │ │ │ │ └── laydate.css │ │ │ │ │ │ └── default/ │ │ │ │ │ │ └── laydate.css │ │ │ │ │ ├── layim/ │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ ├── chatlog.json │ │ │ │ │ │ │ ├── friend.json │ │ │ │ │ │ │ ├── group.json │ │ │ │ │ │ │ └── groups.json │ │ │ │ │ │ ├── layim.css │ │ │ │ │ │ └── layim.js │ │ │ │ │ └── skin/ │ │ │ │ │ ├── layer.css │ │ │ │ │ ├── layer.ext.css │ │ │ │ │ └── moon/ │ │ │ │ │ └── style.css │ │ │ │ ├── pop_base.js │ │ │ │ └── rem.js │ │ │ └── templates/ │ │ │ └── bigscreen/ │ │ │ ├── template1/ │ │ │ │ └── index.ftl │ │ │ └── template2/ │ │ │ └── index.ftl │ │ └── pom.xml │ ├── jeecg-module-system/ │ │ ├── jeecg-system-api/ │ │ │ ├── jeecg-system-cloud-api/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── org/ │ │ │ │ └── jeecg/ │ │ │ │ ├── common/ │ │ │ │ │ ├── airag/ │ │ │ │ │ │ └── api/ │ │ │ │ │ │ ├── IAiragBaseApi.java │ │ │ │ │ │ ├── factory/ │ │ │ │ │ │ │ └── AiragBaseApiFallbackFactory.java │ │ │ │ │ │ └── fallback/ │ │ │ │ │ │ └── AiragBaseApiFallback.java │ │ │ │ │ ├── online/ │ │ │ │ │ │ └── api/ │ │ │ │ │ │ ├── IOnlineBaseExtApi.java │ │ │ │ │ │ ├── factory/ │ │ │ │ │ │ │ └── OnlineBaseExtApiFallbackFactory.java │ │ │ │ │ │ └── fallback/ │ │ │ │ │ │ └── OnlineBaseExtApiFallback.java │ │ │ │ │ └── system/ │ │ │ │ │ └── api/ │ │ │ │ │ ├── ISysBaseAPI.java │ │ │ │ │ ├── factory/ │ │ │ │ │ │ └── SysBaseAPIFallbackFactory.java │ │ │ │ │ └── fallback/ │ │ │ │ │ └── SysBaseAPIFallback.java │ │ │ │ └── config/ │ │ │ │ └── FeignConfig.java │ │ │ ├── jeecg-system-local-api/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── org/ │ │ │ │ └── jeecg/ │ │ │ │ └── common/ │ │ │ │ ├── airag/ │ │ │ │ │ └── api/ │ │ │ │ │ └── IAiragBaseApi.java │ │ │ │ ├── online/ │ │ │ │ │ └── api/ │ │ │ │ │ └── IOnlineBaseExtApi.java │ │ │ │ └── system/ │ │ │ │ └── api/ │ │ │ │ └── ISysBaseAPI.java │ │ │ └── pom.xml │ │ ├── jeecg-system-biz/ │ │ │ ├── .gitattributes │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── jeecg/ │ │ │ │ ├── config/ │ │ │ │ │ ├── firewall/ │ │ │ │ │ │ └── SqlInjection/ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── DictTableWhiteListHandlerImpl.java │ │ │ │ │ ├── init/ │ │ │ │ │ │ ├── CodeGenerateDbConfig.java │ │ │ │ │ │ ├── CodeTemplateInitListener.java │ │ │ │ │ │ ├── ShiroCacheClearRunner.java │ │ │ │ │ │ ├── SystemInitListener.java │ │ │ │ │ │ ├── TomcatFactoryConfig.java │ │ │ │ │ │ └── UndertowConfiguration.java │ │ │ │ │ └── jimureport/ │ │ │ │ │ ├── JimuDragExternalServiceImpl.java │ │ │ │ │ └── JimuReportTokenService.java │ │ │ │ └── modules/ │ │ │ │ ├── airag/ │ │ │ │ │ ├── JeecgBizToolsProvider.java │ │ │ │ │ └── TestAiGenWordEnhance.java │ │ │ │ ├── aop/ │ │ │ │ │ ├── TenantLog.java │ │ │ │ │ └── TenantPackUserLogAspect.java │ │ │ │ ├── api/ │ │ │ │ │ └── controller/ │ │ │ │ │ └── SystemApiController.java │ │ │ │ ├── cas/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── CasClientController.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── CasServiceUtil.java │ │ │ │ │ └── XmlUtils.java │ │ │ │ ├── message/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── SysMessageController.java │ │ │ │ │ │ ├── SysMessageTemplateController.java │ │ │ │ │ │ └── TestSocketController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── MsgParams.java │ │ │ │ │ │ ├── SysMessage.java │ │ │ │ │ │ └── SysMessageTemplate.java │ │ │ │ │ ├── enums/ │ │ │ │ │ │ └── RangeDateEnum.java │ │ │ │ │ ├── handle/ │ │ │ │ │ │ ├── ISendMsgHandle.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ ├── SendMsgStatusEnum.java │ │ │ │ │ │ │ └── SendMsgTypeEnum.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── DdSendMsgHandle.java │ │ │ │ │ │ ├── EmailSendMsgHandle.java │ │ │ │ │ │ ├── QywxSendMsgHandle.java │ │ │ │ │ │ ├── SmsSendMsgHandle.java │ │ │ │ │ │ ├── SystemSendMsgHandle.java │ │ │ │ │ │ └── WxSendMsgHandle.java │ │ │ │ │ ├── job/ │ │ │ │ │ │ └── SendMsgJob.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── SysMessageMapper.java │ │ │ │ │ │ ├── SysMessageTemplateMapper.java │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ ├── SysMessageMapper.xml │ │ │ │ │ │ └── SysMessageTemplateMapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── ISysMessageService.java │ │ │ │ │ │ ├── ISysMessageTemplateService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── SysMessageServiceImpl.java │ │ │ │ │ │ └── SysMessageTemplateServiceImpl.java │ │ │ │ │ ├── util/ │ │ │ │ │ │ └── PushMsgUtil.java │ │ │ │ │ └── websocket/ │ │ │ │ │ ├── SocketHandler.java │ │ │ │ │ └── WebSocket.java │ │ │ │ ├── monitor/ │ │ │ │ │ ├── actuator/ │ │ │ │ │ │ ├── CustomActuatorConfig.java │ │ │ │ │ │ ├── httptrace/ │ │ │ │ │ │ │ ├── CustomHttpTraceEndpoint.java │ │ │ │ │ │ │ └── CustomInMemoryHttpTraceRepository.java │ │ │ │ │ │ └── undertow/ │ │ │ │ │ │ └── CustomUndertowMetricsHandler.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── ActuatorMemoryController.java │ │ │ │ │ │ └── ActuatorRedisController.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ └── RedisInfo.java │ │ │ │ │ ├── exception/ │ │ │ │ │ │ └── RedisConnectException.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── RedisService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── MailHealthIndicator.java │ │ │ │ │ └── RedisServiceImpl.java │ │ │ │ ├── ngalain/ │ │ │ │ │ ├── aop/ │ │ │ │ │ │ └── LogRecordAspect.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── NgAlainController.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── NgAlainService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── NgAlainServiceImpl.java │ │ │ │ ├── openapi/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── OpenApiAuthController.java │ │ │ │ │ │ ├── OpenApiController.java │ │ │ │ │ │ ├── OpenApiIndexController.java │ │ │ │ │ │ ├── OpenApiLogController.java │ │ │ │ │ │ └── OpenApiPermissionController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── OpenApi.java │ │ │ │ │ │ ├── OpenApiAuth.java │ │ │ │ │ │ ├── OpenApiHeader.java │ │ │ │ │ │ ├── OpenApiLog.java │ │ │ │ │ │ ├── OpenApiParam.java │ │ │ │ │ │ └── OpenApiPermission.java │ │ │ │ │ ├── filter/ │ │ │ │ │ │ ├── ApiAuthFilter.java │ │ │ │ │ │ └── ApiFilterConfig.java │ │ │ │ │ ├── generator/ │ │ │ │ │ │ ├── AKSKGenerator.java │ │ │ │ │ │ └── PathGenerator.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── OpenApiAuthMapper.java │ │ │ │ │ │ ├── OpenApiLogMapper.java │ │ │ │ │ │ ├── OpenApiMapper.java │ │ │ │ │ │ └── OpenApiPermissionMapper.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── OpenApiAuthService.java │ │ │ │ │ │ ├── OpenApiLogService.java │ │ │ │ │ │ ├── OpenApiPermissionService.java │ │ │ │ │ │ ├── OpenApiService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── OpenApiAuthServiceImpl.java │ │ │ │ │ │ ├── OpenApiLogServiceImpl.java │ │ │ │ │ │ ├── OpenApiPermissionServiceImpl.java │ │ │ │ │ │ └── OpenApiServiceImpl.java │ │ │ │ │ └── swagger/ │ │ │ │ │ ├── SwaggerDefinition.java │ │ │ │ │ ├── SwaggerDefinitionProperties.java │ │ │ │ │ ├── SwaggerInfo.java │ │ │ │ │ ├── SwaggerInfoContact.java │ │ │ │ │ ├── SwaggerInfoLicense.java │ │ │ │ │ ├── SwaggerModel.java │ │ │ │ │ ├── SwaggerOperation.java │ │ │ │ │ ├── SwaggerOperationParameter.java │ │ │ │ │ ├── SwaggerOperationResponse.java │ │ │ │ │ ├── SwaggerSchema.java │ │ │ │ │ └── SwaggerTag.java │ │ │ │ ├── oss/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── OssFileController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── OssFile.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ └── OssFileMapper.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── IOssFileService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── OssFileServiceImpl.java │ │ │ │ ├── quartz/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── QuartzJobController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── QuartzJob.java │ │ │ │ │ ├── job/ │ │ │ │ │ │ ├── AsyncJob.java │ │ │ │ │ │ ├── SampleJob.java │ │ │ │ │ │ └── SampleParamJob.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── QuartzJobMapper.java │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ └── QuartzJobMapper.xml │ │ │ │ │ └── service/ │ │ │ │ │ ├── IQuartzJobService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── QuartzJobServiceImpl.java │ │ │ │ └── system/ │ │ │ │ ├── cache/ │ │ │ │ │ └── AuthStateRedisCache.java │ │ │ │ ├── config/ │ │ │ │ │ └── AuthStateConfiguration.java │ │ │ │ ├── constant/ │ │ │ │ │ └── DefIndexConst.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── CommonController.java │ │ │ │ │ ├── DuplicateCheckController.java │ │ │ │ │ ├── LoginController.java │ │ │ │ │ ├── SysAnnouncementController.java │ │ │ │ │ ├── SysAnnouncementSendController.java │ │ │ │ │ ├── SysAppVersionController.java │ │ │ │ │ ├── SysCategoryController.java │ │ │ │ │ ├── SysCheckRuleController.java │ │ │ │ │ ├── SysCommentController.java │ │ │ │ │ ├── SysDataLogController.java │ │ │ │ │ ├── SysDataSourceController.java │ │ │ │ │ ├── SysDepartController.java │ │ │ │ │ ├── SysDepartPermissionController.java │ │ │ │ │ ├── SysDepartRoleController.java │ │ │ │ │ ├── SysDictController.java │ │ │ │ │ ├── SysDictItemController.java │ │ │ │ │ ├── SysFillRuleController.java │ │ │ │ │ ├── SysFormFileController.java │ │ │ │ │ ├── SysGatewayRouteController.java │ │ │ │ │ ├── SysLogController.java │ │ │ │ │ ├── SysPermissionController.java │ │ │ │ │ ├── SysPositionController.java │ │ │ │ │ ├── SysRoleController.java │ │ │ │ │ ├── SysRoleIndexController.java │ │ │ │ │ ├── SysTableWhiteListController.java │ │ │ │ │ ├── SysTenantController.java │ │ │ │ │ ├── SysUploadController.java │ │ │ │ │ ├── SysUserController.java │ │ │ │ │ ├── SysUserOnlineController.java │ │ │ │ │ ├── ThirdAppController.java │ │ │ │ │ ├── ThirdLoginController.java │ │ │ │ │ └── WechatVerifyController.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── SysAnnouncement.java │ │ │ │ │ ├── SysAnnouncementSend.java │ │ │ │ │ ├── SysAppVersion.java │ │ │ │ │ ├── SysCategory.java │ │ │ │ │ ├── SysCheckRule.java │ │ │ │ │ ├── SysComment.java │ │ │ │ │ ├── SysDataLog.java │ │ │ │ │ ├── SysDataSource.java │ │ │ │ │ ├── SysDepart.java │ │ │ │ │ ├── SysDepartPermission.java │ │ │ │ │ ├── SysDepartRole.java │ │ │ │ │ ├── SysDepartRolePermission.java │ │ │ │ │ ├── SysDepartRoleUser.java │ │ │ │ │ ├── SysDict.java │ │ │ │ │ ├── SysDictItem.java │ │ │ │ │ ├── SysFillRule.java │ │ │ │ │ ├── SysFormFile.java │ │ │ │ │ ├── SysGatewayRoute.java │ │ │ │ │ ├── SysLog.java │ │ │ │ │ ├── SysPackPermission.java │ │ │ │ │ ├── SysPermission.java │ │ │ │ │ ├── SysPermissionDataRule.java │ │ │ │ │ ├── SysPosition.java │ │ │ │ │ ├── SysRole.java │ │ │ │ │ ├── SysRoleIndex.java │ │ │ │ │ ├── SysRolePermission.java │ │ │ │ │ ├── SysTableWhiteList.java │ │ │ │ │ ├── SysTenant.java │ │ │ │ │ ├── SysTenantPack.java │ │ │ │ │ ├── SysTenantPackUser.java │ │ │ │ │ ├── SysThirdAccount.java │ │ │ │ │ ├── SysThirdAppConfig.java │ │ │ │ │ ├── SysUser.java │ │ │ │ │ ├── SysUserDepPost.java │ │ │ │ │ ├── SysUserDepart.java │ │ │ │ │ ├── SysUserPosition.java │ │ │ │ │ ├── SysUserRole.java │ │ │ │ │ └── SysUserTenant.java │ │ │ │ ├── excelstyle/ │ │ │ │ │ └── ExcelExportSysUserStyle.java │ │ │ │ ├── job/ │ │ │ │ │ └── UserUpadtePwdJob.java │ │ │ │ ├── mapper/ │ │ │ │ │ ├── SysAnnouncementMapper.java │ │ │ │ │ ├── SysAnnouncementSendMapper.java │ │ │ │ │ ├── SysCategoryMapper.java │ │ │ │ │ ├── SysCheckRuleMapper.java │ │ │ │ │ ├── SysCommentMapper.java │ │ │ │ │ ├── SysDataLogMapper.java │ │ │ │ │ ├── SysDataSourceMapper.java │ │ │ │ │ ├── SysDepartMapper.java │ │ │ │ │ ├── SysDepartPermissionMapper.java │ │ │ │ │ ├── SysDepartRoleMapper.java │ │ │ │ │ ├── SysDepartRolePermissionMapper.java │ │ │ │ │ ├── SysDepartRoleUserMapper.java │ │ │ │ │ ├── SysDictItemMapper.java │ │ │ │ │ ├── SysDictMapper.java │ │ │ │ │ ├── SysFillRuleMapper.java │ │ │ │ │ ├── SysFormFileMapper.java │ │ │ │ │ ├── SysGatewayRouteMapper.java │ │ │ │ │ ├── SysLogMapper.java │ │ │ │ │ ├── SysPackPermissionMapper.java │ │ │ │ │ ├── SysPermissionDataRuleMapper.java │ │ │ │ │ ├── SysPermissionMapper.java │ │ │ │ │ ├── SysPositionMapper.java │ │ │ │ │ ├── SysRoleIndexMapper.java │ │ │ │ │ ├── SysRoleMapper.java │ │ │ │ │ ├── SysRolePermissionMapper.java │ │ │ │ │ ├── SysTableWhiteListMapper.java │ │ │ │ │ ├── SysTenantMapper.java │ │ │ │ │ ├── SysTenantPackMapper.java │ │ │ │ │ ├── SysTenantPackUserMapper.java │ │ │ │ │ ├── SysThirdAccountMapper.java │ │ │ │ │ ├── SysThirdAppConfigMapper.java │ │ │ │ │ ├── SysUserDepPostMapper.java │ │ │ │ │ ├── SysUserDepartMapper.java │ │ │ │ │ ├── SysUserMapper.java │ │ │ │ │ ├── SysUserPositionMapper.java │ │ │ │ │ ├── SysUserRoleMapper.java │ │ │ │ │ ├── SysUserTenantMapper.java │ │ │ │ │ └── xml/ │ │ │ │ │ ├── SysAnnouncementMapper.xml │ │ │ │ │ ├── SysAnnouncementSendMapper.xml │ │ │ │ │ ├── SysCategoryMapper.xml │ │ │ │ │ ├── SysCheckRuleMapper.xml │ │ │ │ │ ├── SysCommentMapper.xml │ │ │ │ │ ├── SysDataLogMapper.xml │ │ │ │ │ ├── SysDataSourceMapper.xml │ │ │ │ │ ├── SysDepartMapper.xml │ │ │ │ │ ├── SysDepartPermissionMapper.xml │ │ │ │ │ ├── SysDepartRoleMapper.xml │ │ │ │ │ ├── SysDepartRolePermissionMapper.xml │ │ │ │ │ ├── SysDepartRoleUserMapper.xml │ │ │ │ │ ├── SysDictItemMapper.xml │ │ │ │ │ ├── SysDictMapper.xml │ │ │ │ │ ├── SysFillRuleMapper.xml │ │ │ │ │ ├── SysGatewayRouteMapper.xml │ │ │ │ │ ├── SysLogMapper.xml │ │ │ │ │ ├── SysPackPermissionMapper.xml │ │ │ │ │ ├── SysPermissionDataRuleMapper.xml │ │ │ │ │ ├── SysPermissionMapper.xml │ │ │ │ │ ├── SysPositionMapper.xml │ │ │ │ │ ├── SysRoleIndexMapper.xml │ │ │ │ │ ├── SysRoleMapper.xml │ │ │ │ │ ├── SysTableWhiteListMapper.xml │ │ │ │ │ ├── SysTenantMapper.xml │ │ │ │ │ ├── SysTenantPackMapper.xml │ │ │ │ │ ├── SysTenantPackUserMapper.xml │ │ │ │ │ ├── SysThirdAccountMapper.xml │ │ │ │ │ ├── SysThirdAppConfigMapper.xml │ │ │ │ │ ├── SysUserDepartMapper.xml │ │ │ │ │ ├── SysUserMapper.xml │ │ │ │ │ ├── SysUserPositionMapper.xml │ │ │ │ │ └── SysUserTenantMapper.xml │ │ │ │ ├── model/ │ │ │ │ │ ├── AnnouncementSendModel.java │ │ │ │ │ ├── DepartIdModel.java │ │ │ │ │ ├── DuplicateCheckVo.java │ │ │ │ │ ├── SysDepartTreeModel.java │ │ │ │ │ ├── SysDictTree.java │ │ │ │ │ ├── SysLoginModel.java │ │ │ │ │ ├── SysPermissionTree.java │ │ │ │ │ ├── SysUserSysDepPostModel.java │ │ │ │ │ ├── SysUserSysDepartModel.java │ │ │ │ │ ├── ThirdLoginModel.java │ │ │ │ │ ├── TreeModel.java │ │ │ │ │ └── TreeSelectModel.java │ │ │ │ ├── rule/ │ │ │ │ │ ├── CategoryCodeRule.java │ │ │ │ │ ├── OrderNumberRule.java │ │ │ │ │ └── OrgCodeRule.java │ │ │ │ ├── security/ │ │ │ │ │ └── DictQueryBlackListHandler.java │ │ │ │ ├── service/ │ │ │ │ │ ├── ISysAnnouncementSendService.java │ │ │ │ │ ├── ISysAnnouncementService.java │ │ │ │ │ ├── ISysCategoryService.java │ │ │ │ │ ├── ISysCheckRuleService.java │ │ │ │ │ ├── ISysCommentService.java │ │ │ │ │ ├── ISysDataLogService.java │ │ │ │ │ ├── ISysDataSourceService.java │ │ │ │ │ ├── ISysDepartPermissionService.java │ │ │ │ │ ├── ISysDepartRolePermissionService.java │ │ │ │ │ ├── ISysDepartRoleService.java │ │ │ │ │ ├── ISysDepartRoleUserService.java │ │ │ │ │ ├── ISysDepartService.java │ │ │ │ │ ├── ISysDictItemService.java │ │ │ │ │ ├── ISysDictService.java │ │ │ │ │ ├── ISysFillRuleService.java │ │ │ │ │ ├── ISysFormFileService.java │ │ │ │ │ ├── ISysGatewayRouteService.java │ │ │ │ │ ├── ISysLogService.java │ │ │ │ │ ├── ISysPackPermissionService.java │ │ │ │ │ ├── ISysPermissionDataRuleService.java │ │ │ │ │ ├── ISysPermissionService.java │ │ │ │ │ ├── ISysPositionService.java │ │ │ │ │ ├── ISysRoleIndexService.java │ │ │ │ │ ├── ISysRolePermissionService.java │ │ │ │ │ ├── ISysRoleService.java │ │ │ │ │ ├── ISysTableWhiteListService.java │ │ │ │ │ ├── ISysTenantPackService.java │ │ │ │ │ ├── ISysTenantService.java │ │ │ │ │ ├── ISysThirdAccountService.java │ │ │ │ │ ├── ISysThirdAppConfigService.java │ │ │ │ │ ├── ISysUserDepPostService.java │ │ │ │ │ ├── ISysUserDepartService.java │ │ │ │ │ ├── ISysUserPositionService.java │ │ │ │ │ ├── ISysUserRoleService.java │ │ │ │ │ ├── ISysUserService.java │ │ │ │ │ ├── ISysUserTenantService.java │ │ │ │ │ ├── IThirdAppService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ImportFileServiceImpl.java │ │ │ │ │ ├── SysAnnouncementSendServiceImpl.java │ │ │ │ │ ├── SysAnnouncementServiceImpl.java │ │ │ │ │ ├── SysBaseApiImpl.java │ │ │ │ │ ├── SysCategoryServiceImpl.java │ │ │ │ │ ├── SysCheckRuleServiceImpl.java │ │ │ │ │ ├── SysCommentServiceImpl.java │ │ │ │ │ ├── SysDataLogServiceImpl.java │ │ │ │ │ ├── SysDataSourceServiceImpl.java │ │ │ │ │ ├── SysDepartPermissionServiceImpl.java │ │ │ │ │ ├── SysDepartRolePermissionServiceImpl.java │ │ │ │ │ ├── SysDepartRoleServiceImpl.java │ │ │ │ │ ├── SysDepartRoleUserServiceImpl.java │ │ │ │ │ ├── SysDepartServiceImpl.java │ │ │ │ │ ├── SysDictItemServiceImpl.java │ │ │ │ │ ├── SysDictServiceImpl.java │ │ │ │ │ ├── SysFillRuleServiceImpl.java │ │ │ │ │ ├── SysFormFileServiceImpl.java │ │ │ │ │ ├── SysGatewayRouteServiceImpl.java │ │ │ │ │ ├── SysLogServiceImpl.java │ │ │ │ │ ├── SysPackPermissionServiceImpl.java │ │ │ │ │ ├── SysPermissionDataRuleImpl.java │ │ │ │ │ ├── SysPermissionServiceImpl.java │ │ │ │ │ ├── SysPositionServiceImpl.java │ │ │ │ │ ├── SysRoleIndexServiceImpl.java │ │ │ │ │ ├── SysRolePermissionServiceImpl.java │ │ │ │ │ ├── SysRoleServiceImpl.java │ │ │ │ │ ├── SysTableWhiteListServiceImpl.java │ │ │ │ │ ├── SysTenantPackServiceImpl.java │ │ │ │ │ ├── SysTenantServiceImpl.java │ │ │ │ │ ├── SysThirdAccountServiceImpl.java │ │ │ │ │ ├── SysThirdAppConfigServiceImpl.java │ │ │ │ │ ├── SysUserDepPostServiceImpl.java │ │ │ │ │ ├── SysUserDepartServiceImpl.java │ │ │ │ │ ├── SysUserPositionServiceImpl.java │ │ │ │ │ ├── SysUserRoleServiceImpl.java │ │ │ │ │ ├── SysUserServiceImpl.java │ │ │ │ │ ├── SysUserTenantServiceImpl.java │ │ │ │ │ ├── ThirdAppDingtalkServiceImpl.java │ │ │ │ │ └── ThirdAppWechatEnterpriseServiceImpl.java │ │ │ │ ├── util/ │ │ │ │ │ ├── FindsDepartsChildrenUtil.java │ │ │ │ │ ├── HttpFileToMultipartFileUtil.java │ │ │ │ │ ├── ImportOldUserUtil.java │ │ │ │ │ ├── ImportSysUserCache.java │ │ │ │ │ ├── PermissionDataUtil.java │ │ │ │ │ ├── RandImageUtil.java │ │ │ │ │ ├── SecurityUtil.java │ │ │ │ │ └── XssUtils.java │ │ │ │ └── vo/ │ │ │ │ ├── SysChangeDepartVo.java │ │ │ │ ├── SysCommentFileVo.java │ │ │ │ ├── SysCommentVO.java │ │ │ │ ├── SysDepartExportVo.java │ │ │ │ ├── SysDepartPositionVo.java │ │ │ │ ├── SysDepartUsersVO.java │ │ │ │ ├── SysDictPage.java │ │ │ │ ├── SysPositionSelectTreeVo.java │ │ │ │ ├── SysUserDepVo.java │ │ │ │ ├── SysUserExportVo.java │ │ │ │ ├── SysUserImportVo.java │ │ │ │ ├── SysUserOnlineVO.java │ │ │ │ ├── SysUserPositionVo.java │ │ │ │ ├── SysUserRoleCountVo.java │ │ │ │ ├── SysUserRoleVO.java │ │ │ │ ├── SysUserTenantVo.java │ │ │ │ ├── UserAvatar.java │ │ │ │ ├── lowapp/ │ │ │ │ │ ├── AppExportUserVo.java │ │ │ │ │ ├── DepartAndUserInfo.java │ │ │ │ │ ├── DepartInfo.java │ │ │ │ │ ├── ExportDepartVo.java │ │ │ │ │ ├── SysDictVo.java │ │ │ │ │ └── UpdateDepartInfo.java │ │ │ │ ├── tenant/ │ │ │ │ │ ├── TenantDepartAuthInfo.java │ │ │ │ │ ├── TenantPackAuth.java │ │ │ │ │ ├── TenantPackModel.java │ │ │ │ │ ├── TenantPackUser.java │ │ │ │ │ ├── TenantPackUserCount.java │ │ │ │ │ ├── UserDepart.java │ │ │ │ │ └── UserPosition.java │ │ │ │ └── thirdapp/ │ │ │ │ ├── JdtDepartmentTreeVo.java │ │ │ │ ├── JwDepartmentTreeVo.java │ │ │ │ ├── JwSysUserDepartVo.java │ │ │ │ ├── JwUserDepartVo.java │ │ │ │ └── SyncInfoVo.java │ │ │ └── resources/ │ │ │ ├── jeecg/ │ │ │ │ ├── code-template/ │ │ │ │ │ ├── one/ │ │ │ │ │ │ └── java/ │ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ └── ${entityName}.javai │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ └── ${entityName}Mapper.xml │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── ${entityName}ServiceImpl.javai │ │ │ │ │ │ ├── uniapp/ │ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ │ └── ${entityName}List.vuei │ │ │ │ │ │ ├── vue/ │ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ │ └── ${entityName}Modal__Style#Drawer.vuei │ │ │ │ │ │ └── vue3/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ ├── one2/ │ │ │ │ │ │ └── java/ │ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ │ └── ${entityName}.javai │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ └── ${entityName}Mapper.xml │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── ${entityName}ServiceImpl.javai │ │ │ │ │ │ ├── vue/ │ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ │ └── ${entityName}Modal__Style#Drawer.vuei │ │ │ │ │ │ └── vue3/ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ ├── onetomany/ │ │ │ │ │ │ └── java/ │ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ ├── ${entityName}.javai │ │ │ │ │ │ │ └── [1-n]Entity.javai │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ │ ├── [1-n]Mapper.javai │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ ├── ${entityName}Mapper.xml │ │ │ │ │ │ │ └── [1-n]Mapper.xml │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ │ ├── [1-n]Service.javai │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ ├── ${entityName}ServiceImpl.javai │ │ │ │ │ │ │ └── [1-n]ServiceImpl.javai │ │ │ │ │ │ ├── vo/ │ │ │ │ │ │ │ └── ${entityName}Page.javai │ │ │ │ │ │ ├── vue/ │ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ │ └── vue3/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ └── onetomany2/ │ │ │ │ │ └── java/ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ${entityName}.javai │ │ │ │ │ │ └── [1-n]Entity.javai │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ ├── [1-n]Mapper.javai │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ ├── ${entityName}Mapper.xml │ │ │ │ │ │ └── [1-n]Mapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ ├── [1-n]Service.javai │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── ${entityName}ServiceImpl.javai │ │ │ │ │ │ └── [1-n]ServiceImpl.javai │ │ │ │ │ ├── vo/ │ │ │ │ │ │ └── ${entityName}Page.javai │ │ │ │ │ ├── vue/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── [1-n]List.vuei │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ └── [1-n]Modal.vuei │ │ │ │ │ └── vue3/ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ ├── [1-n]List.vuei │ │ │ │ │ └── modules/ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ └── [1-n]Modal.vuei │ │ │ │ └── code-template-online/ │ │ │ │ ├── common/ │ │ │ │ │ ├── blob.ftl │ │ │ │ │ ├── form/ │ │ │ │ │ │ ├── native/ │ │ │ │ │ │ │ ├── vue3NativeComponents.ftl │ │ │ │ │ │ │ ├── vue3NativeForm.ftl │ │ │ │ │ │ │ ├── vue3NativeImport.ftl │ │ │ │ │ │ │ ├── vue3NativeSearch.ftl │ │ │ │ │ │ │ └── vueNativeSearchStyle.ftl │ │ │ │ │ │ ├── vue3Jvxepopup.ftl │ │ │ │ │ │ ├── vue3SearchStyle.ftl │ │ │ │ │ │ └── vue3popup.ftl │ │ │ │ │ ├── init/ │ │ │ │ │ │ ├── initValue.ftl │ │ │ │ │ │ ├── initValueSub.ftl │ │ │ │ │ │ └── native/ │ │ │ │ │ │ ├── vue3NativeInitValue.ftl │ │ │ │ │ │ ├── vue3NativeMainInitValue.ftl │ │ │ │ │ │ └── vue3NativeSubInitValue.ftl │ │ │ │ │ ├── sql/ │ │ │ │ │ │ └── menu_insert.ftl │ │ │ │ │ ├── utils.ftl │ │ │ │ │ └── validatorRulesTemplate/ │ │ │ │ │ ├── core.ftl │ │ │ │ │ ├── main.ftl │ │ │ │ │ ├── native/ │ │ │ │ │ │ ├── vue3CoreNative.ftl │ │ │ │ │ │ └── vue3MainNative.ftl │ │ │ │ │ ├── sub-vue3.ftl │ │ │ │ │ └── sub.ftl │ │ │ │ ├── default/ │ │ │ │ │ ├── one/ │ │ │ │ │ │ └── java/ │ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ └── ${entityName}.javai │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ └── ${entityName}Mapper.xml │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── ${entityName}ServiceImpl.javai │ │ │ │ │ │ ├── uniapp/ │ │ │ │ │ │ │ ├── ${entityName}Form.vue │ │ │ │ │ │ │ └── ${entityName}List.vue │ │ │ │ │ │ ├── uniapp3/ │ │ │ │ │ │ │ ├── ${entityName}Data.tsi │ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ │ └── ${entityName}List.vuei │ │ │ │ │ │ ├── vue/ │ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ │ └── ${entityName}Modal__Style#Drawer.vuei │ │ │ │ │ │ ├── vue3/ │ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ │ └── components/ │ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ │ └── vue3Native/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ ├── onetomany/ │ │ │ │ │ │ └── java/ │ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ ├── ${entityName}.javai │ │ │ │ │ │ │ └── [1-n]Entity.javai │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ │ ├── [1-n]Mapper.javai │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ ├── ${entityName}Mapper.xml │ │ │ │ │ │ │ └── [1-n]Mapper.xml │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ │ ├── [1-n]Service.javai │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ ├── ${entityName}ServiceImpl.javai │ │ │ │ │ │ │ └── [1-n]ServiceImpl.javai │ │ │ │ │ │ ├── vo/ │ │ │ │ │ │ │ └── ${entityName}Page.javai │ │ │ │ │ │ └── vue/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ └── [1-n]Form.vuei │ │ │ │ │ └── tree/ │ │ │ │ │ └── java/ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── ${entityName}.javai │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ └── ${entityName}Mapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── ${entityName}ServiceImpl.javai │ │ │ │ │ ├── vue/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ ├── vue3/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ │ └── vue3Native/ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ └── components/ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ └── ${entityName}Modal.vuei │ │ │ │ ├── erp/ │ │ │ │ │ └── onetomany/ │ │ │ │ │ └── java/ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ${entityName}.javai │ │ │ │ │ │ └── [1-n]Entity.javai │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ ├── [1-n]Mapper.javai │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ ├── ${entityName}Mapper.xml │ │ │ │ │ │ └── [1-n]Mapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ ├── [1-n]Service.javai │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── ${entityName}ServiceImpl.javai │ │ │ │ │ │ └── [1-n]ServiceImpl.javai │ │ │ │ │ ├── vue/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ ├── [1-n]List.vuei │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ └── [1-n]Modal.vuei │ │ │ │ │ ├── vue3/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ ├── [1-n]List.vuei │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ └── [1-n]Modal.vuei │ │ │ │ │ └── vue3Native/ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ ├── [1-n]List.vuei │ │ │ │ │ └── components/ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ ├── [1-n]Form.vuei │ │ │ │ │ └── [1-n]Modal.vuei │ │ │ │ ├── inner-table/ │ │ │ │ │ └── onetomany/ │ │ │ │ │ └── java/ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ${entityName}.javai │ │ │ │ │ │ └── [1-n]Entity.javai │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ ├── [1-n]Mapper.javai │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ ├── ${entityName}Mapper.xml │ │ │ │ │ │ └── [1-n]Mapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ ├── [1-n]Service.javai │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── ${entityName}ServiceImpl.javai │ │ │ │ │ │ └── [1-n]ServiceImpl.javai │ │ │ │ │ ├── vo/ │ │ │ │ │ │ └── ${entityName}Page.javai │ │ │ │ │ ├── vue/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ ├── modules/ │ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ │ └── [1-n]Form.vuei │ │ │ │ │ │ └── subTables/ │ │ │ │ │ │ └── [1-n]SubTable.vuei │ │ │ │ │ └── vue3/ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ └── [1-n]Form.vuei │ │ │ │ │ └── subTables/ │ │ │ │ │ └── [1-n]SubTable.vuei │ │ │ │ ├── jvxe/ │ │ │ │ │ └── onetomany/ │ │ │ │ │ └── java/ │ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ │ └── ${entityPackage}/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ${entityName}.javai │ │ │ │ │ │ └── [1-n]Entity.javai │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ │ ├── [1-n]Mapper.javai │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ ├── ${entityName}Mapper.xml │ │ │ │ │ │ └── [1-n]Mapper.xml │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ │ ├── [1-n]Service.javai │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── ${entityName}ServiceImpl.javai │ │ │ │ │ │ └── [1-n]ServiceImpl.javai │ │ │ │ │ ├── vo/ │ │ │ │ │ │ └── ${entityName}Page.javai │ │ │ │ │ ├── vue/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ └── [1-n]Form.vuei │ │ │ │ │ ├── vue3/ │ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ │ └── [1-n]Form.vuei │ │ │ │ │ └── vue3Native/ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ └── components/ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ └── [1-n]Form.vuei │ │ │ │ └── tab/ │ │ │ │ └── onetomany/ │ │ │ │ └── java/ │ │ │ │ └── ${bussiPackage}/ │ │ │ │ └── ${entityPackage}/ │ │ │ │ ├── controller/ │ │ │ │ │ └── ${entityName}Controller.javai │ │ │ │ ├── entity/ │ │ │ │ │ ├── ${entityName}.javai │ │ │ │ │ └── [1-n]Entity.javai │ │ │ │ ├── mapper/ │ │ │ │ │ ├── ${entityName}Mapper.javai │ │ │ │ │ ├── [1-n]Mapper.javai │ │ │ │ │ └── xml/ │ │ │ │ │ ├── ${entityName}Mapper.xml │ │ │ │ │ └── [1-n]Mapper.xml │ │ │ │ ├── service/ │ │ │ │ │ ├── I${entityName}Service.javai │ │ │ │ │ ├── [1-n]Service.javai │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ${entityName}ServiceImpl.javai │ │ │ │ │ └── [1-n]ServiceImpl.javai │ │ │ │ ├── vo/ │ │ │ │ │ └── ${entityName}Page.javai │ │ │ │ ├── vue/ │ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ │ └── modules/ │ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ │ └── [1-n]Form.vuei │ │ │ │ └── vue3/ │ │ │ │ ├── ${entityName}List.vuei │ │ │ │ ├── ${entityName}__api.tsi │ │ │ │ ├── ${entityName}__data.tsi │ │ │ │ ├── V${currentDate}_1__menu_insert_${entityName}.sql │ │ │ │ └── components/ │ │ │ │ ├── ${entityName}Form.vuei │ │ │ │ ├── ${entityName}Modal.vuei │ │ │ │ └── [1-n]Form.vuei │ │ │ ├── static/ │ │ │ │ ├── demo1.html │ │ │ │ ├── generic/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── build/ │ │ │ │ │ │ ├── pdf.js │ │ │ │ │ │ └── pdf.worker.js │ │ │ │ │ └── web/ │ │ │ │ │ ├── cmaps/ │ │ │ │ │ │ ├── 78-EUC-H.bcmap │ │ │ │ │ │ ├── 78-EUC-V.bcmap │ │ │ │ │ │ ├── 78-H.bcmap │ │ │ │ │ │ ├── 78-RKSJ-H.bcmap │ │ │ │ │ │ ├── 78-RKSJ-V.bcmap │ │ │ │ │ │ ├── 78-V.bcmap │ │ │ │ │ │ ├── 78ms-RKSJ-H.bcmap │ │ │ │ │ │ ├── 78ms-RKSJ-V.bcmap │ │ │ │ │ │ ├── 83pv-RKSJ-H.bcmap │ │ │ │ │ │ ├── 90ms-RKSJ-H.bcmap │ │ │ │ │ │ ├── 90ms-RKSJ-V.bcmap │ │ │ │ │ │ ├── 90msp-RKSJ-H.bcmap │ │ │ │ │ │ ├── 90msp-RKSJ-V.bcmap │ │ │ │ │ │ ├── 90pv-RKSJ-H.bcmap │ │ │ │ │ │ ├── 90pv-RKSJ-V.bcmap │ │ │ │ │ │ ├── Add-H.bcmap │ │ │ │ │ │ ├── Add-RKSJ-H.bcmap │ │ │ │ │ │ ├── Add-RKSJ-V.bcmap │ │ │ │ │ │ ├── Add-V.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-0.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-1.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-2.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-3.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-4.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-5.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-6.bcmap │ │ │ │ │ │ ├── Adobe-CNS1-UCS2.bcmap │ │ │ │ │ │ ├── Adobe-GB1-0.bcmap │ │ │ │ │ │ ├── Adobe-GB1-1.bcmap │ │ │ │ │ │ ├── Adobe-GB1-2.bcmap │ │ │ │ │ │ ├── Adobe-GB1-3.bcmap │ │ │ │ │ │ ├── Adobe-GB1-4.bcmap │ │ │ │ │ │ ├── Adobe-GB1-5.bcmap │ │ │ │ │ │ ├── Adobe-GB1-UCS2.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-0.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-1.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-2.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-3.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-4.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-5.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-6.bcmap │ │ │ │ │ │ ├── Adobe-Japan1-UCS2.bcmap │ │ │ │ │ │ ├── Adobe-Korea1-0.bcmap │ │ │ │ │ │ ├── Adobe-Korea1-1.bcmap │ │ │ │ │ │ ├── Adobe-Korea1-2.bcmap │ │ │ │ │ │ ├── Adobe-Korea1-UCS2.bcmap │ │ │ │ │ │ ├── B5-H.bcmap │ │ │ │ │ │ ├── B5-V.bcmap │ │ │ │ │ │ ├── B5pc-H.bcmap │ │ │ │ │ │ ├── B5pc-V.bcmap │ │ │ │ │ │ ├── CNS-EUC-H.bcmap │ │ │ │ │ │ ├── CNS-EUC-V.bcmap │ │ │ │ │ │ ├── CNS1-H.bcmap │ │ │ │ │ │ ├── CNS1-V.bcmap │ │ │ │ │ │ ├── CNS2-H.bcmap │ │ │ │ │ │ ├── CNS2-V.bcmap │ │ │ │ │ │ ├── ETHK-B5-H.bcmap │ │ │ │ │ │ ├── ETHK-B5-V.bcmap │ │ │ │ │ │ ├── ETen-B5-H.bcmap │ │ │ │ │ │ ├── ETen-B5-V.bcmap │ │ │ │ │ │ ├── ETenms-B5-H.bcmap │ │ │ │ │ │ ├── ETenms-B5-V.bcmap │ │ │ │ │ │ ├── EUC-H.bcmap │ │ │ │ │ │ ├── EUC-V.bcmap │ │ │ │ │ │ ├── Ext-H.bcmap │ │ │ │ │ │ ├── Ext-RKSJ-H.bcmap │ │ │ │ │ │ ├── Ext-RKSJ-V.bcmap │ │ │ │ │ │ ├── Ext-V.bcmap │ │ │ │ │ │ ├── GB-EUC-H.bcmap │ │ │ │ │ │ ├── GB-EUC-V.bcmap │ │ │ │ │ │ ├── GB-H.bcmap │ │ │ │ │ │ ├── GB-V.bcmap │ │ │ │ │ │ ├── GBK-EUC-H.bcmap │ │ │ │ │ │ ├── GBK-EUC-V.bcmap │ │ │ │ │ │ ├── GBK2K-H.bcmap │ │ │ │ │ │ ├── GBK2K-V.bcmap │ │ │ │ │ │ ├── GBKp-EUC-H.bcmap │ │ │ │ │ │ ├── GBKp-EUC-V.bcmap │ │ │ │ │ │ ├── GBT-EUC-H.bcmap │ │ │ │ │ │ ├── GBT-EUC-V.bcmap │ │ │ │ │ │ ├── GBT-H.bcmap │ │ │ │ │ │ ├── GBT-V.bcmap │ │ │ │ │ │ ├── GBTpc-EUC-H.bcmap │ │ │ │ │ │ ├── GBTpc-EUC-V.bcmap │ │ │ │ │ │ ├── GBpc-EUC-H.bcmap │ │ │ │ │ │ ├── GBpc-EUC-V.bcmap │ │ │ │ │ │ ├── H.bcmap │ │ │ │ │ │ ├── HKdla-B5-H.bcmap │ │ │ │ │ │ ├── HKdla-B5-V.bcmap │ │ │ │ │ │ ├── HKdlb-B5-H.bcmap │ │ │ │ │ │ ├── HKdlb-B5-V.bcmap │ │ │ │ │ │ ├── HKgccs-B5-H.bcmap │ │ │ │ │ │ ├── HKgccs-B5-V.bcmap │ │ │ │ │ │ ├── HKm314-B5-H.bcmap │ │ │ │ │ │ ├── HKm314-B5-V.bcmap │ │ │ │ │ │ ├── HKm471-B5-H.bcmap │ │ │ │ │ │ ├── HKm471-B5-V.bcmap │ │ │ │ │ │ ├── HKscs-B5-H.bcmap │ │ │ │ │ │ ├── HKscs-B5-V.bcmap │ │ │ │ │ │ ├── Hankaku.bcmap │ │ │ │ │ │ ├── Hiragana.bcmap │ │ │ │ │ │ ├── KSC-EUC-H.bcmap │ │ │ │ │ │ ├── KSC-EUC-V.bcmap │ │ │ │ │ │ ├── KSC-H.bcmap │ │ │ │ │ │ ├── KSC-Johab-H.bcmap │ │ │ │ │ │ ├── KSC-Johab-V.bcmap │ │ │ │ │ │ ├── KSC-V.bcmap │ │ │ │ │ │ ├── KSCms-UHC-H.bcmap │ │ │ │ │ │ ├── KSCms-UHC-HW-H.bcmap │ │ │ │ │ │ ├── KSCms-UHC-HW-V.bcmap │ │ │ │ │ │ ├── KSCms-UHC-V.bcmap │ │ │ │ │ │ ├── KSCpc-EUC-H.bcmap │ │ │ │ │ │ ├── KSCpc-EUC-V.bcmap │ │ │ │ │ │ ├── Katakana.bcmap │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── NWP-H.bcmap │ │ │ │ │ │ ├── NWP-V.bcmap │ │ │ │ │ │ ├── RKSJ-H.bcmap │ │ │ │ │ │ ├── RKSJ-V.bcmap │ │ │ │ │ │ ├── Roman.bcmap │ │ │ │ │ │ ├── UniCNS-UCS2-H.bcmap │ │ │ │ │ │ ├── UniCNS-UCS2-V.bcmap │ │ │ │ │ │ ├── UniCNS-UTF16-H.bcmap │ │ │ │ │ │ ├── UniCNS-UTF16-V.bcmap │ │ │ │ │ │ ├── UniCNS-UTF32-H.bcmap │ │ │ │ │ │ ├── UniCNS-UTF32-V.bcmap │ │ │ │ │ │ ├── UniCNS-UTF8-H.bcmap │ │ │ │ │ │ ├── UniCNS-UTF8-V.bcmap │ │ │ │ │ │ ├── UniGB-UCS2-H.bcmap │ │ │ │ │ │ ├── UniGB-UCS2-V.bcmap │ │ │ │ │ │ ├── UniGB-UTF16-H.bcmap │ │ │ │ │ │ ├── UniGB-UTF16-V.bcmap │ │ │ │ │ │ ├── UniGB-UTF32-H.bcmap │ │ │ │ │ │ ├── UniGB-UTF32-V.bcmap │ │ │ │ │ │ ├── UniGB-UTF8-H.bcmap │ │ │ │ │ │ ├── UniGB-UTF8-V.bcmap │ │ │ │ │ │ ├── UniJIS-UCS2-H.bcmap │ │ │ │ │ │ ├── UniJIS-UCS2-HW-H.bcmap │ │ │ │ │ │ ├── UniJIS-UCS2-HW-V.bcmap │ │ │ │ │ │ ├── UniJIS-UCS2-V.bcmap │ │ │ │ │ │ ├── UniJIS-UTF16-H.bcmap │ │ │ │ │ │ ├── UniJIS-UTF16-V.bcmap │ │ │ │ │ │ ├── UniJIS-UTF32-H.bcmap │ │ │ │ │ │ ├── UniJIS-UTF32-V.bcmap │ │ │ │ │ │ ├── UniJIS-UTF8-H.bcmap │ │ │ │ │ │ ├── UniJIS-UTF8-V.bcmap │ │ │ │ │ │ ├── UniJIS2004-UTF16-H.bcmap │ │ │ │ │ │ ├── UniJIS2004-UTF16-V.bcmap │ │ │ │ │ │ ├── UniJIS2004-UTF32-H.bcmap │ │ │ │ │ │ ├── UniJIS2004-UTF32-V.bcmap │ │ │ │ │ │ ├── UniJIS2004-UTF8-H.bcmap │ │ │ │ │ │ ├── UniJIS2004-UTF8-V.bcmap │ │ │ │ │ │ ├── UniJISPro-UCS2-HW-V.bcmap │ │ │ │ │ │ ├── UniJISPro-UCS2-V.bcmap │ │ │ │ │ │ ├── UniJISPro-UTF8-V.bcmap │ │ │ │ │ │ ├── UniJISX0213-UTF32-H.bcmap │ │ │ │ │ │ ├── UniJISX0213-UTF32-V.bcmap │ │ │ │ │ │ ├── UniJISX02132004-UTF32-H.bcmap │ │ │ │ │ │ ├── UniJISX02132004-UTF32-V.bcmap │ │ │ │ │ │ ├── UniKS-UCS2-H.bcmap │ │ │ │ │ │ ├── UniKS-UCS2-V.bcmap │ │ │ │ │ │ ├── UniKS-UTF16-H.bcmap │ │ │ │ │ │ ├── UniKS-UTF16-V.bcmap │ │ │ │ │ │ ├── UniKS-UTF32-H.bcmap │ │ │ │ │ │ ├── UniKS-UTF32-V.bcmap │ │ │ │ │ │ ├── UniKS-UTF8-H.bcmap │ │ │ │ │ │ ├── UniKS-UTF8-V.bcmap │ │ │ │ │ │ ├── V.bcmap │ │ │ │ │ │ └── WP-Symbol.bcmap │ │ │ │ │ ├── compatibility.js │ │ │ │ │ ├── debugger.js │ │ │ │ │ ├── images/ │ │ │ │ │ │ ├── grab.cur │ │ │ │ │ │ └── grabbing.cur │ │ │ │ │ ├── l10n.js │ │ │ │ │ ├── locale/ │ │ │ │ │ │ ├── locale.properties │ │ │ │ │ │ └── zh-CN/ │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── viewer.css │ │ │ │ │ ├── viewer.html │ │ │ │ │ └── viewer.js │ │ │ │ └── view/ │ │ │ │ └── userlist.html │ │ │ └── templates/ │ │ │ ├── announcement/ │ │ │ │ └── showContent.ftl │ │ │ ├── demo3.ftl │ │ │ ├── pdfPreviewIframe.ftl │ │ │ └── thirdLogin.ftl │ │ ├── jeecg-system-start/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── jeecg/ │ │ │ │ │ ├── JeecgSystemApplication.java │ │ │ │ │ ├── codegenerate/ │ │ │ │ │ │ ├── JeecgOneGUI.java │ │ │ │ │ │ └── JeecgOneToMainUtil.java │ │ │ │ │ └── config/ │ │ │ │ │ └── flyway/ │ │ │ │ │ └── FlywayConfig.java │ │ │ │ └── resources/ │ │ │ │ ├── application-dev.yml │ │ │ │ ├── application-dm8.yml │ │ │ │ ├── application-docker.yml │ │ │ │ ├── application-kingbase8.yml │ │ │ │ ├── application-oracle.yml │ │ │ │ ├── application-postgresql.yml │ │ │ │ ├── application-prod.yml │ │ │ │ ├── application-sqlserver.yml │ │ │ │ ├── application-test.yml │ │ │ │ ├── application.yml │ │ │ │ ├── banner.txt │ │ │ │ ├── flyway/ │ │ │ │ │ └── sql/ │ │ │ │ │ └── mysql/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── V3.8.0_0__clear_flyway_sql.md │ │ │ │ │ ├── V3.8.0_1__airag_add_menu.sql │ │ │ │ │ ├── V3.8.0_2__airag_init_db.sql │ │ │ │ │ ├── V3.8.1_1__all_upgrade.sql │ │ │ │ │ ├── V3.8.1_2__openapi.sql │ │ │ │ │ ├── V3.8.2_1__all_upgrade.sql │ │ │ │ │ ├── V3.8.3_0__all_upgrade.sql │ │ │ │ │ ├── V3.8.3_1__upgrade_jimubi.sql │ │ │ │ │ ├── V3.9.0_0__all_upgrade.sql │ │ │ │ │ ├── V3.9.0_1__mcp_demo.sql │ │ │ │ │ ├── V3.9.0_2__upd_dep_category.sql │ │ │ │ │ ├── V3.9.0_3__add_aiflow_permission.sql │ │ │ │ │ ├── V3.9.0_4__add_onlineuser_perms.sql │ │ │ │ │ ├── V3.9.1_0__all_upgrade.sql │ │ │ │ │ └── V3.9.1_1__add_aiapp_img_gen.sql │ │ │ │ ├── jeecg/ │ │ │ │ │ ├── jeecg_config.properties │ │ │ │ │ └── jeecg_database.properties │ │ │ │ └── logback-spring.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jeecg/ │ │ │ ├── TestMain.java │ │ │ ├── modules/ │ │ │ │ ├── message/ │ │ │ │ │ └── test/ │ │ │ │ │ └── SendMessageTest.java │ │ │ │ ├── openapi/ │ │ │ │ │ └── test/ │ │ │ │ │ └── SampleOpenApiTest.java │ │ │ │ └── system/ │ │ │ │ └── test/ │ │ │ │ ├── MockControllerTest.java │ │ │ │ ├── SampleTest.java │ │ │ │ ├── SysTableWhiteCheckTest.java │ │ │ │ └── SysUserApiTest.java │ │ │ └── smallTools/ │ │ │ ├── TestSqlHandle.java │ │ │ └── TestStr.java │ │ └── pom.xml │ ├── jeecg-server-cloud/ │ │ ├── docker-compose.yml │ │ ├── jeecg-cloud-gateway/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── jeecg/ │ │ │ │ │ ├── JeecgGatewayApplication.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── GatewayRoutersConfig.java │ │ │ │ │ │ ├── RateLimiterConfiguration.java │ │ │ │ │ │ └── RouterDataType.java │ │ │ │ │ ├── fallback/ │ │ │ │ │ │ ├── FallbackController.java │ │ │ │ │ │ ├── HystrixFallbackHandler.java │ │ │ │ │ │ └── sentinel/ │ │ │ │ │ │ ├── GatewaySentinelExceptionConfig.java │ │ │ │ │ │ └── SentinelBlockRequestHandler.java │ │ │ │ │ ├── filter/ │ │ │ │ │ │ ├── GlobalAccessTokenFilter.java │ │ │ │ │ │ └── SentinelFilterContextConfig.java │ │ │ │ │ ├── handler/ │ │ │ │ │ │ ├── LoderRouderHandler.java │ │ │ │ │ │ └── swagger/ │ │ │ │ │ │ ├── MySwaggerResourceProvider.java │ │ │ │ │ │ └── SwaggerResourceController.java │ │ │ │ │ └── loader/ │ │ │ │ │ ├── DynamicRouteLoader.java │ │ │ │ │ ├── repository/ │ │ │ │ │ │ ├── DynamicRouteService.java │ │ │ │ │ │ └── MyInMemoryRouteDefinitionRepository.java │ │ │ │ │ └── vo/ │ │ │ │ │ ├── GatewayRouteVo.java │ │ │ │ │ ├── MyRouteDefinition.java │ │ │ │ │ └── PredicatesVo.java │ │ │ │ └── resources/ │ │ │ │ ├── application.yml │ │ │ │ └── logback-spring.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── TestRoutes.java │ │ ├── jeecg-cloud-nacos/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── docs/ │ │ │ │ ├── config/ │ │ │ │ │ ├── jeecg-dev.yaml │ │ │ │ │ ├── jeecg-gateway-dev.yaml │ │ │ │ │ ├── jeecg-gateway-router.json │ │ │ │ │ └── jeecg.yaml │ │ │ │ └── db/ │ │ │ │ └── nacos_dm.sql │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── nacos/ │ │ │ │ └── JeecgNacosApplication.java │ │ │ └── resources/ │ │ │ ├── application-dm.yml │ │ │ ├── application-mysql.yml │ │ │ └── application.yml │ │ ├── jeecg-demo-cloud-start/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── jeecg/ │ │ │ │ └── JeecgDemoCloudApplication.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ │ ├── jeecg-system-cloud-start/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── jeecg/ │ │ │ │ └── JeecgSystemCloudApplication.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── jeecg/ │ │ │ │ ├── jeecg_config.properties │ │ │ │ └── jeecg_database.properties │ │ │ └── logback-spring.xml │ │ ├── jeecg-visual/ │ │ │ ├── jeecg-cloud-monitor/ │ │ │ │ ├── README.md │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── jeecg/ │ │ │ │ │ └── monitor/ │ │ │ │ │ ├── JeecgMonitorApplication.java │ │ │ │ │ └── config/ │ │ │ │ │ └── SecuritySecureConfig.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ ├── jeecg-cloud-sentinel/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── alibaba/ │ │ │ │ │ └── csp/ │ │ │ │ │ └── sentinel/ │ │ │ │ │ └── dashboard/ │ │ │ │ │ ├── JeecgSentinelApplication.java │ │ │ │ │ ├── constants/ │ │ │ │ │ │ └── SentinelConStants.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── AuthorityRuleController.java │ │ │ │ │ │ ├── DegradeController.java │ │ │ │ │ │ ├── ParamFlowRuleController.java │ │ │ │ │ │ ├── SystemController.java │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ └── BaseRuleController.java │ │ │ │ │ │ ├── gateway/ │ │ │ │ │ │ │ ├── GatewayApiController.java │ │ │ │ │ │ │ └── GatewayFlowRuleController.java │ │ │ │ │ │ └── v2/ │ │ │ │ │ │ └── FlowControllerV2.java │ │ │ │ │ └── rule/ │ │ │ │ │ └── nacos/ │ │ │ │ │ ├── NacosConfigProperties.java │ │ │ │ │ ├── SentinelConfig.java │ │ │ │ │ ├── authority/ │ │ │ │ │ │ ├── AuthorityRuleNacosProvider.java │ │ │ │ │ │ └── AuthorityRuleNacosPublisher.java │ │ │ │ │ ├── degrade/ │ │ │ │ │ │ ├── DegradeRuleNacosProvider.java │ │ │ │ │ │ └── DegradeRuleNacosPublisher.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── AuthorityRuleCorrectEntity.java │ │ │ │ │ │ └── ParamFlowRuleCorrectEntity.java │ │ │ │ │ ├── flow/ │ │ │ │ │ │ ├── FlowRuleNacosProvider.java │ │ │ │ │ │ └── FlowRuleNacosPublisher.java │ │ │ │ │ ├── gateway/ │ │ │ │ │ │ ├── GateWayApiNacosProvider.java │ │ │ │ │ │ ├── GateWayApiNacosPublisher.java │ │ │ │ │ │ ├── GateWayFlowRulesNacosProvider.java │ │ │ │ │ │ └── GateWayFlowRulesNacosPublisher.java │ │ │ │ │ ├── paramflow/ │ │ │ │ │ │ ├── ParamFlowRuleNacosProvider.java │ │ │ │ │ │ └── ParamFlowRuleNacosPublisher.java │ │ │ │ │ └── system/ │ │ │ │ │ ├── SystemRuleNacosProvider.java │ │ │ │ │ └── SystemRuleNacosPublisher.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ ├── jeecg-cloud-test/ │ │ │ │ ├── jeecg-cloud-test-more/ │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── jeecg/ │ │ │ │ │ └── modules/ │ │ │ │ │ └── test/ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ └── CloudConstant.java │ │ │ │ │ ├── feign/ │ │ │ │ │ │ ├── client/ │ │ │ │ │ │ │ ├── JeecgTestClient.java │ │ │ │ │ │ │ └── JeecgTestClientDyn.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── JeecgTestFeignController.java │ │ │ │ │ │ ├── factory/ │ │ │ │ │ │ │ └── JeecgTestClientFactory.java │ │ │ │ │ │ └── fallback/ │ │ │ │ │ │ └── JeecgTestFallback.java │ │ │ │ │ ├── lock/ │ │ │ │ │ │ └── DemoLockTest.java │ │ │ │ │ └── xxljob/ │ │ │ │ │ ├── DemoJobHandler.java │ │ │ │ │ └── XxclJobTest.java │ │ │ │ ├── jeecg-cloud-test-rabbitmq/ │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── jeecg/ │ │ │ │ │ └── modules/ │ │ │ │ │ └── test/ │ │ │ │ │ └── rabbitmq/ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ └── CloudConstant.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── JeecgMqTestController.java │ │ │ │ │ ├── event/ │ │ │ │ │ │ └── DemoBusEvent.java │ │ │ │ │ └── listener/ │ │ │ │ │ ├── HelloReceiver1.java │ │ │ │ │ ├── HelloReceiver2.java │ │ │ │ │ ├── HelloReceiver3.java │ │ │ │ │ └── HelloTimeReceiver.java │ │ │ │ ├── jeecg-cloud-test-rocketmq/ │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── jeecg/ │ │ │ │ │ └── modules/ │ │ │ │ │ └── test/ │ │ │ │ │ └── rocketmq/ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ └── CloudConstant.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── JeecgMqTestController.java │ │ │ │ │ ├── event/ │ │ │ │ │ │ └── DemoBusEvent.java │ │ │ │ │ └── listener/ │ │ │ │ │ ├── HelloReceiver1.java │ │ │ │ │ ├── HelloReceiver2.java │ │ │ │ │ ├── HelloReceiver3.java │ │ │ │ │ └── HelloTimeReceiver.java │ │ │ │ ├── jeecg-cloud-test-seata/ │ │ │ │ │ ├── db/ │ │ │ │ │ │ └── seata.sql │ │ │ │ │ ├── jeecg-cloud-test-seata-account/ │ │ │ │ │ │ ├── pom.xml │ │ │ │ │ │ └── src/ │ │ │ │ │ │ └── main/ │ │ │ │ │ │ ├── java/ │ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ │ └── jeecg/ │ │ │ │ │ │ │ ├── SeataAccountApplication.java │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ │ └── seata/ │ │ │ │ │ │ │ └── account/ │ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ │ └── SeataAccountController.java │ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ │ └── SeataAccount.java │ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ │ └── SeataAccountMapper.java │ │ │ │ │ │ │ └── service/ │ │ │ │ │ │ │ ├── SeataAccountService.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── SeataAccountServiceImpl.java │ │ │ │ │ │ └── resources/ │ │ │ │ │ │ ├── application.yml │ │ │ │ │ │ └── sql/ │ │ │ │ │ │ └── schema-account.sql │ │ │ │ │ ├── jeecg-cloud-test-seata-order/ │ │ │ │ │ │ ├── pom.xml │ │ │ │ │ │ └── src/ │ │ │ │ │ │ └── main/ │ │ │ │ │ │ ├── java/ │ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ │ └── jeecg/ │ │ │ │ │ │ │ ├── SeataOrderApplication.java │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ │ └── seata/ │ │ │ │ │ │ │ └── order/ │ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ │ └── SeataOrderController.java │ │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ │ ├── PlaceOrderRequest.java │ │ │ │ │ │ │ │ ├── ReduceBalanceRequest.java │ │ │ │ │ │ │ │ └── ReduceStockRequest.java │ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ │ └── SeataOrder.java │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ └── OrderStatus.java │ │ │ │ │ │ │ ├── feign/ │ │ │ │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ │ │ │ └── ProductClient.java │ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ │ └── SeataOrderMapper.java │ │ │ │ │ │ │ └── service/ │ │ │ │ │ │ │ ├── SeataOrderService.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── SeataOrderServiceImpl.java │ │ │ │ │ │ └── resources/ │ │ │ │ │ │ ├── application.yml │ │ │ │ │ │ └── sql/ │ │ │ │ │ │ └── schema-order.sql │ │ │ │ │ ├── jeecg-cloud-test-seata-product/ │ │ │ │ │ │ ├── pom.xml │ │ │ │ │ │ └── src/ │ │ │ │ │ │ └── main/ │ │ │ │ │ │ ├── java/ │ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ │ └── jeecg/ │ │ │ │ │ │ │ ├── SeataProductApplication.java │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ │ └── seata/ │ │ │ │ │ │ │ └── product/ │ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ │ └── SeataProductController.java │ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ │ └── SeataProduct.java │ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ │ └── SeataProductMapper.java │ │ │ │ │ │ │ └── service/ │ │ │ │ │ │ │ ├── SeataProductService.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── SeataProductServiceImpl.java │ │ │ │ │ │ └── resources/ │ │ │ │ │ │ ├── application.yml │ │ │ │ │ │ └── sql/ │ │ │ │ │ │ └── schema-product.sql │ │ │ │ │ └── pom.xml │ │ │ │ ├── jeecg-cloud-test-shardingsphere/ │ │ │ │ │ ├── README-ShardingSphere配置说明.md │ │ │ │ │ ├── doc/ │ │ │ │ │ │ └── db.sql │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ └── jeecg/ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ └── sharding/ │ │ │ │ │ │ ├── algorithm/ │ │ │ │ │ │ │ └── StandardModTableShardAlgorithm.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ └── JeecgShardingDemoController.java │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ └── ShardingSysLog.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── ShardingSysLogMapper.java │ │ │ │ │ │ │ └── xml/ │ │ │ │ │ │ │ └── ShardingSysLogMapper.xml │ │ │ │ │ │ └── service/ │ │ │ │ │ │ ├── IShardingSysLogService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── ShardingSysLogServiceImpl.java │ │ │ │ │ └── resources/ │ │ │ │ │ ├── sharding-multi.yaml │ │ │ │ │ └── sharding.yaml │ │ │ │ └── pom.xml │ │ │ ├── jeecg-cloud-xxljob/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── doc/ │ │ │ │ │ └── db/ │ │ │ │ │ └── tables_xxl_job.sql │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── xxl/ │ │ │ │ │ └── job/ │ │ │ │ │ └── admin/ │ │ │ │ │ ├── XxlJobAdminApplication.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ ├── JobApiController.java │ │ │ │ │ │ ├── JobCodeController.java │ │ │ │ │ │ ├── JobGroupController.java │ │ │ │ │ │ ├── JobInfoController.java │ │ │ │ │ │ ├── JobLogController.java │ │ │ │ │ │ ├── UserController.java │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ └── PermissionLimit.java │ │ │ │ │ │ ├── interceptor/ │ │ │ │ │ │ │ ├── CookieInterceptor.java │ │ │ │ │ │ │ ├── PermissionInterceptor.java │ │ │ │ │ │ │ └── WebMvcConfig.java │ │ │ │ │ │ └── resolver/ │ │ │ │ │ │ └── WebExceptionResolver.java │ │ │ │ │ ├── core/ │ │ │ │ │ │ ├── alarm/ │ │ │ │ │ │ │ ├── JobAlarm.java │ │ │ │ │ │ │ ├── JobAlarmer.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ └── EmailJobAlarm.java │ │ │ │ │ │ ├── complete/ │ │ │ │ │ │ │ └── XxlJobCompleter.java │ │ │ │ │ │ ├── conf/ │ │ │ │ │ │ │ └── XxlJobAdminConfig.java │ │ │ │ │ │ ├── cron/ │ │ │ │ │ │ │ └── CronExpression.java │ │ │ │ │ │ ├── exception/ │ │ │ │ │ │ │ └── XxlJobException.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── XxlJobGroup.java │ │ │ │ │ │ │ ├── XxlJobInfo.java │ │ │ │ │ │ │ ├── XxlJobLog.java │ │ │ │ │ │ │ ├── XxlJobLogGlue.java │ │ │ │ │ │ │ ├── XxlJobLogReport.java │ │ │ │ │ │ │ ├── XxlJobRegistry.java │ │ │ │ │ │ │ └── XxlJobUser.java │ │ │ │ │ │ ├── route/ │ │ │ │ │ │ │ ├── ExecutorRouteStrategyEnum.java │ │ │ │ │ │ │ ├── ExecutorRouter.java │ │ │ │ │ │ │ └── strategy/ │ │ │ │ │ │ │ ├── ExecutorRouteBusyover.java │ │ │ │ │ │ │ ├── ExecutorRouteConsistentHash.java │ │ │ │ │ │ │ ├── ExecutorRouteFailover.java │ │ │ │ │ │ │ ├── ExecutorRouteFirst.java │ │ │ │ │ │ │ ├── ExecutorRouteLFU.java │ │ │ │ │ │ │ ├── ExecutorRouteLRU.java │ │ │ │ │ │ │ ├── ExecutorRouteLast.java │ │ │ │ │ │ │ ├── ExecutorRouteRandom.java │ │ │ │ │ │ │ └── ExecutorRouteRound.java │ │ │ │ │ │ ├── scheduler/ │ │ │ │ │ │ │ ├── MisfireStrategyEnum.java │ │ │ │ │ │ │ ├── ScheduleTypeEnum.java │ │ │ │ │ │ │ └── XxlJobScheduler.java │ │ │ │ │ │ ├── thread/ │ │ │ │ │ │ │ ├── JobCompleteHelper.java │ │ │ │ │ │ │ ├── JobFailMonitorHelper.java │ │ │ │ │ │ │ ├── JobLogReportHelper.java │ │ │ │ │ │ │ ├── JobRegistryHelper.java │ │ │ │ │ │ │ ├── JobScheduleHelper.java │ │ │ │ │ │ │ └── JobTriggerPoolHelper.java │ │ │ │ │ │ ├── trigger/ │ │ │ │ │ │ │ ├── TriggerTypeEnum.java │ │ │ │ │ │ │ └── XxlJobTrigger.java │ │ │ │ │ │ └── util/ │ │ │ │ │ │ ├── CookieUtil.java │ │ │ │ │ │ ├── FtlUtil.java │ │ │ │ │ │ ├── I18nUtil.java │ │ │ │ │ │ ├── JacksonUtil.java │ │ │ │ │ │ └── LocalCacheUtil.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── XxlJobGroupDao.java │ │ │ │ │ │ ├── XxlJobInfoDao.java │ │ │ │ │ │ ├── XxlJobLogDao.java │ │ │ │ │ │ ├── XxlJobLogGlueDao.java │ │ │ │ │ │ ├── XxlJobLogReportDao.java │ │ │ │ │ │ ├── XxlJobRegistryDao.java │ │ │ │ │ │ └── XxlJobUserDao.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── LoginService.java │ │ │ │ │ ├── XxlJobService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── AdminBizImpl.java │ │ │ │ │ └── XxlJobServiceImpl.java │ │ │ │ └── resources/ │ │ │ │ ├── application.yml │ │ │ │ ├── i18n/ │ │ │ │ │ ├── message_en.properties │ │ │ │ │ ├── message_zh_CN.properties │ │ │ │ │ └── message_zh_TC.properties │ │ │ │ ├── logback.xml │ │ │ │ ├── mybatis-mapper/ │ │ │ │ │ ├── XxlJobGroupMapper.xml │ │ │ │ │ ├── XxlJobInfoMapper.xml │ │ │ │ │ ├── XxlJobLogGlueMapper.xml │ │ │ │ │ ├── XxlJobLogMapper.xml │ │ │ │ │ ├── XxlJobLogReportMapper.xml │ │ │ │ │ ├── XxlJobRegistryMapper.xml │ │ │ │ │ └── XxlJobUserMapper.xml │ │ │ │ ├── static/ │ │ │ │ │ ├── adminlte/ │ │ │ │ │ │ ├── bower_components/ │ │ │ │ │ │ │ ├── PACE/ │ │ │ │ │ │ │ │ └── themes/ │ │ │ │ │ │ │ │ └── blue/ │ │ │ │ │ │ │ │ └── pace-theme-flash.css │ │ │ │ │ │ │ ├── bootstrap-daterangepicker/ │ │ │ │ │ │ │ │ ├── daterangepicker.css │ │ │ │ │ │ │ │ └── daterangepicker.js │ │ │ │ │ │ │ ├── fastclick/ │ │ │ │ │ │ │ │ └── fastclick.js │ │ │ │ │ │ │ └── font-awesome/ │ │ │ │ │ │ │ └── fonts/ │ │ │ │ │ │ │ └── FontAwesome.otf │ │ │ │ │ │ └── plugins/ │ │ │ │ │ │ └── iCheck/ │ │ │ │ │ │ └── square/ │ │ │ │ │ │ └── blue.css │ │ │ │ │ ├── js/ │ │ │ │ │ │ ├── common.1.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── jobcode.index.1.js │ │ │ │ │ │ ├── jobgroup.index.1.js │ │ │ │ │ │ ├── jobinfo.index.1.js │ │ │ │ │ │ ├── joblog.detail.1.js │ │ │ │ │ │ ├── joblog.index.1.js │ │ │ │ │ │ ├── login.1.js │ │ │ │ │ │ └── user.index.1.js │ │ │ │ │ └── plugins/ │ │ │ │ │ ├── codemirror/ │ │ │ │ │ │ ├── addon/ │ │ │ │ │ │ │ └── hint/ │ │ │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ │ │ ├── show-hint.css │ │ │ │ │ │ │ └── show-hint.js │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ ├── codemirror.css │ │ │ │ │ │ │ └── codemirror.js │ │ │ │ │ │ └── mode/ │ │ │ │ │ │ ├── clike/ │ │ │ │ │ │ │ └── clike.js │ │ │ │ │ │ ├── javascript/ │ │ │ │ │ │ │ └── javascript.js │ │ │ │ │ │ ├── php/ │ │ │ │ │ │ │ └── php.js │ │ │ │ │ │ ├── powershell/ │ │ │ │ │ │ │ └── powershell.js │ │ │ │ │ │ ├── python/ │ │ │ │ │ │ │ └── python.js │ │ │ │ │ │ └── shell/ │ │ │ │ │ │ └── shell.js │ │ │ │ │ ├── cronGen/ │ │ │ │ │ │ ├── cronGen.js │ │ │ │ │ │ └── cronGen_en.js │ │ │ │ │ ├── jquery/ │ │ │ │ │ │ └── jquery.cookie.js │ │ │ │ │ └── layer/ │ │ │ │ │ ├── layer.js │ │ │ │ │ └── theme/ │ │ │ │ │ └── default/ │ │ │ │ │ └── layer.css │ │ │ │ └── templates/ │ │ │ │ ├── common/ │ │ │ │ │ ├── common.exception.ftl │ │ │ │ │ └── common.macro.ftl │ │ │ │ ├── help.ftl │ │ │ │ ├── index.ftl │ │ │ │ ├── jobcode/ │ │ │ │ │ └── jobcode.index.ftl │ │ │ │ ├── jobgroup/ │ │ │ │ │ └── jobgroup.index.ftl │ │ │ │ ├── jobinfo/ │ │ │ │ │ └── jobinfo.index.ftl │ │ │ │ ├── joblog/ │ │ │ │ │ ├── joblog.detail.ftl │ │ │ │ │ └── joblog.index.ftl │ │ │ │ ├── login.ftl │ │ │ │ └── user/ │ │ │ │ └── user.index.ftl │ │ │ └── pom.xml │ │ └── pom.xml │ └── pom.xml ├── jeecgboot-vue3/ │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .gitpod.yml │ ├── .npmrc │ ├── .prettierignore │ ├── .stylelintignore │ ├── .yarnclean │ ├── CLAUDE.md │ ├── Dockerfile │ ├── Dockerfile.cloud │ ├── LICENSE │ ├── PWA-README.md │ ├── README.md │ ├── build/ │ │ ├── config/ │ │ │ └── themeConfig.ts │ │ ├── constant.ts │ │ ├── generate/ │ │ │ ├── generateModifyVars.ts │ │ │ └── icon/ │ │ │ └── index.ts │ │ ├── getConfigFileName.ts │ │ ├── script/ │ │ │ ├── buildConf.ts │ │ │ ├── copyChat.ts │ │ │ └── postBuild.ts │ │ ├── utils.ts │ │ └── vite/ │ │ ├── plugin/ │ │ │ ├── compress.ts │ │ │ ├── electron.ts │ │ │ ├── html.ts │ │ │ ├── imagemin.ts │ │ │ ├── index.ts │ │ │ ├── mock.ts │ │ │ ├── pwa.ts │ │ │ ├── qiankunMicro.ts │ │ │ ├── styleImport.ts │ │ │ ├── svgSprite.ts │ │ │ ├── theme.ts │ │ │ └── visualizer.ts │ │ └── proxy.ts │ ├── commitlint.config.js │ ├── electron/ │ │ ├── env.ts │ │ ├── ipc/ │ │ │ └── index.ts │ │ ├── main.ts │ │ ├── paths.ts │ │ ├── preload/ │ │ │ └── index.ts │ │ ├── script/ │ │ │ ├── buildAfter.ts │ │ │ └── buildBefore.ts │ │ └── utils/ │ │ ├── index.ts │ │ ├── tray.ts │ │ └── window.ts │ ├── electron-builder.yaml │ ├── electron.md │ ├── index.html │ ├── jest.config.mjs │ ├── mock/ │ │ ├── _createProductionServer.ts │ │ ├── _util.ts │ │ ├── demo/ │ │ │ ├── account.ts │ │ │ ├── select-demo.ts │ │ │ ├── system.ts │ │ │ ├── table-demo.ts │ │ │ └── tree-demo.ts │ │ └── sys/ │ │ ├── menu.ts │ │ └── user.ts │ ├── npm │ ├── package.json │ ├── postcss.config.js │ ├── prettier.config.js │ ├── public/ │ │ └── resource/ │ │ ├── js/ │ │ │ └── iconfont.js │ │ └── tinymce/ │ │ ├── langs/ │ │ │ ├── en.js │ │ │ └── zh_CN.js │ │ └── skins/ │ │ └── ui/ │ │ └── jeecg/ │ │ ├── content.css │ │ ├── content.inline.css │ │ ├── content.mobile.css │ │ ├── skin.css │ │ └── skin.mobile.css │ ├── src/ │ │ ├── App.vue │ │ ├── api/ │ │ │ ├── common/ │ │ │ │ └── api.ts │ │ │ ├── demo/ │ │ │ │ ├── account.ts │ │ │ │ ├── error.ts │ │ │ │ ├── model/ │ │ │ │ │ ├── accountModel.ts │ │ │ │ │ ├── optionsModel.ts │ │ │ │ │ ├── systemModel.ts │ │ │ │ │ └── tableModel.ts │ │ │ │ ├── select.ts │ │ │ │ ├── system.ts │ │ │ │ ├── table.ts │ │ │ │ └── tree.ts │ │ │ ├── model/ │ │ │ │ └── baseModel.ts │ │ │ └── sys/ │ │ │ ├── menu.ts │ │ │ ├── model/ │ │ │ │ ├── menuModel.ts │ │ │ │ ├── uploadModel.ts │ │ │ │ └── userModel.ts │ │ │ ├── upload.ts │ │ │ └── user.ts │ │ ├── assets/ │ │ │ ├── icons/ │ │ │ │ └── js/ │ │ │ │ └── iconfont.js │ │ │ ├── less/ │ │ │ │ └── JAreaLinkage.less │ │ │ └── loginmini/ │ │ │ └── style/ │ │ │ ├── base.less │ │ │ └── home.less │ │ ├── components/ │ │ │ ├── Application/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── AppDarkModeToggle.vue │ │ │ │ ├── AppLocalePicker.vue │ │ │ │ ├── AppLogo.vue │ │ │ │ ├── AppProvider.vue │ │ │ │ ├── search/ │ │ │ │ │ ├── AppSearch.vue │ │ │ │ │ ├── AppSearchFooter.vue │ │ │ │ │ ├── AppSearchKeyItem.vue │ │ │ │ │ ├── AppSearchModal.vue │ │ │ │ │ └── useMenuSearch.ts │ │ │ │ └── useAppContext.ts │ │ │ ├── Authority/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ └── Authority.vue │ │ │ ├── Basic/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicArrow.vue │ │ │ │ ├── BasicHelp.vue │ │ │ │ └── BasicTitle.vue │ │ │ ├── Button/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicButton.vue │ │ │ │ ├── JUploadButton.vue │ │ │ │ ├── PopConfirmButton.vue │ │ │ │ └── props.ts │ │ │ ├── CardList/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── CardList.vue │ │ │ │ └── data.ts │ │ │ ├── ClickOutSide/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ └── ClickOutSide.vue │ │ │ ├── CodeEditor/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── CodeEditor.vue │ │ │ │ ├── codemirror/ │ │ │ │ │ ├── CodeMirror.vue │ │ │ │ │ ├── codeMirror.ts │ │ │ │ │ └── codemirror.css │ │ │ │ └── typing.ts │ │ │ ├── Container/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── LazyContainer.vue │ │ │ │ ├── ScrollContainer.vue │ │ │ │ ├── collapse/ │ │ │ │ │ ├── CollapseContainer.vue │ │ │ │ │ └── CollapseHeader.vue │ │ │ │ └── typing.ts │ │ │ ├── ContextMenu/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── ContextMenu.vue │ │ │ │ ├── createContextMenu.ts │ │ │ │ └── typing.ts │ │ │ ├── CountDown/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── CountButton.vue │ │ │ │ ├── CountdownInput.vue │ │ │ │ └── useCountdown.ts │ │ │ ├── CountTo/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ └── CountTo.vue │ │ │ ├── Cropper/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── CopperModal.vue │ │ │ │ ├── Cropper.vue │ │ │ │ ├── CropperAvatar.vue │ │ │ │ └── typing.ts │ │ │ ├── Description/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Description.vue │ │ │ │ ├── typing.ts │ │ │ │ └── useDescription.ts │ │ │ ├── Drawer/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicDrawer.vue │ │ │ │ ├── components/ │ │ │ │ │ ├── DrawerFooter.vue │ │ │ │ │ └── DrawerHeader.vue │ │ │ │ ├── props.ts │ │ │ │ ├── typing.ts │ │ │ │ └── useDrawer.ts │ │ │ ├── Dropdown/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Dropdown.vue │ │ │ │ └── typing.ts │ │ │ ├── Form/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicForm.vue │ │ │ │ ├── componentMap.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── ApiRadioGroup.vue │ │ │ │ │ ├── ApiSelect.vue │ │ │ │ │ ├── ApiTreeSelect.vue │ │ │ │ │ ├── FormAction.vue │ │ │ │ │ ├── FormItem.vue │ │ │ │ │ ├── Middleware.vue │ │ │ │ │ └── RadioButtonGroup.vue │ │ │ │ ├── container/ │ │ │ │ │ └── JFormContainer.vue │ │ │ │ ├── helper.ts │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useAdvanced.ts │ │ │ │ │ ├── useAutoFocus.ts │ │ │ │ │ ├── useComponentRegister.ts │ │ │ │ │ ├── useForm.ts │ │ │ │ │ ├── useFormContext.ts │ │ │ │ │ ├── useFormEvents.ts │ │ │ │ │ ├── useFormValues.ts │ │ │ │ │ └── useLabelWidth.ts │ │ │ │ ├── jeecg/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── JAddInput.vue │ │ │ │ │ │ ├── JAreaLinkage.vue │ │ │ │ │ │ ├── JAreaSelect.vue │ │ │ │ │ │ ├── JCategorySelect.vue │ │ │ │ │ │ ├── JCheckbox.vue │ │ │ │ │ │ ├── JCodeEditor.vue │ │ │ │ │ │ ├── JDatePickerMultiple.vue │ │ │ │ │ │ ├── JDictSelectTag.vue │ │ │ │ │ │ ├── JEasyCron/ │ │ │ │ │ │ │ ├── EasyCronInner.vue │ │ │ │ │ │ │ ├── EasyCronInput.vue │ │ │ │ │ │ │ ├── EasyCronModal.vue │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── easy.cron.data.ts │ │ │ │ │ │ │ ├── easy.cron.inner.less │ │ │ │ │ │ │ ├── easy.cron.input.less │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── tabs/ │ │ │ │ │ │ │ │ ├── DayUI.vue │ │ │ │ │ │ │ │ ├── HourUI.vue │ │ │ │ │ │ │ │ ├── MinuteUI.vue │ │ │ │ │ │ │ │ ├── MonthUI.vue │ │ │ │ │ │ │ │ ├── SecondUI.vue │ │ │ │ │ │ │ │ ├── WeekUI.vue │ │ │ │ │ │ │ │ ├── YearUI.vue │ │ │ │ │ │ │ │ └── useTabMixin.ts │ │ │ │ │ │ │ └── validator.ts │ │ │ │ │ │ ├── JEditor.vue │ │ │ │ │ │ ├── JEllipsis.vue │ │ │ │ │ │ ├── JFormContainer.vue │ │ │ │ │ │ ├── JImageUpload.vue │ │ │ │ │ │ ├── JImportModal.vue │ │ │ │ │ │ ├── JInput.vue │ │ │ │ │ │ ├── JInputPop.vue │ │ │ │ │ │ ├── JInputSelect.vue │ │ │ │ │ │ ├── JLinkTableCard/ │ │ │ │ │ │ │ ├── JLinkTableCard.vue │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── LinkTableListModal.vue │ │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ │ ├── useLinkTable.ts │ │ │ │ │ │ │ └── useTableColumns.ts │ │ │ │ │ │ ├── JMarkdownEditor.vue │ │ │ │ │ │ ├── JPopup.vue │ │ │ │ │ │ ├── JPopupDict.vue │ │ │ │ │ │ ├── JRangeDate.vue │ │ │ │ │ │ ├── JRangeNumber.vue │ │ │ │ │ │ ├── JRangeTime.vue │ │ │ │ │ │ ├── JSearchSelect.vue │ │ │ │ │ │ ├── JSelectDepartPost.vue │ │ │ │ │ │ ├── JSelectDept.vue │ │ │ │ │ │ ├── JSelectInput.vue │ │ │ │ │ │ ├── JSelectMultiple.vue │ │ │ │ │ │ ├── JSelectPosition.vue │ │ │ │ │ │ ├── JSelectRole.vue │ │ │ │ │ │ ├── JSelectUser.vue │ │ │ │ │ │ ├── JSelectUserByDepartment.vue │ │ │ │ │ │ ├── JSelectUserByDept.vue │ │ │ │ │ │ ├── JSelectUserByDeptPost.vue │ │ │ │ │ │ ├── JSwitch.vue │ │ │ │ │ │ ├── JTreeDict.vue │ │ │ │ │ │ ├── JTreeSelect.vue │ │ │ │ │ │ ├── JUpload/ │ │ │ │ │ │ │ ├── JUpload.vue │ │ │ │ │ │ │ ├── JUploadModal.vue │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── UploadItemActions.vue │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── upload.data.ts │ │ │ │ │ │ ├── TreeIcon/ │ │ │ │ │ │ │ └── TreeIcon.vue │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ ├── JSelectBiz.vue │ │ │ │ │ │ │ └── JTreeBiz.vue │ │ │ │ │ │ ├── modal/ │ │ │ │ │ │ │ ├── DeptSelectModal.vue │ │ │ │ │ │ │ ├── JPopupOnlReportModal.vue │ │ │ │ │ │ │ ├── JSelectUserByDepartmentModal.vue │ │ │ │ │ │ │ ├── PositionSelectModal.vue │ │ │ │ │ │ │ ├── RoleSelectModal.vue │ │ │ │ │ │ │ ├── UserSelectByDepModal.vue │ │ │ │ │ │ │ ├── UserSelectByDepPostModal.vue │ │ │ │ │ │ │ └── UserSelectModal.vue │ │ │ │ │ │ ├── positionSelect/ │ │ │ │ │ │ │ └── PositionSelectModal.vue │ │ │ │ │ │ ├── roleSelect/ │ │ │ │ │ │ │ ├── RoleSelectInput.vue │ │ │ │ │ │ │ └── RoleSelectModal.vue │ │ │ │ │ │ └── userSelect/ │ │ │ │ │ │ ├── FilteredUserSelectModal.vue │ │ │ │ │ │ ├── SelectedUserItem.vue │ │ │ │ │ │ ├── UserList.vue │ │ │ │ │ │ ├── UserListAndDepart.vue │ │ │ │ │ │ ├── UserListAndRole.vue │ │ │ │ │ │ ├── UserSelectModal.vue │ │ │ │ │ │ ├── index.vue │ │ │ │ │ │ └── useUserSelect.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useCodeHinting.ts │ │ │ │ │ │ ├── useSelectBiz.ts │ │ │ │ │ │ └── useTreeBiz.ts │ │ │ │ │ └── props/ │ │ │ │ │ └── props.ts │ │ │ │ ├── props.ts │ │ │ │ ├── types/ │ │ │ │ │ ├── form.ts │ │ │ │ │ ├── formItem.ts │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── index.ts │ │ │ │ └── utils/ │ │ │ │ ├── Area.ts │ │ │ │ ├── GroupRequest.ts │ │ │ │ ├── areaDataUtil.js │ │ │ │ └── formUtils.ts │ │ │ ├── Icon/ │ │ │ │ ├── data/ │ │ │ │ │ └── icons.data.ts │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Icon.vue │ │ │ │ ├── IconList.vue │ │ │ │ ├── IconPicker.vue │ │ │ │ └── SvgIcon.vue │ │ │ ├── InFilter/ │ │ │ │ ├── CascaderPcaInFilter.vue │ │ │ │ ├── DatePickerInFilter.vue │ │ │ │ └── index.ts │ │ │ ├── JDragNotice/ │ │ │ │ └── JDragNotice.vue │ │ │ ├── JVxeCustom/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── components/ │ │ │ │ │ ├── JVxeDepartSelectCell.vue │ │ │ │ │ ├── JVxeFileCell.vue │ │ │ │ │ ├── JVxeImageCell.vue │ │ │ │ │ ├── JVxePcaCell.vue │ │ │ │ │ ├── JVxePopupCell.vue │ │ │ │ │ ├── JVxeSelectDictSearchCell.ts │ │ │ │ │ └── JVxeUserSelectCell.vue │ │ │ │ └── hooks/ │ │ │ │ └── useFileCell.ts │ │ │ ├── Loading/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Loading.vue │ │ │ │ ├── createLoading.ts │ │ │ │ ├── typing.ts │ │ │ │ └── useLoading.ts │ │ │ ├── Markdown/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Markdown.vue │ │ │ │ ├── MarkdownViewer.vue │ │ │ │ └── typing.ts │ │ │ ├── Menu/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicMenu.vue │ │ │ │ ├── components/ │ │ │ │ │ ├── BasicMenuItem.vue │ │ │ │ │ ├── BasicSubMenuItem.vue │ │ │ │ │ └── MenuItemContent.vue │ │ │ │ ├── index.less │ │ │ │ ├── props.ts │ │ │ │ ├── types.ts │ │ │ │ ├── useBasicMenuContext.ts │ │ │ │ └── useOpenKeys.ts │ │ │ ├── Modal/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicModal.vue │ │ │ │ ├── JModal/ │ │ │ │ │ └── JModal.vue │ │ │ │ ├── components/ │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ ├── ModalClose.vue │ │ │ │ │ ├── ModalFooter.vue │ │ │ │ │ ├── ModalHeader.vue │ │ │ │ │ └── ModalWrapper.vue │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useModal.ts │ │ │ │ │ ├── useModalContext.ts │ │ │ │ │ ├── useModalDrag.ts │ │ │ │ │ └── useModalFullScreen.ts │ │ │ │ ├── index.less │ │ │ │ ├── props.ts │ │ │ │ └── typing.ts │ │ │ ├── Page/ │ │ │ │ ├── index.ts │ │ │ │ ├── injectionKey.ts │ │ │ │ └── src/ │ │ │ │ ├── PageFooter.vue │ │ │ │ └── PageWrapper.vue │ │ │ ├── Preview/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Functional.vue │ │ │ │ ├── Preview.vue │ │ │ │ ├── functional.ts │ │ │ │ └── typing.ts │ │ │ ├── Qrcode/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Qrcode.vue │ │ │ │ ├── drawCanvas.ts │ │ │ │ ├── drawLogo.ts │ │ │ │ ├── qrcodePlus.ts │ │ │ │ ├── toCanvas.ts │ │ │ │ └── typing.ts │ │ │ ├── Scrollbar/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Scrollbar.vue │ │ │ │ ├── bar.ts │ │ │ │ ├── types.d.ts │ │ │ │ └── util.ts │ │ │ ├── SimpleMenu/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── SimpleMenu.vue │ │ │ │ ├── SimpleMenuTag.vue │ │ │ │ ├── SimpleSubMenu.vue │ │ │ │ ├── components/ │ │ │ │ │ ├── Menu.vue │ │ │ │ │ ├── MenuCollapseTransition.vue │ │ │ │ │ ├── MenuItem.vue │ │ │ │ │ ├── SubMenuItem.vue │ │ │ │ │ ├── menu.less │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── useMenu.ts │ │ │ │ │ └── useSimpleMenuContext.ts │ │ │ │ ├── index.less │ │ │ │ ├── types.ts │ │ │ │ └── useOpenKeys.ts │ │ │ ├── StrengthMeter/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ └── StrengthMeter.vue │ │ │ ├── Table/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicTable.vue │ │ │ │ ├── componentMap.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── CustomSelectHeader.vue │ │ │ │ │ ├── EditTableHeaderIcon.vue │ │ │ │ │ ├── ExpandIcon.tsx │ │ │ │ │ ├── HeaderCell.vue │ │ │ │ │ ├── TableAction.vue │ │ │ │ │ ├── TableFooter.vue │ │ │ │ │ ├── TableHeader.vue │ │ │ │ │ ├── TableImg.vue │ │ │ │ │ ├── TableSummary.tsx │ │ │ │ │ ├── TableTitle.vue │ │ │ │ │ ├── editable/ │ │ │ │ │ │ ├── CellComponent.ts │ │ │ │ │ │ ├── EditableCell.vue │ │ │ │ │ │ ├── helper.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── settings/ │ │ │ │ │ ├── ColumnSetting.vue │ │ │ │ │ ├── FullScreenSetting.vue │ │ │ │ │ ├── RedoSetting.vue │ │ │ │ │ ├── SizeSetting.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── const.ts │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useColumns.ts │ │ │ │ │ ├── useColumnsCache.ts │ │ │ │ │ ├── useCustomRow.ts │ │ │ │ │ ├── useCustomSelection.tsx │ │ │ │ │ ├── useDataSource.ts │ │ │ │ │ ├── useLoading.ts │ │ │ │ │ ├── usePagination.tsx │ │ │ │ │ ├── useRowSelection.ts │ │ │ │ │ ├── useTable.ts │ │ │ │ │ ├── useTableContext.ts │ │ │ │ │ ├── useTableExpand.ts │ │ │ │ │ ├── useTableFooter.ts │ │ │ │ │ ├── useTableForm.ts │ │ │ │ │ ├── useTableHeader.ts │ │ │ │ │ ├── useTableScroll.ts │ │ │ │ │ └── useTableStyle.ts │ │ │ │ ├── props.ts │ │ │ │ └── types/ │ │ │ │ ├── column.ts │ │ │ │ ├── componentType.ts │ │ │ │ ├── pagination.ts │ │ │ │ ├── table.ts │ │ │ │ └── tableAction.ts │ │ │ ├── Time/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ └── Time.vue │ │ │ ├── Tinymce/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Editor.vue │ │ │ │ ├── ImgUpload.vue │ │ │ │ ├── ProcessMask.vue │ │ │ │ ├── helper.ts │ │ │ │ └── tinymce.ts │ │ │ ├── Transition/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── CollapseTransition.vue │ │ │ │ ├── CreateTransition.tsx │ │ │ │ └── ExpandTransition.ts │ │ │ ├── Tree/ │ │ │ │ ├── index.ts │ │ │ │ ├── src/ │ │ │ │ │ ├── BasicTree.vue │ │ │ │ │ ├── TreeIcon.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── TreeHeader.vue │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ └── useTree.ts │ │ │ │ │ └── types/ │ │ │ │ │ └── tree.ts │ │ │ │ └── style/ │ │ │ │ ├── index.less │ │ │ │ └── index.ts │ │ │ ├── Tree_backup/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Tree.vue │ │ │ │ ├── TreeHeader.vue │ │ │ │ ├── TreeIcon.ts │ │ │ │ ├── props.ts │ │ │ │ ├── typing.ts │ │ │ │ └── useTree.ts │ │ │ ├── Upload/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── BasicUpload.vue │ │ │ │ ├── FileList.vue │ │ │ │ ├── ThumbUrl.vue │ │ │ │ ├── UploadModal.vue │ │ │ │ ├── UploadPreviewModal.vue │ │ │ │ ├── data.tsx │ │ │ │ ├── helper.ts │ │ │ │ ├── props.ts │ │ │ │ ├── typing.ts │ │ │ │ └── useUpload.ts │ │ │ ├── Verify/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── DragVerify.vue │ │ │ │ ├── ImgRotate.vue │ │ │ │ ├── props.ts │ │ │ │ └── typing.ts │ │ │ ├── VirtualScroll/ │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ └── VirtualScroll.vue │ │ │ ├── chart/ │ │ │ │ ├── Bar.vue │ │ │ │ ├── BarAndLine.vue │ │ │ │ ├── BarMulti.vue │ │ │ │ ├── ChartCard.vue │ │ │ │ ├── Gauge.vue │ │ │ │ ├── HeadInfo.vue │ │ │ │ ├── LineMulti.vue │ │ │ │ ├── Pie.vue │ │ │ │ ├── README.md │ │ │ │ ├── Radar.vue │ │ │ │ ├── RankList.vue │ │ │ │ ├── SingleLine.vue │ │ │ │ ├── StackBar.vue │ │ │ │ └── Trend.vue │ │ │ ├── jeecg/ │ │ │ │ ├── AIcon.vue │ │ │ │ ├── ExcelButton.vue │ │ │ │ ├── JPrompt/ │ │ │ │ │ ├── JPrompt.vue │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ └── useJPrompt.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── typing.ts │ │ │ │ ├── JVxeTable/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── JVxeTable.ts │ │ │ │ │ │ ├── componentMap.ts │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── JVxeDetailsModal.vue │ │ │ │ │ │ │ ├── JVxeReloadEffect.ts │ │ │ │ │ │ │ ├── JVxeSubPopover.vue │ │ │ │ │ │ │ ├── JVxeToolbar.vue │ │ │ │ │ │ │ └── cells/ │ │ │ │ │ │ │ ├── JVxeCheckboxCell.vue │ │ │ │ │ │ │ ├── JVxeDateCell.vue │ │ │ │ │ │ │ ├── JVxeDragSortCell.vue │ │ │ │ │ │ │ ├── JVxeInputCell.vue │ │ │ │ │ │ │ ├── JVxeNormalCell.vue │ │ │ │ │ │ │ ├── JVxeProgressCell.vue │ │ │ │ │ │ │ ├── JVxeRadioCell.vue │ │ │ │ │ │ │ ├── JVxeSelectCell.vue │ │ │ │ │ │ │ ├── JVxeSlotCell.ts │ │ │ │ │ │ │ ├── JVxeTextareaCell.vue │ │ │ │ │ │ │ ├── JVxeTimeCell.vue │ │ │ │ │ │ │ └── JVxeUploadCell.vue │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ ├── cells/ │ │ │ │ │ │ │ │ └── useJVxeUploadCell.ts │ │ │ │ │ │ │ ├── useColumns.ts │ │ │ │ │ │ │ ├── useColumnsCache.ts │ │ │ │ │ │ │ ├── useData.ts │ │ │ │ │ │ │ ├── useDataSource.ts │ │ │ │ │ │ │ ├── useDragSort.ts │ │ │ │ │ │ │ ├── useFinallyProps.ts │ │ │ │ │ │ │ ├── useJVxeComponent.ts │ │ │ │ │ │ │ ├── useKeyboardEdit.ts │ │ │ │ │ │ │ ├── useLinkage.ts │ │ │ │ │ │ │ ├── useMethods.ts │ │ │ │ │ │ │ ├── usePagination.ts │ │ │ │ │ │ │ ├── useRenderComponents.ts │ │ │ │ │ │ │ ├── useToolbar.ts │ │ │ │ │ │ │ ├── useValidateRules.ts │ │ │ │ │ │ │ └── useWebSocket.ts │ │ │ │ │ │ ├── install.ts │ │ │ │ │ │ ├── style/ │ │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ │ ├── reload-effect.less │ │ │ │ │ │ │ ├── vxe.const.less │ │ │ │ │ │ │ └── vxe.dark.less │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ ├── JVxeComponent.ts │ │ │ │ │ │ │ ├── JVxeTypes.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── utils/ │ │ │ │ │ │ │ ├── authUtils.ts │ │ │ │ │ │ │ ├── enhancedUtils.ts │ │ │ │ │ │ │ ├── registerUtils.ts │ │ │ │ │ │ │ └── vxeUtils.ts │ │ │ │ │ │ └── vxe.data.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── OnLine/ │ │ │ │ │ ├── JPopupOnlReport.vue │ │ │ │ │ ├── SearchFormItem.vue │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ └── usePopBiz.ts │ │ │ │ │ └── types/ │ │ │ │ │ └── onlineConfig.ts │ │ │ │ ├── UserAvatar.vue │ │ │ │ ├── captcha/ │ │ │ │ │ └── CaptchaModal.vue │ │ │ │ ├── comment/ │ │ │ │ │ ├── CommentFiles.vue │ │ │ │ │ ├── CommentList.vue │ │ │ │ │ ├── CommentPanel.vue │ │ │ │ │ ├── DataLogList.vue │ │ │ │ │ ├── HistoryFileList.vue │ │ │ │ │ ├── MyComment.vue │ │ │ │ │ ├── UploadChunk.vue │ │ │ │ │ ├── comment.less │ │ │ │ │ └── useComment.ts │ │ │ │ └── thirdApp/ │ │ │ │ ├── JThirdAppButton.vue │ │ │ │ ├── JThirdAppDropdown.vue │ │ │ │ └── jThirdApp.api.ts │ │ │ ├── onlinePreview/ │ │ │ │ ├── WpsFileView.vue │ │ │ │ └── open-jssdk.es.js │ │ │ ├── registerGlobComp.ts │ │ │ └── wordtpl/ │ │ │ ├── DocDesign.ts │ │ │ ├── DocDesign.vue │ │ │ ├── canvas-editor.js │ │ │ ├── components/ │ │ │ │ ├── HighlightColorModal.vue │ │ │ │ ├── HyperlinkDrawer.vue │ │ │ │ ├── PagerMarginDrawer.vue │ │ │ │ └── WatermarkDrawer.vue │ │ │ └── style/ │ │ │ └── DocDesign.css │ │ ├── design/ │ │ │ ├── ant/ │ │ │ │ ├── btn.less │ │ │ │ ├── index.less │ │ │ │ ├── input.less │ │ │ │ ├── pagination.less │ │ │ │ └── table.less │ │ │ ├── color.less │ │ │ ├── config.less │ │ │ ├── entry.css │ │ │ ├── index.less │ │ │ ├── public.less │ │ │ ├── theme.less │ │ │ ├── transition/ │ │ │ │ ├── base.less │ │ │ │ ├── fade.less │ │ │ │ ├── index.less │ │ │ │ ├── scale.less │ │ │ │ ├── scroll.less │ │ │ │ ├── slide.less │ │ │ │ └── zoom.less │ │ │ └── var/ │ │ │ ├── breakpoint.less │ │ │ ├── easing.less │ │ │ └── index.less │ │ ├── directives/ │ │ │ ├── clickOutside.ts │ │ │ ├── index.ts │ │ │ ├── loading.ts │ │ │ ├── permission.ts │ │ │ ├── repeatClick.ts │ │ │ └── ripple/ │ │ │ ├── index.less │ │ │ └── index.ts │ │ ├── electron/ │ │ │ └── index.ts │ │ ├── enums/ │ │ │ ├── CompTypeEnum.ts │ │ │ ├── DateTypeEnum.ts │ │ │ ├── appEnum.ts │ │ │ ├── breakpointEnum.ts │ │ │ ├── cacheEnum.ts │ │ │ ├── exceptionEnum.ts │ │ │ ├── httpEnum.ts │ │ │ ├── jeecgEnum.ts │ │ │ ├── menuEnum.ts │ │ │ ├── pageEnum.ts │ │ │ ├── roleEnum.ts │ │ │ └── sizeEnum.ts │ │ ├── hooks/ │ │ │ ├── component/ │ │ │ │ ├── useFormItem.ts │ │ │ │ ├── useFormItemSingle.ts │ │ │ │ └── usePageContext.ts │ │ │ ├── core/ │ │ │ │ ├── onMountedOrActivated.ts │ │ │ │ ├── useAttrs.ts │ │ │ │ ├── useContext.ts │ │ │ │ ├── useLockFn.ts │ │ │ │ ├── useRefs.ts │ │ │ │ └── useTimeout.ts │ │ │ ├── event/ │ │ │ │ ├── useBreakpoint.ts │ │ │ │ ├── useEventListener.ts │ │ │ │ ├── useIntersectionObserver.ts │ │ │ │ ├── useScroll.ts │ │ │ │ ├── useScrollTo.ts │ │ │ │ └── useWindowSizeFn.ts │ │ │ ├── jeecg/ │ │ │ │ └── useAdaptiveWidth.ts │ │ │ ├── setting/ │ │ │ │ ├── index.ts │ │ │ │ ├── useHeaderSetting.ts │ │ │ │ ├── useMenuSetting.ts │ │ │ │ ├── useMultipleTabSetting.ts │ │ │ │ ├── useRootSetting.ts │ │ │ │ └── useTransitionSetting.ts │ │ │ ├── system/ │ │ │ │ ├── useAutoAdapt.ts │ │ │ │ ├── useJvxeMethods.ts │ │ │ │ ├── useListPage.ts │ │ │ │ ├── useMethods.ts │ │ │ │ └── useThirdLogin.ts │ │ │ └── web/ │ │ │ ├── useAppInject.ts │ │ │ ├── useContentHeight.ts │ │ │ ├── useContextMenu.ts │ │ │ ├── useCopyModal.ts │ │ │ ├── useCopyToClipboard.ts │ │ │ ├── useDesign.ts │ │ │ ├── useDragNotice.ts │ │ │ ├── useECharts.ts │ │ │ ├── useFullContent.ts │ │ │ ├── useI18n.ts │ │ │ ├── useLockPage.ts │ │ │ ├── useMessage.ts │ │ │ ├── useMessage.tsx_backup │ │ │ ├── usePage.ts │ │ │ ├── usePagination.ts │ │ │ ├── usePermission.ts │ │ │ ├── usePrintJS.ts │ │ │ ├── useScript.ts │ │ │ ├── useSortable.ts │ │ │ ├── useSso.ts │ │ │ ├── useTabs.ts │ │ │ ├── useTitle.ts │ │ │ ├── useWatermark.ts │ │ │ └── useWebSocket.ts │ │ ├── layouts/ │ │ │ ├── default/ │ │ │ │ ├── content/ │ │ │ │ │ ├── index.vue │ │ │ │ │ ├── useContentContext.ts │ │ │ │ │ └── useContentViewHeight.ts │ │ │ │ ├── feature/ │ │ │ │ │ └── index.vue │ │ │ │ ├── footer/ │ │ │ │ │ └── index.vue │ │ │ │ ├── header/ │ │ │ │ │ ├── MultipleHeader.vue │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── Breadcrumb.vue │ │ │ │ │ │ ├── ErrorAction.vue │ │ │ │ │ │ ├── FullScreen.vue │ │ │ │ │ │ ├── LockScreen.vue │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── lock/ │ │ │ │ │ │ │ └── LockModal.vue │ │ │ │ │ │ ├── notify/ │ │ │ │ │ │ │ ├── ChangePasswordModal.vue │ │ │ │ │ │ │ ├── NoticeList.vue │ │ │ │ │ │ │ ├── data.ts │ │ │ │ │ │ │ ├── index.vue │ │ │ │ │ │ │ ├── index_old.vue │ │ │ │ │ │ │ └── notify.api.ts │ │ │ │ │ │ └── user-dropdown/ │ │ │ │ │ │ ├── DepartSelect.vue │ │ │ │ │ │ ├── DropMenuItem.vue │ │ │ │ │ │ ├── UpdatePassword.vue │ │ │ │ │ │ └── index.vue │ │ │ │ │ ├── index.less │ │ │ │ │ └── index.vue │ │ │ │ ├── index.vue │ │ │ │ ├── menu/ │ │ │ │ │ ├── index.vue │ │ │ │ │ └── useLayoutMenu.ts │ │ │ │ ├── setting/ │ │ │ │ │ ├── SettingDrawer.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── InputNumberItem.vue │ │ │ │ │ │ ├── SelectItem.vue │ │ │ │ │ │ ├── SettingFooter.vue │ │ │ │ │ │ ├── SwitchItem.vue │ │ │ │ │ │ ├── ThemeColorPicker.vue │ │ │ │ │ │ ├── TypePicker.vue │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── enum.ts │ │ │ │ │ ├── handler.ts │ │ │ │ │ └── index.vue │ │ │ │ ├── sider/ │ │ │ │ │ ├── DragBar.vue │ │ │ │ │ ├── LayoutSider.vue │ │ │ │ │ ├── MixSider.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── useLayoutSider.ts │ │ │ │ ├── tabs/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── FoldButton.vue │ │ │ │ │ │ ├── TabContent.vue │ │ │ │ │ │ └── TabRedo.vue │ │ │ │ │ ├── index.less │ │ │ │ │ ├── index.vue │ │ │ │ │ ├── tabs.theme.card.less │ │ │ │ │ ├── tabs.theme.smooth.less │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── useHideHomeDesign.ts │ │ │ │ │ ├── useMultipleTabs.ts │ │ │ │ │ └── useTabDropdown.ts │ │ │ │ └── trigger/ │ │ │ │ ├── HeaderTrigger.vue │ │ │ │ ├── SiderTrigger.vue │ │ │ │ └── index.vue │ │ │ ├── iframe/ │ │ │ │ ├── index.vue │ │ │ │ └── useFrameKeepAlive.ts │ │ │ └── page/ │ │ │ ├── index.vue │ │ │ ├── transition.ts │ │ │ └── useEmpty.ts │ │ ├── locales/ │ │ │ ├── helper.ts │ │ │ ├── lang/ │ │ │ │ ├── en/ │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── component.ts │ │ │ │ │ ├── layout.ts │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── basic.ts │ │ │ │ │ │ ├── dashboard.ts │ │ │ │ │ │ └── demo.ts │ │ │ │ │ └── sys.ts │ │ │ │ ├── en.ts │ │ │ │ ├── zh-CN/ │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── component.ts │ │ │ │ │ ├── layout.ts │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── basic.ts │ │ │ │ │ │ ├── dashboard.ts │ │ │ │ │ │ └── demo.ts │ │ │ │ │ └── sys.ts │ │ │ │ └── zh_CN.ts │ │ │ ├── setupI18n.ts │ │ │ └── useLocale.ts │ │ ├── logics/ │ │ │ ├── error-handle/ │ │ │ │ └── index.ts │ │ │ ├── initAppConfig.ts │ │ │ ├── mitt/ │ │ │ │ └── routeChange.ts │ │ │ └── theme/ │ │ │ ├── dark.ts │ │ │ ├── index.ts │ │ │ ├── updateBackground.ts │ │ │ ├── updateColorWeak.ts │ │ │ ├── updateGrayMode.ts │ │ │ └── util.ts │ │ ├── main.ts │ │ ├── qiankun/ │ │ │ ├── apps.ts │ │ │ ├── index.ts │ │ │ ├── micro/ │ │ │ │ ├── index.ts │ │ │ │ └── qiankunMicro.ts │ │ │ └── state.ts │ │ ├── router/ │ │ │ ├── constant.ts │ │ │ ├── guard/ │ │ │ │ ├── index.ts │ │ │ │ ├── paramMenuGuard.ts │ │ │ │ ├── permissionGuard.ts │ │ │ │ └── stateGuard.ts │ │ │ ├── helper/ │ │ │ │ ├── menuHelper.ts │ │ │ │ └── routeHelper.ts │ │ │ ├── index.ts │ │ │ ├── menus/ │ │ │ │ └── index.ts │ │ │ ├── router.ts │ │ │ ├── routes/ │ │ │ │ ├── basic.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mainOut.ts │ │ │ │ ├── modules/ │ │ │ │ │ ├── about.ts │ │ │ │ │ ├── dashboard.ts │ │ │ │ │ └── demo/ │ │ │ │ │ ├── charts.ts │ │ │ │ │ ├── comp.ts │ │ │ │ │ ├── feat.ts │ │ │ │ │ ├── iframe.ts │ │ │ │ │ ├── level.ts │ │ │ │ │ ├── page.ts │ │ │ │ │ ├── permission.ts │ │ │ │ │ ├── setup.ts │ │ │ │ │ └── system.ts │ │ │ │ └── staticRouter.ts │ │ │ └── types.ts │ │ ├── settings/ │ │ │ ├── componentSetting.ts │ │ │ ├── designSetting.ts │ │ │ ├── encryptionSetting.ts │ │ │ ├── localeSetting.ts │ │ │ ├── projectSetting.ts │ │ │ ├── registerThirdComp.ts │ │ │ └── siteSetting.ts │ │ ├── store/ │ │ │ ├── index.ts │ │ │ └── modules/ │ │ │ ├── app.ts │ │ │ ├── defIndex.ts │ │ │ ├── errorLog.ts │ │ │ ├── locale.ts │ │ │ ├── lock.ts │ │ │ ├── multipleTab.ts │ │ │ ├── permission.ts │ │ │ └── user.ts │ │ ├── utils/ │ │ │ ├── areaData/ │ │ │ │ └── pcaUtils.ts │ │ │ ├── auth/ │ │ │ │ └── index.ts │ │ │ ├── bem.ts │ │ │ ├── browser.js │ │ │ ├── cache/ │ │ │ │ ├── index.ts │ │ │ │ ├── memory.ts │ │ │ │ ├── persistent.ts │ │ │ │ └── storageCache.ts │ │ │ ├── cipher.ts │ │ │ ├── color.ts │ │ │ ├── common/ │ │ │ │ ├── compUtils.ts │ │ │ │ ├── renderUtils.ts │ │ │ │ └── vxeUtils.ts │ │ │ ├── dateUtil.ts │ │ │ ├── desform/ │ │ │ │ └── customExpression.ts │ │ │ ├── dict/ │ │ │ │ ├── DictColors.js │ │ │ │ ├── JDictSelectUtil.js │ │ │ │ └── index.ts │ │ │ ├── domUtils.ts │ │ │ ├── encryption/ │ │ │ │ └── signMd5Utils.js │ │ │ ├── env.ts │ │ │ ├── event/ │ │ │ │ └── index.ts │ │ │ ├── factory/ │ │ │ │ └── createAsyncComponent.tsx │ │ │ ├── file/ │ │ │ │ ├── base64Conver.ts │ │ │ │ └── download.ts │ │ │ ├── getConfigByMenuType.ts │ │ │ ├── helper/ │ │ │ │ ├── treeHelper.ts │ │ │ │ ├── tsxHelper.tsx │ │ │ │ └── validator.ts │ │ │ ├── http/ │ │ │ │ └── axios/ │ │ │ │ ├── Axios.ts │ │ │ │ ├── axiosCancel.ts │ │ │ │ ├── axiosTransform.ts │ │ │ │ ├── checkStatus.ts │ │ │ │ ├── helper.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── is.ts │ │ │ ├── lib/ │ │ │ │ └── echarts.ts │ │ │ ├── log.ts │ │ │ ├── mitt.ts │ │ │ ├── monorepo/ │ │ │ │ ├── dynamicRouter.ts │ │ │ │ └── registerPackages.ts │ │ │ ├── propTypes.ts │ │ │ ├── props.ts │ │ │ ├── types.ts │ │ │ └── uuid.ts │ │ └── views/ │ │ ├── dashboard/ │ │ │ ├── Analysis/ │ │ │ │ ├── api.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── BdcTabCard.vue │ │ │ │ │ ├── ChartGroupCard.vue │ │ │ │ │ ├── GrowCard.vue │ │ │ │ │ ├── QuickNav.vue │ │ │ │ │ ├── SaleTabCard.vue │ │ │ │ │ ├── SalesProductPie.vue │ │ │ │ │ ├── SiteAnalysis.vue │ │ │ │ │ ├── VisitAnalysis.vue │ │ │ │ │ ├── VisitAnalysisBar.vue │ │ │ │ │ ├── VisitRadar.vue │ │ │ │ │ ├── VisitSource.vue │ │ │ │ │ └── props.ts │ │ │ │ ├── data.ts │ │ │ │ ├── homePage/ │ │ │ │ │ ├── IndexBdc.vue │ │ │ │ │ ├── IndexChart.vue │ │ │ │ │ ├── IndexDef.vue │ │ │ │ │ └── IndexTask.vue │ │ │ │ └── index.vue │ │ │ ├── ai/ │ │ │ │ ├── components/ │ │ │ │ │ └── aide/ │ │ │ │ │ └── index.vue │ │ │ │ └── index.vue │ │ │ └── workbench/ │ │ │ ├── components/ │ │ │ │ ├── DynamicInfo.vue │ │ │ │ ├── ProjectCard.vue │ │ │ │ ├── QuickNav.vue │ │ │ │ ├── SaleRadar.vue │ │ │ │ ├── WorkbenchHeader.vue │ │ │ │ └── data.ts │ │ │ └── index.vue │ │ ├── demo/ │ │ │ ├── charts/ │ │ │ │ ├── Line.vue │ │ │ │ ├── Map.vue │ │ │ │ ├── Pie.vue │ │ │ │ ├── SaleRadar.vue │ │ │ │ ├── china.json │ │ │ │ ├── data.ts │ │ │ │ └── map/ │ │ │ │ ├── Baidu.vue │ │ │ │ ├── Gaode.vue │ │ │ │ └── Google.vue │ │ │ ├── codemirror/ │ │ │ │ └── index.vue │ │ │ ├── comp/ │ │ │ │ ├── button/ │ │ │ │ │ └── index.vue │ │ │ │ ├── card-list/ │ │ │ │ │ └── index.vue │ │ │ │ ├── count-to/ │ │ │ │ │ └── index.vue │ │ │ │ ├── cropper/ │ │ │ │ │ └── index.vue │ │ │ │ ├── desc/ │ │ │ │ │ └── index.vue │ │ │ │ ├── drawer/ │ │ │ │ │ ├── Drawer1.vue │ │ │ │ │ ├── Drawer2.vue │ │ │ │ │ ├── Drawer3.vue │ │ │ │ │ ├── Drawer4.vue │ │ │ │ │ ├── Drawer5.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── lazy/ │ │ │ │ │ ├── TargetContent.vue │ │ │ │ │ ├── Transition.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── loading/ │ │ │ │ │ └── index.vue │ │ │ │ ├── modal/ │ │ │ │ │ ├── Modal1.vue │ │ │ │ │ ├── Modal2.vue │ │ │ │ │ ├── Modal3.vue │ │ │ │ │ ├── Modal4.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── qrcode/ │ │ │ │ │ └── index.vue │ │ │ │ ├── scroll/ │ │ │ │ │ ├── Action.vue │ │ │ │ │ ├── VirtualScroll.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── strength-meter/ │ │ │ │ │ └── index.vue │ │ │ │ ├── time/ │ │ │ │ │ └── index.vue │ │ │ │ ├── transition/ │ │ │ │ │ └── index.vue │ │ │ │ ├── upload/ │ │ │ │ │ └── index.vue │ │ │ │ └── verify/ │ │ │ │ ├── Rotate.vue │ │ │ │ └── index.vue │ │ │ ├── document/ │ │ │ │ ├── form/ │ │ │ │ │ ├── BasicFiledsLayotForm.vue │ │ │ │ │ ├── BasicFixedWidthForm.vue │ │ │ │ │ ├── BasicFormAdd.vue │ │ │ │ │ ├── BasicFormBtn.vue │ │ │ │ │ ├── BasicFormCleanRule.vue │ │ │ │ │ ├── BasicFormCompact.vue │ │ │ │ │ ├── BasicFormComponent.vue │ │ │ │ │ ├── BasicFormConAttribute.vue │ │ │ │ │ ├── BasicFormCustom.vue │ │ │ │ │ ├── BasicFormCustomComponent.vue │ │ │ │ │ ├── BasicFormCustomSlots.vue │ │ │ │ │ ├── BasicFormDynamicsRules.vue │ │ │ │ │ ├── BasicFormFieldShow.vue │ │ │ │ │ ├── BasicFormFieldTip.vue │ │ │ │ │ ├── BasicFormFooter.vue │ │ │ │ │ ├── BasicFormLayout.vue │ │ │ │ │ ├── BasicFormModal.vue │ │ │ │ │ ├── BasicFormRander.vue │ │ │ │ │ ├── BasicFormRules.vue │ │ │ │ │ ├── BasicFormSchemas.vue │ │ │ │ │ ├── BasicFormSearch.vue │ │ │ │ │ ├── BasicFormSlots.vue │ │ │ │ │ ├── BasicFormValue.vue │ │ │ │ │ ├── BasicFunctionForm.vue │ │ │ │ │ ├── example.data.ts │ │ │ │ │ ├── exampleCustom.data.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── tabIndex.vue │ │ │ │ └── table/ │ │ │ │ ├── AuthColumnDemo.vue │ │ │ │ ├── BasicTableBorder.vue │ │ │ │ ├── BasicTableDemo.vue │ │ │ │ ├── BasicTableDemoAjax.vue │ │ │ │ ├── CustomerCellDemo.vue │ │ │ │ ├── EditCellTableDemo.vue │ │ │ │ ├── EditRowTableDemo.vue │ │ │ │ ├── ExpandTableDemo.vue │ │ │ │ ├── ExportTableDemo.vue │ │ │ │ ├── FixedHeaderColumn.vue │ │ │ │ ├── InnerTableDemo.vue │ │ │ │ ├── MergeHeaderDemo.vue │ │ │ │ ├── MergeTableDemo.vue │ │ │ │ ├── MultipleTableDemo.vue │ │ │ │ ├── SelectTableDemo.vue │ │ │ │ ├── TreeTableDemo.vue │ │ │ │ ├── index.ts │ │ │ │ └── tabIndex.vue │ │ │ ├── editor/ │ │ │ │ ├── json/ │ │ │ │ │ └── index.vue │ │ │ │ ├── markdown/ │ │ │ │ │ ├── Editor.vue │ │ │ │ │ └── index.vue │ │ │ │ └── tinymce/ │ │ │ │ ├── Editor.vue │ │ │ │ └── index.vue │ │ │ ├── feat/ │ │ │ │ ├── breadcrumb/ │ │ │ │ │ ├── ChildrenList.vue │ │ │ │ │ ├── ChildrenListDetail.vue │ │ │ │ │ ├── FlatList.vue │ │ │ │ │ └── FlatListDetail.vue │ │ │ │ ├── click-out-side/ │ │ │ │ │ └── index.vue │ │ │ │ ├── context-menu/ │ │ │ │ │ └── index.vue │ │ │ │ ├── copy/ │ │ │ │ │ └── index.vue │ │ │ │ ├── download/ │ │ │ │ │ ├── imgBase64.ts │ │ │ │ │ └── index.vue │ │ │ │ ├── full-screen/ │ │ │ │ │ └── index.vue │ │ │ │ ├── icon/ │ │ │ │ │ └── index.vue │ │ │ │ ├── img-preview/ │ │ │ │ │ └── index.vue │ │ │ │ ├── menu-params/ │ │ │ │ │ └── index.vue │ │ │ │ ├── msg/ │ │ │ │ │ └── index.vue │ │ │ │ ├── print/ │ │ │ │ │ └── index.vue │ │ │ │ ├── ripple/ │ │ │ │ │ └── index.vue │ │ │ │ ├── session-timeout/ │ │ │ │ │ └── index.vue │ │ │ │ ├── tab-params/ │ │ │ │ │ └── index.vue │ │ │ │ ├── tabs/ │ │ │ │ │ ├── TabDetail.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── watermark/ │ │ │ │ │ └── index.vue │ │ │ │ └── ws/ │ │ │ │ └── index.vue │ │ │ ├── form/ │ │ │ │ ├── AdvancedForm.vue │ │ │ │ ├── AppendForm.vue │ │ │ │ ├── CustomerForm.vue │ │ │ │ ├── DynamicForm.vue │ │ │ │ ├── RefForm.vue │ │ │ │ ├── RuleForm.vue │ │ │ │ ├── UseForm.vue │ │ │ │ └── index.vue │ │ │ ├── jeecg/ │ │ │ │ ├── AsyncTreeTable.vue │ │ │ │ ├── ImgDragSort.vue │ │ │ │ ├── ImgTurnPage.vue │ │ │ │ ├── InnerExpandTable.vue │ │ │ │ ├── JCodeEditDemo.vue │ │ │ │ ├── JEditorDemo.vue │ │ │ │ ├── JUploadDemo.vue │ │ │ │ ├── JVxeTableDemo/ │ │ │ │ │ ├── JVxeDemo1.vue │ │ │ │ │ ├── JVxeDemo2.vue │ │ │ │ │ ├── JVxeDemo3.vue │ │ │ │ │ ├── JVxeDemo4.vue │ │ │ │ │ ├── JVxeDemo5.vue │ │ │ │ │ ├── func-demo/ │ │ │ │ │ │ ├── JSBCDemo.vue │ │ │ │ │ │ ├── PopupSubTable.vue │ │ │ │ │ │ └── SocketReload.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── layout-demo/ │ │ │ │ │ ├── ErpTemplate.vue │ │ │ │ │ ├── Template1.vue │ │ │ │ │ ├── Template2.vue │ │ │ │ │ ├── Template3.vue │ │ │ │ │ ├── Template4.vue │ │ │ │ │ ├── Template5.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── JeecgComponents.vue │ │ │ │ ├── JeecgPdfView.vue │ │ │ │ ├── Native/ │ │ │ │ │ ├── less/ │ │ │ │ │ │ └── TableExpand.less │ │ │ │ │ └── one/ │ │ │ │ │ ├── OneNativeList.vue │ │ │ │ │ └── components/ │ │ │ │ │ ├── OneNativeForm.vue │ │ │ │ │ └── OneNativeModal.vue │ │ │ │ ├── PrintDemo.vue │ │ │ │ ├── TableTotal.vue │ │ │ │ ├── erplist/ │ │ │ │ │ ├── JeecgOrderCustomerList.vue │ │ │ │ │ ├── JeecgOrderTicketList.vue │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── JeecgOrderCustomerModal.vue │ │ │ │ │ │ ├── JeecgOrderModal.vue │ │ │ │ │ │ └── JeecgOrderTicketModal.vue │ │ │ │ │ ├── erplist.api.ts │ │ │ │ │ ├── erplist.data.ts │ │ │ │ │ └── index.vue │ │ │ │ ├── index.vue │ │ │ │ ├── jeecgComponents.data.ts │ │ │ │ └── model/ │ │ │ │ └── JeecgOrderModal.vue │ │ │ ├── level/ │ │ │ │ ├── Menu111.vue │ │ │ │ ├── Menu12.vue │ │ │ │ └── Menu2.vue │ │ │ ├── main-out/ │ │ │ │ └── index.vue │ │ │ ├── page/ │ │ │ │ ├── account/ │ │ │ │ │ ├── center/ │ │ │ │ │ │ ├── Application.vue │ │ │ │ │ │ ├── Article.vue │ │ │ │ │ │ ├── Project.vue │ │ │ │ │ │ ├── data.tsx │ │ │ │ │ │ └── index.vue │ │ │ │ │ └── setting/ │ │ │ │ │ ├── AccountBind.vue │ │ │ │ │ ├── BaseSetting.vue │ │ │ │ │ ├── MsgNotify.vue │ │ │ │ │ ├── SecureSetting.vue │ │ │ │ │ ├── data.ts │ │ │ │ │ └── index.vue │ │ │ │ ├── desc/ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ ├── data.tsx │ │ │ │ │ │ └── index.vue │ │ │ │ │ └── high/ │ │ │ │ │ ├── data.tsx │ │ │ │ │ └── index.vue │ │ │ │ ├── form/ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ ├── data.ts │ │ │ │ │ │ └── index.vue │ │ │ │ │ ├── high/ │ │ │ │ │ │ ├── PersonTable.vue │ │ │ │ │ │ ├── data.ts │ │ │ │ │ │ └── index.vue │ │ │ │ │ └── step/ │ │ │ │ │ ├── Step1.vue │ │ │ │ │ ├── Step2.vue │ │ │ │ │ ├── Step3.vue │ │ │ │ │ ├── data.tsx │ │ │ │ │ └── index.vue │ │ │ │ ├── list/ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ ├── data.tsx │ │ │ │ │ │ └── index.vue │ │ │ │ │ ├── card/ │ │ │ │ │ │ ├── data.tsx │ │ │ │ │ │ └── index.vue │ │ │ │ │ └── search/ │ │ │ │ │ ├── data.tsx │ │ │ │ │ └── index.vue │ │ │ │ └── result/ │ │ │ │ ├── fail/ │ │ │ │ │ └── index.vue │ │ │ │ └── success/ │ │ │ │ └── index.vue │ │ │ ├── permission/ │ │ │ │ ├── CurrentPermissionMode.vue │ │ │ │ ├── back/ │ │ │ │ │ ├── Btn.vue │ │ │ │ │ └── index.vue │ │ │ │ └── front/ │ │ │ │ ├── AuthPageA.vue │ │ │ │ ├── AuthPageB.vue │ │ │ │ ├── Btn.vue │ │ │ │ └── index.vue │ │ │ ├── setup/ │ │ │ │ └── index.vue │ │ │ ├── system/ │ │ │ │ ├── account/ │ │ │ │ │ ├── AccountDetail.vue │ │ │ │ │ ├── AccountModal.vue │ │ │ │ │ ├── DeptTree.vue │ │ │ │ │ ├── account.data.ts │ │ │ │ │ └── index.vue │ │ │ │ ├── dept/ │ │ │ │ │ ├── DeptModal.vue │ │ │ │ │ ├── dept.data.ts │ │ │ │ │ └── index.vue │ │ │ │ ├── menu/ │ │ │ │ │ ├── MenuDrawer.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── menu.data.ts │ │ │ │ ├── password/ │ │ │ │ │ ├── index.vue │ │ │ │ │ └── pwd.data.ts │ │ │ │ ├── role/ │ │ │ │ │ ├── RoleDrawer.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── role.data.ts │ │ │ │ └── test/ │ │ │ │ ├── TestDrawer.vue │ │ │ │ ├── index.vue │ │ │ │ └── test.data.ts │ │ │ ├── table/ │ │ │ │ ├── AntdTableSummary.vue │ │ │ │ ├── AuthColumn.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomerCell.vue │ │ │ │ ├── EditCellTable.vue │ │ │ │ ├── EditRowTable.vue │ │ │ │ ├── EditableCellIdTest.vue │ │ │ │ ├── ExpandTable.vue │ │ │ │ ├── FetchTable.vue │ │ │ │ ├── FixedColumn.vue │ │ │ │ ├── FixedHeight.vue │ │ │ │ ├── FooterTable.vue │ │ │ │ ├── FormTable.vue │ │ │ │ ├── MergeHeader.vue │ │ │ │ ├── MultipleHeader.vue │ │ │ │ ├── NestedTable.vue │ │ │ │ ├── RefTable.vue │ │ │ │ ├── TreeTable.vue │ │ │ │ ├── UseTable.vue │ │ │ │ └── tableData.tsx │ │ │ ├── tree/ │ │ │ │ ├── ActionTree.vue │ │ │ │ ├── EditTree.vue │ │ │ │ ├── data.ts │ │ │ │ └── index.vue │ │ │ └── vextable/ │ │ │ ├── OneToOneModal.vue │ │ │ ├── VexTableModal.vue │ │ │ ├── api.ts │ │ │ ├── data.ts │ │ │ ├── drawer.vue │ │ │ ├── form/ │ │ │ │ ├── JeecgOrderCustomerForm.vue │ │ │ │ └── JeecgOrderMainForm.vue │ │ │ ├── index.vue │ │ │ ├── index2.vue │ │ │ ├── jvxetable/ │ │ │ │ ├── JVxeTableModal.vue │ │ │ │ ├── jvxetable.api.ts │ │ │ │ └── jvxetable.data.ts │ │ │ └── modal.vue │ │ ├── monitor/ │ │ │ ├── datalog/ │ │ │ │ ├── DataLogCompareModal.vue │ │ │ │ ├── DataLogModal.vue │ │ │ │ ├── datalog.api.ts │ │ │ │ ├── datalog.data.ts │ │ │ │ └── index.vue │ │ │ ├── datasource/ │ │ │ │ ├── DataSourceModal.vue │ │ │ │ ├── datasource.api.ts │ │ │ │ ├── datasource.data.ts │ │ │ │ └── index.vue │ │ │ ├── disk/ │ │ │ │ ├── DiskInfo.vue │ │ │ │ ├── disk.api.ts │ │ │ │ └── gauge.vue │ │ │ ├── log/ │ │ │ │ ├── index.vue │ │ │ │ ├── log.api.ts │ │ │ │ └── log.data.ts │ │ │ ├── mynews/ │ │ │ │ ├── DetailModal.vue │ │ │ │ ├── DynamicNotice.vue │ │ │ │ ├── XssWhiteList.ts │ │ │ │ ├── index.vue │ │ │ │ ├── mynews.api.ts │ │ │ │ └── mynews.data.ts │ │ │ ├── quartz/ │ │ │ │ ├── QuartzModal.vue │ │ │ │ ├── index.vue │ │ │ │ ├── quartz.api.ts │ │ │ │ └── quartz.data.ts │ │ │ ├── redis/ │ │ │ │ ├── index.vue │ │ │ │ ├── redis.api.ts │ │ │ │ └── redis.data.ts │ │ │ ├── route/ │ │ │ │ ├── RouteModal.vue │ │ │ │ ├── components/ │ │ │ │ │ └── RouteRecycleBinModal.vue │ │ │ │ ├── index.vue │ │ │ │ ├── route.api.ts │ │ │ │ └── route.data.ts │ │ │ ├── server/ │ │ │ │ ├── index.vue │ │ │ │ ├── server.api.ts │ │ │ │ └── server.data.ts │ │ │ └── trace/ │ │ │ ├── index.vue │ │ │ ├── trace.api.ts │ │ │ └── trace.data.ts │ │ ├── openapi/ │ │ │ ├── OpenApi.api.ts │ │ │ ├── OpenApi.data.ts │ │ │ ├── OpenApiAuth.api.ts │ │ │ ├── OpenApiAuth.data.ts │ │ │ ├── OpenApiAuthList.vue │ │ │ ├── OpenApiList.vue │ │ │ ├── SwaggerUI.vue │ │ │ ├── components/ │ │ │ │ ├── AuthForm.vue │ │ │ │ ├── AuthModal.vue │ │ │ │ ├── OpenApiAuthForm.vue │ │ │ │ ├── OpenApiAuthModal.vue │ │ │ │ └── OpenApiModal.vue │ │ │ └── subTables/ │ │ │ ├── OpenApiHeaderSubTable.vue │ │ │ └── OpenApiParamSubTable.vue │ │ ├── report/ │ │ │ ├── chartdemo/ │ │ │ │ ├── chartdemo.data.ts │ │ │ │ └── index.vue │ │ │ └── statisticst/ │ │ │ └── index.vue │ │ ├── super/ │ │ │ ├── airag/ │ │ │ │ ├── aiapp/ │ │ │ │ │ ├── AiApp.api.ts │ │ │ │ │ ├── AiApp.data.ts │ │ │ │ │ ├── AiAppList.vue │ │ │ │ │ ├── chat/ │ │ │ │ │ │ ├── AiChat.vue │ │ │ │ │ │ ├── AiChatIcon.vue │ │ │ │ │ │ ├── ThinkText.vue │ │ │ │ │ │ ├── chat.vue │ │ │ │ │ │ ├── chatMessage.vue │ │ │ │ │ │ ├── chatText.vue │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── CardTemplate.vue │ │ │ │ │ │ │ ├── ConversationSettingsModal.vue │ │ │ │ │ │ │ └── ImageViewer.vue │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ ├── useChat.ts │ │ │ │ │ │ │ └── useScroll.ts │ │ │ │ │ │ ├── jeecg-tags/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── jeecg-chart/ │ │ │ │ │ │ │ │ ├── ChartRender.vue │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ │ ├── tool-exec/ │ │ │ │ │ │ │ │ ├── JeecgToolExec.vue │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ ├── js/ │ │ │ │ │ │ │ ├── chat.js │ │ │ │ │ │ │ └── useScroll.ts │ │ │ │ │ │ ├── portal/ │ │ │ │ │ │ │ ├── AppPortal.vue │ │ │ │ │ │ │ └── LeftPortalSession.vue │ │ │ │ │ │ ├── presetQuestion.vue │ │ │ │ │ │ ├── route/ │ │ │ │ │ │ │ └── register.ts │ │ │ │ │ │ ├── slide.vue │ │ │ │ │ │ └── style/ │ │ │ │ │ │ ├── github-markdown.less │ │ │ │ │ │ ├── highlight.less │ │ │ │ │ │ └── style.less │ │ │ │ │ └── components/ │ │ │ │ │ ├── AiApp.json │ │ │ │ │ ├── AiAppAddFlowModal.vue │ │ │ │ │ ├── AiAppAddKnowledgeModal.vue │ │ │ │ │ ├── AiAppAddMcpModal.vue │ │ │ │ │ ├── AiAppGeneratedPromptModal.vue │ │ │ │ │ ├── AiAppModal.vue │ │ │ │ │ ├── AiAppParamsSettingModal.vue │ │ │ │ │ ├── AiAppPromptMarketModal.vue │ │ │ │ │ ├── AiAppQuickCommandModal.vue │ │ │ │ │ ├── AiAppSendModal.vue │ │ │ │ │ ├── AiAppSettingModal.vue │ │ │ │ │ └── AiUserVariablesModal.vue │ │ │ │ ├── aiknowledge/ │ │ │ │ │ ├── AiKnowledgeBase.api.ts │ │ │ │ │ ├── AiKnowledgeBase.api.util.tsx │ │ │ │ │ ├── AiKnowledgeBase.data.ts │ │ │ │ │ ├── AiKnowledgeBaseList.vue │ │ │ │ │ └── components/ │ │ │ │ │ ├── AiKnowledgeBaseModal.vue │ │ │ │ │ ├── AiTextDescModal.vue │ │ │ │ │ ├── AiragKnowledgeDocListModal.vue │ │ │ │ │ └── AiragKnowledgeDocTextModal.vue │ │ │ │ ├── aimcp/ │ │ │ │ │ ├── AiragMcp.api.ts │ │ │ │ │ ├── AiragMcp.data.ts │ │ │ │ │ ├── AiragMcpList.vue │ │ │ │ │ └── components/ │ │ │ │ │ ├── AiragMcpAddModal.vue │ │ │ │ │ ├── AiragMcpDetailModal.vue │ │ │ │ │ └── PluginToolEditModal.vue │ │ │ │ ├── aimodel/ │ │ │ │ │ ├── AiModelList.vue │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── AiModelModal.vue │ │ │ │ │ │ ├── AiModelSeniorForm.vue │ │ │ │ │ │ └── model.json │ │ │ │ │ ├── model.api.ts │ │ │ │ │ └── model.data.ts │ │ │ │ ├── aiposter/ │ │ │ │ │ ├── AiPoster.data.ts │ │ │ │ │ └── AiPoster.vue │ │ │ │ ├── aiprompts/ │ │ │ │ │ ├── AiragExtData.api.ts │ │ │ │ │ ├── AiragExtData.data.ts │ │ │ │ │ ├── AiragExtDataExperiment.vue │ │ │ │ │ ├── AiragExtDataList.vue │ │ │ │ │ ├── AiragPrompts.api.ts │ │ │ │ │ ├── AiragPrompts.data.ts │ │ │ │ │ ├── AiragPromptsList.vue │ │ │ │ │ └── components/ │ │ │ │ │ ├── AiEvaluatorDebugModal.vue │ │ │ │ │ ├── AiEvaluatorSettingModal.vue │ │ │ │ │ ├── AiPromptSettingModal.vue │ │ │ │ │ ├── AiragDataSetColumnModal.vue │ │ │ │ │ ├── AiragDataSetDataDrawer.vue │ │ │ │ │ ├── AiragDataSetModal.vue │ │ │ │ │ ├── AiragExtDataModal.vue │ │ │ │ │ ├── AiragInvokeRecordsDrawer.vue │ │ │ │ │ ├── AiragPromptsModal.vue │ │ │ │ │ ├── AiragTrackDetailModal.vue │ │ │ │ │ └── EvaluatorDebug.vue │ │ │ │ ├── aiwriter/ │ │ │ │ │ ├── AiWriter.vue │ │ │ │ │ └── AiWriterLeft.vue │ │ │ │ ├── ocr/ │ │ │ │ │ ├── AiOcr.api.ts │ │ │ │ │ ├── AiOcr.data.ts │ │ │ │ │ ├── AiOcrList.vue │ │ │ │ │ └── components/ │ │ │ │ │ ├── AiOcrAnalysisModal.vue │ │ │ │ │ └── AiOcrModal.vue │ │ │ │ └── wordtpl/ │ │ │ │ ├── EoaWordTemplate.api.ts │ │ │ │ ├── EoaWordTemplate.data.ts │ │ │ │ ├── EoaWordTemplateList.vue │ │ │ │ └── components/ │ │ │ │ ├── EoaWordTemplateForm.vue │ │ │ │ └── EoaWordTemplateModal.vue │ │ │ └── registerSuper.ts │ │ ├── sys/ │ │ │ ├── about/ │ │ │ │ └── index.vue │ │ │ ├── error-log/ │ │ │ │ ├── DetailModal.vue │ │ │ │ ├── data.tsx │ │ │ │ └── index.vue │ │ │ ├── exception/ │ │ │ │ ├── Exception.vue │ │ │ │ ├── NetworkErrorException.vue │ │ │ │ ├── NotAccessException.vue │ │ │ │ ├── NotDataErrorException.vue │ │ │ │ ├── ServerErrorException.vue │ │ │ │ └── index.ts │ │ │ ├── forget-password/ │ │ │ │ ├── step1.vue │ │ │ │ ├── step2.vue │ │ │ │ └── step3.vue │ │ │ ├── iframe/ │ │ │ │ ├── FrameBlank.vue │ │ │ │ └── index.vue │ │ │ ├── lock/ │ │ │ │ ├── LockPage.vue │ │ │ │ ├── index.vue │ │ │ │ └── useNow.ts │ │ │ ├── login/ │ │ │ │ ├── ForgetPasswordForm.vue │ │ │ │ ├── Login.vue │ │ │ │ ├── LoginForm.vue │ │ │ │ ├── LoginFormTitle.vue │ │ │ │ ├── LoginSelect.vue │ │ │ │ ├── MobileForm.vue │ │ │ │ ├── OAuth2Login.vue │ │ │ │ ├── QrCodeForm.vue │ │ │ │ ├── RegisterForm.vue │ │ │ │ ├── SessionTimeoutLogin.vue │ │ │ │ ├── ThirdModal.vue │ │ │ │ ├── TokenLoginPage.vue │ │ │ │ └── useLogin.ts │ │ │ └── redirect/ │ │ │ └── index.vue │ │ └── system/ │ │ ├── address/ │ │ │ ├── address.api.ts │ │ │ ├── address.data.ts │ │ │ ├── components/ │ │ │ │ └── DepartLeftTree.vue │ │ │ ├── index.less │ │ │ └── index.vue │ │ ├── appVersion/ │ │ │ ├── SysAppVersion.vue │ │ │ └── appVersion.api.ts │ │ ├── appconfig/ │ │ │ ├── ThirdApp.api.ts │ │ │ ├── ThirdApp.data.ts │ │ │ ├── ThirdAppBindWeEnterpriseModal.vue │ │ │ ├── ThirdAppConfigList.vue │ │ │ ├── ThirdAppConfigModal.vue │ │ │ ├── ThirdAppDingTalkConfigForm.vue │ │ │ └── ThirdAppWeEnterpriseConfigForm.vue │ │ ├── category/ │ │ │ ├── category.api.ts │ │ │ ├── category.data.ts │ │ │ ├── components/ │ │ │ │ └── CategoryModal.vue │ │ │ └── index.vue │ │ ├── checkRule/ │ │ │ ├── CheckRuleModal.vue │ │ │ ├── CheckRuleTestModal.vue │ │ │ ├── check.rule.api.ts │ │ │ ├── check.rule.data.ts │ │ │ └── index.vue │ │ ├── depart/ │ │ │ ├── TenantDepartList.vue │ │ │ ├── components/ │ │ │ │ ├── DepartDataRuleDrawer.vue │ │ │ │ ├── DepartFormModal.vue │ │ │ │ ├── DepartFormTab.vue │ │ │ │ ├── DepartLeftTree.vue │ │ │ │ ├── DepartRankRelation.vue │ │ │ │ ├── DepartRuleTab.vue │ │ │ │ ├── DepartUserList.vue │ │ │ │ └── DepartmentHeadList.vue │ │ │ ├── depart.api.ts │ │ │ ├── depart.data.ts │ │ │ ├── index.less │ │ │ └── index.vue │ │ ├── departUser/ │ │ │ ├── components/ │ │ │ │ ├── DepartBaseInfoTab.vue │ │ │ │ ├── DepartRoleAuthDrawer.vue │ │ │ │ ├── DepartRoleDataRuleDrawer.vue │ │ │ │ ├── DepartRoleInfoTab.vue │ │ │ │ ├── DepartRoleModal.vue │ │ │ │ ├── DepartRoleUserAuthDrawer.vue │ │ │ │ ├── DepartTree.vue │ │ │ │ └── DepartUserInfoTab.vue │ │ │ ├── depart.user.api.ts │ │ │ ├── depart.user.data.ts │ │ │ ├── index.less │ │ │ └── index.vue │ │ ├── dict/ │ │ │ ├── components/ │ │ │ │ ├── DictItemList.vue │ │ │ │ ├── DictItemModal.vue │ │ │ │ ├── DictModal.vue │ │ │ │ └── DictRecycleBinModal.vue │ │ │ ├── dict.api.ts │ │ │ ├── dict.data.ts │ │ │ └── index.vue │ │ ├── examples/ │ │ │ └── demo/ │ │ │ ├── DemoModal.vue │ │ │ ├── demo.api.ts │ │ │ ├── demo.data.ts │ │ │ └── index.vue │ │ ├── fillRule/ │ │ │ ├── FillRuleModal.vue │ │ │ ├── fill.rule.api.ts │ │ │ ├── fill.rule.data.ts │ │ │ └── index.vue │ │ ├── homeConfig/ │ │ │ ├── components/ │ │ │ │ └── HomeConfigModal.vue │ │ │ ├── home.api.ts │ │ │ ├── home.data.ts │ │ │ └── index.vue │ │ ├── loginmini/ │ │ │ ├── MiniCodelogin.vue │ │ │ ├── MiniForgotpad.vue │ │ │ ├── MiniLogin.vue │ │ │ ├── MiniRegister.vue │ │ │ └── OAuth2Login.vue │ │ ├── menu/ │ │ │ ├── DataRuleList.vue │ │ │ ├── DataRuleModal.vue │ │ │ ├── MenuDrawer.vue │ │ │ ├── index.vue │ │ │ ├── menu.api.ts │ │ │ └── menu.data.ts │ │ ├── message/ │ │ │ ├── components/ │ │ │ │ ├── SysMessageList.vue │ │ │ │ ├── SysMessageModal.vue │ │ │ │ └── useSysMessage.ts │ │ │ ├── manage/ │ │ │ │ ├── ManageDrawer.vue │ │ │ │ ├── index.less │ │ │ │ ├── index.vue │ │ │ │ ├── manage.api.ts │ │ │ │ └── manage.data.ts │ │ │ └── template/ │ │ │ ├── TemplateModal.vue │ │ │ ├── TemplateTestModal.vue │ │ │ ├── index.less │ │ │ ├── index.vue │ │ │ ├── template.api.ts │ │ │ └── template.data.ts │ │ ├── notice/ │ │ │ ├── DetailModal.vue │ │ │ ├── NoticeForm.vue │ │ │ ├── NoticeModal.vue │ │ │ ├── index.vue │ │ │ ├── notice.api.ts │ │ │ └── notice.data.ts │ │ ├── onlineuser/ │ │ │ ├── OnlineUser.api.ts │ │ │ ├── OnlineUser.data.ts │ │ │ └── OnlineUserList.vue │ │ ├── ossfile/ │ │ │ ├── index.vue │ │ │ ├── ossfile.api.ts │ │ │ └── ossfile.data.ts │ │ ├── position/ │ │ │ ├── PositionModal.vue │ │ │ ├── TenantPositionList.vue │ │ │ ├── index.vue │ │ │ ├── position.api.ts │ │ │ └── position.data.ts │ │ ├── role/ │ │ │ ├── TenantRoleList.vue │ │ │ ├── components/ │ │ │ │ ├── RoleDataRuleDrawer.vue │ │ │ │ ├── RoleDesc.vue │ │ │ │ ├── RoleDrawer.vue │ │ │ │ ├── RoleIndexModal.vue │ │ │ │ ├── RolePermissionDrawer.vue │ │ │ │ ├── RoleUserTable.vue │ │ │ │ └── UseSelectModal.vue │ │ │ ├── index.vue │ │ │ ├── role.api.ts │ │ │ └── role.data.ts │ │ ├── tableWhiteList/ │ │ │ ├── SysTableWhiteList.api.ts │ │ │ ├── SysTableWhiteList.data.ts │ │ │ ├── SysTableWhiteListList.vue │ │ │ └── modules/ │ │ │ └── SysTableWhiteListModal.vue │ │ ├── tenant/ │ │ │ ├── TenantUserList.vue │ │ │ ├── components/ │ │ │ │ ├── TenantInviteUserModal.vue │ │ │ │ ├── TenantModal.vue │ │ │ │ ├── TenantPackAllotModal.vue │ │ │ │ ├── TenantRecycleBinModal.vue │ │ │ │ ├── TenantUserDrawer.vue │ │ │ │ ├── TenantUserList.vue │ │ │ │ ├── TenantUserRightList.vue │ │ │ │ └── TenantUserSelectModal.vue │ │ │ ├── index.vue │ │ │ ├── my/ │ │ │ │ ├── MyTenantDetail.vue │ │ │ │ └── MyTenantList.vue │ │ │ ├── pack/ │ │ │ │ ├── PackPermissionDrawer.vue │ │ │ │ ├── TenantCurrentPackList.vue │ │ │ │ ├── TenantDefaultPackList.vue │ │ │ │ ├── TenantPackList.vue │ │ │ │ ├── TenantPackMenuModal.vue │ │ │ │ └── TenantPackUserModal.vue │ │ │ ├── tenant.api.ts │ │ │ └── tenant.data.ts │ │ ├── user/ │ │ │ ├── PasswordModal.vue │ │ │ ├── UserDrawer.vue │ │ │ ├── UserQuitModal.vue │ │ │ ├── UserRecycleBinModal.vue │ │ │ ├── components/ │ │ │ │ └── ImportExcelProgress.vue │ │ │ ├── index.vue │ │ │ ├── user.api.ts │ │ │ ├── user.data.ts │ │ │ └── userDetails.vue │ │ └── usersetting/ │ │ ├── AccountSetting.vue │ │ ├── BaseSetting.vue │ │ ├── TenantSetting.vue │ │ ├── UserSetting.api.ts │ │ ├── UserSetting.data.ts │ │ ├── UserSetting.vue │ │ ├── WeChatDingSetting.vue │ │ └── commponents/ │ │ ├── UserAccountModal.vue │ │ ├── UserCancellationModal.vue │ │ ├── UserEmailModal.vue │ │ ├── UserPasswordModal.vue │ │ ├── UserPasswordNotBindPhone.vue │ │ └── UserPhoneModal.vue │ ├── stylelint.config.js │ ├── tests/ │ │ ├── __mocks__/ │ │ │ ├── fileMock.ts │ │ │ ├── styleMock.ts │ │ │ └── workerMock.ts │ │ ├── server/ │ │ │ ├── README.md │ │ │ ├── controller/ │ │ │ │ ├── FileController.ts │ │ │ │ └── UserController.ts │ │ │ ├── ecosystem.config.js │ │ │ ├── index.ts │ │ │ ├── nodemon.json │ │ │ ├── package.json │ │ │ ├── routes.ts │ │ │ ├── service/ │ │ │ │ ├── FileService.ts │ │ │ │ └── UserService.ts │ │ │ ├── tsconfig.json │ │ │ └── utils.ts │ │ └── test.spec.ts │ ├── tsconfig.json │ ├── types/ │ │ ├── axios.d.ts │ │ ├── config.d.ts │ │ ├── global.d.ts │ │ ├── index.d.ts │ │ ├── main.d.ts │ │ ├── module.d.ts │ │ ├── store.d.ts │ │ ├── utils.d.ts │ │ └── vue-router.d.ts │ └── vite.config.ts ├── start-docker-compose-cloud.bat ├── start-docker-compose-cloud.sh ├── start-docker-compose.bat └── start-docker-compose.sh