├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── build.bat ├── build.sh ├── cms ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── fastcms │ │ └── cms │ │ ├── Cms.java │ │ ├── aspect │ │ ├── IArticleCategoryServiceAspect.java │ │ └── IMenuServiceAspect.java │ │ ├── controller │ │ ├── admin │ │ │ ├── ArticleController.java │ │ │ ├── PageController.java │ │ │ └── TemplateController.java │ │ └── api │ │ │ ├── ArticleApi.java │ │ │ ├── ArticleCommentApi.java │ │ │ ├── ArticleZanApi.java │ │ │ └── PageApi.java │ │ ├── directive │ │ ├── ArticleDirective.java │ │ ├── ArticleListDirective.java │ │ ├── ArticlePageDirective.java │ │ ├── ArticlePriceDirective.java │ │ ├── CategoryListDirective.java │ │ ├── ExtFieldDirective.java │ │ ├── I18nDirective.java │ │ ├── MenuDirective.java │ │ ├── NextArticleDirective.java │ │ ├── PreviousArticleDirective.java │ │ ├── RelatedArticleDirective.java │ │ ├── SeoDirective.java │ │ ├── SinglePageListDirective.java │ │ ├── TagListDirective.java │ │ └── TemplateCtxDirective.java │ │ ├── entity │ │ ├── Article.java │ │ ├── ArticleCategory.java │ │ ├── ArticleComment.java │ │ ├── ArticleTag.java │ │ ├── ArticleZan.java │ │ ├── Menu.java │ │ ├── SinglePage.java │ │ └── SinglePageComment.java │ │ ├── mapper │ │ ├── ArticleCategoryMapper.java │ │ ├── ArticleCommentMapper.java │ │ ├── ArticleMapper.java │ │ ├── ArticleTagMapper.java │ │ ├── ArticleZanMapper.java │ │ ├── MenuMapper.java │ │ ├── SinglePageCommentMapper.java │ │ └── SinglePageMapper.java │ │ ├── order │ │ ├── AbstractFastcmsOrderService.java │ │ ├── AbstractFastcmsPayBackService.java │ │ ├── CreateOrderParam.java │ │ ├── DefaultFastcmsOrderService.java │ │ ├── FastcmsArticlePriceServiceManager.java │ │ ├── FastcmsOrderServiceManager.java │ │ ├── IArticlePriceService.java │ │ ├── IFastcmsOrderService.java │ │ ├── IFastcmsPayBackService.java │ │ ├── IPayBackProcessOrderService.java │ │ ├── JsonExtField.java │ │ └── ProductParam.java │ │ ├── search │ │ ├── FastcmsSearcher.java │ │ ├── FastcmsSearcherManager.java │ │ ├── LuceneSearcher.java │ │ └── SearchIndexAspect.java │ │ ├── service │ │ ├── IArticleCategoryService.java │ │ ├── IArticleCommentService.java │ │ ├── IArticleService.java │ │ ├── IArticleTagService.java │ │ ├── IArticleZanService.java │ │ ├── IMenuService.java │ │ ├── ISinglePageCommentService.java │ │ ├── ISinglePageService.java │ │ └── impl │ │ │ ├── ArticleCategoryServiceImpl.java │ │ │ ├── ArticleCommentServiceImpl.java │ │ │ ├── ArticleServiceImpl.java │ │ │ ├── ArticleTagServiceImpl.java │ │ │ ├── ArticleZanServiceImpl.java │ │ │ ├── MenuServiceImpl.java │ │ │ ├── SinglePageCommentServiceImpl.java │ │ │ └── SinglePageServiceImpl.java │ │ ├── site │ │ ├── DefaultSiteManager.java │ │ ├── SiteContextFilter.java │ │ ├── SiteManager.java │ │ └── SiteTemplatePostProcessor.java │ │ ├── task │ │ └── ArticleViewCountUpdateTask.java │ │ ├── template │ │ ├── TemplateBaseController.java │ │ └── TemplateIndexController.java │ │ └── utils │ │ └── ArticleUtils.java │ └── resources │ └── mapper │ ├── ArticleCategoryMapper.xml │ ├── ArticleCommentMapper.xml │ ├── ArticleMapper.xml │ ├── ArticleTagMapper.xml │ ├── ArticleZanMapper.xml │ ├── MenuMapper.xml │ ├── SinglePageCommentMapper.xml │ └── SinglePageMapper.xml ├── codegen ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── fastcms │ └── codegen │ ├── AbstractCodeGen.java │ ├── CmsCodeGen.java │ └── SystemCodeGen.java ├── common ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── fastcms │ │ └── common │ │ ├── auth │ │ ├── ActionTypes.java │ │ ├── AuthConstants.java │ │ ├── Secured.java │ │ ├── model │ │ │ ├── Permission.java │ │ │ ├── Resource.java │ │ │ └── User.java │ │ └── parser │ │ │ ├── DefaultResourceParser.java │ │ │ └── ResourceParser.java │ │ ├── constants │ │ └── FastcmsConstants.java │ │ ├── exception │ │ ├── AccessException.java │ │ ├── FastcmsDeserializationException.java │ │ ├── FastcmsException.java │ │ ├── FastcmsRuntimeException.java │ │ ├── FastcmsSerializationException.java │ │ └── I18nFastcmsException.java │ │ ├── executor │ │ ├── ExecutorFactory.java │ │ ├── NameThreadFactory.java │ │ └── ThreadPoolManager.java │ │ ├── http │ │ ├── AbstractResultHandler.java │ │ ├── BeanResultHandler.java │ │ ├── Header.java │ │ ├── HttpClientConfig.java │ │ ├── HttpClientRequest.java │ │ ├── HttpClientResponse.java │ │ ├── HttpRestResult.java │ │ ├── JdkHttpClientRequest.java │ │ ├── JdkHttpClientResponse.java │ │ ├── MediaType.java │ │ ├── Query.java │ │ ├── RequestHandler.java │ │ ├── RequestHttpEntity.java │ │ ├── ResponseHandler.java │ │ ├── RestResultHandler.java │ │ ├── ResultHandler.java │ │ └── StringResultHandler.java │ │ ├── model │ │ ├── RestResult.java │ │ ├── RestResultUtils.java │ │ ├── RouterNode.java │ │ ├── TreeNode.java │ │ └── TreeNodeConvert.java │ │ ├── request │ │ └── AbstractRequest.java │ │ └── utils │ │ ├── ArrayUtils.java │ │ ├── ByteUtils.java │ │ ├── DirUtils.java │ │ ├── FileUtils.java │ │ ├── HttpUtils.java │ │ ├── ImageUtils.java │ │ ├── IoUtils.java │ │ ├── JacksonUtils.java │ │ ├── JsoupUtils.java │ │ ├── MapUtil.java │ │ ├── ReflectUtils.java │ │ ├── SnowFlake.java │ │ ├── StrUtils.java │ │ ├── ThreadUtils.java │ │ └── VersionUtils.java │ └── resources │ └── fastcms-version.txt ├── core ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── fastcms │ │ └── core │ │ ├── attach │ │ ├── AbstractWaterMarkProcessor.java │ │ ├── FileServerManager.java │ │ ├── ImageWaterMarkProcessor.java │ │ ├── PDFWaterMarkProcessor.java │ │ ├── WaterMarkAspect.java │ │ └── WaterMarkProcessor.java │ │ ├── auth │ │ ├── AuthPermissionService.java │ │ ├── AuthUtils.java │ │ ├── ControllerMethodsCache.java │ │ ├── FastcmsAuthUserInfo.java │ │ ├── FastcmsUserDetails.java │ │ ├── FastcmsUserDetailsServiceImpl.java │ │ ├── RequestMappingInfo.java │ │ └── condition │ │ │ ├── ParamRequestCondition.java │ │ │ └── PathRequestCondition.java │ │ ├── captcha │ │ ├── FastcmsCaptcha.java │ │ └── FastcmsCaptchaService.java │ │ ├── config │ │ ├── AbstractConfigListener.java │ │ ├── ConfigListener.java │ │ ├── ConfigListenerManager.java │ │ ├── EmailConfigListener.java │ │ ├── WechatMiniAppConfigListener.java │ │ └── WechatMpConfigListener.java │ │ ├── directive │ │ ├── BaseDirective.java │ │ ├── BaseFunction.java │ │ ├── BasePaginationDirective.java │ │ ├── BaseSubDirective.java │ │ ├── CheckedifDirective.java │ │ ├── ConfigDirective.java │ │ ├── HasPluginDirective.java │ │ ├── LocalDateTimeFormat.java │ │ ├── PaginationDirective.java │ │ ├── ParamFunction.java │ │ ├── SelectIfDirective.java │ │ ├── TextDirective.java │ │ └── UserListDirective.java │ │ ├── exception │ │ └── FastcmsGlobalExceptionHandler.java │ │ ├── field │ │ ├── AbstractFieldRender.java │ │ ├── FastcmsField.java │ │ ├── FastcmsFieldRender.java │ │ ├── FieldRenderManager.java │ │ ├── InputFieldRender.java │ │ └── SelectFieldRender.java │ │ ├── freemarker │ │ ├── FastcmsFreeMarkerView.java │ │ └── FastcmsFreeMarkerViewResolver.java │ │ ├── listener │ │ └── FastcmsApplicationRunListener.java │ │ ├── monitor │ │ └── MetricsMonitor.java │ │ ├── mybatis │ │ ├── AllDataPermissionSqlHandler.java │ │ ├── DefaultDataPermissionSqlHandlerManager.java │ │ ├── DeptLeaderDataPermissionSqlHandler.java │ │ ├── FastcmsMetaObjectHandler.java │ │ ├── LanguageDataPermissionSqlHandler.java │ │ ├── PageModel.java │ │ └── SelfDataPermissionSqlHandler.java │ │ ├── payment │ │ └── FastcmsPaymentPlatformService.java │ │ ├── site │ │ ├── Site.java │ │ └── SiteContextHolder.java │ │ ├── sms │ │ ├── AliyunSmsRequest.java │ │ ├── AliyunSmsSender.java │ │ ├── FastcmsSmsManager.java │ │ ├── FastcmsSmsSender.java │ │ └── SmsMessage.java │ │ ├── template │ │ ├── DefaultTemplateFinder.java │ │ ├── DefaultTemplateService.java │ │ ├── FakeStaticHtmlService.java │ │ ├── FastcmsStaticHtmlManager.java │ │ ├── FastcmsStaticHtmlService.java │ │ ├── FastcmsTemplateFreeMarkerConfig.java │ │ ├── FastcmsTemplateFreeMarkerConfigurer.java │ │ ├── FastcmsTemplateView.java │ │ ├── FastcmsTemplateViewResolver.java │ │ ├── StaticPathHelper.java │ │ ├── Template.java │ │ ├── TemplateFinder.java │ │ ├── TemplatePostProcessor.java │ │ ├── TemplatePostProcessorAspect.java │ │ ├── TemplatePostProcessorManager.java │ │ └── TemplateService.java │ │ ├── utils │ │ ├── AttachUtils.java │ │ ├── ExceptionUtil.java │ │ ├── RenderUtils.java │ │ └── StaticUtils.java │ │ └── websocket │ │ ├── FastcmsWebSocketHandler.java │ │ └── WebSocketSessionManager.java │ └── resources │ ├── META-INF │ ├── logback │ │ └── fastcms.xml │ └── spring.factories │ └── banner.txt ├── doc ├── images │ ├── fastcms.jpg │ ├── fastcms.png │ └── wechat.jpg ├── springsecurity │ ├── EnableWebSecurity.md │ ├── HttpSecurity.md │ ├── WebSecurity.md │ └── oauth2server授权流程.md ├── sql │ ├── fastcms-0.0.2.sql │ ├── fastcms-0.0.3.sql │ ├── fastcms-0.0.4.sql │ ├── fastcms-0.0.5.sql │ ├── fastcms-0.0.8.sql │ ├── fastcms-0.0.9.sql │ ├── fastcms-0.1.0.sql │ ├── fastcms-0.1.3.sql │ ├── fastcms-0.1.5.sql │ ├── fastcms-0.1.7.sql │ └── fastcms.sql └── 运行与部署 │ ├── 本地运行.md │ └── 生产环境部署.md ├── docker ├── .env ├── docker-compose.yml ├── fastcms │ ├── config │ │ └── application-prod.yml │ ├── htmls │ │ └── cms │ │ │ ├── _articlePage.html │ │ │ ├── _layout.html │ │ │ ├── _template.properties │ │ │ ├── article.html │ │ │ ├── article_list.html │ │ │ ├── i18n │ │ │ ├── cms.properties │ │ │ ├── cms_en.properties │ │ │ └── cms_zh_CN.properties │ │ │ ├── index.html │ │ │ ├── page.html │ │ │ └── static │ │ │ ├── css │ │ │ ├── animate.min.css │ │ │ ├── bootstrap.min.css │ │ │ ├── font-awesome.min.css │ │ │ └── templatemo-style.css │ │ │ ├── favicon.ico │ │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── images │ │ │ ├── contact-bg.jpg │ │ │ ├── fastcms.png │ │ │ ├── home-bg.jpg │ │ │ ├── home-bg2.jpg │ │ │ ├── software-img.png │ │ │ ├── web-site.png │ │ │ └── wechat-dev.png │ │ │ └── js │ │ │ ├── bootstrap.min.js │ │ │ ├── custom.js │ │ │ ├── jquery.1.10.js │ │ │ ├── jquery.singlePageNav.min.js │ │ │ └── wow.min.js │ └── logs │ │ ├── fastcms.log │ │ └── fastcms.log.2024-11-13.0 └── mysql │ ├── conf.d │ └── docker.cnf │ └── initdb │ └── fastcms.sql ├── mvnw ├── mvnw.cmd ├── plugins ├── hello-world-plugin │ ├── plugin.properties │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── fastcms │ │ │ └── hello │ │ │ ├── Hello.java │ │ │ ├── HelloComponent.java │ │ │ ├── HelloComponent2.java │ │ │ ├── HelloController.java │ │ │ ├── HelloDataPermissionSqlHandler.java │ │ │ ├── HelloDirective.java │ │ │ ├── HelloFunction.java │ │ │ ├── HelloInterceptor.java │ │ │ ├── HelloPlugin.java │ │ │ ├── HelloPluginMapper.java │ │ │ ├── HelloPluginMapper.xml │ │ │ ├── HelloService.java │ │ │ ├── HelloServiceImpl.java │ │ │ ├── HelloServiceImpl2.java │ │ │ ├── HelloTask.java │ │ │ └── IHelloService.java │ │ └── resources │ │ ├── hello-plugin.sql │ │ └── templates │ │ └── hello.html └── pom.xml ├── pom.xml ├── service ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── fastcms │ │ ├── cache │ │ └── CacheConfig.java │ │ ├── entity │ │ ├── Attachment.java │ │ ├── Config.java │ │ ├── Department.java │ │ ├── Order.java │ │ ├── OrderInvoice.java │ │ ├── OrderItem.java │ │ ├── PaymentRecord.java │ │ ├── Permission.java │ │ ├── Resource.java │ │ ├── Role.java │ │ ├── User.java │ │ ├── UserAmount.java │ │ ├── UserAmountPayout.java │ │ ├── UserAmountStatement.java │ │ ├── UserOpenid.java │ │ ├── UserServerOpenid.java │ │ └── UserTag.java │ │ ├── extension │ │ ├── FastcmsTransferService.java │ │ ├── FastcmsTransferServiceManager.java │ │ └── IndexDataExtension.java │ │ ├── language │ │ └── Language.java │ │ ├── mapper │ │ ├── AttachmentMapper.java │ │ ├── ConfigMapper.java │ │ ├── DepartmentMapper.java │ │ ├── OrderInvoiceMapper.java │ │ ├── OrderItemMapper.java │ │ ├── OrderMapper.java │ │ ├── PaymentRecordMapper.java │ │ ├── PermissionMapper.java │ │ ├── ResourceMapper.java │ │ ├── RoleMapper.java │ │ ├── UserAmountMapper.java │ │ ├── UserAmountPayoutMapper.java │ │ ├── UserAmountStatementMapper.java │ │ ├── UserMapper.java │ │ ├── UserOpenidMapper.java │ │ ├── UserServerOpenidMapper.java │ │ └── UserTagMapper.java │ │ ├── service │ │ ├── IAttachmentService.java │ │ ├── IConfigService.java │ │ ├── IDepartmentService.java │ │ ├── IOrderInvoiceService.java │ │ ├── IOrderItemService.java │ │ ├── IOrderService.java │ │ ├── IPaymentRecordService.java │ │ ├── IPermissionService.java │ │ ├── IResourceService.java │ │ ├── IRoleService.java │ │ ├── IUserAmountPayoutService.java │ │ ├── IUserAmountService.java │ │ ├── IUserAmountStatementService.java │ │ ├── IUserOpenidService.java │ │ ├── IUserServerOpenidService.java │ │ ├── IUserService.java │ │ ├── IUserTagService.java │ │ └── impl │ │ │ ├── AttachmentServiceImpl.java │ │ │ ├── ConfigServiceImpl.java │ │ │ ├── DepartmentServiceImpl.java │ │ │ ├── OrderInvoiceServiceImpl.java │ │ │ ├── OrderItemServiceImpl.java │ │ │ ├── OrderServiceImpl.java │ │ │ ├── PaymentRecordServiceImpl.java │ │ │ ├── PermissionServiceImpl.java │ │ │ ├── ResourceServiceImpl.java │ │ │ ├── RoleServiceImpl.java │ │ │ ├── UserAmountPayoutServiceImpl.java │ │ │ ├── UserAmountServiceImpl.java │ │ │ ├── UserAmountStatementServiceImpl.java │ │ │ ├── UserOpenidServiceImpl.java │ │ │ ├── UserServerOpenidServiceImpl.java │ │ │ ├── UserServiceImpl.java │ │ │ └── UserTagServiceImpl.java │ │ ├── task │ │ └── OrderAutoCancelTask.java │ │ └── utils │ │ ├── ApplicationUtils.java │ │ ├── CollectionUtils.java │ │ ├── ConfigUtils.java │ │ ├── I18nUtils.java │ │ ├── PluginUtils.java │ │ ├── ReflectUtil.java │ │ ├── RequestUtils.java │ │ └── UserAmountUtils.java │ └── resources │ ├── META-INF │ └── spring.factories │ ├── ehcache.xml │ └── mapper │ ├── AttachmentMapper.xml │ ├── ConfigMapper.xml │ ├── DepartmentMapper.xml │ ├── OrderInvoiceMapper.xml │ ├── OrderItemMapper.xml │ ├── OrderMapper.xml │ ├── PaymentRecordMapper.xml │ ├── PermissionMapper.xml │ ├── ResourceMapper.xml │ ├── RoleMapper.xml │ ├── UserAmountMapper.xml │ ├── UserAmountPayoutMapper.xml │ ├── UserAmountStatementMapper.xml │ ├── UserMapper.xml │ ├── UserOpenidMapper.xml │ ├── UserServerOpenidMapper.xml │ └── UserTagMapper.xml ├── starters ├── email-starter │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── fastcms │ │ │ └── email │ │ │ └── autoconfigure │ │ │ ├── FastcmsJavaMailSender.java │ │ │ ├── FastcmsJavaMailSenderImpl.java │ │ │ └── FastcmsMailSenderAutoConfiguration.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── lucene-starter │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── fastcms │ │ │ └── lucene │ │ │ └── autoconfigure │ │ │ └── LuceneAutoConfiguration.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── mybatis-starter │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ ├── baomidou │ │ │ └── mybatisplus │ │ │ │ └── core │ │ │ │ ├── MybatisConfiguration.java │ │ │ │ └── MybatisMapperAnnotationBuilder.java │ │ │ └── fastcms │ │ │ └── mybatis │ │ │ ├── AbstractDataPermissionSqlHandler.java │ │ │ ├── DataPermissionSqlHandler.java │ │ │ ├── DataPermissionSqlHandlerManager.java │ │ │ ├── DataPermissionSqlProcessor.java │ │ │ ├── IgnoreDataPermission.java │ │ │ ├── IgnoreDataPermissionCache.java │ │ │ ├── SqlSegment.java │ │ │ ├── autoconfigure │ │ │ ├── FastcmsMybatisAutoConfiguration.java │ │ │ └── FastcmsMybatisConfiguration.java │ │ │ └── interceptor │ │ │ ├── FastcmsDataPermissionInterceptor.java │ │ │ ├── FastcmsParamInterceptor.java │ │ │ └── FastcmsResultSetInterceptor.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── oauth2-starter │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── fastcms │ │ └── oauth2 │ │ ├── authentication │ │ ├── AbstractFastcmsOAuth2LoginSuccessHandler.java │ │ ├── FastcmsOAuth2LoginSuccessHandler.java │ │ ├── FastcmsOAuth2LoginSuccessUrlManager.java │ │ └── FastcmsSavedRequestAwareAuthenticationSuccessHandler.java │ │ ├── autoconfigure │ │ └── FastcmsOauth2AutoConfiguration.java │ │ ├── endpoint │ │ ├── AbstractOAuth2AuthorizationGrantRequestEntityConverter.java │ │ ├── AbstractOAuth2AuthorizationRequestPostProcessor.java │ │ ├── FastcmsAuthorizationCodeTokenResponseClient.java │ │ ├── FastcmsHttpMessageConverters.java │ │ ├── FastcmsMapOAuth2AccessTokenResponseConverter.java │ │ ├── FastcmsMappingJackson2HttpMessageConverter.java │ │ ├── FastcmsOAuth2AccessTokenResponseHttpMessageConverter.java │ │ ├── FastcmsOAuth2AuthorizationRequestResolver.java │ │ ├── OAuth2AuthorizationGrantRequestEntityConverterManager.java │ │ ├── OAuth2AuthorizationGrantRequestEntityUtils.java │ │ ├── OAuth2AuthorizationRequestPostProcessor.java │ │ └── OAuth2AuthorizationRequestPostProcessorManager.java │ │ ├── registration │ │ ├── FastcmsInMemoryClientRegistrationRepository.java │ │ └── FastcmsOAuth2ClientRegistration.java │ │ └── userinfo │ │ ├── AbstractOAuth2UserService.java │ │ ├── FastcmsOAuth2UserService.java │ │ └── OAuth2UserServiceManager.java ├── payment-starter │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── fastcms │ │ │ └── payment │ │ │ ├── FastcmsPayServiceManager.java │ │ │ ├── PayServiceManager.java │ │ │ ├── PaymentPlatform.java │ │ │ ├── PaymentPlatformService.java │ │ │ ├── PaymentPlatforms.java │ │ │ ├── autoconfigure │ │ │ └── PaymentAutoConfiguration.java │ │ │ ├── bean │ │ │ ├── FastcmsPayOrder.java │ │ │ └── FastcmsQueryOrder.java │ │ │ └── handler │ │ │ └── FastcmsAbstractPayMessageHandler.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── plugin-starter │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── fastcms │ │ │ └── plugin │ │ │ ├── Directive.java │ │ │ ├── FastcmsPluginManager.java │ │ │ ├── FastcmsTask.java │ │ │ ├── InterceptPath.java │ │ │ ├── PassFastcms.java │ │ │ ├── PluginApplicationUtils.java │ │ │ ├── PluginBase.java │ │ │ ├── PluginInterceptor.java │ │ │ ├── PluginManagerService.java │ │ │ ├── PluginRegister.java │ │ │ ├── UnLoad.java │ │ │ ├── autoconfigure │ │ │ ├── PluginAutoConfiguration.java │ │ │ └── PluginProperties.java │ │ │ ├── extension │ │ │ ├── FastcmsExtensionFactory.java │ │ │ ├── FastcmsExtensionFinder.java │ │ │ ├── FastcmsLegacyExtensionFinder.java │ │ │ ├── FastcmsSpringExtensionFactory.java │ │ │ └── SpringExtensionFactory.java │ │ │ ├── register │ │ │ ├── AbstractPluginRegister.java │ │ │ ├── ComponentRegister.java │ │ │ ├── CompoundPluginRegister.java │ │ │ ├── ControllerRegister.java │ │ │ ├── DirectiveRegister.java │ │ │ ├── ExtensionsRegister.java │ │ │ ├── FastcmsTaskRegister.java │ │ │ ├── FreeMarkerViewRegister.java │ │ │ ├── InterceptorRegister.java │ │ │ └── MyBatisMapperRegister.java │ │ │ └── view │ │ │ ├── FastcmsFreeMarkerConfig.java │ │ │ ├── PluginFreeMarkerConfig.java │ │ │ ├── PluginFreeMarkerConfigurer.java │ │ │ ├── PluginFreeMarkerView.java │ │ │ └── PluginFreeMarkerViewResolver.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── pom.xml └── wechat-starter │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── fastcms │ │ └── wechat │ │ └── autoconfigure │ │ ├── WechatMiniAppAutoConfiguration.java │ │ └── WechatMpAutoConfiguration.java │ └── resources │ └── META-INF │ └── spring.factories ├── templates ├── pom.xml └── src │ └── main │ └── resources │ └── cms │ ├── _articlePage.html │ ├── _layout.html │ ├── _template.properties │ ├── article.html │ ├── article_list.html │ ├── i18n │ ├── cms.properties │ ├── cms_en.properties │ └── cms_zh_CN.properties │ ├── index.html │ ├── page.html │ └── static │ ├── css │ ├── animate.min.css │ ├── bootstrap.min.css │ ├── font-awesome.min.css │ └── templatemo-style.css │ ├── favicon.ico │ ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 │ ├── images │ ├── contact-bg.jpg │ ├── fastcms.png │ ├── home-bg.jpg │ ├── home-bg2.jpg │ ├── software-img.png │ ├── web-site.png │ └── wechat-dev.png │ └── js │ ├── bootstrap.min.js │ ├── custom.js │ ├── jquery.1.10.js │ ├── jquery.singlePageNav.min.js │ └── wow.min.js ├── ui ├── .env ├── .env.development ├── .env.production ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .npmrc ├── .prettierrc.js ├── CHANGELOG.md ├── CKEditorSvgLoader.js ├── LICENSE ├── README.md ├── fastcms.html ├── index.html ├── package-lock.json ├── package.json ├── public │ ├── bg-login.png │ ├── favicon.ico │ └── header.jpg ├── src │ ├── App.vue │ ├── api │ │ ├── article │ │ │ ├── client.ts │ │ │ └── index.ts │ │ ├── attach │ │ │ ├── client.ts │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── dept │ │ │ ├── client.ts │ │ │ └── index.ts │ │ ├── home │ │ │ └── index.ts │ │ ├── login │ │ │ └── index.ts │ │ ├── menu │ │ │ └── index.ts │ │ ├── order │ │ │ ├── client.ts │ │ │ └── index.ts │ │ ├── page │ │ │ └── index.ts │ │ ├── plugin │ │ │ └── index.ts │ │ ├── res │ │ │ └── index.ts │ │ ├── role │ │ │ └── index.ts │ │ ├── template │ │ │ └── index.ts │ │ └── user │ │ │ ├── client.ts │ │ │ └── index.ts │ ├── assets │ │ ├── login-bg.svg │ │ ├── login-icon-two.svg │ │ ├── login-main.svg │ │ └── logo-mini.svg │ ├── components │ │ ├── attach │ │ │ └── index.vue │ │ ├── auth │ │ │ ├── auth.vue │ │ │ ├── authAll.vue │ │ │ └── auths.vue │ │ ├── ckeditor │ │ │ ├── imgPlugin │ │ │ │ ├── command.js │ │ │ │ ├── connect.js │ │ │ │ ├── constant.js │ │ │ │ ├── editing.js │ │ │ │ ├── imageIcon.svg │ │ │ │ ├── insertImage.js │ │ │ │ ├── main.js │ │ │ │ └── toolbar.js │ │ │ ├── imgResWin.vue │ │ │ └── index.vue │ │ ├── cropper │ │ │ └── index.vue │ │ ├── editor │ │ │ └── index.vue │ │ ├── iconSelector │ │ │ ├── index.vue │ │ │ └── list.vue │ │ ├── noticeBar │ │ │ └── index.vue │ │ ├── svgIcon │ │ │ └── index.vue │ │ └── table │ │ │ └── index.vue │ ├── directive │ │ ├── authDirective.ts │ │ ├── customDirective.ts │ │ └── index.ts │ ├── i18n │ │ ├── index.ts │ │ ├── lang │ │ │ ├── en.ts │ │ │ ├── zh-cn.ts │ │ │ └── zh-tw.ts │ │ └── pages │ │ │ ├── formI18n │ │ │ ├── en.ts │ │ │ ├── zh-cn.ts │ │ │ └── zh-tw.ts │ │ │ ├── home │ │ │ ├── en.ts │ │ │ ├── zh-cn.ts │ │ │ └── zh-tw.ts │ │ │ └── login │ │ │ ├── en.ts │ │ │ ├── zh-cn.ts │ │ │ └── zh-tw.ts │ ├── layout │ │ ├── component │ │ │ ├── aside.vue │ │ │ ├── columnsAside.vue │ │ │ ├── header.vue │ │ │ └── main.vue │ │ ├── footer │ │ │ └── index.vue │ │ ├── index.vue │ │ ├── lockScreen │ │ │ └── index.vue │ │ ├── logo │ │ │ └── index.vue │ │ ├── main │ │ │ ├── classic.vue │ │ │ ├── columns.vue │ │ │ ├── defaults.vue │ │ │ └── transverse.vue │ │ ├── navBars │ │ │ ├── index.vue │ │ │ ├── tagsView │ │ │ │ ├── contextmenu.vue │ │ │ │ └── tagsView.vue │ │ │ └── topBar │ │ │ │ ├── breadcrumb.vue │ │ │ │ ├── closeFull.vue │ │ │ │ ├── index.vue │ │ │ │ ├── search.vue │ │ │ │ ├── setings.vue │ │ │ │ ├── user.vue │ │ │ │ └── userNews.vue │ │ ├── navMenu │ │ │ ├── horizontal.vue │ │ │ ├── subItem.vue │ │ │ └── vertical.vue │ │ ├── routerView │ │ │ ├── iframes.vue │ │ │ ├── link.vue │ │ │ └── parent.vue │ │ └── upgrade │ │ │ └── index.vue │ ├── main.ts │ ├── router │ │ ├── backEnd.ts │ │ ├── frontEnd.ts │ │ ├── index.ts │ │ └── route.ts │ ├── stores │ │ ├── index.ts │ │ ├── keepAliveNames.ts │ │ ├── requestOldRoutes.ts │ │ ├── routesList.ts │ │ ├── tagsViewRoutes.ts │ │ ├── themeConfig.ts │ │ └── userInfo.ts │ ├── theme │ │ ├── app.scss │ │ ├── ck-vite.css │ │ ├── common │ │ │ └── transition.scss │ │ ├── dark.scss │ │ ├── element.scss │ │ ├── iconSelector.scss │ │ ├── index.scss │ │ ├── loading.scss │ │ ├── media │ │ │ ├── chart.scss │ │ │ ├── cityLinkage.scss │ │ │ ├── date.scss │ │ │ ├── dialog.scss │ │ │ ├── error.scss │ │ │ ├── form.scss │ │ │ ├── home.scss │ │ │ ├── index.scss │ │ │ ├── layout.scss │ │ │ ├── login.scss │ │ │ ├── media.scss │ │ │ ├── pagination.scss │ │ │ ├── personal.scss │ │ │ ├── scrollbar.scss │ │ │ └── tagsView.scss │ │ ├── mixins │ │ │ └── index.scss │ │ ├── other.scss │ │ ├── tableTool.scss │ │ └── waves.scss │ ├── types │ │ ├── axios.d.ts │ │ ├── global.d.ts │ │ ├── layout.d.ts │ │ ├── mitt.d.ts │ │ ├── pinia.d.ts │ │ └── views.d.ts │ ├── utils │ │ ├── arrayOperation.ts │ │ ├── authFunction.ts │ │ ├── build.ts │ │ ├── commonFunction.ts │ │ ├── formatTime.ts │ │ ├── getStyleSheets.ts │ │ ├── loading.ts │ │ ├── mitt.ts │ │ ├── other.ts │ │ ├── request.ts │ │ ├── setIconfont.ts │ │ ├── storage.ts │ │ ├── theme.ts │ │ ├── toolsValidate.ts │ │ └── watermark.ts │ └── views │ │ ├── article │ │ ├── category.vue │ │ ├── comment.vue │ │ ├── component │ │ │ ├── addCategory.vue │ │ │ ├── addTag.vue │ │ │ └── editComment.vue │ │ ├── index.vue │ │ ├── set.vue │ │ ├── tag.vue │ │ └── write.vue │ │ ├── attach │ │ ├── detail.vue │ │ ├── index.vue │ │ └── set.vue │ │ ├── cashout │ │ ├── detail.vue │ │ └── index.vue │ │ ├── center │ │ ├── article │ │ │ ├── index.vue │ │ │ └── write.vue │ │ ├── attach │ │ │ ├── detail.vue │ │ │ └── index.vue │ │ ├── balance │ │ │ └── index.vue │ │ ├── collect │ │ │ └── index.vue │ │ ├── comment │ │ │ └── index.vue │ │ ├── coupon │ │ │ └── index.vue │ │ ├── home │ │ │ ├── index.vue │ │ │ └── mock.ts │ │ ├── info │ │ │ └── index.vue │ │ └── order │ │ │ ├── detail.vue │ │ │ └── index.vue │ │ ├── chart │ │ ├── chart.scss │ │ ├── chart.ts │ │ ├── head.vue │ │ └── index.vue │ │ ├── error │ │ ├── 401.vue │ │ └── 404.vue │ │ ├── home │ │ ├── data.ts │ │ └── index.vue │ │ ├── login │ │ ├── component │ │ │ ├── account.vue │ │ │ ├── mobile.vue │ │ │ └── scan.vue │ │ └── index.vue │ │ ├── order │ │ ├── detail.vue │ │ ├── index.vue │ │ └── set.vue │ │ ├── page │ │ ├── comment.vue │ │ ├── editComment.vue │ │ ├── index.vue │ │ ├── set.vue │ │ └── write.vue │ │ ├── payment │ │ ├── detail.vue │ │ └── index.vue │ │ ├── personal │ │ ├── index.vue │ │ └── mock.ts │ │ ├── plugin │ │ └── index.vue │ │ ├── register │ │ ├── index.vue │ │ └── restPassword.vue │ │ ├── setting │ │ ├── connection.vue │ │ ├── system.vue │ │ ├── website.vue │ │ └── wechat.vue │ │ ├── system │ │ ├── dept │ │ │ ├── dialog.vue │ │ │ └── index.vue │ │ ├── menu │ │ │ ├── dialog.vue │ │ │ └── index.vue │ │ ├── res │ │ │ └── index.vue │ │ ├── role │ │ │ ├── addPermission.vue │ │ │ ├── addRole.vue │ │ │ └── index.vue │ │ └── user │ │ │ ├── dialog.vue │ │ │ └── index.vue │ │ ├── template │ │ ├── addMenu.vue │ │ ├── edit.vue │ │ ├── index.vue │ │ ├── menu.vue │ │ └── set.vue │ │ ├── tools │ │ └── index.vue │ │ └── user │ │ ├── addUser.vue │ │ └── index.vue ├── tsconfig.json └── vite.config.ts └── web ├── Dockerfile ├── docker-build.sh ├── docker-run.sh ├── pom.xml ├── shutdown.cmd ├── shutdown.sh ├── src ├── main │ ├── java │ │ └── com │ │ │ └── fastcms │ │ │ └── web │ │ │ ├── Fastcms.java │ │ │ ├── config │ │ │ └── FastcmsConfiguration.java │ │ │ ├── controller │ │ │ ├── admin │ │ │ │ ├── AdminController.java │ │ │ │ ├── AttachmentController.java │ │ │ │ ├── ConfigController.java │ │ │ │ ├── DepartmentController.java │ │ │ │ ├── OrderController.java │ │ │ │ ├── PermissionController.java │ │ │ │ ├── PluginController.java │ │ │ │ ├── ResourceController.java │ │ │ │ ├── RoleController.java │ │ │ │ ├── RouterController.java │ │ │ │ └── UserController.java │ │ │ └── api │ │ │ │ ├── AttachmentApi.java │ │ │ │ ├── DepartmentApi.java │ │ │ │ ├── InvoiceApi.java │ │ │ │ ├── OrderApi.java │ │ │ │ ├── PaymentApi.java │ │ │ │ ├── PaymentCallbackController.java │ │ │ │ ├── UploadApi.java │ │ │ │ ├── UserAmountApi.java │ │ │ │ ├── UserApi.java │ │ │ │ ├── WechatMessageCallbackController.java │ │ │ │ └── WechatMiniUserApi.java │ │ │ ├── filter │ │ │ ├── AuthInterceptor.java │ │ │ └── JwtAuthTokenFilter.java │ │ │ └── security │ │ │ ├── AbstractTokenManager.java │ │ │ ├── AuthConfigs.java │ │ │ ├── AuthManager.java │ │ │ ├── DefaultTokenManager.java │ │ │ ├── DelegatingTokenManager.java │ │ │ ├── FastcmsAuthConfig.java │ │ │ ├── FastcmsAuthManager.java │ │ │ ├── FastcmsAuthServerConfig.java │ │ │ ├── FastcmsAuthenticationSuccessHandler.java │ │ │ ├── FastcmsInMemoryRegisteredClientRepository.java │ │ │ ├── FastcmsJwtTokenCustomizer.java │ │ │ ├── FastcmsOAuth2AuthorizationCodeRequestAuthenticationConverter.java │ │ │ ├── FastcmsRegisteredClientRepository.java │ │ │ ├── FastcmsUser.java │ │ │ ├── LoginFailureListener.java │ │ │ ├── LoginSuccessListener.java │ │ │ └── TokenManager.java │ └── resources │ │ ├── application-prod.yml │ │ ├── application.yml │ │ ├── i18n │ │ ├── message.properties │ │ ├── message_en.properties │ │ └── message_zh_CN.properties │ │ ├── smart-doc.json │ │ ├── static │ │ ├── ares │ │ │ ├── css │ │ │ │ ├── bootstrap.min.css │ │ │ │ ├── bootstrap.min.css.map │ │ │ │ ├── bootstrap.rtl.min.css │ │ │ │ └── bootstrap.rtl.min.css.map │ │ │ └── js │ │ │ │ ├── bootstrap.bundle.min.js │ │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ │ ├── fastcms.js │ │ │ │ ├── jquery.form.min.js │ │ │ │ ├── jquery.min.js │ │ │ │ ├── jquery.validate.min.js │ │ │ │ └── toastr │ │ │ │ ├── toastr.css │ │ │ │ ├── toastr.js.map │ │ │ │ ├── toastr.min.css │ │ │ │ └── toastr.min.js │ │ ├── assets │ │ │ ├── css │ │ │ │ ├── 401-4a3c6d7e.css │ │ │ │ ├── 401-4a3c6d7e.css.gz │ │ │ │ ├── 404-f53f0dd8.css │ │ │ │ ├── 404-f53f0dd8.css.gz │ │ │ │ ├── @ckeditor-bf87edfb.css │ │ │ │ ├── @ckeditor-bf87edfb.css.gz │ │ │ │ ├── account-75975698.css │ │ │ │ ├── account-75975698.css.gz │ │ │ │ ├── breadcrumb-a5c092b1.css │ │ │ │ ├── closeFull-046c74cd.css │ │ │ │ ├── columnsAside-df7dd397.css │ │ │ │ ├── columnsAside-df7dd397.css.gz │ │ │ │ ├── contextmenu-5e5719d3.css │ │ │ │ ├── detail-4a2831c1.css │ │ │ │ ├── detail-4a2831c1.css.gz │ │ │ │ ├── detail-516b0edb.css │ │ │ │ ├── detail-516b0edb.css.gz │ │ │ │ ├── detail-e0478261.css │ │ │ │ ├── detail-e0478261.css.gz │ │ │ │ ├── detail-f5739967.css │ │ │ │ ├── detail-f5739967.css.gz │ │ │ │ ├── edit-d04cf27a.css │ │ │ │ ├── fastcms-01cf5f8f.css │ │ │ │ ├── fastcms-01cf5f8f.css.gz │ │ │ │ ├── head-8e61927a.css │ │ │ │ ├── head-8e61927a.css.gz │ │ │ │ ├── horizontal-00c4fb4a.css │ │ │ │ ├── index-179089e9.css │ │ │ │ ├── index-39ea895b.css │ │ │ │ ├── index-3d1428dd.css │ │ │ │ ├── index-3d1428dd.css.gz │ │ │ │ ├── index-4132d330.css │ │ │ │ ├── index-47b5c078.css │ │ │ │ ├── index-4ce67a25.css │ │ │ │ ├── index-5358ab0e.css │ │ │ │ ├── index-5358ab0e.css.gz │ │ │ │ ├── index-59040b24.css │ │ │ │ ├── index-5aa2e0a7.css │ │ │ │ ├── index-5b3b60d3.css │ │ │ │ ├── index-5b3b60d3.css.gz │ │ │ │ ├── index-6d6c8e27.css │ │ │ │ ├── index-7cabd87d.css │ │ │ │ ├── index-8cf8256a.css │ │ │ │ ├── index-8e1b23b7.css │ │ │ │ ├── index-8f940e16.css │ │ │ │ ├── index-964a5ef7.css │ │ │ │ ├── index-97da3680.css │ │ │ │ ├── index-97da3680.css.gz │ │ │ │ ├── index-9ac182ec.css │ │ │ │ ├── index-9ac182ec.css.gz │ │ │ │ ├── index-9ccb55a3.css │ │ │ │ ├── index-9ccb55a3.css.gz │ │ │ │ ├── index-afc7096c.css │ │ │ │ ├── index-afc7096c.css.gz │ │ │ │ ├── index-b14e0801.css │ │ │ │ ├── index-b14e0801.css.gz │ │ │ │ ├── index-c3db8593.css │ │ │ │ ├── index-d5b164e9.css │ │ │ │ ├── index-d5b164e9.css.gz │ │ │ │ ├── index-dbdc2fb1.css │ │ │ │ ├── index-f9d3b266.css │ │ │ │ ├── index-fe77a3a0.css │ │ │ │ ├── link-9877e399.css │ │ │ │ ├── list-1817b3d2.css │ │ │ │ ├── list-1817b3d2.css.gz │ │ │ │ ├── mobile-787df557.css │ │ │ │ ├── nprogress-8b89e2e0.css │ │ │ │ ├── nprogress-8b89e2e0.css.gz │ │ │ │ ├── restPassword-a182110f.css │ │ │ │ ├── restPassword-a182110f.css.gz │ │ │ │ ├── scan-5151da96.css │ │ │ │ ├── search-3d0dcce7.css │ │ │ │ ├── setings-68dae0aa.css │ │ │ │ ├── setings-68dae0aa.css.gz │ │ │ │ ├── tagsView-c2b1a8e8.css │ │ │ │ ├── tagsView-c2b1a8e8.css.gz │ │ │ │ ├── user-4af79e9e.css │ │ │ │ ├── user-4af79e9e.css.gz │ │ │ │ ├── userNews-28d5db36.css │ │ │ │ ├── userNews-28d5db36.css.gz │ │ │ │ └── write-c8852887.css │ │ │ ├── js │ │ │ │ ├── 401-ef421633.js │ │ │ │ ├── 401-ef421633.js.gz │ │ │ │ ├── 404-4f33d98b.js │ │ │ │ ├── 404-4f33d98b.js.gz │ │ │ │ ├── @ckeditor-2ec0d23b.js │ │ │ │ ├── @ckeditor-2ec0d23b.js.gz │ │ │ │ ├── @codemirror-441d1754.js │ │ │ │ ├── @codemirror-441d1754.js.gz │ │ │ │ ├── @ctrl-f8748455.js │ │ │ │ ├── @ctrl-f8748455.js.gz │ │ │ │ ├── @element-plus-64e6e14a.js │ │ │ │ ├── @element-plus-64e6e14a.js.gz │ │ │ │ ├── @floating-ui-880a26aa.js │ │ │ │ ├── @floating-ui-880a26aa.js.gz │ │ │ │ ├── @intlify-ea47d1db.js │ │ │ │ ├── @intlify-ea47d1db.js.gz │ │ │ │ ├── @lezer-4c574b3a.js │ │ │ │ ├── @lezer-4c574b3a.js.gz │ │ │ │ ├── @popperjs-c75af06c.js │ │ │ │ ├── @popperjs-c75af06c.js.gz │ │ │ │ ├── @vue-6dabbe94.js │ │ │ │ ├── @vue-6dabbe94.js.gz │ │ │ │ ├── @vueuse-e129c873.js │ │ │ │ ├── @vueuse-e129c873.js.gz │ │ │ │ ├── _plugin-vue_export-helper-c27b6911.js │ │ │ │ ├── account-f8263fb0.js │ │ │ │ ├── account-f8263fb0.js.gz │ │ │ │ ├── addCategory-e289cecd.js │ │ │ │ ├── addCategory-e289cecd.js.gz │ │ │ │ ├── addCategory.vue_vue_type_script_setup_true_name_articleAddCategory_lang-9488a675.js │ │ │ │ ├── addCategory.vue_vue_type_script_setup_true_name_articleAddCategory_lang-9488a675.js.gz │ │ │ │ ├── addMenu-c2490dfe.js │ │ │ │ ├── addMenu-c2490dfe.js.gz │ │ │ │ ├── addMenu.vue_vue_type_script_name_templateAddMenu_setup_true_lang-ae7ce398.js │ │ │ │ ├── addMenu.vue_vue_type_script_name_templateAddMenu_setup_true_lang-ae7ce398.js.gz │ │ │ │ ├── addPermission-abb23a8f.js │ │ │ │ ├── addPermission-abb23a8f.js.gz │ │ │ │ ├── addPermission.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-e758e2d8.js │ │ │ │ ├── addPermission.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-e758e2d8.js.gz │ │ │ │ ├── addRole-e6fcc564.js │ │ │ │ ├── addRole-e6fcc564.js.gz │ │ │ │ ├── addRole.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-d016d95e.js │ │ │ │ ├── addRole.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-d016d95e.js.gz │ │ │ │ ├── addTag-2d2c069e.js │ │ │ │ ├── addTag-2d2c069e.js.gz │ │ │ │ ├── addTag.vue_vue_type_script_setup_true_name_articleAddTag_lang-deeb47d0.js │ │ │ │ ├── addTag.vue_vue_type_script_setup_true_name_articleAddTag_lang-deeb47d0.js.gz │ │ │ │ ├── addUser-63d7b548.js │ │ │ │ ├── addUser-63d7b548.js.gz │ │ │ │ ├── addUser.vue_vue_type_script_setup_true_name_systemClientAddUser_lang-1cead932.js │ │ │ │ ├── addUser.vue_vue_type_script_setup_true_name_systemClientAddUser_lang-1cead932.js.gz │ │ │ │ ├── aside-8d6dc62a.js │ │ │ │ ├── aside-8d6dc62a.js.gz │ │ │ │ ├── async-validator-dee29e8b.js │ │ │ │ ├── async-validator-dee29e8b.js.gz │ │ │ │ ├── axios-4a70c6fc.js │ │ │ │ ├── axios-4a70c6fc.js.gz │ │ │ │ ├── breadcrumb-b7086d4f.js │ │ │ │ ├── breadcrumb-b7086d4f.js.gz │ │ │ │ ├── call-bind-e5c1c8b0.js │ │ │ │ ├── category-63118f33.js │ │ │ │ ├── category-63118f33.js.gz │ │ │ │ ├── ckeditor5-44f9511f.js │ │ │ │ ├── classic-538da508.js │ │ │ │ ├── classic-538da508.js.gz │ │ │ │ ├── client-543519fc.js │ │ │ │ ├── client-653e5c94.js │ │ │ │ ├── client-821c7c97.js │ │ │ │ ├── client-dee5d31d.js │ │ │ │ ├── clipboard-f76b1721.js │ │ │ │ ├── clipboard-f76b1721.js.gz │ │ │ │ ├── closeFull-22a23f3c.js │ │ │ │ ├── closeFull-22a23f3c.js.gz │ │ │ │ ├── codemirror-d1ad9523.js │ │ │ │ ├── color-convert-d47c3cb3.js │ │ │ │ ├── color-convert-d47c3cb3.js.gz │ │ │ │ ├── color-name-b7949e8c.js │ │ │ │ ├── color-name-b7949e8c.js.gz │ │ │ │ ├── color-parse-4ed993c7.js │ │ │ │ ├── columns-17692f48.js │ │ │ │ ├── columns-17692f48.js.gz │ │ │ │ ├── columnsAside-ebf35213.js │ │ │ │ ├── columnsAside-ebf35213.js.gz │ │ │ │ ├── comment-1c98926e.js │ │ │ │ ├── comment-1c98926e.js.gz │ │ │ │ ├── comment-99b74426.js │ │ │ │ ├── comment-99b74426.js.gz │ │ │ │ ├── connection-2d5d31cc.js │ │ │ │ ├── connection-2d5d31cc.js.gz │ │ │ │ ├── contextmenu-8172d942.js │ │ │ │ ├── contextmenu-8172d942.js.gz │ │ │ │ ├── countup.js-350bca8d.js │ │ │ │ ├── countup.js-350bca8d.js.gz │ │ │ │ ├── crelt-7bb88e1d.js │ │ │ │ ├── dayjs-f6fdf7b4.js │ │ │ │ ├── dayjs-f6fdf7b4.js.gz │ │ │ │ ├── defaults-498f2770.js │ │ │ │ ├── defaults-498f2770.js.gz │ │ │ │ ├── detail-29f94076.js │ │ │ │ ├── detail-29f94076.js.gz │ │ │ │ ├── detail-810facb9.js │ │ │ │ ├── detail-810facb9.js.gz │ │ │ │ ├── detail-987a4f99.js │ │ │ │ ├── detail-987a4f99.js.gz │ │ │ │ ├── detail-e433c2cd.js │ │ │ │ ├── detail-e433c2cd.js.gz │ │ │ │ ├── detail-f0eef730.js │ │ │ │ ├── detail-f0eef730.js.gz │ │ │ │ ├── detail-f68b836f.js │ │ │ │ ├── detail-f68b836f.js.gz │ │ │ │ ├── detail.vue_vue_type_script_name_attachDetail_setup_true_lang-ab4ef033.js │ │ │ │ ├── detail.vue_vue_type_script_name_attachDetail_setup_true_lang-ab4ef033.js.gz │ │ │ │ ├── detail.vue_vue_type_script_setup_true_name_attachDetail_lang-bf9aaad1.js │ │ │ │ ├── detail.vue_vue_type_script_setup_true_name_attachDetail_lang-bf9aaad1.js.gz │ │ │ │ ├── dialog-6cac1752.js │ │ │ │ ├── dialog-6cac1752.js.gz │ │ │ │ ├── dialog-bfa98833.js │ │ │ │ ├── dialog-bfa98833.js.gz │ │ │ │ ├── dialog-dabf8618.js │ │ │ │ ├── dialog-dabf8618.js.gz │ │ │ │ ├── dialog.vue_vue_type_script_setup_true_name_systemUserDialog_lang-7b5b3b02.js │ │ │ │ ├── dialog.vue_vue_type_script_setup_true_name_systemUserDialog_lang-7b5b3b02.js.gz │ │ │ │ ├── echarts-a97a93d2.js │ │ │ │ ├── echarts-a97a93d2.js.gz │ │ │ │ ├── echarts-wordcloud-bb8bc019.js │ │ │ │ ├── echarts-wordcloud-bb8bc019.js.gz │ │ │ │ ├── edit-a0eaa070.js │ │ │ │ ├── edit-a0eaa070.js.gz │ │ │ │ ├── editComment-8f7ab456.js │ │ │ │ ├── editComment-8f7ab456.js.gz │ │ │ │ ├── editComment-b7fc07a7.js │ │ │ │ ├── editComment-b7fc07a7.js.gz │ │ │ │ ├── editComment.vue_vue_type_script_name_articleEditComment_setup_true_lang-0faeabac.js │ │ │ │ ├── editComment.vue_vue_type_script_name_articleEditComment_setup_true_lang-0faeabac.js.gz │ │ │ │ ├── editComment.vue_vue_type_script_setup_true_name_articleEditComment_lang-dd0461c0.js │ │ │ │ ├── editComment.vue_vue_type_script_setup_true_name_articleEditComment_lang-dd0461c0.js.gz │ │ │ │ ├── element-plus-91d6d961.js │ │ │ │ ├── element-plus-91d6d961.js.gz │ │ │ │ ├── escape-html-b8998962.js │ │ │ │ ├── formatTime-29ac8c52.js │ │ │ │ ├── formatTime-29ac8c52.js.gz │ │ │ │ ├── function-bind-22e7ee79.js │ │ │ │ ├── get-intrinsic-bd2830fd.js │ │ │ │ ├── get-intrinsic-bd2830fd.js.gz │ │ │ │ ├── has-26d28e02.js │ │ │ │ ├── has-proto-f7d0b240.js │ │ │ │ ├── has-symbols-e8f3ca0e.js │ │ │ │ ├── head-c6c41ba9.js │ │ │ │ ├── header-a82ca7d5.js │ │ │ │ ├── header-a82ca7d5.js.gz │ │ │ │ ├── horizontal-b4b6bde8.js │ │ │ │ ├── horizontal-b4b6bde8.js.gz │ │ │ │ ├── iframes-19f65e8f.js │ │ │ │ ├── iframes-19f65e8f.js.gz │ │ │ │ ├── index-01d442e7.js │ │ │ │ ├── index-01fd6795.js │ │ │ │ ├── index-01fd6795.js.gz │ │ │ │ ├── index-06d7a7c6.js │ │ │ │ ├── index-07dd0f9f.js │ │ │ │ ├── index-07dd0f9f.js.gz │ │ │ │ ├── index-18341101.js │ │ │ │ ├── index-18341101.js.gz │ │ │ │ ├── index-1e8a27fb.js │ │ │ │ ├── index-1e8a27fb.js.gz │ │ │ │ ├── index-259d7d9f.js │ │ │ │ ├── index-259d7d9f.js.gz │ │ │ │ ├── index-26acdabe.js │ │ │ │ ├── index-26acdabe.js.gz │ │ │ │ ├── index-2c17b778.js │ │ │ │ ├── index-32e23661.js │ │ │ │ ├── index-38fb5840.js │ │ │ │ ├── index-38fb5840.js.gz │ │ │ │ ├── index-3ae2df94.js │ │ │ │ ├── index-3ae2df94.js.gz │ │ │ │ ├── index-3db6347a.js │ │ │ │ ├── index-3ecb6061.js │ │ │ │ ├── index-3ecb6061.js.gz │ │ │ │ ├── index-4a2d60e6.js │ │ │ │ ├── index-4a2d60e6.js.gz │ │ │ │ ├── index-4abb33ee.js │ │ │ │ ├── index-4abb33ee.js.gz │ │ │ │ ├── index-4cda15b2.js │ │ │ │ ├── index-4cda15b2.js.gz │ │ │ │ ├── index-4ff0289a.js │ │ │ │ ├── index-507b5be5.js │ │ │ │ ├── index-551fcffd.js │ │ │ │ ├── index-551fcffd.js.gz │ │ │ │ ├── index-56284f86.js │ │ │ │ ├── index-56284f86.js.gz │ │ │ │ ├── index-5ffad0c2.js │ │ │ │ ├── index-644f10c8.js │ │ │ │ ├── index-644f10c8.js.gz │ │ │ │ ├── index-6848c6cd.js │ │ │ │ ├── index-6848c6cd.js.gz │ │ │ │ ├── index-6bc6ba8d.js │ │ │ │ ├── index-6bc6ba8d.js.gz │ │ │ │ ├── index-77f79f58.js │ │ │ │ ├── index-7b6274c9.js │ │ │ │ ├── index-7b6274c9.js.gz │ │ │ │ ├── index-84cfb040.js │ │ │ │ ├── index-84cfb040.js.gz │ │ │ │ ├── index-8767998d.js │ │ │ │ ├── index-8767998d.js.gz │ │ │ │ ├── index-98128703.js │ │ │ │ ├── index-9e8c3ce6.js │ │ │ │ ├── index-9e8c3ce6.js.gz │ │ │ │ ├── index-a1b9220f.js │ │ │ │ ├── index-a1b9220f.js.gz │ │ │ │ ├── index-a448a0cb.js │ │ │ │ ├── index-a448a0cb.js.gz │ │ │ │ ├── index-a5a46b42.js │ │ │ │ ├── index-a5a46b42.js.gz │ │ │ │ ├── index-a6928517.js │ │ │ │ ├── index-a6928517.js.gz │ │ │ │ ├── index-adaaa482.js │ │ │ │ ├── index-adaaa482.js.gz │ │ │ │ ├── index-b6a6dad6.js │ │ │ │ ├── index-b6a6dad6.js.gz │ │ │ │ ├── index-bb755604.js │ │ │ │ ├── index-bb755604.js.gz │ │ │ │ ├── index-bbb3c9be.js │ │ │ │ ├── index-bbb3c9be.js.gz │ │ │ │ ├── index-bc7046ae.js │ │ │ │ ├── index-bc7046ae.js.gz │ │ │ │ ├── index-c27e2040.js │ │ │ │ ├── index-c27e2040.js.gz │ │ │ │ ├── index-cc181d37.js │ │ │ │ ├── index-d4beaec2.js │ │ │ │ ├── index-d4beaec2.js.gz │ │ │ │ ├── index-d77217f1.js │ │ │ │ ├── index-d77217f1.js.gz │ │ │ │ ├── index-d800691e.js │ │ │ │ ├── index-d800691e.js.gz │ │ │ │ ├── index-d8263a38.js │ │ │ │ ├── index-d8263a38.js.gz │ │ │ │ ├── index-d9736f4c.js │ │ │ │ ├── index-d9736f4c.js.gz │ │ │ │ ├── index-ed4597cb.js │ │ │ │ ├── index-ed4597cb.js.gz │ │ │ │ ├── index-f1402358.js │ │ │ │ ├── index-f1402358.js.gz │ │ │ │ ├── index-fe9b975d.js │ │ │ │ ├── index-fe9b975d.js.gz │ │ │ │ ├── index.vue_vue_type_script_setup_true_name_iconSelector_lang-e43c427f.js │ │ │ │ ├── index.vue_vue_type_script_setup_true_name_iconSelector_lang-e43c427f.js.gz │ │ │ │ ├── index.vue_vue_type_style_index_0_lang-ea94e5c8.js │ │ │ │ ├── index.vue_vue_type_style_index_0_lang-ea94e5c8.js.gz │ │ │ │ ├── js-cookie-edb2da2a.js │ │ │ │ ├── js-cookie-edb2da2a.js.gz │ │ │ │ ├── link-909964d8.js │ │ │ │ ├── link-909964d8.js.gz │ │ │ │ ├── list-b3cd7293.js │ │ │ │ ├── list-b3cd7293.js.gz │ │ │ │ ├── lodash-es-9851428c.js │ │ │ │ ├── lodash-es-9851428c.js.gz │ │ │ │ ├── lodash-unified-4ed993c7.js │ │ │ │ ├── main-035f5a6a.js │ │ │ │ ├── main-035f5a6a.js.gz │ │ │ │ ├── memoize-one-297ddbcb.js │ │ │ │ ├── menu-6a393e08.js │ │ │ │ ├── menu-6a393e08.js.gz │ │ │ │ ├── mitt-f7ef348c.js │ │ │ │ ├── mobile-2a341d65.js │ │ │ │ ├── mobile-2a341d65.js.gz │ │ │ │ ├── normalize-wheel-es-ed76fb12.js │ │ │ │ ├── normalize-wheel-es-ed76fb12.js.gz │ │ │ │ ├── nprogress-08a53ce8.js │ │ │ │ ├── nprogress-08a53ce8.js.gz │ │ │ │ ├── object-inspect-8fd4bade.js │ │ │ │ ├── object-inspect-8fd4bade.js.gz │ │ │ │ ├── parent-eb8a81a4.js │ │ │ │ ├── parent-eb8a81a4.js.gz │ │ │ │ ├── pinia-b6f74250.js │ │ │ │ ├── pinia-b6f74250.js.gz │ │ │ │ ├── qrcodejs2-fixes-aebf80af.js │ │ │ │ ├── qrcodejs2-fixes-aebf80af.js.gz │ │ │ │ ├── qs-c5b6dbf2.js │ │ │ │ ├── qs-c5b6dbf2.js.gz │ │ │ │ ├── restPassword-aed97966.js │ │ │ │ ├── restPassword-aed97966.js.gz │ │ │ │ ├── scan-9b735f57.js │ │ │ │ ├── scan-9b735f57.js.gz │ │ │ │ ├── screenfull-b3e6dc1f.js │ │ │ │ ├── screenfull-b3e6dc1f.js.gz │ │ │ │ ├── search-d4aa00a0.js │ │ │ │ ├── search-d4aa00a0.js.gz │ │ │ │ ├── set-11312598.js │ │ │ │ ├── set-11312598.js.gz │ │ │ │ ├── set-2a314975.js │ │ │ │ ├── set-2a314975.js.gz │ │ │ │ ├── set-6ec4eb9e.js │ │ │ │ ├── set-6ec4eb9e.js.gz │ │ │ │ ├── set-7db74eeb.js │ │ │ │ ├── set-7db74eeb.js.gz │ │ │ │ ├── set-a2470909.js │ │ │ │ ├── set-a2470909.js.gz │ │ │ │ ├── setings-df868552.js │ │ │ │ ├── setings-df868552.js.gz │ │ │ │ ├── side-channel-394f276c.js │ │ │ │ ├── side-channel-394f276c.js.gz │ │ │ │ ├── sortablejs-9c3c89c5.js │ │ │ │ ├── sortablejs-9c3c89c5.js.gz │ │ │ │ ├── source-map-7d7e1c08.js │ │ │ │ ├── source-map-7d7e1c08.js.gz │ │ │ │ ├── style-mod-ae491175.js │ │ │ │ ├── style-mod-ae491175.js.gz │ │ │ │ ├── subItem-48b51e27.js │ │ │ │ ├── subItem-48b51e27.js.gz │ │ │ │ ├── system-5c80805d.js │ │ │ │ ├── system-5c80805d.js.gz │ │ │ │ ├── tag-9f46071e.js │ │ │ │ ├── tag-9f46071e.js.gz │ │ │ │ ├── tagsView-cb664ecc.js │ │ │ │ ├── tagsView-cb664ecc.js.gz │ │ │ │ ├── transverse-28750fa9.js │ │ │ │ ├── transverse-28750fa9.js.gz │ │ │ │ ├── tslib-54e39b60.js │ │ │ │ ├── tslib-54e39b60.js.gz │ │ │ │ ├── user-fbb9b30f.js │ │ │ │ ├── user-fbb9b30f.js.gz │ │ │ │ ├── userNews-735edb12.js │ │ │ │ ├── userNews-735edb12.js.gz │ │ │ │ ├── vanilla-colorful-3f59310b.js │ │ │ │ ├── vanilla-colorful-3f59310b.js.gz │ │ │ │ ├── vertical-2a16a192.js │ │ │ │ ├── vertical-2a16a192.js.gz │ │ │ │ ├── vue-b1ba6f14.js │ │ │ │ ├── vue-b1ba6f14.js.gz │ │ │ │ ├── vue-clipboard3-87db4edd.js │ │ │ │ ├── vue-codemirror-037263c5.js │ │ │ │ ├── vue-codemirror-037263c5.js.gz │ │ │ │ ├── vue-demi-4ed993c7.js │ │ │ │ ├── vue-grid-layout-ec2a62c3.js │ │ │ │ ├── vue-grid-layout-ec2a62c3.js.gz │ │ │ │ ├── vue-i18n-b3581196.js │ │ │ │ ├── vue-i18n-b3581196.js.gz │ │ │ │ ├── vue-router-c1461dfc.js │ │ │ │ ├── vue-router-c1461dfc.js.gz │ │ │ │ ├── w3c-keyname-aa008802.js │ │ │ │ ├── w3c-keyname-aa008802.js.gz │ │ │ │ ├── website-3501c8b6.js │ │ │ │ ├── website-3501c8b6.js.gz │ │ │ │ ├── wechat-66964e80.js │ │ │ │ ├── wechat-66964e80.js.gz │ │ │ │ ├── write-9eb24326.js │ │ │ │ ├── write-9eb24326.js.gz │ │ │ │ ├── write-dc76555d.js │ │ │ │ ├── write-dc76555d.js.gz │ │ │ │ ├── write-f002028d.js │ │ │ │ ├── write-f002028d.js.gz │ │ │ │ ├── zrender-121a9896.js │ │ │ │ └── zrender-121a9896.js.gz │ │ │ └── svg │ │ │ │ ├── login-bg-f24a0740.svg │ │ │ │ ├── login-main-e8ffec0c.svg │ │ │ │ └── logo-mini-e7bc7aad.svg │ │ ├── default.jpg │ │ ├── error │ │ │ ├── 404.html │ │ │ └── 500.html │ │ ├── fastcms.html │ │ ├── favicon.ico │ │ ├── header.jpg │ │ └── logo-mini.png │ │ ├── templates │ │ ├── _comm.html │ │ ├── _footer.html │ │ ├── _page.html │ │ └── consent.html │ │ └── urlrewrite.xml └── test │ ├── java │ └── com │ │ └── fastcms │ │ └── web │ │ ├── TestCaseService.java │ │ ├── TestI18n.java │ │ ├── TestSqlParser.java │ │ └── TestTemplateStatic.java │ └── resources │ └── application.yml ├── startup.cmd └── startup.sh /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | /.dist/ 32 | /logs/ 33 | 34 | ### VS Code ### 35 | .vscode/ 36 | 37 | /templates/src/main/resources/xjd2020/ 38 | /templates/src/main/resources/xjd2022/ 39 | /templates/src/main/resources/blog/ 40 | /web/src/main/resources/static/doc/ 41 | /**/.flattened-pom.xml 42 | /.flattened-pom.xml 43 | -------------------------------------------------------------------------------- /build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM windows package 4 | 5 | REM package 6 | call mvn clean install -Dmaven.test.skip=true 7 | 8 | REM del fastcms-dist 9 | rmdir .dist /s /q 10 | 11 | REM create fastcms-dist 12 | mkdir .dist 13 | mkdir .dist\config 14 | mkdir .dist\plugins 15 | mkdir .dist\upload 16 | mkdir .dist\htmls 17 | mkdir .dist\logs 18 | 19 | REM copy main program 20 | xcopy web\target\fastcms-web-*-exec.jar .dist /s /i 21 | xcopy web\src\main\resources\application-prod.yml .dist\config /s 22 | REM xcopy doc\sql\* .dist\config /s 23 | 24 | REM copy htmls 25 | xcopy templates\src\main\resources .dist\htmls /s /i 26 | 27 | xcopy web\startup.cmd .dist /s 28 | xcopy web\startup.sh .dist /s 29 | xcopy web\shutdown.cmd .dist /s 30 | xcopy web\shutdown.sh .dist /s 31 | xcopy web\Dockerfile .dist /s 32 | xcopy web\docker-build.sh .dist /s 33 | xcopy web\docker-run.sh .dist /s 34 | 35 | cd .dist 36 | 37 | REM run main 38 | rename fastcms-web-*-exec.jar fastcms-server.jar 39 | 40 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mvn clean install -Dmaven.test.skip=true 4 | 5 | # del fastcms-dist 6 | rm -rf dist 7 | 8 | # create fastcms-dist 9 | mkdir dist 10 | mkdir dist/config 11 | mkdir dist/plugins 12 | mkdir dist/upload 13 | mkdir dist/htmls 14 | mkdir dist/logs 15 | 16 | # copy main program and config 17 | cp web/target/fastcms-web-*-exec.jar dist 18 | cp web/src/main/resources/application-prod.yml dist/config 19 | # cp doc/sql/* dist/config 20 | 21 | # copy htmls 22 | cp -r templates/src/main/resources dist 23 | 24 | cp web/startup.cmd dist 25 | cp web/startup.sh dist 26 | cp web/shutdown.cmd dist 27 | cp web/shutdown.sh dist 28 | cp web/Dockerfile dist 29 | cp web/docker-build.sh dist 30 | cp web/docker-run.sh dist 31 | 32 | cd dist 33 | 34 | # run main 35 | mv fastcms-web-*-exec.jar fastcms-server.jar 36 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/mapper/ArticleCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.cms.entity.ArticleCategory; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author wjun_java@163.com 15 | * @since 2021-05-23 16 | */ 17 | public interface ArticleCategoryMapper extends BaseMapper { 18 | 19 | void deleteRelationByCategoryId(Long articleCategoryId); 20 | 21 | List getArticleCategoryListByArticleId(@Param("articleId") Long articleId, @Param("type") String type); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/mapper/ArticleTagMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.cms.entity.ArticleTag; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * 文章标签Mapper 接口 11 | * @author wjun_java@163.com 12 | * @since 2021-12-16 13 | */ 14 | public interface ArticleTagMapper extends BaseMapper { 15 | 16 | void deleteRelationByTagId(Long articleTagId); 17 | 18 | List getArticleTagListByArticleId(@Param("articleId") Long articleId); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/mapper/ArticleZanMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 5 | import com.fastcms.cms.entity.ArticleZan; 6 | import com.fastcms.cms.service.IArticleZanService; 7 | import org.apache.ibatis.annotations.Param; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author wjun_java@163.com 15 | * @since 2023-05-01 16 | */ 17 | public interface ArticleZanMapper extends BaseMapper { 18 | 19 | Page pageArticleZan(Page pageParam, @Param("articleId") Long articleId); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/mapper/MenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.mapper; 2 | 3 | import com.fastcms.cms.entity.Menu; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 网站菜单表 Mapper 接口 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2021-05-27 13 | */ 14 | public interface MenuMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/mapper/SinglePageCommentMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import com.baomidou.mybatisplus.core.toolkit.Constants; 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 7 | import com.fastcms.cms.entity.SinglePageComment; 8 | import com.fastcms.cms.service.ISinglePageCommentService; 9 | import org.apache.ibatis.annotations.Param; 10 | 11 | /** 12 | *

13 | * 页面评论表 Mapper 接口 14 | *

15 | * 16 | * @author wjun_java@163.com 17 | * @since 2021-05-25 18 | */ 19 | public interface SinglePageCommentMapper extends BaseMapper { 20 | 21 | Page pageSinglePageComment(Page pageParam, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/mapper/SinglePageMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import com.baomidou.mybatisplus.core.toolkit.Constants; 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 7 | import com.fastcms.cms.entity.SinglePage; 8 | import com.fastcms.cms.service.ISinglePageService; 9 | import org.apache.ibatis.annotations.Param; 10 | 11 | /** 12 | *

13 | * 单页表 Mapper 接口 14 | *

15 | * 16 | * @author wjun_java@163.com 17 | * @since 2021-05-25 18 | */ 19 | public interface SinglePageMapper extends BaseMapper { 20 | 21 | Page pageSinglePage(Page pageParam, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/service/IArticleTagService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.fastcms.cms.entity.ArticleTag; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 文章标签服务类 10 | * @author wjun_java@163.com 11 | * @since 2021-12-16 12 | */ 13 | public interface IArticleTagService extends IService { 14 | 15 | /** 16 | * 根据名称查找标签 17 | * 没有找到就new一个 18 | * @param tagName 19 | * @return 20 | */ 21 | ArticleTag getByName(String tagName); 22 | 23 | /** 24 | * 删除分类 25 | * @param articleTagId 26 | */ 27 | void deleteByTagId(Long articleTagId); 28 | 29 | /** 30 | * 获取文章已设置的分类 31 | * @param articleId 32 | * @return 33 | */ 34 | List getArticleTagListByArticleId(Long articleId); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /cms/src/main/java/com/fastcms/cms/service/impl/SinglePageCommentServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.cms.service.impl; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 5 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 6 | import com.fastcms.cms.entity.SinglePageComment; 7 | import com.fastcms.cms.mapper.SinglePageCommentMapper; 8 | import com.fastcms.cms.service.ISinglePageCommentService; 9 | import org.springframework.stereotype.Service; 10 | 11 | /** 12 | * 页面评论服务实现类 13 | * @author wjun_java@163.com 14 | * @since 2021-05-25 15 | */ 16 | @Service 17 | public class SinglePageCommentServiceImpl extends ServiceImpl implements ISinglePageCommentService { 18 | 19 | @Override 20 | public Page pageSinglePageComment(Page pageParam, QueryWrapper queryWrapper) { 21 | return getBaseMapper().pageSinglePageComment(pageParam, queryWrapper); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /cms/src/main/resources/mapper/ArticleCategoryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | delete from article_category_relation where category_id = #{articleCategoryId} 7 | 8 | 9 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /cms/src/main/resources/mapper/ArticleTagMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | delete from article_tag_relation where tag_id = #{articleTagId} 7 | 8 | 9 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /cms/src/main/resources/mapper/ArticleZanMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /cms/src/main/resources/mapper/MenuMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /cms/src/main/resources/mapper/SinglePageCommentMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 13 | 14 | -------------------------------------------------------------------------------- /cms/src/main/resources/mapper/SinglePageMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /common/src/main/resources/fastcms-version.txt: -------------------------------------------------------------------------------- 1 | version=${project.version} 2 | -------------------------------------------------------------------------------- /core/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Application Run Listener 2 | org.springframework.boot.SpringApplicationRunListener=\ 3 | com.fastcms.core.listener.FastcmsApplicationRunListener -------------------------------------------------------------------------------- /doc/images/fastcms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/doc/images/fastcms.jpg -------------------------------------------------------------------------------- /doc/images/fastcms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/doc/images/fastcms.png -------------------------------------------------------------------------------- /doc/images/wechat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/doc/images/wechat.jpg -------------------------------------------------------------------------------- /doc/springsecurity/EnableWebSecurity.md: -------------------------------------------------------------------------------- 1 | # EnableWebSecurity 2 | - 全局启用SpringSecurity的注解 3 | 4 | ```java 5 | @Retention(RetentionPolicy.RUNTIME) 6 | @Target(ElementType.TYPE) 7 | @Documented 8 | @Import({ WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, OAuth2ImportSelector.class, 9 | HttpSecurityConfiguration.class }) 10 | @EnableGlobalAuthentication 11 | @Configuration 12 | public @interface EnableWebSecurity { 13 | 14 | /** 15 | * Controls debugging support for Spring Security. Default is false. 16 | * @return if true, enables debug support with Spring Security 17 | */ 18 | boolean debug() default false; 19 | 20 | } 21 | ``` 22 | 23 | # HttpSecurityConfiguration自动装配 HttpSecurity 24 | 25 | # WebSecurityConfiguration自动装配 WebSecurity 26 | 27 | # WebSecurity构建FilterChainProxy处理SpringSecurity的所有请求 -------------------------------------------------------------------------------- /doc/sql/fastcms-0.0.8.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `menu` ADD COLUMN `url_type` tinyint(4) DEFAULT '0' COMMENT '1,文章,2,页面,3,分类, 4,标签'; 2 | -------------------------------------------------------------------------------- /doc/sql/fastcms-0.0.9.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `permission`(`id`, `parent_id`, `name`, `path`, `component`, `title`, `icon`, `is_link`, `is_hide`, `is_keep_alive`, `is_affix`, `is_iframe`, `sort_num`, `category`, `created`, `updated`) 2 | VALUES (41, 11, 'articleTag', '/article/tag', 'article/tag', 'message.router.articleTag', 'el-icon-price-tag', 0, 0, 0, 0, 0, 0, NULL, '2022-11-25 16:05:46', NULL); 3 | 4 | ALTER TABLE `article_tag` ADD COLUMN `suffix` varchar(64) DEFAULT NULL; 5 | ALTER TABLE `article_tag` ADD COLUMN `icon` varchar(255) DEFAULT NULL; 6 | 7 | ALTER TABLE `resource` ADD COLUMN `language` varchar(64) DEFAULT NULL COMMENT '语言'; 8 | 9 | -------------------------------------------------------------------------------- /doc/sql/fastcms-0.1.0.sql: -------------------------------------------------------------------------------- 1 | alter table `user` add index `user_name_index` (`user_name`) 2 | -------------------------------------------------------------------------------- /doc/sql/fastcms-0.1.3.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `user` ADD COLUMN `error_count` int(11) DEFAULT '0'; 2 | -------------------------------------------------------------------------------- /doc/sql/fastcms-0.1.7.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `user_server_openid` ( 2 | `id` bigint NOT NULL AUTO_INCREMENT, 3 | `client_id` varchar(100) COLLATE utf8mb4_general_ci NOT NULL, 4 | `openid` varchar(100) COLLATE utf8mb4_general_ci NOT NULL, 5 | `sub` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'fastcms用户唯一标志', 6 | `created` timestamp NULL DEFAULT NULL, 7 | `updated` timestamp NULL DEFAULT NULL, 8 | PRIMARY KEY (`id`) 9 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -------------------------------------------------------------------------------- /doc/运行与部署/本地运行.md: -------------------------------------------------------------------------------- 1 | # 如何在本地运行项目 2 | 3 | ### 开发工具 4 | - 推荐使用idea作为开发工具 5 | 6 | ### 运行环境 7 | - 安装 maven3.6.0 + 8 | - 安装 jdk1.8 + 9 | 10 | ### 下载源码 11 | - gitee下载地址 12 | * https://gitee.com/xjd2020/fastcms.git 13 | - 导入到开发工具,让项目编译通过 14 | 15 | ### 导入数据 16 | - 安装MySql数据库,推荐版本5.7 + 17 | - 在项目的doc/sql目录下找到fastcms.sql文件 18 | - 本地建立一个空库,通过Navicat或你喜欢的方式导入数据库脚本 19 | 20 | ### 运行项目 21 | - 经过以上几个步骤之后,就可以运行项目了 22 | - 找到fastcms-web项目下面Fastcms.java,main方法运行项目即可 23 | 24 | ### 初始账号 25 | - 默认管理员账号admin,密码是1 26 | - 访问后台管理 27 | * http://localhost:8080/fastcms 28 | -------------------------------------------------------------------------------- /doc/运行与部署/生产环境部署.md: -------------------------------------------------------------------------------- 1 | # 如何在生产环境部署 2 | 3 | ### 安装数据库 4 | - 导入数据 5 | - 数据库sql文件在项目的doc/sql目录下 6 | 7 | ## 修改数据库配置 8 | - 在fastcms-web下面的resources目录下面找到application-prod.properties文件 9 | - 修改里面的数据库链接为你生产环境数据库链接信息 10 | 11 | ### 打包 12 | - 在fastcms根目录下面找到build.bat,linux执行build.sh 13 | - 执行脚本之后,没有报错就说明打包成功 14 | - 打包成功之后,在fastcms的根目录下面会多出一个dist的文件夹,这个文件夹下的就是所有的打包文件 15 | 16 | ### 打包文件说明 17 | - htmls是网站模板文件根目录 18 | - logs是日志文件存放目录 19 | - plugins是项目插件存放目录 20 | - upload是文件上传目录 21 | - fastcms-start.jar是项目运行jar包 22 | - start.bat,start.sh是启动项目的脚本 23 | 24 | ### 启动项目 25 | - 把打包文件目录下面的所有文件上传到服务器的某个目录下 26 | - 执行start.sh即可启动项目 27 | 28 | ### nginx映射 29 | - 通过nginx把项目映射出去 30 | - fastcms服务生产环境的启动默认端口是8080 31 | 32 | -------------------------------------------------------------------------------- /docker/.env: -------------------------------------------------------------------------------- 1 | # mysql 2 | MYSQL_USER=fastcms 3 | MYSQL_PASSWORD=fastcms9527 4 | MYSQL_PORT=3310 5 | MYSQL_ROOT_PASSWORD=fastcms9527 6 | 7 | FASTCMS_VERSION=0.1.6-SNAPSHOT 8 | 9 | TIMEZONE='Asia/Shanghai' 10 | -------------------------------------------------------------------------------- /docker/fastcms/config/application-prod.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | datasource: 5 | driver-class-name: com.mysql.cj.jdbc.Driver 6 | url: jdbc:mysql://fastcms-mysql:3306/fastcms?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai 7 | username: root 8 | password: fastcms9527 9 | log: 10 | path: ./logs 11 | -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/_template.properties: -------------------------------------------------------------------------------- 1 | template.id=www.fastcms.com 2 | template.name=cms 3 | template.path=/cms/ 4 | template.version=0.0.1 5 | template.i18n=cms 6 | template.provider=wjun_java@163.com 7 | template.description=my fastcms site -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/i18n/cms.properties: -------------------------------------------------------------------------------- 1 | cms.test=测试 -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/i18n/cms_en.properties: -------------------------------------------------------------------------------- 1 | cms.test=test -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/i18n/cms_zh_CN.properties: -------------------------------------------------------------------------------- 1 | cms.test=测试 -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/page.html: -------------------------------------------------------------------------------- 1 | <#import "_layout.html" as layout> 2 | <@layout.header "页面-${(singlePage.title!)}"> 3 | <@layout.body> 4 |
5 |
6 |
7 |
8 |

页面id:${(singlePage.id)!}

9 |

标题:${(singlePage.title)!}

10 |

缩略图:

11 |

浏览次数:${(singlePage.viewCount)!}

12 |

创建时间:<@formatTime value=singlePage.created!/>

13 | 14 | ${(singlePage.contentHtml)!} 15 | 16 |
17 |
18 |
19 |
20 | 21 | <@layout.script> 22 | -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/favicon.ico -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/images/contact-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/images/contact-bg.jpg -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/images/fastcms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/images/fastcms.png -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/images/home-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/images/home-bg.jpg -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/images/home-bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/images/home-bg2.jpg -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/images/software-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/images/software-img.png -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/images/web-site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/images/web-site.png -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/images/wechat-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/docker/fastcms/htmls/cms/static/images/wechat-dev.png -------------------------------------------------------------------------------- /docker/fastcms/htmls/cms/static/js/custom.js: -------------------------------------------------------------------------------- 1 | // preloader 2 | $(window).load(function(){ 3 | $('.preloader').fadeOut(1000); // set duration in brackets 4 | }); 5 | 6 | $(function() { 7 | new WOW().init(); 8 | /*$('.templatemo-nav').singlePageNav({ 9 | offset: 70 10 | });*/ 11 | 12 | /* Hide mobile menu after clicking on a link 13 | -----------------------------------------------*/ 14 | $('.navbar-collapse a').click(function(){ 15 | $(".navbar-collapse").collapse('hide'); 16 | }); 17 | }) -------------------------------------------------------------------------------- /docker/mysql/conf.d/docker.cnf: -------------------------------------------------------------------------------- 1 | [client] 2 | default-character-set=utf8mb4 3 | [mysql] 4 | default-character-set=utf8mb4 5 | [mysqld] 6 | skip-host-cache 7 | skip-name-resolve 8 | default-authentication-plugin=mysql_native_password 9 | sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION 10 | table_open_cache=512 11 | character-set-server=utf8mb4 12 | collation-server=utf8mb4_general_ci 13 | default-time-zone='+8:00' 14 | log-bin=mysql-binlog 15 | binlog-format=ROW 16 | server_id=1 17 | max_connections=1000 18 | max_user_connections=1000 19 | mysqlx_max_connections=1000 20 | thread_cache_size=64 -------------------------------------------------------------------------------- /plugins/hello-world-plugin/plugin.properties: -------------------------------------------------------------------------------- 1 | plugin.id=hello-world-plugin 2 | plugin.class=com.fastcms.hello.HelloPlugin 3 | plugin.version=0.0.1 4 | plugin.provider=wjun_java@163.com 5 | plugin.description=hello, fastcms plugin world 6 | plugin.dependencies= 7 | -------------------------------------------------------------------------------- /plugins/hello-world-plugin/src/main/java/com/fastcms/hello/HelloPluginMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /plugins/hello-world-plugin/src/main/java/com/fastcms/hello/IHelloService.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 广州小橘灯信息科技有限公司 2016-2017, wjun_java@163.com. 3 | *

4 | * Licensed under the GNU Lesser General Public License (LGPL) ,Version 3.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | *

8 | * http://www.gnu.org/licenses/lgpl-3.0.txt 9 | * http://www.xjd2020.com 10 | *

11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | package com.fastcms.hello; 18 | 19 | /** 20 | * @author: wjun_java@163.com 21 | * @date: 2022/11/18 22 | * @description: 23 | * @modifiedBy: 24 | * @version: 1.0 25 | */ 26 | public interface IHelloService { 27 | 28 | String hello(String name); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /plugins/hello-world-plugin/src/main/resources/hello-plugin.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS `test` ( 2 | `id` int(11) NOT NULL AUTO_INCREMENT, 3 | `name` varchar(255) DEFAULT NULL, 4 | PRIMARY KEY (`id`) 5 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/extension/IndexDataExtension.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.extension; 2 | 3 | import org.pf4j.ExtensionPoint; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * 管理后台首页数据扩展 9 | * @author: wjun_java@163.com 10 | * @date: 2022/1/8 11 | * @description: 12 | * @modifiedBy: 13 | * @version: 1.0 14 | */ 15 | public interface IndexDataExtension extends ExtensionPoint { 16 | 17 | /** 18 | * 获取需要展示到首页的数据 19 | * @return 20 | */ 21 | Map getData(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/AttachmentMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.fastcms.entity.Attachment; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2021-02-19 13 | */ 14 | public interface AttachmentMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/ConfigMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.entity.Config; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2021-02-14 13 | */ 14 | public interface ConfigMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/DepartmentMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.entity.Department; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author wjun_java@163.com 15 | * @since 2022-03-23 16 | */ 17 | public interface DepartmentMapper extends BaseMapper { 18 | 19 | void deleteDepartmentByUserId(@Param("userId") Long userId); 20 | 21 | void saveUserDepartment(@Param("userId") Long userId, @Param("deptIds") List deptIds); 22 | 23 | List getUserDepartment(@Param("userId") Long userId); 24 | 25 | List getDepartmentUserIdList(@Param("deptId") Long deptId); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/OrderInvoiceMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.fastcms.entity.OrderInvoice; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 发票信息表 Mapper 接口 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2021-12-21 13 | */ 14 | public interface OrderInvoiceMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/OrderItemMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.fastcms.entity.OrderItem; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 订单明细表 Mapper 接口 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2021-12-21 13 | */ 14 | public interface OrderItemMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import com.baomidou.mybatisplus.core.toolkit.Constants; 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 7 | import com.fastcms.entity.Order; 8 | import com.fastcms.service.IOrderService; 9 | import org.apache.ibatis.annotations.Param; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * 订单表 Mapper 接口 15 | * @author wjun_java@163.com 16 | * @since 2021-12-21 17 | */ 18 | public interface OrderMapper extends BaseMapper { 19 | 20 | Page pageOrder(Page pageParam, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); 21 | 22 | IOrderService.OrderCountVo getUCenterOrderCount(Long userId); 23 | 24 | IOrderService.OrderDetailVo getOrderDetail(Long orderId); 25 | 26 | IOrderService.OrderStatVo getOrderStatData(); 27 | 28 | List getUnPayOrderByLimitTime(@Param("overTime") int overTime); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/PaymentRecordMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import com.baomidou.mybatisplus.core.toolkit.Constants; 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 7 | import com.fastcms.entity.PaymentRecord; 8 | import com.fastcms.service.IPaymentRecordService; 9 | import org.apache.ibatis.annotations.Param; 10 | 11 | /** 12 | *

13 | * 支付记录表 Mapper 接口 14 | *

15 | * 16 | * @author wjun_java@163.com 17 | * @since 2021-06-19 18 | */ 19 | public interface PaymentRecordMapper extends BaseMapper { 20 | 21 | Page pagePaymentRecord(Page pageParam, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); 22 | 23 | IPaymentRecordService.PaymentDetailVo getPaymentDetail(@Param("paymentId") Long paymentId); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/PermissionMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.entity.Permission; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author wjun_java@163.com 15 | * @since 2021-02-14 16 | */ 17 | public interface PermissionMapper extends BaseMapper { 18 | 19 | /** 20 | * 查询用户已授权权限 21 | * 多个角色合并权限 22 | * @param userId 23 | * @return 24 | */ 25 | List getPermissionByUserId(@Param("userId") Long userId); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/ResourceMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.annotation.InterceptorIgnore; 4 | import com.fastcms.entity.Resource; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | import org.apache.ibatis.annotations.Param; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * 接口资源表 Mapper 接口 13 | *

14 | * 15 | * @author wjun_java@163.com 16 | * @since 2022-05-01 17 | */ 18 | public interface ResourceMapper extends BaseMapper { 19 | 20 | @InterceptorIgnore(blockAttack="1") 21 | void deleteAll(); 22 | 23 | List getUserResourceList(@Param("userId") Long userId); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/UserAmountMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.entity.UserAmount; 5 | import com.fastcms.service.IUserAmountService; 6 | 7 | /** 8 | *

9 | * 用户余额 Mapper 接口 10 | *

11 | * 12 | * @author wjun_java@163.com 13 | * @since 2022-03-28 14 | */ 15 | public interface UserAmountMapper extends BaseMapper { 16 | 17 | IUserAmountService.UserAmountVo getUserAmount(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/UserAmountStatementMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import com.baomidou.mybatisplus.core.toolkit.Constants; 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 7 | import com.fastcms.entity.UserAmountStatement; 8 | import com.fastcms.service.IUserAmountStatementService; 9 | import org.apache.ibatis.annotations.Param; 10 | 11 | /** 12 | * 用户余额流水情况 Mapper 接口 13 | * @author wjun_java@163.com 14 | * @since 2022-03-28 15 | */ 16 | public interface UserAmountStatementMapper extends BaseMapper { 17 | 18 | Page pageUserAmountStatement(Page pageParam, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.entity.User; 5 | import com.fastcms.entity.UserTag; 6 | import org.apache.ibatis.annotations.Param; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * 用户 Mapper 接口 13 | *

14 | * 15 | * @author wjun_java@163.com 16 | * @since 2021-02-14 17 | */ 18 | public interface UserMapper extends BaseMapper { 19 | 20 | List getUserTagList(@Param("userId") Long userId); 21 | 22 | Long getLastUserNum(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/UserOpenidMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.fastcms.entity.UserOpenid; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * 账号绑定信息表 Mapper 接口 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2021-06-08 13 | */ 14 | public interface UserOpenidMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/UserServerOpenidMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.fastcms.entity.UserServerOpenid; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | /** 7 | *

8 | * Mapper 接口 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2024-12-24 13 | */ 14 | public interface UserServerOpenidMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/mapper/UserTagMapper.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.fastcms.entity.UserTag; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * Mapper 接口 12 | *

13 | * 14 | * @author wjun_java@163.com 15 | * @since 2021-05-30 16 | */ 17 | public interface UserTagMapper extends BaseMapper { 18 | 19 | void saveUserTagRelation(@Param("userId") Long userId, @Param("tagIds") List tagIds); 20 | 21 | void deleteUserTagRelationByUserId(Long userId); 22 | 23 | List getTagListByUserId(Long userId); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IAttachmentService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.fastcms.entity.Attachment; 5 | 6 | /** 7 | * 附件服务类 8 | * @author wjun_java@163.com 9 | * @since 2021-02-19 10 | */ 11 | public interface IAttachmentService extends IService { 12 | 13 | interface AttachmentI18n { 14 | String ATTACHMENT_FILE_NOT_EXIST = "fastcms.attachment.not.exist"; 15 | String ATTACHMENT_FILE_UPLOAD_LIST_FAIL = "fastcms.attachment.upload.list.fail"; 16 | String ATTACHMENT_FILE_ALLOW_EDIT_SELF_FILE = "fastcms.attachment.allow.edit.self.file"; 17 | String ATTACHMENT_FILE_ALLOW_DELETE_SELF_FILE = "fastcms.attachment.allow.delete.self.file"; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IConfigService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.fastcms.entity.Config; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 配置服务类 10 | * @author wjun_java@163.com 11 | * @since 2021-02-14 12 | */ 13 | public interface IConfigService extends IService { 14 | 15 | Config findByKey(String key); 16 | 17 | String getValue(String key); 18 | 19 | Config saveConfig(String key, String value); 20 | 21 | /** 22 | * 获取多个配置 23 | * @param configKeys 24 | * @return 25 | */ 26 | List getConfigs(List configKeys); 27 | 28 | /** 29 | * 获取对外开放的配置 30 | * @param configKeys 31 | * @return 32 | */ 33 | List getPublicConfigs(List configKeys); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IOrderInvoiceService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.fastcms.entity.OrderInvoice; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 发票信息表 服务类 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2021-12-21 13 | */ 14 | public interface IOrderInvoiceService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IOrderItemService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.fastcms.entity.OrderItem; 5 | 6 | /** 7 | * 订单明细服务类 8 | * @author wjun_java@163.com 9 | * @since 2021-12-21 10 | */ 11 | public interface IOrderItemService extends IService { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IPermissionService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.fastcms.common.model.RouterNode; 5 | import com.fastcms.entity.Permission; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * 权限服务类 11 | * @author wjun_java@163.com 12 | * @since 2021-02-14 13 | */ 14 | public interface IPermissionService extends IService { 15 | 16 | /** 17 | * 获取角色授权 18 | * @param userId 19 | * @return 20 | */ 21 | List getUserPermissionList(Long userId); 22 | 23 | /** 24 | * 获取系统权限列表 25 | * @return userId 26 | */ 27 | List getUserPermissionsMenu(Long userId); 28 | 29 | /** 30 | * 获取所有路由数据 31 | * @return 32 | */ 33 | List getPermissions(); 34 | 35 | interface PermissionI18n { 36 | String ROUTES_CHILDREN_NOT_DELETE = "fastcms.routes.children.not.delete"; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IUserOpenidService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.fastcms.entity.UserOpenid; 5 | 6 | /** 7 | * 账号绑定信息 8 | * @author wjun_java@163.com 9 | * @since 2021-06-08 10 | */ 11 | public interface IUserOpenidService extends IService { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IUserServerOpenidService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.fastcms.entity.UserServerOpenid; 4 | import com.baomidou.mybatisplus.extension.service.IService; 5 | 6 | /** 7 | *

8 | * 服务类 9 | *

10 | * 11 | * @author wjun_java@163.com 12 | * @since 2024-12-24 13 | */ 14 | public interface IUserServerOpenidService extends IService { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/IUserTagService.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.fastcms.entity.UserTag; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 用户标签服务类 10 | * @author wjun_java@163.com 11 | * @since 2021-05-30 12 | */ 13 | public interface IUserTagService extends IService { 14 | 15 | void saveUserTagRelation(Long userId, List tagIds); 16 | 17 | UserTag getByName(String tagName); 18 | 19 | List getTagListByUserId(Long userId); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/impl/AttachmentServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.fastcms.entity.Attachment; 5 | import com.fastcms.mapper.AttachmentMapper; 6 | import com.fastcms.service.IAttachmentService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * 附件服务实现类 11 | * @author wjun_java@163.com 12 | * @since 2021-02-19 13 | */ 14 | @Service 15 | public class AttachmentServiceImpl extends ServiceImpl implements IAttachmentService { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/impl/OrderInvoiceServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service.impl; 2 | 3 | import com.fastcms.entity.OrderInvoice; 4 | import com.fastcms.mapper.OrderInvoiceMapper; 5 | import com.fastcms.service.IOrderInvoiceService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 发票信息表 服务实现类 12 | *

13 | * 14 | * @author wjun_java@163.com 15 | * @since 2021-12-21 16 | */ 17 | @Service 18 | public class OrderInvoiceServiceImpl extends ServiceImpl implements IOrderInvoiceService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/impl/OrderItemServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service.impl; 2 | 3 | import com.fastcms.entity.OrderItem; 4 | import com.fastcms.mapper.OrderItemMapper; 5 | import com.fastcms.service.IOrderItemService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | *

13 | * 订单明细表 服务实现类 14 | *

15 | * 16 | * @author wjun_java@163.com 17 | * @since 2021-12-21 18 | */ 19 | @Service 20 | public class OrderItemServiceImpl extends ServiceImpl implements IOrderItemService { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/impl/UserOpenidServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.fastcms.entity.UserOpenid; 5 | import com.fastcms.mapper.UserOpenidMapper; 6 | import com.fastcms.service.IUserOpenidService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * 账号绑定信息服务实现类 11 | * @author wjun_java@163.com 12 | * @since 2021-06-08 13 | */ 14 | @Service 15 | public class UserOpenidServiceImpl extends ServiceImpl implements IUserOpenidService { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /service/src/main/java/com/fastcms/service/impl/UserServerOpenidServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.service.impl; 2 | 3 | import com.fastcms.entity.UserServerOpenid; 4 | import com.fastcms.mapper.UserServerOpenidMapper; 5 | import com.fastcms.service.IUserServerOpenidService; 6 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * 服务实现类 12 | *

13 | * 14 | * @author wjun_java@163.com 15 | * @since 2024-12-24 16 | */ 17 | @Service 18 | public class UserServerOpenidServiceImpl extends ServiceImpl implements IUserServerOpenidService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /service/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Application Context Initializers 2 | org.springframework.context.ApplicationContextInitializer=\ 3 | com.fastcms.utils.ApplicationUtils -------------------------------------------------------------------------------- /service/src/main/resources/mapper/AttachmentMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/ConfigMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/OrderInvoiceMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/OrderItemMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/PermissionMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/ResourceMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | delete from resource 7 | 8 | 9 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/UserAmountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/UserAmountStatementMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/UserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/UserOpenidMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/UserServerOpenidMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /service/src/main/resources/mapper/UserTagMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | insert into user_tag_relation (user_id, tag_id) values 7 | 8 | (#{userId}, #{tagId}) 9 | 10 | 11 | 12 | 13 | delete from user_tag_relation where user_id = #{userId} 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /starters/email-starter/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | fastcms-starters 7 | com.fastcms 8 | ${revision} 9 | 10 | 4.0.0 11 | 12 | fastcms-email-starter 13 | fastcms-email-starter-${project.version} 14 | 15 | 16 | 17 | org.springframework.boot 18 | spring-boot-starter-mail 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /starters/email-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Auto Configure 2 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 3 | com.fastcms.email.autoconfigure.FastcmsMailSenderAutoConfiguration -------------------------------------------------------------------------------- /starters/lucene-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Auto Configure 2 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 3 | com.fastcms.lucene.autoconfigure.LuceneAutoConfiguration -------------------------------------------------------------------------------- /starters/mybatis-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Auto Configure 2 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 3 | com.fastcms.mybatis.autoconfigure.FastcmsMybatisAutoConfiguration -------------------------------------------------------------------------------- /starters/oauth2-starter/src/main/java/com/fastcms/oauth2/registration/FastcmsOAuth2ClientRegistration.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.oauth2.registration; 2 | 3 | /** 4 | * @author: wjun_java@163.com 5 | * @date: 2023/2/26 6 | * @description: 7 | * @modifiedBy: 8 | * @version: 1.0 9 | */ 10 | public interface FastcmsOAuth2ClientRegistration { 11 | 12 | /** 13 | * 获取OAuth2 RegistrationId 14 | * @return 15 | */ 16 | String getRegistrationId(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /starters/payment-starter/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | fastcms-starters 7 | com.fastcms 8 | ${revision} 9 | 10 | 4.0.0 11 | 12 | fastcms-payment-starter 13 | fastcms-payment-starter-${project.version} 14 | 15 | 16 | 2.14.3-b2 17 | 18 | 19 | 20 | 21 | 22 | com.egzosn 23 | pay-java-common 24 | ${pay-java.version} 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /starters/payment-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Auto Configure 2 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 3 | com.fastcms.payment.autoconfigure.PaymentAutoConfiguration -------------------------------------------------------------------------------- /starters/plugin-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Auto Configure 2 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 3 | com.fastcms.plugin.autoconfigure.PluginAutoConfiguration -------------------------------------------------------------------------------- /starters/wechat-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Auto Configure 2 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 3 | com.fastcms.wechat.autoconfigure.WechatMiniAppAutoConfiguration,\ 4 | com.fastcms.wechat.autoconfigure.WechatMpAutoConfiguration -------------------------------------------------------------------------------- /templates/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | fastcms 7 | com.fastcms 8 | ${revision} 9 | 10 | 4.0.0 11 | 12 | fastcms-templates 13 | fastcms-templates-${project.version} 14 | 15 | 16 | -------------------------------------------------------------------------------- /templates/src/main/resources/cms/_template.properties: -------------------------------------------------------------------------------- 1 | template.id=www.fastcms.com 2 | template.name=cms 3 | template.path=/cms/ 4 | template.version=0.0.1 5 | template.i18n=cms 6 | template.provider=wjun_java@163.com 7 | template.description=my fastcms site -------------------------------------------------------------------------------- /templates/src/main/resources/cms/i18n/cms.properties: -------------------------------------------------------------------------------- 1 | cms.test=测试 -------------------------------------------------------------------------------- /templates/src/main/resources/cms/i18n/cms_en.properties: -------------------------------------------------------------------------------- 1 | cms.test=test -------------------------------------------------------------------------------- /templates/src/main/resources/cms/i18n/cms_zh_CN.properties: -------------------------------------------------------------------------------- 1 | cms.test=测试 -------------------------------------------------------------------------------- /templates/src/main/resources/cms/page.html: -------------------------------------------------------------------------------- 1 | <#import "_layout.html" as layout> 2 | <@layout.header "页面-${(singlePage.title!)}"> 3 | <@layout.body> 4 |
5 |
6 |
7 |
8 |

页面id:${(singlePage.id)!}

9 |

标题:${(singlePage.title)!}

10 |

缩略图:

11 |

浏览次数:${(singlePage.viewCount)!}

12 |

创建时间:<@formatTime value=singlePage.created!/>

13 | 14 | ${(singlePage.contentHtml)!} 15 | 16 |
17 |
18 |
19 |
20 | 21 | <@layout.script> 22 | -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/favicon.ico -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/images/contact-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/images/contact-bg.jpg -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/images/fastcms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/images/fastcms.png -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/images/home-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/images/home-bg.jpg -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/images/home-bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/images/home-bg2.jpg -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/images/software-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/images/software-img.png -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/images/web-site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/images/web-site.png -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/images/wechat-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/templates/src/main/resources/cms/static/images/wechat-dev.png -------------------------------------------------------------------------------- /templates/src/main/resources/cms/static/js/custom.js: -------------------------------------------------------------------------------- 1 | // preloader 2 | $(window).load(function(){ 3 | $('.preloader').fadeOut(1000); // set duration in brackets 4 | }); 5 | 6 | $(function() { 7 | new WOW().init(); 8 | /*$('.templatemo-nav').singlePageNav({ 9 | offset: 70 10 | });*/ 11 | 12 | /* Hide mobile menu after clicking on a link 13 | -----------------------------------------------*/ 14 | $('.navbar-collapse a').click(function(){ 15 | $(".navbar-collapse").collapse('hide'); 16 | }); 17 | }) -------------------------------------------------------------------------------- /ui/.env: -------------------------------------------------------------------------------- 1 | # port 端口号 2 | VITE_PORT = 8088 3 | 4 | # open 运行 npm run dev 时自动打开浏览器 5 | VITE_OPEN = false 6 | 7 | # 打包是否开启 cdn(源文件 utils/build.ts),可自行修改 8 | VITE_OPEN_CDN = false 9 | 10 | # public path 配置线上环境路径(打包)、本地通过 http-server 访问时,请置空即可 11 | VITE_PUBLIC_PATH = / -------------------------------------------------------------------------------- /ui/.env.development: -------------------------------------------------------------------------------- 1 | # 本地环境 2 | ENV = development 3 | 4 | # 本地环境接口地址 5 | VITE_API_URL = 'http://localhost:8080/fastcms/api' 6 | 7 | # 本地环境插件接口地址 8 | VITE_PLUGIN_URL = 'http://localhost:8080/fastcms/plugin' 9 | 10 | # 本地环境websocket地址 11 | VITE_WEB_SOCKET_URL = 'ws://localhost:8080/fastcms/websocket' 12 | -------------------------------------------------------------------------------- /ui/.env.production: -------------------------------------------------------------------------------- 1 | # 线上环境 2 | ENV = 'production' 3 | 4 | # 线上环境接口地址 5 | VITE_API_URL = 'fastcms/api' 6 | 7 | # 线上环境插件接口地址 8 | VITE_PLUGIN_URL = 'fastcms/plugin' 9 | 10 | # 线上环境websocket 11 | VITE_WEB_SOCKET_URL = 'https://www.xjd2020.com/fastcms/websocket' -------------------------------------------------------------------------------- /ui/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | *.sh 3 | node_modules 4 | lib 5 | *.md 6 | *.scss 7 | *.woff 8 | *.ttf 9 | .vscode 10 | .idea 11 | dist 12 | mock 13 | public 14 | bin 15 | build 16 | config 17 | index.html 18 | src/assets -------------------------------------------------------------------------------- /ui/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /ui/.npmrc: -------------------------------------------------------------------------------- 1 | legacy-peer-deps=true 2 | sass_binary_site=https://registry.npmmirror.com/binary.html?path=node-sass/ -------------------------------------------------------------------------------- /ui/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # fastcms 20230612 更新 -------------------------------------------------------------------------------- /ui/CKEditorSvgLoader.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs').promises 2 | module.exports = function svgLoader() { 3 | const svgRegex = /\.svg(\?ckeditor)?$/; 4 | return { 5 | name: 'svg-loader', 6 | enforce: 'pre', 7 | async load (path) { 8 | if (path.match(svgRegex)) { 9 | const _path = path.split("?"); 10 | if (_path[0].match(/node_modules.+@ckeditor/) || _path[1] === "ckeditor") { 11 | const svg = await fs.readFile(_path[0], 'utf-8'); 12 | return `export default ${JSON.stringify(svg)}`; 13 | } 14 | } 15 | } 16 | } 17 | } 18 | module.exports.default = module.exports 19 | -------------------------------------------------------------------------------- /ui/public/bg-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/ui/public/bg-login.png -------------------------------------------------------------------------------- /ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/ui/public/favicon.ico -------------------------------------------------------------------------------- /ui/public/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/ui/public/header.jpg -------------------------------------------------------------------------------- /ui/src/api/dept/client.ts: -------------------------------------------------------------------------------- 1 | import request from '/@/utils/request'; 2 | 3 | export function ClientDeptApi() { 4 | return { 5 | /** 6 | * 获取部门数据(已启用) 7 | * @param params 8 | * @returns 9 | */ 10 | getDeptList(params?: object) { 11 | return request({ 12 | url: '/client/department/list', 13 | method: 'get', 14 | params, 15 | }); 16 | } 17 | }; 18 | } -------------------------------------------------------------------------------- /ui/src/api/home/index.ts: -------------------------------------------------------------------------------- 1 | import request from '/@/utils/request'; 2 | 3 | 4 | export function IndexApi() { 5 | return { 6 | /** 7 | * 首页数据集合 8 | * @returns 9 | */ 10 | getIndexData() { 11 | return request({ 12 | url: '/admin/index/data', 13 | method: 'get' 14 | }); 15 | } 16 | }; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /ui/src/api/res/index.ts: -------------------------------------------------------------------------------- 1 | import request from '/@/utils/request'; 2 | 3 | export function ResApi() { 4 | return { 5 | /** 6 | * 获取资源数据 7 | * @param params 8 | * @returns 9 | */ 10 | getResList(params?: object) { 11 | return request({ 12 | url: '/admin/resource/list', 13 | method: 'get', 14 | params, 15 | }); 16 | }, 17 | 18 | /** 19 | * 同步资源数据 20 | * @param params 21 | * @returns 22 | */ 23 | syncRes(params?: object) { 24 | return request({ 25 | url: '/admin/resource/sync', 26 | method: 'post', 27 | params, 28 | }); 29 | } 30 | 31 | }; 32 | } -------------------------------------------------------------------------------- /ui/src/api/user/client.ts: -------------------------------------------------------------------------------- 1 | import request from '/@/utils/request'; 2 | 3 | export function ClientUserApi() { 4 | return { 5 | /** 6 | * 保存用户数据 7 | * @param params 8 | * @returns 9 | */ 10 | updateUser(params?: object) { 11 | return request({ 12 | url: '/client/user/save', 13 | method: 'post', 14 | data: params, 15 | }); 16 | }, 17 | 18 | /** 19 | * 获取用户信息 20 | * @param params 21 | * @returns 22 | */ 23 | getUserInfo() { 24 | return request({ 25 | url: '/client/user/get', 26 | method: 'get', 27 | }); 28 | } 29 | }; 30 | } -------------------------------------------------------------------------------- /ui/src/components/auth/auth.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 27 | -------------------------------------------------------------------------------- /ui/src/components/auth/authAll.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 28 | -------------------------------------------------------------------------------- /ui/src/components/auth/auths.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 33 | -------------------------------------------------------------------------------- /ui/src/components/ckeditor/imgPlugin/command.js: -------------------------------------------------------------------------------- 1 | import Command from "@ckeditor/ckeditor5-core/src/command"; 2 | import { SCHEMA_NAME_IMG } from "./constant"; 3 | 4 | export default class ImgCommand extends Command { 5 | constructor(editor) { 6 | super(editor); 7 | this.attributeKey = SCHEMA_NAME_IMG; 8 | } 9 | refresh() { 10 | const model = this.editor.model; 11 | const selection = model.document.selection; 12 | // 校验选中的 Schema 是否允许 IMG 属性,若不允许则禁用按钮 13 | this.isEnabled = model.schema.checkAttributeInSelection( 14 | selection, 15 | this.attributeKey 16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ui/src/components/ckeditor/imgPlugin/connect.js: -------------------------------------------------------------------------------- 1 | export default { 2 | editorObj: null, 3 | dialogObj: null 4 | } 5 | -------------------------------------------------------------------------------- /ui/src/components/ckeditor/imgPlugin/constant.js: -------------------------------------------------------------------------------- 1 | export const COMMAND_NAME_IMG = 'imgPlugin'; 2 | export const COMMAND_LABEL_IMG = '图片'; 3 | export const SCHEMA_NAME_IMG = 'image'; 4 | -------------------------------------------------------------------------------- /ui/src/components/ckeditor/imgPlugin/editing.js: -------------------------------------------------------------------------------- 1 | import Plugin from "@ckeditor/ckeditor5-core/src/plugin"; 2 | import Widget from '@ckeditor/ckeditor5-widget/src/widget'; 3 | import ImgCommand from "./command"; 4 | import { COMMAND_NAME_IMG, SCHEMA_NAME_IMG } from "./constant"; 5 | 6 | export default class ImgEditing extends Plugin { 7 | static get requires() { 8 | return [Widget]; 9 | } 10 | static get pluginName() { 11 | return "ImgEditing"; 12 | } 13 | init() { 14 | const editor = this.editor; 15 | this.defineSchema(); 16 | editor.commands.add(COMMAND_NAME_IMG, new ImgCommand(editor)); 17 | } 18 | // 注册 schema 19 | defineSchema() { 20 | const schema = this.editor.model.schema; 21 | schema.extend("$text", { allowAttributes: SCHEMA_NAME_IMG }); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ui/src/components/ckeditor/imgPlugin/imageIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/src/components/ckeditor/imgPlugin/insertImage.js: -------------------------------------------------------------------------------- 1 | import { findOptimalInsertionRange } from "@ckeditor/ckeditor5-widget/src/utils"; 2 | 3 | export default function insertImage(model, attributes = {}) { 4 | console.log(model); 5 | if (!attributes || !attributes.src) { 6 | return; 7 | } 8 | model.change((writer) => { 9 | const imageElement = writer.createElement("imageInline", attributes); 10 | // 使用 findOptimalInsertionPosition 方法来获取最佳位置 11 | // 如果某个选择位于段落的中间,则将返回该段落之前的位置,不拆分当前段落 12 | // 如果选择位于段落的末尾,则将返回该段落之后的位置 13 | const insertAtSelection = findOptimalInsertionRange( 14 | model.document.selection, 15 | model 16 | ); 17 | model.insertContent(imageElement, insertAtSelection); 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /ui/src/components/ckeditor/imgPlugin/main.js: -------------------------------------------------------------------------------- 1 | import Plugin from '@ckeditor/ckeditor5-core/src/plugin'; 2 | import ToolbarUI from './toolbar'; 3 | import ImgEditing from './editing'; 4 | import { COMMAND_NAME_IMG } from './constant'; 5 | 6 | export default class IMG extends Plugin { 7 | static get requires() { 8 | return [ ImgEditing, ToolbarUI ]; 9 | } 10 | static get pluginName() { 11 | return COMMAND_NAME_IMG; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ui/src/directive/index.ts: -------------------------------------------------------------------------------- 1 | import type { App } from 'vue'; 2 | import { authDirective } from '/@/directive/authDirective'; 3 | import { wavesDirective, dragDirective } from '/@/directive/customDirective'; 4 | 5 | /** 6 | * 导出指令方法:v-xxx 7 | * @methods authDirective 用户权限指令,用法:v-auth 8 | * @methods wavesDirective 按钮波浪指令,用法:v-waves 9 | * @methods dragDirective 自定义拖动指令,用法:v-drag 10 | */ 11 | export function directive(app: App) { 12 | // 用户权限指令 13 | authDirective(app); 14 | // 按钮波浪指令 15 | wavesDirective(app); 16 | // 自定义拖动指令 17 | dragDirective(app); 18 | } 19 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/formI18n/en.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | formI18nLabel: { 4 | name: 'name', 5 | email: 'email', 6 | autograph: 'autograph', 7 | }, 8 | formI18nPlaceholder: { 9 | name: 'Please enter your name', 10 | email: 'Please enter the users Department', 11 | autograph: 'Please enter the login account name', 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/formI18n/zh-cn.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | formI18nLabel: { 4 | name: '姓名', 5 | email: '用户归属部门', 6 | autograph: '登陆账户名', 7 | }, 8 | formI18nPlaceholder: { 9 | name: '请输入姓名', 10 | email: '请输入用户归属部门', 11 | autograph: '请输入登陆账户名', 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/formI18n/zh-tw.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | formI18nLabel: { 4 | name: '姓名', 5 | email: '用戶歸屬部門', 6 | autograph: '登入帳戶名', 7 | }, 8 | formI18nPlaceholder: { 9 | name: '請輸入姓名', 10 | email: '請輸入用戶歸屬部門', 11 | autograph: '請輸入登入帳戶名', 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/home/en.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | card: { 4 | title1: 'Commodity sales', 5 | title2: 'environmental monitoring', 6 | title3: 'Early warning information', 7 | title4: 'dynamic information', 8 | title5: 'Performance overtime warning', 9 | }, 10 | table: { 11 | th1: 'time', 12 | th2: 'Laboratory name', 13 | th3: 'Alarm content', 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/home/zh-cn.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | card: { 4 | title1: '商品销售情况', 5 | title2: '环境监测', 6 | title3: '最新文章', 7 | title4: '版本日志', 8 | title5: '履约超时预警', 9 | }, 10 | table: { 11 | th1: '标题', 12 | th2: '浏览次数', 13 | th3: '创建时间', 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/home/zh-tw.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | card: { 4 | title1: '商品銷售情况', 5 | title2: '環境監測', 6 | title3: '預警資訊', 7 | title4: '動態資訊', 8 | title5: '履約超時預警', 9 | }, 10 | table: { 11 | th1: '時間', 12 | th2: '實驗室名稱', 13 | th3: '報警內容', 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/login/en.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | label: { 4 | one1: 'User name login', 5 | two2: 'Mobile number', 6 | }, 7 | link: { 8 | one3: 'Third party login', 9 | two4: 'Links', 10 | }, 11 | account: { 12 | accountPlaceholder1: 'The user name', 13 | accountPlaceholder2: 'Password', 14 | accountPlaceholder3: 'Please enter the verification code', 15 | accountBtnText: 'Sign in', 16 | }, 17 | mobile: { 18 | placeholder1: 'Please input mobile phone number', 19 | placeholder2: 'Please enter the verification code', 20 | codeText: 'Get code', 21 | btnText: 'Sign in', 22 | msgText: 23 | 'Warm tip: it is recommended to use Google, Microsoft edge, version 79.0.1072.62 and above browsers, and 360 browser, please use speed mode', 24 | }, 25 | scan: { 26 | text: 'Open the mobile phone to scan and quickly log in / register', 27 | }, 28 | signInText: 'welcome back!', 29 | }; 30 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/login/zh-cn.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | label: { 4 | one1: '账号密码登录', 5 | two2: '手机号登录', 6 | }, 7 | link: { 8 | one3: '新用户注册', 9 | two4: '友情链接', 10 | two5: '已有账号?现在登录', 11 | two6: '找回密码', 12 | two7: '微信授权登录', 13 | }, 14 | copyright: { 15 | one5: '版权所有:广州小橘灯信息科技有限公司', 16 | two6: 'Copyright: Guangzhou xiaojuedeng Software Technology 粤ICP备20053122号', 17 | }, 18 | account: { 19 | accountPlaceholder1: '账号', 20 | accountPlaceholder2: '密码', 21 | accountPlaceholder3: '请输入验证码', 22 | accountPlaceholder4: '确认密码', 23 | accountPlaceholder5: '邮箱', 24 | accountPlaceholder6: '昵称', 25 | accountBtnText: '登 录', 26 | accountRegistBtnText: '注 册', 27 | accountRestPasswordBtnText: '重置密码', 28 | }, 29 | mobile: { 30 | placeholder1: '请输入手机号', 31 | placeholder2: '请输入验证码', 32 | codeText: '获取验证码', 33 | btnText: '登 录', 34 | }, 35 | signInText: '欢迎回来!', 36 | registerInText: '注册成功,即将跳到登录页...', 37 | }; 38 | -------------------------------------------------------------------------------- /ui/src/i18n/pages/login/zh-tw.ts: -------------------------------------------------------------------------------- 1 | // 定义内容 2 | export default { 3 | label: { 4 | one1: '用戶名登入', 5 | two2: '手機號登入', 6 | }, 7 | link: { 8 | one3: '協力廠商登入', 9 | two4: '友情連結', 10 | }, 11 | account: { 12 | accountPlaceholder1: '用戶名admin或不輸均為common', 13 | accountPlaceholder2: '密碼:123456', 14 | accountPlaceholder3: '請輸入驗證碼', 15 | accountBtnText: '登入', 16 | }, 17 | mobile: { 18 | placeholder1: '請輸入手機號', 19 | placeholder2: '請輸入驗證碼', 20 | codeText: '獲取驗證碼', 21 | btnText: '登入', 22 | msgText: '* 溫馨提示:建議使用穀歌、Microsoft Edge,版本79.0.1072.62及以上瀏覽器,360瀏覽器請使用極速模式', 23 | }, 24 | scan: { 25 | text: '打開手機掃一掃,快速登錄/注册', 26 | }, 27 | signInText: '歡迎回來!', 28 | }; 29 | -------------------------------------------------------------------------------- /ui/src/layout/component/header.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 19 | -------------------------------------------------------------------------------- /ui/src/layout/footer/index.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 17 | 18 | 30 | -------------------------------------------------------------------------------- /ui/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import pinia from '/@/stores/index'; 3 | import App from '/@/App.vue'; 4 | import router from '/@/router'; 5 | import { directive } from '/@/directive/index'; 6 | import { i18n } from '/@/i18n/index'; 7 | import other from '/@/utils/other'; 8 | 9 | import ElementPlus from 'element-plus'; 10 | import '/@/theme/index.scss'; 11 | import "./theme/ck-vite.css"; 12 | import VueGridLayout from 'vue-grid-layout'; 13 | 14 | const app = createApp(App); 15 | 16 | directive(app); 17 | other.elSvg(app); 18 | 19 | app.use(pinia).use(router).use(ElementPlus).use(i18n).use(VueGridLayout).mount('#app'); 20 | -------------------------------------------------------------------------------- /ui/src/stores/index.ts: -------------------------------------------------------------------------------- 1 | // https://pinia.vuejs.org/ 2 | import { createPinia } from 'pinia'; 3 | 4 | // 创建 5 | const pinia = createPinia(); 6 | 7 | // 导出 8 | export default pinia; 9 | -------------------------------------------------------------------------------- /ui/src/stores/requestOldRoutes.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from 'pinia'; 2 | 3 | /** 4 | * 后端返回原始路由(未处理时) 5 | * @methods setCacheKeepAlive 设置接口原始路由数据 6 | */ 7 | export const useRequestOldRoutes = defineStore('requestOldRoutes', { 8 | state: (): RequestOldRoutesState => ({ 9 | requestOldRoutes: [], 10 | }), 11 | actions: { 12 | async setRequestOldRoutes(routes: Array) { 13 | this.requestOldRoutes = routes; 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /ui/src/stores/routesList.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from 'pinia'; 2 | 3 | /** 4 | * 路由列表 5 | * @methods setRoutesList 设置路由数据 6 | * @methods setColumnsMenuHover 设置分栏布局菜单鼠标移入 boolean 7 | * @methods setColumnsNavHover 设置分栏布局最左侧导航鼠标移入 boolean 8 | */ 9 | export const useRoutesList = defineStore('routesList', { 10 | state: (): RoutesListState => ({ 11 | routesList: [], 12 | isColumnsMenuHover: false, 13 | isColumnsNavHover: false, 14 | }), 15 | actions: { 16 | async setRoutesList(data: Array) { 17 | this.routesList = data; 18 | }, 19 | async setColumnsMenuHover(bool: Boolean) { 20 | this.isColumnsMenuHover = bool; 21 | }, 22 | async setColumnsNavHover(bool: Boolean) { 23 | this.isColumnsNavHover = bool; 24 | }, 25 | }, 26 | }); 27 | -------------------------------------------------------------------------------- /ui/src/stores/tagsViewRoutes.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from 'pinia'; 2 | import { Session } from '/@/utils/storage'; 3 | 4 | /** 5 | * TagsView 路由列表 6 | * @methods setTagsViewRoutes 设置 TagsView 路由列表 7 | * @methods setCurrenFullscreen 设置开启/关闭全屏时的 boolean 状态 8 | */ 9 | export const useTagsViewRoutes = defineStore('tagsViewRoutes', { 10 | state: (): TagsViewRoutesState => ({ 11 | tagsViewRoutes: [], 12 | isTagsViewCurrenFull: false, 13 | }), 14 | actions: { 15 | async setTagsViewRoutes(data: Array) { 16 | this.tagsViewRoutes = data; 17 | }, 18 | setCurrenFullscreen(bool: Boolean) { 19 | Session.set('isTagsViewCurrenFull', bool); 20 | this.isTagsViewCurrenFull = bool; 21 | }, 22 | }, 23 | }); 24 | -------------------------------------------------------------------------------- /ui/src/theme/iconSelector.scss: -------------------------------------------------------------------------------- 1 | /* Popover 弹出框(图标选择器) 2 | ------------------------------- */ 3 | .icon-selector-popper { 4 | padding: 0 !important; 5 | .icon-selector-warp { 6 | height: 260px; 7 | overflow: hidden; 8 | position: relative; 9 | .icon-selector-warp-title { 10 | position: absolute; 11 | height: 40px; 12 | line-height: 40px; 13 | left: 15px; 14 | } 15 | .el-tabs__header { 16 | display: flex; 17 | justify-content: flex-end; 18 | padding: 0 15px; 19 | border-bottom: 1px solid var(--el-border-color-light); 20 | margin: 0 !important; 21 | .el-tabs__nav-wrap { 22 | &::after { 23 | height: 0 !important; 24 | } 25 | .el-tabs__item { 26 | padding: 0 5px !important; 27 | } 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ui/src/theme/index.scss: -------------------------------------------------------------------------------- 1 | @use 'element-plus/dist/index.css'; 2 | @use './app.scss'; 3 | @use 'common/transition.scss'; 4 | @use './other.scss'; 5 | @use './element.scss'; 6 | @use './media/media.scss'; 7 | @use './waves.scss'; 8 | @use './dark.scss'; 9 | -------------------------------------------------------------------------------- /ui/src/theme/media/cityLinkage.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | 4 | /* 页面宽度小于576px 5 | ------------------------------- */ 6 | @media screen and (max-width: $xs) { 7 | .el-cascader__dropdown.el-popper { 8 | overflow: auto; 9 | max-width: 100%; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ui/src/theme/media/date.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | 4 | /* 页面宽度小于768px 5 | ------------------------------- */ 6 | @media screen and (max-width: $sm) { 7 | // 时间选择器适配 8 | .el-date-range-picker { 9 | width: 100vw; 10 | .el-picker-panel__body { 11 | min-width: 100%; 12 | .el-date-range-picker__content { 13 | .el-date-range-picker__header div { 14 | margin-left: 22px; 15 | margin-right: 0px; 16 | } 17 | & + .el-date-range-picker__content { 18 | .el-date-range-picker__header div { 19 | margin-left: 0px; 20 | margin-right: 22px; 21 | } 22 | } 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ui/src/theme/media/dialog.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | /* 页面宽度小于800px 4 | ------------------------------- */ 5 | @media screen and (max-width: 800px) { 6 | .el-dialog { 7 | width: 90% !important; 8 | } 9 | .el-dialog.is-fullscreen { 10 | width: 100% !important; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ui/src/theme/media/error.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | /* 页面宽度小于768px 4 | ------------------------------- */ 5 | @media screen and (max-width: $sm) { 6 | .error { 7 | .error-flex { 8 | flex-direction: column-reverse !important; 9 | height: auto !important; 10 | width: 100% !important; 11 | } 12 | .right, 13 | .left { 14 | flex: unset !important; 15 | display: flex !important; 16 | } 17 | .left-item { 18 | margin: auto !important; 19 | } 20 | .right img { 21 | max-width: 450px !important; 22 | @extend .left-item; 23 | } 24 | } 25 | } 26 | 27 | /* 页面宽度大于768px小于992px 28 | ------------------------------- */ 29 | @media screen and (min-width: $sm) and (max-width: $md) { 30 | .error { 31 | .error-flex { 32 | padding-left: 30px !important; 33 | } 34 | } 35 | } 36 | 37 | /* 页面宽度小于1200px 38 | ------------------------------- */ 39 | @media screen and (max-width: $lg) { 40 | .error { 41 | .error-flex { 42 | padding: 0 30px; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /ui/src/theme/media/form.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | 4 | /* 页面宽度小于576px 5 | ------------------------------- */ 6 | @media screen and (max-width: $xs) { 7 | .el-form-item__label { 8 | width: 100% !important; 9 | text-align: left !important; 10 | // 移动端 label 右对齐问题 11 | justify-content: flex-start !important; 12 | } 13 | .el-form-item__content { 14 | margin-left: 0 !important; 15 | } 16 | .el-form-item { 17 | // 响应式表单时,登录页需要重新处理 18 | display: unset !important; 19 | } 20 | // 表格演示中的表单筛选 21 | .table-form-btn { 22 | display: flex !important; 23 | .el-form-item__label { 24 | width: auto !important; 25 | } 26 | } 27 | // 表格演示中的表单筛选最大高度,适配移动端 28 | .table-search-container { 29 | max-height: 160px; 30 | overflow: auto; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ui/src/theme/media/home.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | /* 页面宽度小于768px 4 | ------------------------------- */ 5 | @media screen and (max-width: $sm) { 6 | .home-media, 7 | .home-media-sm { 8 | margin-top: 15px; 9 | } 10 | } 11 | 12 | /* 页面宽度小于1200px 13 | ------------------------------- */ 14 | @media screen and (max-width: $lg) { 15 | .home-media-lg { 16 | margin-top: 15px; 17 | } 18 | .home-monitor { 19 | .flex-warp-item { 20 | width: 33.33% !important; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ui/src/theme/media/index.scss: -------------------------------------------------------------------------------- 1 | /* 栅格布局(媒体查询变量) 2 | * https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Media_queries 3 | * $us ≥376px 响应式栅格 4 | * $xs ≥576px 响应式栅格 5 | * $sm ≥768px 响应式栅格 6 | * $md ≥992px 响应式栅格 7 | * $lg ≥1200px 响应式栅格 8 | * $xl ≥1920px 响应式栅格 9 | ------------------------------- */ 10 | $us: 376px; 11 | $xs: 576px; 12 | $sm: 768px; 13 | $md: 992px; 14 | $lg: 1200px; 15 | $xl: 1920px; 16 | -------------------------------------------------------------------------------- /ui/src/theme/media/media.scss: -------------------------------------------------------------------------------- 1 | @use './login.scss'; 2 | @use './error.scss'; 3 | @use './layout.scss'; 4 | @use './personal.scss'; 5 | @use './tagsView.scss'; 6 | @use './home.scss'; 7 | @use './chart.scss'; 8 | @use './form.scss'; 9 | @use './scrollbar.scss'; 10 | @use './pagination.scss'; 11 | @use './dialog.scss'; 12 | @use './cityLinkage.scss'; 13 | @use './date.scss'; 14 | -------------------------------------------------------------------------------- /ui/src/theme/media/pagination.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | /* 页面宽度小于576px 4 | ------------------------------- */ 5 | @media screen and (max-width: $xs) { 6 | .el-pager, 7 | .el-pagination__jump { 8 | display: none !important; 9 | } 10 | // 默认居中对齐 11 | .el-pagination, 12 | .table-footer { 13 | justify-content: center !important; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ui/src/theme/media/personal.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | /* 页面宽度小于768px 4 | ------------------------------- */ 5 | @media screen and (max-width: $sm) { 6 | .personal-info { 7 | padding-left: 0 !important; 8 | margin-top: 15px; 9 | } 10 | .personal-recommend-col { 11 | margin-bottom: 15px; 12 | &:last-of-type { 13 | margin-bottom: 0; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ui/src/theme/media/tagsView.scss: -------------------------------------------------------------------------------- 1 | @use './index.scss' as *; 2 | 3 | /* 页面宽度小于768px 4 | ------------------------------- */ 5 | @media screen and (max-width: $sm) { 6 | .tags-view-form { 7 | .tags-view-form-col { 8 | margin-bottom: 20px; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ui/src/theme/tableTool.scss: -------------------------------------------------------------------------------- 1 | .table-tool-popper { 2 | padding: 0 !important; 3 | .tool-box { 4 | display: flex; 5 | border-bottom: 1px solid var(--el-border-color-lighter); 6 | box-sizing: border-box; 7 | color: var(--el-text-color-primary); 8 | height: 40px; 9 | align-items: center; 10 | } 11 | .tool-sortable { 12 | max-height: 303px; 13 | .tool-sortable-item { 14 | display: flex; 15 | box-sizing: border-box; 16 | color: var(--el-text-color-primary); 17 | align-items: center; 18 | padding: 0 12px; 19 | &:hover { 20 | background: var(--el-fill-color-lighter); 21 | } 22 | i { 23 | opacity: 0.7; 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ui/src/types/axios.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | import * as axios from 'axios'; 3 | 4 | // 扩展 axios 数据返回类型,可自行扩展 5 | declare module 'axios' { 6 | export interface AxiosResponse { 7 | code: number; 8 | data: T; 9 | message: string; 10 | type?: string; 11 | [key: string]: T; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ui/src/utils/authFunction.ts: -------------------------------------------------------------------------------- 1 | import { useUserInfo } from '/@/stores/userInfo'; 2 | import { judementSameArr } from '/@/utils/arrayOperation'; 3 | 4 | /** 5 | * 单个权限验证 6 | * @param value 权限值 7 | * @returns 有权限,返回 `true`,反之则反 8 | */ 9 | export function auth(value: string): boolean { 10 | const stores = useUserInfo(); 11 | return stores.userInfos.authBtnList.some((v: string) => v === value); 12 | } 13 | 14 | /** 15 | * 多个权限验证,满足一个则为 true 16 | * @param value 权限值 17 | * @returns 有权限,返回 `true`,反之则反 18 | */ 19 | export function auths(value: Array): boolean { 20 | let flag = false; 21 | const stores = useUserInfo(); 22 | stores.userInfos.authBtnList.map((val: string) => { 23 | value.map((v: string) => { 24 | if (val === v) flag = true; 25 | }); 26 | }); 27 | return flag; 28 | } 29 | 30 | /** 31 | * 多个权限验证,全部满足则为 true 32 | * @param value 权限值 33 | * @returns 有权限,返回 `true`,反之则反 34 | */ 35 | export function authAll(value: Array): boolean { 36 | const stores = useUserInfo(); 37 | return judementSameArr(value, stores.userInfos.authBtnList); 38 | } 39 | -------------------------------------------------------------------------------- /ui/src/utils/mitt.ts: -------------------------------------------------------------------------------- 1 | // https://www.npmjs.com/package/mitt 2 | import mitt, { Emitter } from 'mitt'; 3 | 4 | // 类型 5 | const emitter: Emitter = mitt(); 6 | 7 | // 导出 8 | export default emitter; 9 | -------------------------------------------------------------------------------- /ui/src/views/center/collect/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /ui/src/views/center/coupon/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /ui/src/views/center/home/mock.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 消息通知 3 | * @returns 返回模拟数据 4 | */ 5 | export const newsInfoList: Array = [ 6 | { 7 | title: '[发布] 2022年03月01日发布基于Fastcms-0.0.1版本', 8 | date: '2022/05/04', 9 | link: 'https://gitee.com/xjd2020/fastcms', 10 | }, 11 | ]; 12 | 13 | /** 14 | * 营销推荐 15 | * @returns 返回模拟数据 16 | */ 17 | export const recommendList: Array = [ 18 | { 19 | title: '优惠券', 20 | msg: '现金券、折扣券、营销必备', 21 | icon: 'el-icon-food', 22 | bg: '#48D18D', 23 | iconColor: '#64d89d', 24 | }, 25 | { 26 | title: '多人拼团', 27 | msg: '社交电商、开辟流量', 28 | icon: 'el-icon-shopping-bag-1', 29 | bg: '#F95959', 30 | iconColor: '#F86C6B', 31 | }, 32 | { 33 | title: '分销中心', 34 | msg: '轻松招募分销员,成功推广奖励', 35 | icon: 'el-icon-school', 36 | bg: '#8595F4', 37 | iconColor: '#92A1F4', 38 | }, 39 | { 40 | title: '秒杀', 41 | msg: '超低价抢购引导更多销量', 42 | icon: 'el-icon-alarm-clock', 43 | bg: '#FEBB50', 44 | iconColor: '#FDC566', 45 | }, 46 | ]; 47 | -------------------------------------------------------------------------------- /ui/src/views/center/info/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /ui/src/views/chart/chart.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * sky 天气 3 | * @returns 返回模拟数据 4 | */ 5 | export const skyList = [ 6 | { 7 | v1: '时间', 8 | v2: '天气', 9 | v3: '温度', 10 | v5: '降水', 11 | v7: '风力', 12 | type: 'title', 13 | }, 14 | { 15 | v1: '今天', 16 | v2: 'ele-Sunny', 17 | v3: '20°/26°', 18 | v5: '50%', 19 | v7: '13m/s', 20 | }, 21 | { 22 | v1: '明天', 23 | v2: 'ele-Lightning', 24 | v3: '20°/26°', 25 | v5: '50%', 26 | v7: '13m/s', 27 | }, 28 | ]; 29 | 30 | /** 31 | * 当前设置状态 32 | * @returns 返回模拟数据 33 | */ 34 | export const dBtnList = [ 35 | { 36 | v2: '阳光玫瑰种植', 37 | v3: '126天', 38 | v4: '设备在线', 39 | }, 40 | ]; 41 | 42 | /** 43 | * 当前设备监测 44 | * @returns 返回模拟数据 45 | */ 46 | export const chartData4List = [ 47 | { 48 | label: '温度', 49 | }, 50 | { 51 | label: '光照', 52 | }, 53 | { 54 | label: '湿度', 55 | }, 56 | { 57 | label: '风力', 58 | }, 59 | ]; 60 | -------------------------------------------------------------------------------- /ui/src/views/home/data.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 最顶部 card 3 | * @returns 返回模拟数据 4 | */ 5 | export const topCardItemList = [ 6 | { 7 | title: '今日新增文章', 8 | titleNum: '1123', 9 | tip: '文章总数', 10 | tipNum: '911', 11 | color: '#F95959', 12 | iconColor: '#F86C6B', 13 | icon: 'iconfont icon-jinridaiban', 14 | }, 15 | { 16 | title: '今日浏览量', 17 | titleNum: '1223', 18 | tip: '总浏览量', 19 | tipNum: '911', 20 | color: '#FEBB50', 21 | iconColor: '#FDC566', 22 | icon: 'iconfont icon-shenqingkaiban', 23 | }, 24 | { 25 | title: '今日新增订单', 26 | titleNum: '1243', 27 | tip: '订单总数', 28 | tipNum: '611', 29 | color: '#8595F4', 30 | iconColor: '#92A1F4', 31 | icon: 'iconfont icon-AIshiyanshi', 32 | }, 33 | ]; 34 | 35 | /** 36 | * 动态信息 37 | * @returns 返回模拟数据 38 | */ 39 | export const activitiesList = [ 40 | { 41 | time1: '2021-11-03', 42 | time2: '12:20:30', 43 | title: '命名', 44 | label: '正式命名为 fastcms', 45 | }, 46 | { 47 | time1: '2022-03-01', 48 | time2: '00:00:00', 49 | title: '版本', 50 | label: '发布第一个版本V0.0.1', 51 | }, 52 | ]; 53 | -------------------------------------------------------------------------------- /web/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM adoptopenjdk/openjdk8 2 | LABEL maintainer="WangJun" 3 | 4 | WORKDIR /opt/fastcms 5 | 6 | ARG JAR_FILE=target/*-exec.jar 7 | 8 | COPY ${JAR_FILE} app.jar 9 | 10 | EXPOSE 8080 11 | 12 | ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" 13 | 14 | CMD sleep 60; java $JAVA_OPTS -jar app.jar 15 | -------------------------------------------------------------------------------- /web/docker-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # abort on errors 3 | set -e 4 | 5 | version="$1" 6 | 7 | if [[ "$version" == "" ]]; then 8 | echo "./please designated docker image version" 9 | exit 0 10 | fi 11 | 12 | echo "exec : docker build . -t wangjun/fastcms:"${version} 13 | docker build . -t wangjun/fastcms:${version} 14 | -------------------------------------------------------------------------------- /web/src/main/java/com/fastcms/web/security/FastcmsRegisteredClientRepository.java: -------------------------------------------------------------------------------- 1 | package com.fastcms.web.security; 2 | 3 | import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository; 4 | 5 | /** 6 | * @author wangjun 7 | **/ 8 | public interface FastcmsRegisteredClientRepository extends RegisteredClientRepository { 9 | 10 | void remove(String clientId); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /web/src/main/resources/application-prod.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | datasource: 5 | driver-class-name: com.mysql.cj.jdbc.Driver 6 | url: jdbc:mysql://localhost:3306/fastcms?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai 7 | username: root 8 | password: root 9 | log: 10 | path: ./logs 11 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/401-4a3c6d7e.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/401-4a3c6d7e.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/404-f53f0dd8.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/404-f53f0dd8.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/@ckeditor-bf87edfb.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/@ckeditor-bf87edfb.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/account-75975698.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/account-75975698.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/breadcrumb-a5c092b1.css: -------------------------------------------------------------------------------- 1 | .layout-navbars-breadcrumb[data-v-1b17d545]{flex:1;height:inherit;display:flex;align-items:center}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-icon[data-v-1b17d545]{cursor:pointer;font-size:18px;color:var(--next-bg-topBarColor);height:100%;width:40px;opacity:.8}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-icon[data-v-1b17d545]:hover{opacity:1}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-span[data-v-1b17d545]{display:flex;opacity:.7;color:var(--next-bg-topBarColor)}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-iconfont[data-v-1b17d545]{font-size:14px;margin-right:5px}.layout-navbars-breadcrumb[data-v-1b17d545] .el-breadcrumb__separator{opacity:.7;color:var(--next-bg-topBarColor)}.layout-navbars-breadcrumb[data-v-1b17d545] .el-breadcrumb__inner a{font-weight:unset!important;color:var(--next-bg-topBarColor)}.layout-navbars-breadcrumb[data-v-1b17d545] .el-breadcrumb__inner a:hover{color:var(--el-color-primary)!important} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/closeFull-046c74cd.css: -------------------------------------------------------------------------------- 1 | .layout-navbars-close-full[data-v-a095062e]{position:fixed;z-index:9999999999;right:-30px;top:-30px}.layout-navbars-close-full .layout-navbars-close-full-icon[data-v-a095062e]{width:60px;height:60px;border-radius:100%;cursor:pointer;background:rgba(0,0,0,.1);transition:all .3s ease;position:relative}.layout-navbars-close-full .layout-navbars-close-full-icon[data-v-a095062e] i{position:absolute;left:10px;top:35px;color:#333;transition:all .3s ease}.layout-navbars-close-full[data-v-a095062e]:hover{transition:all .3s ease}.layout-navbars-close-full[data-v-a095062e]:hover i{color:var(--el-color-primary);transition:all .3s ease} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/columnsAside-df7dd397.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/columnsAside-df7dd397.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/contextmenu-5e5719d3.css: -------------------------------------------------------------------------------- 1 | .custom-contextmenu[data-v-51f55c04]{transform-origin:center top;z-index:2190;position:fixed}.custom-contextmenu .el-dropdown-menu__item[data-v-51f55c04]{font-size:12px!important;white-space:nowrap}.custom-contextmenu .el-dropdown-menu__item i[data-v-51f55c04]{font-size:12px!important} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/detail-4a2831c1.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/detail-4a2831c1.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/detail-516b0edb.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/detail-516b0edb.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/detail-e0478261.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/detail-e0478261.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/detail-f5739967.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/detail-f5739967.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/edit-d04cf27a.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-scroll{overflow:scroll!important;margin-bottom:0;margin-right:0;padding-bottom:0;height:600;outline:none;position:relative;border:1px solid #dddddd}.code-mirror{font-size:13px;line-height:150%;height:600px;text-align:left} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/fastcms-01cf5f8f.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/fastcms-01cf5f8f.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/head-8e61927a.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/head-8e61927a.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/horizontal-00c4fb4a.css: -------------------------------------------------------------------------------- 1 | .el-menu-horizontal-warp[data-v-f4ca57f2]{flex:1;overflow:hidden;margin-right:30px}.el-menu-horizontal-warp[data-v-f4ca57f2] .el-scrollbar__bar.is-vertical{display:none}.el-menu-horizontal-warp[data-v-f4ca57f2] a{width:100%}.el-menu-horizontal-warp .el-menu.el-menu--horizontal[data-v-f4ca57f2]{display:flex;height:100%;width:100%;box-sizing:border-box} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-179089e9.css: -------------------------------------------------------------------------------- 1 | .layout-navbars-breadcrumb-index[data-v-37a7a9aa]{height:50px;display:flex;align-items:center;background:var(--next-bg-topBar);border-bottom:1px solid var(--next-border-color-light)} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-39ea895b.css: -------------------------------------------------------------------------------- 1 | .system-role-container .system-role-search[data-v-7ced785f]{text-align:left}.system-role-container .system-role-photo[data-v-7ced785f]{width:40px;height:40px;border-radius:100%} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-3d1428dd.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-3d1428dd.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-4132d330.css: -------------------------------------------------------------------------------- 1 | .upload-btn[data-v-14147532]{padding-bottom:10px}.bottom[data-v-14147532]{margin-top:13px;line-height:12px}.button[data-v-14147532]{padding:0;float:right}.image[data-v-14147532]{width:100%;height:200px;display:block}.clearfix[data-v-14147532]:before,.clearfix[data-v-14147532]:after{display:table;content:""}.clearfix[data-v-14147532]:after{clear:both}.imgWrap[data-v-14147532]{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-template-rows:auto;grid-row-gap:10px;grid-column-gap:20px;justify-content:space-between}.filename[data-v-14147532]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-v-14147532] .el-checkbox__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:30px} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-47b5c078.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.icon-selector-popper{padding:0!important}.icon-selector-popper .icon-selector-warp{height:260px;overflow:hidden;position:relative}.icon-selector-popper .icon-selector-warp .icon-selector-warp-title{position:absolute;height:40px;line-height:40px;left:15px}.icon-selector-popper .icon-selector-warp .el-tabs__header{display:flex;justify-content:flex-end;padding:0 15px;border-bottom:1px solid var(--el-border-color-light);margin:0!important}.icon-selector-popper .icon-selector-warp .el-tabs__header .el-tabs__nav-wrap:after{height:0!important}.icon-selector-popper .icon-selector-warp .el-tabs__header .el-tabs__nav-wrap .el-tabs__item{padding:0 5px!important} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-4ce67a25.css: -------------------------------------------------------------------------------- 1 | .layout-footer[data-v-923f5838]{width:100%;display:flex}.layout-footer-warp[data-v-923f5838]{margin:auto;color:var(--el-text-color-secondary);text-align:center;animation:error-num .3s ease} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-5358ab0e.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-5358ab0e.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-59040b24.css: -------------------------------------------------------------------------------- 1 | .system-user-container .system-user-search[data-v-a26a93dc]{text-align:right}.system-user-container .system-user-photo[data-v-a26a93dc]{width:40px;height:40px;border-radius:100%} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-5aa2e0a7.css: -------------------------------------------------------------------------------- 1 | .layout-logo[data-v-1220db0a]{width:220px;height:50px;display:flex;align-items:center;justify-content:center;box-shadow:#00152905 0 1px 4px;color:var(--el-color-primary);font-size:16px;cursor:pointer;animation:logoAnimation .3s ease-in-out}.layout-logo span[data-v-1220db0a]{white-space:nowrap;display:inline-block}.layout-logo:hover span[data-v-1220db0a]{color:var(--color-primary-light-2)}.layout-logo-medium-img[data-v-1220db0a]{width:20px;margin-right:5px}.layout-logo-size[data-v-1220db0a]{width:100%;height:50px;display:flex;cursor:pointer;animation:logoAnimation .3s ease-in-out}.layout-logo-size-img[data-v-1220db0a]{width:20px;margin:auto}.layout-logo-size:hover img[data-v-1220db0a]{animation:logoAnimation .3s ease-in-out} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-5b3b60d3.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-5b3b60d3.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-6d6c8e27.css: -------------------------------------------------------------------------------- 1 | .layout-navbars-container[data-v-6cf86195]{display:flex;flex-direction:column;width:100%;height:100%} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-7cabd87d.css: -------------------------------------------------------------------------------- 1 | .upload-btn[data-v-e3870e70]{padding-bottom:10px}.bottom[data-v-e3870e70]{margin-top:13px;line-height:12px}.button[data-v-e3870e70]{padding:0;float:right}.image[data-v-e3870e70]{width:100%;height:200px;display:block}.clearfix[data-v-e3870e70]:before,.clearfix[data-v-e3870e70]:after{display:table;content:""}.clearfix[data-v-e3870e70]:after{clear:both}.imgWrap[data-v-e3870e70]{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-template-rows:auto;grid-row-gap:10px;grid-column-gap:20px;justify-content:space-between}.filename[data-v-e3870e70]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-v-e3870e70] .el-checkbox__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:30px}.ck.ck-content.CKEditorContent{border:#bbb 1px solid} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-8cf8256a.css: -------------------------------------------------------------------------------- 1 | .tools-warp-form[data-v-9a480636] .el-form-item--small.el-form-item{margin-bottom:0!important}.tools-warp-form .tools-warp-form-msg[data-v-9a480636]{color:#666;font-size:14px;width:100%}.tools-warp-form .tools-warp-form-msg .tools-warp-form-msg-red[data-v-9a480636]{color:red}.tools-warp-form .tools-warp-form-msg+div[data-v-9a480636]{width:100%} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-8e1b23b7.css: -------------------------------------------------------------------------------- 1 | .system-user-container .system-user-search[data-v-cbb1615e]{text-align:right}.system-user-container .system-user-photo[data-v-cbb1615e]{width:40px;height:40px;border-radius:100%} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-8f940e16.css: -------------------------------------------------------------------------------- 1 | .upload-btn[data-v-b1e9efae]{padding-bottom:10px}.bottom[data-v-b1e9efae]{margin-top:13px;line-height:12px}.button[data-v-b1e9efae]{padding:0;float:right}.image[data-v-b1e9efae]{width:100%;height:200px;display:block}.clearfix[data-v-b1e9efae]:before,.clearfix[data-v-b1e9efae]:after{display:table;content:""}.clearfix[data-v-b1e9efae]:after{clear:both} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-964a5ef7.css: -------------------------------------------------------------------------------- 1 | .upload-btn[data-v-b69a133b]{padding-bottom:10px}.bottom[data-v-b69a133b]{margin-top:13px;line-height:12px}.button[data-v-b69a133b]{padding:0;float:right}.image[data-v-b69a133b]{width:100%;height:200px;display:block}.clearfix[data-v-b69a133b]:before,.clearfix[data-v-b69a133b]:after{display:table;content:""}.clearfix[data-v-b69a133b]:after{clear:both} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-97da3680.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-97da3680.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-9ac182ec.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-9ac182ec.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-9ccb55a3.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-9ccb55a3.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-afc7096c.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-afc7096c.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-b14e0801.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-b14e0801.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-c3db8593.css: -------------------------------------------------------------------------------- 1 | .upload-btn[data-v-4beee3cb]{padding-bottom:10px}.bottom[data-v-4beee3cb]{margin-top:13px;line-height:12px}.button[data-v-4beee3cb]{padding:0;float:right}.image[data-v-4beee3cb]{width:100%;height:200px;display:block}.clearfix[data-v-4beee3cb]:before,.clearfix[data-v-4beee3cb]:after{display:table;content:""}.clearfix[data-v-4beee3cb]:after{clear:both} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-d5b164e9.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/index-d5b164e9.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-dbdc2fb1.css: -------------------------------------------------------------------------------- 1 | .upload-btn[data-v-8954a3b7]{padding-bottom:10px}.bottom[data-v-8954a3b7]{margin-top:13px;line-height:12px}.button[data-v-8954a3b7]{padding:0;float:right}.image[data-v-8954a3b7]{width:100%;height:200px;display:block}.clearfix[data-v-8954a3b7]:before,.clearfix[data-v-8954a3b7]:after{display:table;content:""}.clearfix[data-v-8954a3b7]:after{clear:both} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-f9d3b266.css: -------------------------------------------------------------------------------- 1 | .upload-btn[data-v-b5959b93]{padding-bottom:10px}.bottom[data-v-b5959b93]{margin-top:13px;line-height:12px}.button[data-v-b5959b93]{padding:0;float:right}.image[data-v-b5959b93]{width:100%;height:200px;display:block}.clearfix[data-v-b5959b93]:before,.clearfix[data-v-b5959b93]:after{display:table;content:""}.clearfix[data-v-b5959b93]:after{clear:both} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/index-fe77a3a0.css: -------------------------------------------------------------------------------- 1 | .system-user-container .system-user-search[data-v-9db5dad7]{text-align:right}.system-user-container .system-user-photo[data-v-9db5dad7]{width:40px;height:40px;border-radius:100%} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/link-9877e399.css: -------------------------------------------------------------------------------- 1 | .layout-link-container .layout-link-warp[data-v-aed8fb0e]{margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center}.layout-link-container .layout-link-warp i.layout-link-icon[data-v-aed8fb0e]{position:relative;font-size:100px;color:var(--el-color-primary)}.layout-link-container .layout-link-warp i.layout-link-icon[data-v-aed8fb0e]:after{content:"";position:absolute;left:50px;top:0;width:15px;height:100px;background:linear-gradient(rgba(255,255,255,.01),rgba(255,255,255,.01),rgba(255,255,255,.01),rgba(255,255,255,.05),rgba(255,255,255,.05),rgba(255,255,255,.05),rgba(235,255,255,.5),rgba(255,255,255,.05),rgba(255,255,255,.05),rgba(255,255,255,.05),rgba(255,255,255,.01),rgba(255,255,255,.01),rgba(255,255,255,.01));transform:rotate(-15deg);animation:toRight 5s linear infinite}.layout-link-container .layout-link-warp .layout-link-msg[data-v-aed8fb0e]{font-size:12px;color:var(--next-bg-topBarColor);opacity:.7;margin-top:15px} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/list-1817b3d2.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/list-1817b3d2.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/mobile-787df557.css: -------------------------------------------------------------------------------- 1 | .login-content-form[data-v-f490d856]{margin-top:20px}.login-content-form .login-animation1[data-v-f490d856]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.1s}.login-content-form .login-animation2[data-v-f490d856]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.2s}.login-content-form .login-animation3[data-v-f490d856]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.3s}.login-content-form .login-animation4[data-v-f490d856]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.4s}.login-content-form .login-content-code[data-v-f490d856]{width:100%;padding:0}.login-content-form .login-content-submit[data-v-f490d856]{width:100%;letter-spacing:2px;font-weight:300;margin-top:15px}.login-content-form .login-msg[data-v-f490d856]{color:var(--el-text-color-placeholder)} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/nprogress-8b89e2e0.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/nprogress-8b89e2e0.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/restPassword-a182110f.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/restPassword-a182110f.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/scan-5151da96.css: -------------------------------------------------------------------------------- 1 | .login-scan-animation[data-v-cf0ca5fe],.login-scan-container .login-msg[data-v-cf0ca5fe],.login-scan-container[data-v-cf0ca5fe]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards}.login-scan-container[data-v-cf0ca5fe]{padding:0 20px 20px;display:flex;flex-direction:column;text-align:center;animation-delay:.1s}.login-scan-container[data-v-cf0ca5fe] img{margin:auto}.login-scan-container .login-msg[data-v-cf0ca5fe]{display:flex;align-items:center;justify-content:center;color:var(--el-text-color-placeholder);animation-delay:.2s} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/search-3d0dcce7.css: -------------------------------------------------------------------------------- 1 | .layout-search-dialog[data-v-cb78cee8]{position:relative}.layout-search-dialog[data-v-cb78cee8] .el-dialog .el-dialog__header,.layout-search-dialog[data-v-cb78cee8] .el-dialog .el-dialog__body{display:none}.layout-search-dialog[data-v-cb78cee8] .el-dialog .el-dialog__footer{width:100%;position:absolute;left:50%;transform:translate(-50%);top:-53vh}.layout-search-dialog[data-v-cb78cee8] .el-autocomplete{width:560px;position:absolute;top:150px;left:50%;transform:translate(-50%)} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/setings-68dae0aa.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/setings-68dae0aa.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/tagsView-c2b1a8e8.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/tagsView-c2b1a8e8.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/user-4af79e9e.css: -------------------------------------------------------------------------------- 1 | .layout-navbars-breadcrumb-user[data-v-901d8224]{display:flex;align-items:center;justify-content:flex-end}.layout-navbars-breadcrumb-user-link[data-v-901d8224]{height:100%;display:flex;align-items:center;white-space:nowrap}.layout-navbars-breadcrumb-user-link-photo[data-v-901d8224]{width:25px;height:25px;border-radius:100%}.layout-navbars-breadcrumb-user-icon[data-v-901d8224]{padding:0 10px;cursor:pointer;color:var(--next-bg-topBarColor);height:50px;line-height:50px;display:flex;align-items:center}.layout-navbars-breadcrumb-user-icon[data-v-901d8224]:hover{background:var(--next-color-user-hover)}.layout-navbars-breadcrumb-user-icon:hover i[data-v-901d8224]{display:inline-block;animation:logoAnimation .3s ease-in-out}.layout-navbars-breadcrumb-user[data-v-901d8224] .el-dropdown{color:var(--next-bg-topBarColor)}.layout-navbars-breadcrumb-user[data-v-901d8224] .el-badge{height:40px;line-height:40px;display:flex;align-items:center}.layout-navbars-breadcrumb-user[data-v-901d8224] .el-badge__content.is-fixed{top:12px} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/user-4af79e9e.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/user-4af79e9e.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/userNews-28d5db36.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/css/userNews-28d5db36.css.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/css/write-c8852887.css: -------------------------------------------------------------------------------- 1 | .ck-content{height:500px} 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/401-ef421633.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/401-ef421633.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/404-4f33d98b.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/404-4f33d98b.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@ckeditor-2ec0d23b.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@ckeditor-2ec0d23b.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@codemirror-441d1754.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@codemirror-441d1754.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@ctrl-f8748455.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@ctrl-f8748455.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@element-plus-64e6e14a.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@element-plus-64e6e14a.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@floating-ui-880a26aa.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@floating-ui-880a26aa.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@intlify-ea47d1db.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@intlify-ea47d1db.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@lezer-4c574b3a.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@lezer-4c574b3a.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@popperjs-c75af06c.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@popperjs-c75af06c.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@vue-6dabbe94.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@vue-6dabbe94.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/@vueuse-e129c873.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/@vueuse-e129c873.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/_plugin-vue_export-helper-c27b6911.js: -------------------------------------------------------------------------------- 1 | const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/account-f8263fb0.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/account-f8263fb0.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addCategory-e289cecd.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addCategory-e289cecd.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addCategory.vue_vue_type_script_setup_true_name_articleAddCategory_lang-9488a675.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addCategory.vue_vue_type_script_setup_true_name_articleAddCategory_lang-9488a675.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addMenu-c2490dfe.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addMenu-c2490dfe.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addMenu.vue_vue_type_script_name_templateAddMenu_setup_true_lang-ae7ce398.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addMenu.vue_vue_type_script_name_templateAddMenu_setup_true_lang-ae7ce398.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addPermission-abb23a8f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addPermission-abb23a8f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addPermission.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-e758e2d8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addPermission.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-e758e2d8.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addRole-e6fcc564.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addRole-e6fcc564.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addRole.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-d016d95e.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addRole.vue_vue_type_script_setup_true_name_systemAddRoleDialog_lang-d016d95e.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addTag-2d2c069e.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addTag-2d2c069e.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addTag.vue_vue_type_script_setup_true_name_articleAddTag_lang-deeb47d0.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addTag.vue_vue_type_script_setup_true_name_articleAddTag_lang-deeb47d0.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addUser-63d7b548.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addUser-63d7b548.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/addUser.vue_vue_type_script_setup_true_name_systemClientAddUser_lang-1cead932.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/addUser.vue_vue_type_script_setup_true_name_systemClientAddUser_lang-1cead932.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/aside-8d6dc62a.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/aside-8d6dc62a.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/async-validator-dee29e8b.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/async-validator-dee29e8b.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/axios-4a70c6fc.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/axios-4a70c6fc.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/breadcrumb-b7086d4f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/breadcrumb-b7086d4f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/call-bind-e5c1c8b0.js: -------------------------------------------------------------------------------- 1 | import{g as f}from"./get-intrinsic-bd2830fd.js";import{f as B}from"./function-bind-22e7ee79.js";var v={exports:{}};(function(a){var n=B,r=f,e=r("%Function.prototype.apply%"),p=r("%Function.prototype.call%"),l=r("%Reflect.apply%",!0)||n.call(p,e),o=r("%Object.getOwnPropertyDescriptor%",!0),t=r("%Object.defineProperty%",!0),g=r("%Math.max%");if(t)try{t({},"a",{value:1})}catch{t=null}a.exports=function(d){var i=l(n,p,arguments);if(o&&t){var x=o(i,"length");x.configurable&&t(i,"length",{value:1+g(0,d.length-(arguments.length-1))})}return i};var c=function(){return l(n,e,arguments)};t?t(a.exports,"apply",{value:c}):a.exports.apply=c})(v);var $=v.exports,s=f,y=$,h=y(s("String.prototype.indexOf")),b=function(n,r){var e=s(n,!!r);return typeof e=="function"&&h(n,".prototype.")>-1?y(e):e};export{b as c}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/category-63118f33.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/category-63118f33.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/ckeditor5-44f9511f.js: -------------------------------------------------------------------------------- 1 | import"./@ckeditor-2ec0d23b.js";import"./color-convert-d47c3cb3.js";import"./vanilla-colorful-3f59310b.js"; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/classic-538da508.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/classic-538da508.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/client-543519fc.js: -------------------------------------------------------------------------------- 1 | import{s as e}from"./index-b6a6dad6.js";function n(){return{getAttachList(t){return e({url:"/client/attachment/list",method:"get",params:t})},addAttach(t){return e({url:"/client/attachment/upload",method:"post",data:t})},getAttach(t){return e({url:"/client/attachment/get/"+t,method:"get"})},updateAttach(t,a){return e({url:"/client/attachment/update/"+t,method:"post",params:a})},delAttach(t){return e({url:"/client/attachment/delete/"+t,method:"post"})}}}export{n as C}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/client-653e5c94.js: -------------------------------------------------------------------------------- 1 | import{s as e}from"./index-b6a6dad6.js";function l(){return{getArticleList:t=>e({url:"/client/article/list",method:"get",params:t}),addArticle:t=>e({url:"/client/article/save",method:"post",data:t,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),getArticle:t=>e({url:"/client/article/get/"+t,method:"get"}),delArticle:t=>e({url:"/client/article/delete/"+t,method:"post"}),getArticleCommentList:t=>e({url:"/client/article/comment/user/list",method:"get",params:t}),getArticleCategoryList:()=>e({url:"/client/article/category/list",method:"get"}),getArticleTagList:()=>e({url:"/client/article/tag/list",method:"get"})}}export{l as C}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/client-821c7c97.js: -------------------------------------------------------------------------------- 1 | import{s as e}from"./index-b6a6dad6.js";function u(){return{getOrderList(t){return e({url:"/client/order/list",method:"get",params:t})},getOrderDetail(t){return e({url:"/client/order/detail/"+t,method:"get"})},paymentOrder(t){return e({url:"/client/pay/wxPay/NATIVE/getQrPay?orderId="+t,method:"get"})},checkOrderPayStatus(t){return e({url:"/client/order/status/check/"+t,method:"get"})},getUserAmount(){return e({url:"/client/user/amount/get",method:"get"})},cashoutAmount(t){return e({url:"/client/user/amount/cashout?amount="+t,method:"post"})},getUserCashoutList(){return e({url:"/client/user/amount/cashout/list",method:"get"})},getUserIncomeList(){return e({url:"/client/user/amount/income/list",method:"get"})}}}export{u as C}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/client-dee5d31d.js: -------------------------------------------------------------------------------- 1 | import{s as e}from"./index-b6a6dad6.js";function s(){return{updateUser(r){return e({url:"/client/user/save",method:"post",data:r})},getUserInfo(){return e({url:"/client/user/get",method:"get"})}}}export{s as C}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/clipboard-f76b1721.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/clipboard-f76b1721.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/closeFull-22a23f3c.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/closeFull-22a23f3c.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/codemirror-d1ad9523.js: -------------------------------------------------------------------------------- 1 | import{l as a,h as e,a as s,b as t,f as i,d as l,c as o,E as r,i as h,s as c,e as n,g as p,j as g,k as u,r as m,m as y,n as d,o as f,p as S,q as K,t as b,u as k,v,w,x,y as C}from"./@codemirror-441d1754.js";const A=(()=>[a(),e(),s(),t(),i(),l(),o(),r.allowMultipleSelections.of(!0),h(),c(n,{fallback:!0}),p(),g(),u(),m(),y(),d(),f(),S.of([...K,...b,...k,...v,...w,...x,...C])])();export{A as b}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/color-convert-d47c3cb3.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/color-convert-d47c3cb3.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/color-name-b7949e8c.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/color-name-b7949e8c.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/color-parse-4ed993c7.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/columns-17692f48.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/columns-17692f48.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/columnsAside-ebf35213.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/columnsAside-ebf35213.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/comment-1c98926e.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/comment-1c98926e.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/comment-99b74426.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/comment-99b74426.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/connection-2d5d31cc.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/connection-2d5d31cc.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/contextmenu-8172d942.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/contextmenu-8172d942.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/countup.js-350bca8d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/countup.js-350bca8d.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/crelt-7bb88e1d.js: -------------------------------------------------------------------------------- 1 | function s(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var o=t[n];typeof o=="string"?r.setAttribute(n,o):o!=null&&(r[n]=o)}e++}for(;e]/,i=l;function l(n){var a=""+n,c=o.exec(a);if(!c)return a;var t,s="",e=0,r=0;for(e=c.index;e(l("data-v-c3972a85"),a=a(),u(),a),h={class:"big-data-up mb15"},v={class:"up-left"},x=n(()=>e("i",{class:"el-icon-time mr5"},null,-1)),Q=n(()=>e("div",{class:"up-center"},[e("span",null,"智慧农业系统平台")],-1)),S=o({name:"chartHead"}),Y=o({...S,setup(a){const t=_({time:{txt:"",fun:0}}),c=()=>{t.time.txt=s(new Date,"YYYY-mm-dd HH:MM:SS WWW QQQQ"),t.time.fun=window.setInterval(()=>{t.time.txt=s(new Date,"YYYY-mm-dd HH:MM:SS WWW QQQQ")},1e3)};return i(()=>{c()}),d(()=>{window.clearInterval(t.time.fun)}),(w,H)=>(m(),p("div",h,[e("div",v,[x,e("span",null,r(t.time.txt),1)]),Q]))}});const b=f(Y,[["__scopeId","data-v-c3972a85"]]);export{b as default}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/header-a82ca7d5.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/header-a82ca7d5.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/horizontal-b4b6bde8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/horizontal-b4b6bde8.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/iframes-19f65e8f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/iframes-19f65e8f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-01d442e7.js: -------------------------------------------------------------------------------- 1 | import{_ as e}from"./_plugin-vue_export-helper-c27b6911.js";import{o,c as t}from"./@vue-6dabbe94.js";const n={name:"centerHome"};function r(c,s,a,p,_,m){return o(),t("div",null,"优惠券")}const d=e(n,[["render",r]]);export{d as default}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-01fd6795.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-01fd6795.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-06d7a7c6.js: -------------------------------------------------------------------------------- 1 | import{_ as e}from"./_plugin-vue_export-helper-c27b6911.js";import{o,c as t}from"./@vue-6dabbe94.js";const n={name:"centerHome"};function r(c,s,a,p,_,m){return o(),t("div",null,"基本信息")}const d=e(n,[["render",r]]);export{d as default}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-07dd0f9f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-07dd0f9f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-18341101.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-18341101.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-1e8a27fb.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-1e8a27fb.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-259d7d9f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-259d7d9f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-26acdabe.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-26acdabe.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-2c17b778.js: -------------------------------------------------------------------------------- 1 | import{s as t}from"./index-b6a6dad6.js";function n(){return{getDeptList(e){return t({url:"/admin/department/list",method:"get",params:e})},saveDept(e){return t({url:"/admin/department/save",method:"post",params:e})},getDept(e){return t({url:"/admin/department/get/"+e,method:"get"})},delDept(e){return t({url:"/admin/department/delete/"+e,method:"post"})}}}export{n as D}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-32e23661.js: -------------------------------------------------------------------------------- 1 | import{s as r}from"./index-b6a6dad6.js";function s(){return{getUserList(e){return r({url:"/admin/user/list",method:"get",params:e})},saveUser(e){return r({url:"/admin/user/save",method:"post",data:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}})},delUser(e){return r({url:"/admin/user/delete/"+e,method:"post"})},getUserInfo(e){return r({url:"/admin/user/"+e+"/get",method:"get"})},getTagList(){return r({url:"/admin/user/tag/list",method:"get"})},updatePassword(e){return r({url:"/admin/user/password/update",method:"post",data:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}})},resetPassword(e){return r({url:"/admin/user/reset/password?userId="+e,method:"post"})},changeUserType(e){return r({url:"/admin/user/changUserType",method:"post",data:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}})}}}export{s as U}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-38fb5840.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-38fb5840.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-3ae2df94.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-3ae2df94.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-3db6347a.js: -------------------------------------------------------------------------------- 1 | import{s as r}from"./index-b6a6dad6.js";function o(){return{getOrderList(e){return r({url:"/admin/order/list",method:"get",params:e})},getOrderDetail(e){return r({url:"/admin/order/detail/"+e,method:"get"})},delOrder(e){return r({url:"/admin/order/delete/"+e,method:"post"})},getPaymentList(e){return r({url:"/admin/order/payment/list",method:"get",params:e})},getPaymentDetail(e){return r({url:"/admin/order/payment/detail/"+e,method:"get"})},getCashoutList(e){return r({url:"/admin/order/cashout/list",method:"get",params:e})},getCashoutDetail(e){return r({url:"/admin/order/cashout/detail/"+e,method:"get"})},confirmCashOut(e){return r({url:"/admin/order/cashout/confirm/"+e,method:"post"})},refuseCashOut(e,t){return r({url:"/admin/order/cashout/refuse/"+e,method:"post",data:t,headers:{"Content-Type":"application/x-www-form-urlencoded"}})}}}export{o as O}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-3ecb6061.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-3ecb6061.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-4a2d60e6.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-4a2d60e6.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-4abb33ee.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-4abb33ee.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-4cda15b2.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-4cda15b2.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-4ff0289a.js: -------------------------------------------------------------------------------- 1 | import{s as e}from"./index-b6a6dad6.js";function d(){return{getAttachList(t){return e({url:"/admin/attachment/list",method:"get",params:t})},addAttach(t){return e({url:"/admin/attachment/upload",method:"post",data:t})},getAttach(t){return e({url:"/admin/attachment/get/"+t,method:"get"})},updateAttach(t,a){return e({url:"/admin/attachment/update/"+t,method:"post",params:a})},delAttach(t){return e({url:"/admin/attachment/delete/"+t,method:"post"})}}}export{d as A}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-507b5be5.js: -------------------------------------------------------------------------------- 1 | import{_ as e}from"./_plugin-vue_export-helper-c27b6911.js";import{o,c as t}from"./@vue-6dabbe94.js";const n={name:"centerHome"};function r(c,s,a,p,_,m){return o(),t("div",null,"我的收藏")}const d=e(n,[["render",r]]);export{d as default}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-551fcffd.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-551fcffd.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-56284f86.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-56284f86.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-5ffad0c2.js: -------------------------------------------------------------------------------- 1 | import{s as r}from"./index-b6a6dad6.js";function s(){return{getRoleList(e){return r({url:"/admin/role/list",method:"get",params:e})},saveRole(e){return r({url:"/admin/role/save",method:"post",params:e})},delRole(e){return r({url:"/admin/role/delete/"+e,method:"post"})},saveRolePermissions(e,t){return r({url:"/admin/role/"+e+"/permissions/save",method:"post",data:t,headers:{"Content-Type":"application/x-www-form-urlencoded"}})},getRolePermissions(e){return r({url:"/admin/role/"+e+"/permissions",method:"get"})},getRoleSelectList(){return r({url:"/admin/role/list/select",method:"get"})}}}export{s as R}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-644f10c8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-644f10c8.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-6848c6cd.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-6848c6cd.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-6bc6ba8d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-6bc6ba8d.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-77f79f58.js: -------------------------------------------------------------------------------- 1 | import{s as t}from"./index-b6a6dad6.js";function m(){return{getPageList(e){return t({url:"/admin/page/list",method:"get",params:e})},addPage(e){return t({url:"/admin/page/save",method:"post",data:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}})},getPage(e){return t({url:"/admin/page/get/"+e,method:"get"})},updatePage(e,a){return t({url:"/admin/page/update/"+e,method:"post",params:a})},delPage(e){return t({url:"/admin/page/delete/"+e,method:"post"})},getPageCommentList(e){return t({url:"/admin/page/comment/list",method:"get",params:e})},updatePageComment(e){return t({url:"/admin/page/comment/save",method:"post",params:e})},delPageComment(e){return t({url:"/admin/page/comment/delete/"+e,method:"post"})}}}export{m as P}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-7b6274c9.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-7b6274c9.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-84cfb040.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-84cfb040.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-8767998d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-8767998d.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-98128703.js: -------------------------------------------------------------------------------- 1 | import{s as t}from"./index-b6a6dad6.js";function n(){return{signIn:e=>t({url:"/admin/login",method:"post",data:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),signOut:e=>t({url:"/admin/logout",method:"post",data:e}),getCaptcha:()=>t({url:"/admin/captcha",method:"get"}),register:e=>t({url:"/admin/register",method:"post",data:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),resetPassword:e=>t({url:"/admin/reset/password",method:"post",data:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),getLoginQrcode:()=>t({baseURL:"fastcms/plugin",url:"/wechat/mp/scan/qrcode/login/getLoginQrcode",method:"get",headers:{"Content-Type":"application/json"}}),getLoginUser:e=>t({baseURL:"fastcms/plugin",url:"/wechat/mp/scan/qrcode/login/getLoginUser?sceneId="+e,method:"get"})}}export{n as L}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-9e8c3ce6.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-9e8c3ce6.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-a1b9220f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-a1b9220f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-a448a0cb.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-a448a0cb.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-a5a46b42.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-a5a46b42.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-a6928517.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-a6928517.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-adaaa482.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-adaaa482.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-b6a6dad6.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-b6a6dad6.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-bb755604.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-bb755604.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-bbb3c9be.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-bbb3c9be.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-bc7046ae.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-bc7046ae.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-c27e2040.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-c27e2040.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-cc181d37.js: -------------------------------------------------------------------------------- 1 | import{s as e}from"./index-b6a6dad6.js";function o(){return{saveConfig(t){return e({url:"/admin/config/save",headers:{"Content-Type":"application/x-www-form-urlencoded"},data:t,method:"post"})},getConfigList(t){return e({url:"/admin/config/list",headers:{"Content-Type":"application/x-www-form-urlencoded"},data:t,method:"post"})},getPublicConfigList(t){return e({url:"/admin/config/public/list",headers:{"Content-Type":"application/x-www-form-urlencoded"},data:t,method:"post"})},testMailConfig(){return e({url:"/admin/config/mail/test",method:"get"})}}}export{o as C}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-d4beaec2.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-d4beaec2.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-d77217f1.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-d77217f1.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-d800691e.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-d800691e.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-d8263a38.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-d8263a38.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-d9736f4c.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-d9736f4c.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-ed4597cb.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-ed4597cb.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-f1402358.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-f1402358.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index-fe9b975d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index-fe9b975d.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index.vue_vue_type_script_setup_true_name_iconSelector_lang-e43c427f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index.vue_vue_type_script_setup_true_name_iconSelector_lang-e43c427f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/index.vue_vue_type_style_index_0_lang-ea94e5c8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/index.vue_vue_type_style_index_0_lang-ea94e5c8.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/js-cookie-edb2da2a.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/js-cookie-edb2da2a.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/link-909964d8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/link-909964d8.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/list-b3cd7293.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/list-b3cd7293.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/lodash-es-9851428c.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/lodash-es-9851428c.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/lodash-unified-4ed993c7.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/main-035f5a6a.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/main-035f5a6a.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/memoize-one-297ddbcb.js: -------------------------------------------------------------------------------- 1 | var s=Number.isNaN||function(r){return typeof r=="number"&&r!==r};function f(e,r){return!!(e===r||s(e)&&s(r))}function i(e,r){if(e.length!==r.length)return!1;for(var t=0;t>>0,1):t.set(e,[]))},emit:function(e,c){var i=t.get(e);i&&i.slice().map(function(f){f(c)}),(i=t.get("*"))&&i.slice().map(function(f){f(e,c)})}}}export{n as m}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/mobile-2a341d65.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/mobile-2a341d65.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/normalize-wheel-es-ed76fb12.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/normalize-wheel-es-ed76fb12.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/nprogress-08a53ce8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/nprogress-08a53ce8.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/object-inspect-8fd4bade.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/object-inspect-8fd4bade.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/parent-eb8a81a4.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/parent-eb8a81a4.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/pinia-b6f74250.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/pinia-b6f74250.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/qrcodejs2-fixes-aebf80af.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/qrcodejs2-fixes-aebf80af.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/qs-c5b6dbf2.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/qs-c5b6dbf2.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/restPassword-aed97966.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/restPassword-aed97966.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/scan-9b735f57.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/scan-9b735f57.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/screenfull-b3e6dc1f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/screenfull-b3e6dc1f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/search-d4aa00a0.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/search-d4aa00a0.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/set-11312598.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/set-11312598.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/set-2a314975.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/set-2a314975.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/set-6ec4eb9e.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/set-6ec4eb9e.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/set-7db74eeb.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/set-7db74eeb.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/set-a2470909.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/set-a2470909.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/setings-df868552.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/setings-df868552.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/side-channel-394f276c.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/side-channel-394f276c.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/sortablejs-9c3c89c5.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/sortablejs-9c3c89c5.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/source-map-7d7e1c08.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/source-map-7d7e1c08.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/style-mod-ae491175.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/style-mod-ae491175.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/subItem-48b51e27.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/subItem-48b51e27.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/system-5c80805d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/system-5c80805d.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/tag-9f46071e.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/tag-9f46071e.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/tagsView-cb664ecc.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/tagsView-cb664ecc.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/transverse-28750fa9.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/transverse-28750fa9.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/tslib-54e39b60.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/tslib-54e39b60.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/user-fbb9b30f.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/user-fbb9b30f.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/userNews-735edb12.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/userNews-735edb12.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vanilla-colorful-3f59310b.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/vanilla-colorful-3f59310b.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vertical-2a16a192.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/vertical-2a16a192.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vue-b1ba6f14.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/vue-b1ba6f14.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vue-clipboard3-87db4edd.js: -------------------------------------------------------------------------------- 1 | import{C as a}from"./clipboard-f76b1721.js";const l=o=>{const r=(o==null?void 0:o.appendToBody)===void 0?!0:o.appendToBody;return{toClipboard(c,t){return new Promise((i,u)=>{const e=document.createElement("button"),d=new a(e,{text:()=>c,action:()=>"copy",container:t!==void 0?t:document.body});d.on("success",n=>{d.destroy(),i(n)}),d.on("error",n=>{d.destroy(),u(n)}),r&&document.body.appendChild(e),e.click(),r&&document.body.removeChild(e)})}}};export{l as u}; 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vue-codemirror-037263c5.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/vue-codemirror-037263c5.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vue-demi-4ed993c7.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vue-grid-layout-ec2a62c3.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/vue-grid-layout-ec2a62c3.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vue-i18n-b3581196.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/vue-i18n-b3581196.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/vue-router-c1461dfc.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/vue-router-c1461dfc.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/w3c-keyname-aa008802.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/w3c-keyname-aa008802.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/website-3501c8b6.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/website-3501c8b6.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/wechat-66964e80.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/wechat-66964e80.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/write-9eb24326.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/write-9eb24326.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/write-dc76555d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/write-dc76555d.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/write-f002028d.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/write-f002028d.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/assets/js/zrender-121a9896.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/assets/js/zrender-121a9896.js.gz -------------------------------------------------------------------------------- /web/src/main/resources/static/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/default.jpg -------------------------------------------------------------------------------- /web/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /web/src/main/resources/static/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/header.jpg -------------------------------------------------------------------------------- /web/src/main/resources/static/logo-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/my-fastcms/fastcms/babe636e221b55b95772c3ed9b72dcaad2aee409/web/src/main/resources/static/logo-mini.png -------------------------------------------------------------------------------- /web/src/main/resources/templates/_footer.html: -------------------------------------------------------------------------------- 1 |
2 |

© 2020-至今 小橘灯

3 |
-------------------------------------------------------------------------------- /web/src/main/resources/templates/_page.html: -------------------------------------------------------------------------------- 1 | <#macro page> 2 | 3 | <@adminPageTag> 4 | 5 | <#if data??> 6 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /web/src/main/resources/urlrewrite.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | ^/p/(\w+)\.html$ 10 | /p/$1/ 11 | 12 | 13 | 14 | 15 | ^/a/c/(\w+)\.html 16 | /a/c/$1 17 | 18 | 19 | 20 | 21 | ^/a/(\w+)\.html$ 22 | /a/$1/ 23 | 24 | 25 | 26 | 32 | 33 | -------------------------------------------------------------------------------- /web/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: fastcms 4 | profiles: 5 | active: dev 6 | cache: 7 | type: ehcache 8 | freemarker: 9 | checkTemplateLocation: false 10 | 11 | 12 | datasource: 13 | driver-class-name: com.mysql.cj.jdbc.Driver 14 | url: jdbc:mysql://localhost:3306/fastcms?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai 15 | username: root 16 | password: 123456 17 | 18 | mybatis-plus: 19 | global-config: 20 | banner: false 21 | mapper-locations: classpath*:/mapper/*Mapper.xml 22 | 23 | plugin: 24 | path: ../plugins 25 | 26 | fastcms: 27 | auth: 28 | token: 29 | expire: 30 | seconds: 18000 31 | secret-key: SecretKey012345678901234567890123456789012345678901234567890123456789 32 | 33 | 34 | 35 | 36 | --------------------------------------------------------------------------------