├── .editorconfig ├── .gitignore ├── .php_cs ├── Attribution.txt ├── app ├── Api │ ├── Controller │ │ ├── AdminActionLog │ │ │ └── ListAdminActionLogsController.php │ │ ├── AdminV3 │ │ │ ├── ManagePostList.php │ │ │ ├── ManageSubmitReview.php │ │ │ └── ManageThemeList.php │ │ ├── Analysis │ │ │ ├── ResourceAnalysisGoodsController.php │ │ │ └── ResourceGoodsController.php │ │ ├── AnalysisV3 │ │ │ └── ResourceAnalysisGoodsController.php │ │ ├── Attachment │ │ │ ├── CreateAttachmentController.php │ │ │ ├── DeleteAttachmentController.php │ │ │ └── ResourceAttachmentController.php │ │ ├── AttachmentV3 │ │ │ ├── AttachmentTrait.php │ │ │ ├── CoskeyAttachmentController.php │ │ │ ├── CreateAttachmentController.php │ │ │ ├── DownloadAttachmentController.php │ │ │ ├── RelationAttachmentController.php │ │ │ ├── ResourceAttachmentController.php │ │ │ └── ShareAttachmentController.php │ │ ├── Cache │ │ │ └── CacheController.php │ │ ├── CacheV3 │ │ │ └── DeleteCacheController.php │ │ ├── Category │ │ │ ├── BatchCreateCategoriesController.php │ │ │ ├── BatchDeleteCategoriesController.php │ │ │ ├── BatchUpdateCategoriesController.php │ │ │ ├── CreateCategoryController.php │ │ │ ├── DeleteCategoryController.php │ │ │ ├── ListCategoriesController.php │ │ │ ├── ListCategoriesV2Controller.php │ │ │ └── UpdateCategoryController.php │ │ ├── CategoryV3 │ │ │ ├── AdminListCategoriesController.php │ │ │ ├── BatchDeleteCategoriesController.php │ │ │ ├── BatchUpdateCategoriesController.php │ │ │ ├── CreateCategoriesController.php │ │ │ ├── ListCategoriesController.php │ │ │ └── ListCategoriesThreadController.php │ │ ├── CheckController.php │ │ ├── CheckQcloudController.php │ │ ├── CheckQcloudV3Controller.php │ │ ├── Crawler │ │ │ ├── CheckCrawlerProcessController.php │ │ │ ├── CrawlerTrait.php │ │ │ └── CreateCrawlerDataController.php │ │ ├── Dialog │ │ │ ├── BatchCreateDialogController.php │ │ │ ├── CreateDialogController.php │ │ │ ├── CreateDialogMessageController.php │ │ │ ├── DeleteDialogController.php │ │ │ ├── ListDialogController.php │ │ │ └── ListDialogMessageController.php │ │ ├── DialogV3 │ │ │ ├── CreateDialogMessageV2Controller.php │ │ │ ├── CreateDialogV2Controller.php │ │ │ ├── DeleteDialogV2Controller.php │ │ │ ├── DialogRecordController.php │ │ │ ├── ListDialogMessageV2Controller.php │ │ │ ├── ListDialogV2Controller.php │ │ │ └── UpdateUnreadStatusController.php │ │ ├── Emoji │ │ │ ├── AutoloadEmojiController.php │ │ │ └── ListEmojiController.php │ │ ├── EmojiV3 │ │ │ ├── ListAdminEmojiController.php │ │ │ └── ListEmojiController.php │ │ ├── Group │ │ │ ├── CreateGroupController.php │ │ │ ├── DeleteGroupController.php │ │ │ ├── DeleteGroupsController.php │ │ │ ├── ListGroupsController.php │ │ │ ├── ListPaidUserGroupsController.php │ │ │ ├── ResourceGroupsController.php │ │ │ ├── UpdateGroupController.php │ │ │ ├── UpdateGroupsController.php │ │ │ └── UploadIconController.php │ │ ├── GroupV3 │ │ │ ├── BatchDeleteGroupsController.php │ │ │ ├── BatchUpdateGroupController.php │ │ │ ├── CreateGroupController.php │ │ │ ├── GroupPermissionListController.php │ │ │ ├── ListGroupsController.php │ │ │ ├── ResourceGroupsController.php │ │ │ └── TomPermissionsController.php │ │ ├── Invite │ │ │ ├── CreateAdminInviteController.php │ │ │ ├── DeleteInviteController.php │ │ │ ├── ListInviteController.php │ │ │ ├── ListInviteUsersController.php │ │ │ ├── ResourceInviteController.php │ │ │ └── UserInviteCodeController.php │ │ ├── InviteV3 │ │ │ ├── CreateInviteLinkAdminController.php │ │ │ ├── CreateInviteLinkController.php │ │ │ └── InviteUsersListController.php │ │ ├── Mobile │ │ │ ├── BindWchatMiniprogramMobileController.php │ │ │ ├── SendController.php │ │ │ └── VerifyController.php │ │ ├── Notification │ │ │ ├── DeleteNotificationController.php │ │ │ ├── ListNotificationController.php │ │ │ ├── ListNotificationTplController.php │ │ │ ├── ResourceNotificationController.php │ │ │ ├── ResourceNotificationTplController.php │ │ │ └── UpdateNotificationTplController.php │ │ ├── NotificationV3 │ │ │ ├── DeleteNotificationV2Controller.php │ │ │ ├── ListNotificationTplV2Controller.php │ │ │ ├── ListNotificationTplV3Controller.php │ │ │ ├── ListNotificationV2Controller.php │ │ │ ├── NotificationTrait.php │ │ │ ├── ResourceNotificationTplV2Controller.php │ │ │ ├── ResourceNotificationTplV3Controller.php │ │ │ ├── UnreadNotificationController.php │ │ │ ├── UpdateNotificationTplV2Controller.php │ │ │ └── UpdateNotificationTplV3Controller.php │ │ ├── Oauth2 │ │ │ ├── AccessTokenController.php │ │ │ └── RefreshTokenController.php │ │ ├── Oauth2V3 │ │ │ └── RefreshTokenController.php │ │ ├── Order │ │ │ ├── CreateOrderController.php │ │ │ ├── ListOrdersController.php │ │ │ └── ResourceOrderController.php │ │ ├── OrderV3 │ │ │ ├── CreateOrderController.php │ │ │ ├── ResourceOrderController.php │ │ │ └── UsersOrderLogsListController.php │ │ ├── Permission │ │ │ ├── SetPermissionController.php │ │ │ └── UpdateGroupPermissionController.php │ │ ├── PermissionV3 │ │ │ └── UpdateGroupPermissionController.php │ │ ├── Posts │ │ │ ├── BatchDeletePostsController.php │ │ │ ├── BatchUpdatePostsController.php │ │ │ ├── CreatePostController.php │ │ │ ├── CreatePostRewardController.php │ │ │ ├── CreatePostV2Controller.php │ │ │ ├── DeletePostController.php │ │ │ ├── ListLikesController.php │ │ │ ├── ListPostsController.php │ │ │ ├── ListPostsV2Controller.php │ │ │ ├── ResourcePostController.php │ │ │ ├── UpdatePostController.php │ │ │ └── UpdatePostV2Controller.php │ │ ├── PostsV3 │ │ │ ├── CreatePostController.php │ │ │ ├── CreatePostRewardController.php │ │ │ ├── ListPostsController.php │ │ │ ├── PositionPostsController.php │ │ │ ├── ResourcePostController.php │ │ │ ├── ResourcePostReplyController.php │ │ │ └── UpdatePostController.php │ │ ├── Qcloud │ │ │ └── CreateVodUploadSignatureController.php │ │ ├── QcloudV3 │ │ │ └── CreateVodUploadSignatureController.php │ │ ├── Question │ │ │ └── CreateQuestionAnswerController.php │ │ ├── Random │ │ │ ├── ListRandomTopicsController.php │ │ │ └── ListRandomUsersController.php │ │ ├── Recommend │ │ │ ├── RecommendedTopicListController.php │ │ │ └── RecommendedUserListController.php │ │ ├── RedPacket │ │ │ └── ResourceRedPacketController.php │ │ ├── RedPacketV3 │ │ │ └── ResourceRedPacketController.php │ │ ├── Report │ │ │ ├── BatchDeleteReportsController.php │ │ │ ├── BatchUpdateReportsController.php │ │ │ ├── CreateReportsController.php │ │ │ └── ListReportsController.php │ │ ├── ReportV3 │ │ │ ├── BatchDeleteReportsController.php │ │ │ ├── BatchUpdateReportsController.php │ │ │ ├── CreateReportsController.php │ │ │ └── ListReportsController.php │ │ ├── Settings │ │ │ ├── DeleteLogoController.php │ │ │ ├── ForumSettingsController.php │ │ │ ├── ForumSettingsV2Controller.php │ │ │ ├── ListSequenceController.php │ │ │ ├── ListSettingsController.php │ │ │ ├── SetSettingsController.php │ │ │ ├── UpdateSequenceController.php │ │ │ └── UploadLogoController.php │ │ ├── SettingsV3 │ │ │ ├── CosTrait.php │ │ │ ├── DeleteLogoController.php │ │ │ ├── ForumSettingsController.php │ │ │ ├── ListSequenceController.php │ │ │ ├── ListSettingsController.php │ │ │ ├── OpenApiLogController.php │ │ │ ├── OpenViewCountController.php │ │ │ ├── SetSettingsController.php │ │ │ ├── UpdateSequenceController.php │ │ │ └── UploadLogoController.php │ │ ├── SignInFields │ │ │ ├── CreateAdminSignInController.php │ │ │ ├── CreateUserSignInController.php │ │ │ ├── ListAdminSignInController.php │ │ │ ├── ListUserSignInController.php │ │ │ ├── ResourceUserSignInController.php │ │ │ └── UpdateUserSignInController.php │ │ ├── SignInFieldsV3 │ │ │ ├── CreateAdminSignInController.php │ │ │ ├── CreateUserSignInController.php │ │ │ ├── ListAdminSignInController.php │ │ │ ├── ListUserSignInController.php │ │ │ └── ResourceUserSignInController.php │ │ ├── SiteInfoController.php │ │ ├── SiteInfoV3Controller.php │ │ ├── Statistic │ │ │ ├── FinanceChartController.php │ │ │ ├── FinanceProfileController.php │ │ │ ├── FirstChartController.php │ │ │ └── MiniProgramStatController.php │ │ ├── StatisticV3 │ │ │ ├── FinanceChartController.php │ │ │ ├── FinanceProfileController.php │ │ │ └── FirstChartController.php │ │ ├── StopWords │ │ │ ├── BatchCreateStopWordsController.php │ │ │ ├── CreateStopWordController.php │ │ │ ├── DeleteStopWordController.php │ │ │ ├── ExportStopWordsController.php │ │ │ ├── ListStopWordsController.php │ │ │ ├── ResourceStopWordController.php │ │ │ └── UpdateStopWordController.php │ │ ├── StopWordsV3 │ │ │ ├── BatchCreateStopWordsController.php │ │ │ ├── DeleteStopWordController.php │ │ │ ├── ExportStopWordsController.php │ │ │ └── ListStopWordsController.php │ │ ├── SwitchSkin │ │ │ └── SwitchSkinController.php │ │ ├── System │ │ │ ├── CallCommandController.php │ │ │ └── MonitorSystemTaskController.php │ │ ├── TestController.php │ │ ├── Threads │ │ │ ├── BatchDeleteThreadsController.php │ │ │ ├── BatchUpdateThreadsController.php │ │ │ ├── CreateThreadController.php │ │ │ ├── CreateThreadV2Controller.php │ │ │ ├── CreateThreadVideoController.php │ │ │ ├── DeleteThreadController.php │ │ │ ├── ListDraftThreadController.php │ │ │ ├── ListFavoritesController.php │ │ │ ├── ListLikesController.php │ │ │ ├── ListPaidThreadsController.php │ │ │ ├── ListRecommendedThreadsController.php │ │ │ ├── ListStickThreadsV2Controller.php │ │ │ ├── ListThreadsController.php │ │ │ ├── ListThreadsV2Controller.php │ │ │ ├── Notify │ │ │ │ └── ThreadVideoNotifyController.php │ │ │ ├── RelateThreadsController.php │ │ │ ├── ResourceThreadController.php │ │ │ ├── ResourceThreadV2Controller.php │ │ │ ├── ShareThreadController.php │ │ │ ├── UpdateThreadController.php │ │ │ └── UpdateThreadV2Controller.php │ │ ├── ThreadsV3 │ │ │ ├── AuditListController.php │ │ │ ├── AuditProcessorController.php │ │ │ ├── BatchThreadsController.php │ │ │ ├── CheckUserGetRedpacketController.php │ │ │ ├── CreateThreadController.php │ │ │ ├── CreateThreadVideoController.php │ │ │ ├── DeleteThreadController.php │ │ │ ├── DeleteTomController.php │ │ │ ├── ListFavoritesController.php │ │ │ ├── OperateThreadController.php │ │ │ ├── SelectTomController.php │ │ │ ├── TestController.php │ │ │ ├── ThreadCommendController.php │ │ │ ├── ThreadDetailController.php │ │ │ ├── ThreadHelper.php │ │ │ ├── ThreadLikedUsersController.php │ │ │ ├── ThreadListController.php │ │ │ ├── ThreadListTrait.php │ │ │ ├── ThreadQueryTrait.php │ │ │ ├── ThreadShareController.php │ │ │ ├── ThreadStickController.php │ │ │ ├── ThreadTrait.php │ │ │ ├── UpdateThreadController.php │ │ │ ├── UpdateTomController.php │ │ │ ├── ViewCountController.php │ │ │ └── VoteThreadController.php │ │ ├── Topic │ │ │ ├── BatchDeleteTopicController.php │ │ │ ├── BatchUpdateTopicController.php │ │ │ ├── DeleteTopicController.php │ │ │ ├── ListTopicController.php │ │ │ ├── ResourceTopicController.php │ │ │ └── UpdateTopicController.php │ │ ├── TopicV3 │ │ │ ├── AdminTopicListController.php │ │ │ ├── BatchDeleteTopicController.php │ │ │ ├── BatchUpdateTopicController.php │ │ │ └── TopicListController.php │ │ ├── Trade │ │ │ ├── Notify │ │ │ │ ├── WalletNotifyController.php │ │ │ │ └── WechatNotifyController.php │ │ │ └── PayOrderController.php │ │ ├── TradeV3 │ │ │ ├── Notify │ │ │ │ ├── WalletNotifyController.php │ │ │ │ └── WechatNotifyController.php │ │ │ └── PayOrderController.php │ │ ├── Ucenter │ │ │ ├── LoginController.php │ │ │ └── UcenterController.php │ │ ├── Users │ │ │ ├── AbstractQQLoginController.php │ │ │ ├── AbstractWechatLoginController.php │ │ │ ├── AbstractWechatQyLoginController.php │ │ │ ├── AbstractWechatQyUserController.php │ │ │ ├── AbstractWechatUserController.php │ │ │ ├── CreateDenyUserController.php │ │ │ ├── CreateUserController.php │ │ │ ├── CreateUserFollowController.php │ │ │ ├── DeleteAvatarController.php │ │ │ ├── DeleteDenyUserController.php │ │ │ ├── DeleteUserController.php │ │ │ ├── DeleteUserFollowByTypeController.php │ │ │ ├── DeleteUserFollowController.php │ │ │ ├── DeleteUsersController.php │ │ │ ├── ExportUserController.php │ │ │ ├── ListDenyUserController.php │ │ │ ├── ListUserFollowController.php │ │ │ ├── ListUsersController.php │ │ │ ├── LoginController.php │ │ │ ├── ProfileController.php │ │ │ ├── ProfileV2Controller.php │ │ │ ├── QQLoginController.php │ │ │ ├── QQUserController.php │ │ │ ├── RealUserController.php │ │ │ ├── RecommendedUserController.php │ │ │ ├── RegisterController.php │ │ │ ├── ResetPayPasswordController.php │ │ │ ├── UnbindWechatController.php │ │ │ ├── UpdateUserController.php │ │ │ ├── UpdateUsersController.php │ │ │ ├── UploadAvatarController.php │ │ │ ├── WechatLoginController.php │ │ │ ├── WechatMiniProgramLoginController.php │ │ │ ├── WechatPcBindController.php │ │ │ ├── WechatPcBindPollController.php │ │ │ ├── WechatPcLoginPollController.php │ │ │ ├── WechatPcQrCodeController.php │ │ │ ├── WechatQrcodeLoginController.php │ │ │ ├── WechatQyLoginController.php │ │ │ ├── WechatQyUserController.php │ │ │ ├── WechatUserController.php │ │ │ ├── WechatWebLoginController.php │ │ │ ├── WechatWebUserController.php │ │ │ ├── WechatWebUserLoginController.php │ │ │ ├── WechatWebUserLoginEventController.php │ │ │ ├── WechatWebUserLoginPostEventController.php │ │ │ ├── WechatWebUserLoginSearchController.php │ │ │ └── WelinkLoginController.php │ │ ├── UsersV3 │ │ │ ├── AbstractLoginBaseController.php │ │ │ ├── AbstractWechatH5LoginBaseController.php │ │ │ ├── AdminLoginController.php │ │ │ ├── AuthBaseController.php │ │ │ ├── CheckController.php │ │ │ ├── CreateDenyUserController.php │ │ │ ├── CreateUserFollowController.php │ │ │ ├── DeleteAvatarController.php │ │ │ ├── DeleteDenyUserController.php │ │ │ ├── DeleteUserController.php │ │ │ ├── DeleteUserFollowController.php │ │ │ ├── ExportUserController.php │ │ │ ├── GetModelsController.php │ │ │ ├── ListDenyUserController.php │ │ │ ├── ListPaidThreadsController.php │ │ │ ├── ListUserFollowController.php │ │ │ ├── ListUserScreenController.php │ │ │ ├── LoginController.php │ │ │ ├── LsDisplayController.php │ │ │ ├── MiniProgramBindSchemeGenController.php │ │ │ ├── MiniProgramPcBindPollController.php │ │ │ ├── MiniProgramPcLoginPollController.php │ │ │ ├── MiniProgramQrcodeController.php │ │ │ ├── MiniProgramSchemeGenController.php │ │ │ ├── MobileBrowserLoginController.php │ │ │ ├── NicknameSettingController.php │ │ │ ├── ProfileController.php │ │ │ ├── RealUserController.php │ │ │ ├── RegisterController.php │ │ │ ├── ResetPayPasswordController.php │ │ │ ├── SmsBindController.php │ │ │ ├── SmsLoginController.php │ │ │ ├── SmsRebindController.php │ │ │ ├── SmsResetPayPwdController.php │ │ │ ├── SmsResetPwdController.php │ │ │ ├── SmsSendController.php │ │ │ ├── SmsVerifyController.php │ │ │ ├── UnbindWechatController.php │ │ │ ├── UpdateAdminController.php │ │ │ ├── UpdateMobileController.php │ │ │ ├── UpdateUserController.php │ │ │ ├── UpdateUsersController.php │ │ │ ├── UpdateUsersStatusController.php │ │ │ ├── UploadAvatarController.php │ │ │ ├── UploadAvatarsController.php │ │ │ ├── UploadBackgroundController.php │ │ │ ├── UsersListController.php │ │ │ ├── WechatH5BindController.php │ │ │ ├── WechatH5LoginController.php │ │ │ ├── WechatH5OauthController.php │ │ │ ├── WechatH5QrCodeController.php │ │ │ ├── WechatH5RebindController.php │ │ │ ├── WechatMiniProgramBindController.php │ │ │ ├── WechatMiniProgramCodeController.php │ │ │ ├── WechatMiniProgramLoginController.php │ │ │ ├── WechatMiniProgramRebindController.php │ │ │ ├── WechatPcBindPollController.php │ │ │ ├── WechatPcLoginPollController.php │ │ │ ├── WechatPcRebindPollController.php │ │ │ ├── WechatPcRebindQrCodeController.php │ │ │ ├── WechatTransitionAutoRegisterController.php │ │ │ └── WechatTransitionBindSmsController.php │ │ ├── Wallet │ │ │ ├── CreateUserWalletCashController.php │ │ │ ├── ListUserWalletCashController.php │ │ │ ├── ListUserWalletLogsController.php │ │ │ ├── ResourceUserWalletCashController.php │ │ │ ├── ResourceUserWalletController.php │ │ │ ├── UpdateUserWalletController.php │ │ │ └── UserWalletCashReviewController.php │ │ ├── WalletV3 │ │ │ ├── CreateUserWalletCashController.php │ │ │ ├── ListUserWalletCashController.php │ │ │ ├── ListUserWalletLogsController.php │ │ │ ├── ResourceUserWalletAdminController.php │ │ │ ├── ResourceUserWalletController.php │ │ │ ├── UpdateUserWalletController.php │ │ │ ├── UserWalletCashReviewController.php │ │ │ ├── UsersCashLogsListController.php │ │ │ └── UsersWalletLogsListController.php │ │ ├── Wechat │ │ │ ├── OffIAccountAssetDeleteController.php │ │ │ ├── OffIAccountAssetListController.php │ │ │ ├── OffIAccountAssetResourceController.php │ │ │ ├── OffIAccountAssetUpdateController.php │ │ │ ├── OffIAccountAssetUploadController.php │ │ │ ├── OffIAccountJSSDKController.php │ │ │ ├── OffIAccountMenuBatchCreateController.php │ │ │ ├── OffIAccountMenuListController.php │ │ │ ├── OffIAccountReplyCreateController.php │ │ │ ├── OffIAccountReplyDeleteController.php │ │ │ ├── OffIAccountReplyListController.php │ │ │ ├── OffIAccountReplyResourceController.php │ │ │ ├── OffIAccountServerController.php │ │ │ ├── OffIAccountThreadsReprintController.php │ │ │ ├── OffIAccountThreadsTransformController.php │ │ │ └── WechatMiniProgramCodeController.php │ │ └── WechatV3 │ │ │ └── OffIAccountJSSDKController.php │ ├── Exceptions │ │ ├── CategoryNotFoundExceptionHandler.php │ │ ├── CensorNotPassedExceptionHandler.php │ │ ├── FaceidExceptionHandler.php │ │ ├── IntervalSmsSendHandler.php │ │ ├── ModelNotFoundExceptionHandler.php │ │ ├── NoExceptionHandler.php │ │ ├── NoUserExceptionHandler.php │ │ ├── OAuthServerExceptionHandler.php │ │ ├── OrderExceptionHandler.php │ │ ├── QrcodeImgExceptionHandler.php │ │ ├── SmsCodeVerifyExceptionHandler.php │ │ ├── SmsExceptionHandler.php │ │ ├── TradeErrorExceptionHandler.php │ │ ├── TranslatorExceptionHandler.php │ │ ├── UploadExceptionHandler.php │ │ ├── UploadVerifyExceptionHandler.php │ │ └── WalletExceptionHandler.php │ ├── Middleware │ │ ├── CheckPaidUserGroupMiddleware.php │ │ ├── ClearSessionMiddleware.php │ │ ├── FakeHttpMethods.php │ │ └── OperationLogMiddleware.php │ └── Serializer │ │ ├── AdminActionLogSerializer.php │ │ ├── AdminSignInSerializer.php │ │ ├── ArraySerializer.php │ │ ├── AttachmentSerializer.php │ │ ├── BasicPostSerializer.php │ │ ├── CategorySerializer.php │ │ ├── CircleSerializer.php │ │ ├── CommentPostSerializer.php │ │ ├── DialogMessageSerializer.php │ │ ├── DialogSerializer.php │ │ ├── EmojiSerializer.php │ │ ├── FinanceProfileSerializer.php │ │ ├── FinanceSerializer.php │ │ ├── FirstStatisticsSerializer.php │ │ ├── ForumSettingSerializer.php │ │ ├── ForumSettingSerializerV2.php │ │ ├── GroupPermissionSerializer.php │ │ ├── GroupSerializer.php │ │ ├── InfoSerializer.php │ │ ├── InviteSerializer.php │ │ ├── InviteUserSerializer.php │ │ ├── LocationSerializer.php │ │ ├── NotificationSerializer.php │ │ ├── NotificationTplSerializer.php │ │ ├── NotificationUnreadSerializer.php │ │ ├── OffIAccountAssetSerializer.php │ │ ├── OffIAccountMenuSerializer.php │ │ ├── OffIAccountReplySerializer.php │ │ ├── OrderSerializer.php │ │ ├── PaidUserGroupSerializer.php │ │ ├── PayOrderSerializer.php │ │ ├── PostGoodsSerializer.php │ │ ├── PostResourceSerializer.php │ │ ├── PostSerializer.php │ │ ├── QcloudCheckSerializer.php │ │ ├── QrSerializer.php │ │ ├── QuestionAnswerSerializer.php │ │ ├── RedPacketSerializer.php │ │ ├── ReportsSerializer.php │ │ ├── SequenceSerializer.php │ │ ├── SessionSerializer.php │ │ ├── SettingSerializer.php │ │ ├── SignatureSerializer.php │ │ ├── SiteInfoSerializer.php │ │ ├── SmsSendSerializer.php │ │ ├── StopWordSerializer.php │ │ ├── ThreadRewardSerializer.php │ │ ├── ThreadSerializer.php │ │ ├── ThreadVideoSerializer.php │ │ ├── TokenSerializer.php │ │ ├── TopicSerializer.php │ │ ├── UserActionLogsSerializer.php │ │ ├── UserFollowSerializer.php │ │ ├── UserInviteSerializer.php │ │ ├── UserProfileSerializer.php │ │ ├── UserSerializer.php │ │ ├── UserSignInSerializer.php │ │ ├── UserV2Serializer.php │ │ ├── UserWalletCashSerializer.php │ │ ├── UserWalletLogSerializer.php │ │ ├── UserWalletSerializer.php │ │ ├── UserWechatSerializer.php │ │ ├── VerifyMobileSerializer.php │ │ ├── WechatJssdkSerializer.php │ │ └── WechatPcQrCodeSerializer.php ├── Censor │ ├── Censor.php │ ├── CensorNotPassedException.php │ └── CensorServiceProvider.php ├── Commands │ ├── Attachment │ │ ├── AttachmentUploader.php │ │ ├── CreateAttachment.php │ │ └── DeleteAttachment.php │ ├── Category │ │ ├── BatchCreateCategories.php │ │ ├── CreateCategory.php │ │ ├── DeleteCategory.php │ │ └── EditCategory.php │ ├── Dialog │ │ ├── BatchCreateDialog.php │ │ ├── CreateDialog.php │ │ ├── CreateDialogMessage.php │ │ └── DeleteDialog.php │ ├── Emoji │ │ └── LoadEmoji.php │ ├── Group │ │ ├── CreateGroup.php │ │ ├── DeleteGroup.php │ │ └── UpdateGroup.php │ ├── Invite │ │ ├── CreateInvite.php │ │ ├── DeleteInvite.php │ │ └── UseInvite.php │ ├── Notification │ │ └── DeleteNotification.php │ ├── Order │ │ └── CreateOrder.php │ ├── Post │ │ ├── BatchDeletePosts.php │ │ ├── BatchEditPosts.php │ │ ├── CheckFloodgate.php │ │ ├── CreatePost.php │ │ ├── DeletePost.php │ │ └── EditPost.php │ ├── Qcloud │ │ └── CreateVodUploadSignature.php │ ├── Question │ │ └── CreateQuestionAnswer.php │ ├── RedPacket │ │ ├── CountLikedMakeRedPacket.php │ │ └── ReceiveRedPacket.php │ ├── Report │ │ ├── BatchDeleteReport.php │ │ ├── BatchEditReport.php │ │ └── CreateReport.php │ ├── SignInFields │ │ ├── CreateAdminSignIn.php │ │ ├── CreateUserSignIn.php │ │ └── UpdateUserSignIn.php │ ├── Sms │ │ └── VerifyMobile.php │ ├── Statistic │ │ ├── FinanceChart.php │ │ ├── FinanceProfile.php │ │ └── FirstStatistics.php │ ├── StopWord │ │ ├── BatchCreateStopWord.php │ │ ├── CreateStopWord.php │ │ ├── DeleteStopWord.php │ │ └── EditStopWord.php │ ├── Thread │ │ ├── AdminBatchEditThreads.php │ │ ├── BatchDeleteThreads.php │ │ ├── BatchEditThreads.php │ │ ├── CreateThread.php │ │ ├── CreateThreadVideo.php │ │ ├── DeleteThread.php │ │ ├── DeleteThreadVideo.php │ │ ├── EditThread.php │ │ └── Notify │ │ │ └── ThreadVideoNotify.php │ ├── Topic │ │ ├── DeleteTopic.php │ │ └── EditTopic.php │ ├── Trade │ │ ├── Notify │ │ │ ├── NotifyTrait.php │ │ │ ├── WalletPayNotify.php │ │ │ └── WechatNotify.php │ │ └── PayOrder.php │ ├── Users │ │ ├── AutoRegisterUser.php │ │ ├── BindWchatMiniprogramMobile.php │ │ ├── CreateUserFollow.php │ │ ├── DeleteUserFollow.php │ │ ├── DeleteUsers.php │ │ ├── GenJwtToken.php │ │ ├── RealUser.php │ │ ├── RegisterCrawlerUser.php │ │ ├── RegisterPhoneUser.php │ │ ├── RegisterQQUser.php │ │ ├── RegisterUser.php │ │ ├── RegisterWechatQyUser.php │ │ ├── UpdateAdminUser.php │ │ ├── UpdateClientUser.php │ │ ├── UpdateUser.php │ │ ├── UploadAvatar.php │ │ ├── UploadBackground.php │ │ ├── UploadCrawlerAvatar.php │ │ ├── WebUserEvent.php │ │ ├── WebUserQrcode.php │ │ └── WebUserSearch.php │ └── Wallet │ │ ├── ChangeUserWallet.php │ │ ├── CreateUserWalletCash.php │ │ ├── UpdateUserWallet.php │ │ └── UserWalletCashReview.php ├── Common │ ├── AuthUtils.php │ ├── CacheKey.php │ ├── Coupon.php │ ├── DzqConst.php │ ├── Image.php │ ├── PermissionKey.php │ ├── Platform.php │ ├── PostCache.php │ ├── ResponseCode.php │ ├── SettingCache.php │ ├── Statistics.php │ ├── ThreadCache.php │ └── Utils.php ├── Console │ ├── Commands │ │ ├── AbnormalOrderDealCommand.php │ │ ├── AttachmentAttributeUpdateCommand.php │ │ ├── AttachmentClearCommand.php │ │ ├── AvatarClearCommand.php │ │ ├── CreateCrawlerDataCommand.php │ │ ├── FinanceCreateCommand.php │ │ ├── InviteExpireCommand.php │ │ ├── KeyGenerate.php │ │ ├── MonitorSystemTaskCommand.php │ │ ├── QueryWechatOrderConmmand.php │ │ ├── QuestionClearCommand.php │ │ ├── RedPacketExpireCommand.php │ │ ├── RsaCertGenerate.php │ │ ├── SessionTokenClearCommand.php │ │ ├── StorageLinkCommand.php │ │ ├── ThreadDraftClearCommand.php │ │ ├── ThreadMigrationCommand.php │ │ ├── ThreadMigrationPlusCommand.php │ │ ├── ThreadRewardExpireCommand.php │ │ ├── TranscodeVideoCommand.php │ │ ├── Upgrades │ │ │ ├── AddNoticeTplCommand.php │ │ │ ├── AddUnpaidPermissionCommand.php │ │ │ ├── AddVotePermissionCommand.php │ │ │ ├── ApiFreqCommand.php │ │ │ ├── GroupPermissionAddCommand.php │ │ │ ├── InitCategoryPermission.php │ │ │ ├── InitOrdersExpiredAt.php │ │ │ ├── InitPostContent.php │ │ │ ├── InitVideoSize.php │ │ │ ├── IterationNoticeCommand.php │ │ │ ├── NicknameDuplicateRemovalCommand.php │ │ │ ├── NicknameSetCommand.php │ │ │ ├── NoticeTrait.php │ │ │ ├── NotificationsMigrationCommand.php │ │ │ ├── PayUserAttachmentCommand.php │ │ │ ├── PostForeignKeyCommand.php │ │ │ ├── QuestionMigrationCommand.php │ │ │ ├── README.md │ │ │ ├── SettingAddCommand.php │ │ │ ├── SiteSwitchCommand.php │ │ │ ├── StopWordsNicknameSetCommand.php │ │ │ ├── ThreadMigrationCommand.php │ │ │ ├── UpdateAvatarData.php │ │ │ ├── UpdateCategoryPermission.php │ │ │ ├── UpdateUserBingType.php │ │ │ └── UpgradeOldPermissionDataCommand.php │ │ └── VideoClearCommand.php │ ├── Kernel.php │ └── stubs │ │ └── controller.stub ├── Crawler │ ├── Douban.php │ ├── Tieba.php │ └── Weibo.php ├── Events │ ├── AdminActionLog │ │ └── Created.php │ ├── Attachment │ │ ├── Created.php │ │ ├── Deleted.php │ │ ├── Deleting.php │ │ ├── Saving.php │ │ ├── Uploaded.php │ │ └── Uploading.php │ ├── Category │ │ ├── Created.php │ │ ├── Deleted.php │ │ ├── Deleting.php │ │ └── Saving.php │ ├── DenyUsers │ │ └── Saved.php │ ├── Group │ │ ├── Created.php │ │ ├── Deleted.php │ │ ├── PaidGroup.php │ │ ├── PermissionUpdated.php │ │ └── Saving.php │ ├── Invite │ │ ├── Created.php │ │ └── Saving.php │ ├── Order │ │ └── Updated.php │ ├── Post │ │ ├── Created.php │ │ ├── Deleted.php │ │ ├── Deleting.php │ │ ├── Hidden.php │ │ ├── PostWasApproved.php │ │ ├── Restored.php │ │ ├── Revised.php │ │ ├── Revising.php │ │ ├── Saved.php │ │ └── Saving.php │ ├── Question │ │ ├── Created.php │ │ ├── Saved.php │ │ └── Saving.php │ ├── Report │ │ ├── Created.php │ │ ├── Deleting.php │ │ └── Saving.php │ ├── Setting │ │ ├── Saved.php │ │ └── Saving.php │ ├── StopWord │ │ ├── Created.php │ │ ├── Deleting.php │ │ └── Saving.php │ ├── Thread │ │ ├── Created.php │ │ ├── Deleted.php │ │ ├── Deleting.php │ │ ├── Hidden.php │ │ ├── Restored.php │ │ ├── Saving.php │ │ ├── ThreadWasApproved.php │ │ ├── ThreadWasCategorized.php │ │ └── Updated.php │ ├── ThreadReward │ │ └── Created.php │ ├── UserIdent │ │ └── Created.php │ ├── Users │ │ ├── AdminLogind.php │ │ ├── ChangeUserStatus.php │ │ ├── Created.php │ │ ├── Deleting.php │ │ ├── Logind.php │ │ ├── Logining.php │ │ ├── PayPasswordChanged.php │ │ ├── RefreshTokend.php │ │ ├── Registered.php │ │ ├── RegisteredCheck.php │ │ ├── Saving.php │ │ ├── TransitionBind.php │ │ └── UserFollowCreated.php │ ├── Wallet │ │ ├── Cash.php │ │ └── Saved.php │ └── WalletLog │ │ └── Created.php ├── Exceptions │ ├── CategoryNotFoundException.php │ ├── FaceidException.php │ ├── IntervalSmsSendException.php │ ├── NoUserException.php │ ├── OrderException.php │ ├── QrcodeImgException.php │ ├── SmsCodeVerifyException.php │ ├── TradeErrorException.php │ ├── TranslatorException.php │ ├── UpdateGroupPermissionException.php │ ├── UploadException.php │ └── WalletException.php ├── Exports │ ├── Export.php │ └── UsersExport.php ├── Formatter │ ├── BaseFormatter.php │ ├── DialogMessageFormatter.php │ ├── Formatter.php │ └── FormatterServiceProvider.php ├── Http │ └── Controller │ │ └── IndexController.php ├── Install │ └── Controller │ │ ├── IndexController.php │ │ ├── InstallController.php │ │ └── UpgradeLogController.php ├── Listeners │ ├── AddApiMiddleware.php │ ├── Attachment │ │ ├── AddWatermarkToImage.php │ │ ├── CheckImage.php │ │ ├── DeleteFile.php │ │ ├── LocalImageHandler.php │ │ └── OrientateImage.php │ ├── Category │ │ └── CategoryListener.php │ ├── DenyUser │ │ └── DeleteFollow.php │ ├── Group │ │ ├── ChangeDefaultGroup.php │ │ ├── PaidGroupOrder.php │ │ ├── ResetDefaultGroup.php │ │ └── SetDefaultPermission.php │ ├── Order │ │ ├── OrderSubscriber.php │ │ └── SendNotifyAfterPaySuccessful.php │ ├── Post │ │ ├── AddPostLikeAttribute.php │ │ ├── PostAttachment.php │ │ ├── PostListener.php │ │ ├── ReplaceContentAttachUrl.php │ │ └── SaveLikesToDatabase.php │ ├── Question │ │ ├── CreateQuestionNotifyWillBeSend.php │ │ ├── QuestionAnswerMakeMoney.php │ │ ├── QuestionAttachment.php │ │ ├── QuestionListener.php │ │ ├── SaveQuestionToDatabase.php │ │ ├── SendNotifyOfAnswer.php │ │ └── WhenThePostIsBeingRevised.php │ ├── RedPacket │ │ ├── RedPacketListener.php │ │ ├── ReplyPostMakeRedPacket.php │ │ └── SaveRedPacketToDatabase.php │ ├── Setting │ │ ├── ChangeSiteMode.php │ │ ├── CheckCaptcha.php │ │ ├── CheckCos.php │ │ ├── CheckMiniprogram.php │ │ ├── CheckOffiaccount.php │ │ ├── CheckWatermark.php │ │ ├── CheckWxpay.php │ │ ├── ClearDisabledPermission.php │ │ ├── ClearDisabledSettings.php │ │ ├── QcloudSettingReport.php │ │ └── SettingListener.php │ ├── Thread │ │ ├── AddThreadFavoriteAttribute.php │ │ ├── SaveCategoryToDatabase.php │ │ ├── SaveFavoriteToDatabase.php │ │ ├── SaveVideoToDatabase.php │ │ ├── ThreadListener.php │ │ └── ThreadVideoListener.php │ ├── User │ │ ├── AddDefaultGroup.php │ │ ├── BanLogin.php │ │ ├── ChangeLastActived.php │ │ ├── CheckLogin.php │ │ ├── CheckPublish.php │ │ ├── CheckoutSite.php │ │ ├── InviteBind.php │ │ ├── Notifications.php │ │ ├── QcloudDaily.php │ │ ├── TransitionBindListener.php │ │ ├── UserListener.php │ │ └── ValidateLogin.php │ ├── Wallet │ │ ├── CashReviewSubscriber.php │ │ ├── CashTransfer.php │ │ ├── CreateUserWalletListener.php │ │ ├── SendNotifyOfWalletChanges.php │ │ └── WalletListener.php │ └── WalletLog │ │ └── SaveWalletLogToDatabase.php ├── Models │ ├── AdminActionLog.php │ ├── AdminSignInFields.php │ ├── Attachment.php │ ├── AttachmentShare.php │ ├── Category.php │ ├── DenyUser.php │ ├── Dialog.php │ ├── DialogMessage.php │ ├── Emoji.php │ ├── Finance.php │ ├── Group.php │ ├── GroupPaidUser.php │ ├── GroupUser.php │ ├── Invite.php │ ├── MiniprogramSchemeManage.php │ ├── MobileCode.php │ ├── ModelBuilder.php │ ├── NotificationTpl.php │ ├── OperationLog.php │ ├── Order.php │ ├── OrderChildren.php │ ├── PayNotify.php │ ├── Permission.php │ ├── Post.php │ ├── PostGoods.php │ ├── PostMod.php │ ├── PostUser.php │ ├── Question.php │ ├── QuestionOnlooker.php │ ├── RedPacket.php │ ├── Report.php │ ├── Sequence.php │ ├── SessionToken.php │ ├── Setting.php │ ├── StopWord.php │ ├── Thread.php │ ├── ThreadRedPacket.php │ ├── ThreadReward.php │ ├── ThreadTag.php │ ├── ThreadTom.php │ ├── ThreadTopic.php │ ├── ThreadUser.php │ ├── ThreadUserViewRecord.php │ ├── ThreadVideo.php │ ├── ThreadVote.php │ ├── ThreadVoteSubitem.php │ ├── ThreadVoteUser.php │ ├── Topic.php │ ├── User.php │ ├── UserActionLogs.php │ ├── UserDistribution.php │ ├── UserFollow.php │ ├── UserLoginFailLog.php │ ├── UserQq.php │ ├── UserQyWechats.php │ ├── UserSignInFields.php │ ├── UserUcenter.php │ ├── UserWallet.php │ ├── UserWalletCash.php │ ├── UserWalletFailLogs.php │ ├── UserWalletLog.php │ ├── UserWechat.php │ ├── UsernameChange.php │ └── WechatOffiaccountReply.php ├── Modules │ └── ThreadTom │ │ ├── Busi │ │ ├── AudioBusi.php │ │ ├── DefaultBusi.php │ │ ├── DocBusi.php │ │ ├── GoodsBusi.php │ │ ├── ImageBusi.php │ │ ├── RedPackBusi.php │ │ ├── RewardBusi.php │ │ ├── VideoBusi.php │ │ └── VoteBusi.php │ │ ├── TomBaseBusi.php │ │ ├── TomConfig.php │ │ └── TomTrait.php ├── Notifications │ ├── AbstractNotification.php │ ├── Liked.php │ ├── Messages │ │ ├── Database │ │ │ ├── GroupMessage.php │ │ │ ├── LikedMessage.php │ │ │ ├── PostMessage.php │ │ │ ├── QuestionedMessage.php │ │ │ ├── ReceiveRedPacketMessage.php │ │ │ ├── RegisterMessage.php │ │ │ ├── RelatedMessage.php │ │ │ ├── RepliedMessage.php │ │ │ ├── RewardedMessage.php │ │ │ ├── StatusMessage.php │ │ │ ├── ThreadRewardedExpiredMessage.php │ │ │ ├── ThreadRewardedMessage.php │ │ │ └── WithdrawalMessage.php │ │ ├── MiniProgram │ │ │ ├── ExpiredMiniProgramMessage.php │ │ │ ├── GroupMiniProgramMessage.php │ │ │ ├── LikedMiniProgramMessage.php │ │ │ ├── PostMiniProgramMessage.php │ │ │ ├── QuestionedAnswerMiniProgramMessage.php │ │ │ ├── QuestionedMiniProgramMessage.php │ │ │ ├── ReceiveRedPacketMiniProgramMessage.php │ │ │ ├── RegisterMiniProgramMessage.php │ │ │ ├── RelatedMiniProgramMessage.php │ │ │ ├── RepliedMiniProgramMessage.php │ │ │ ├── RewardedMiniProgramMessage.php │ │ │ ├── RewardedScaleMiniProgramMessage.php │ │ │ ├── StatusMiniProgramMessage.php │ │ │ └── WithdrawalMiniProgramMessage.php │ │ ├── Sms │ │ │ ├── ExpiredSmsMessage.php │ │ │ ├── GroupSmsMessage.php │ │ │ ├── LikedSmsMessage.php │ │ │ ├── PostSmsMessage.php │ │ │ ├── QuestionedAnswerSmsMessage.php │ │ │ ├── QuestionedSmsMessage.php │ │ │ ├── ReceiveRedSmsMessage.php │ │ │ ├── RegisterSmsMessage.php │ │ │ ├── RelatedSmsMessage.php │ │ │ ├── RepliedSmsMessage.php │ │ │ ├── RewardedScaleSmsMessage.php │ │ │ ├── RewardedSmsMessage.php │ │ │ ├── StatusSmsMessage.php │ │ │ ├── ThreadRewardedExpiredSmsMessage.php │ │ │ ├── ThreadRewardedSmsMessage.php │ │ │ └── WithdrawalSmsMessage.php │ │ ├── TemplateVariables.php │ │ └── Wechat │ │ │ ├── ExpiredWechatMessage.php │ │ │ ├── GroupWechatMessage.php │ │ │ ├── LikedWechatMessage.php │ │ │ ├── PostWechatMessage.php │ │ │ ├── QuestionedAnswerWechatMessage.php │ │ │ ├── QuestionedWechatMessage.php │ │ │ ├── ReceiveRedPacketWechatMessage.php │ │ │ ├── RegisterWechatMessage.php │ │ │ ├── RelatedWechatMessage.php │ │ │ ├── RepliedWechatMessage.php │ │ │ ├── RewardedScaleWechatMessage.php │ │ │ ├── RewardedWechatMessage.php │ │ │ ├── StatusWechatMessage.php │ │ │ ├── ThreadRewardedExpiredWechatMessage.php │ │ │ ├── ThreadRewardedWechatMessage.php │ │ │ └── WithdrawalWechatMessage.php │ ├── Questioned.php │ ├── ReceiveRedPacket.php │ ├── Related.php │ ├── Replied.php │ ├── Rewarded.php │ ├── System.php │ ├── ThreadRewarded.php │ ├── ThreadRewardedExpired.php │ └── Withdrawal.php ├── Observer │ ├── DialogMessageObserver.php │ ├── PostObserver.php │ ├── ThreadObserver.php │ ├── UserObserver.php │ ├── UserWalletCashObserver.php │ └── UserWechatObserver.php ├── Passport │ ├── Entities │ │ ├── AccessTokenEntity.php │ │ ├── AuthCodeEntity.php │ │ ├── ClientEntity.php │ │ ├── RefreshTokenEntity.php │ │ ├── ScopeEntity.php │ │ └── UserEntity.php │ ├── Oauth2ServiceProvider.php │ └── Repositories │ │ ├── AccessTokenRepository.php │ │ ├── AuthCodeRepository.php │ │ ├── ClientRepository.php │ │ ├── RefreshTokenRepository.php │ │ ├── ScopeRepository.php │ │ └── UserRepository.php ├── Policies │ ├── AttachmentPolicy.php │ ├── CategoryPolicy.php │ ├── GroupPaidUserPolicy.php │ ├── GroupPolicy.php │ ├── InvitePolicy.php │ ├── OrderPolicy.php │ ├── PostPolicy.php │ ├── StopWordPolicy.php │ ├── ThreadPolicy.php │ ├── UserPolicy.php │ ├── UserWalletCashPolicy.php │ ├── UserWalletLogsPolicy.php │ └── UserWalletPolicy.php ├── Providers │ ├── AppServiceProvider.php │ ├── AttachmentServiceProvider.php │ ├── CategoryServiceProvider.php │ ├── DialogMessageServiceProvider.php │ ├── EventServiceProvider.php │ ├── OrderServiceProvider.php │ ├── PostServiceProvider.php │ ├── QuestionServiceProvider.php │ ├── RedPacketServiceProvider.php │ ├── SettingsServiceProvider.php │ ├── ThreadServiceProvider.php │ └── UserServiceProvider.php ├── Repositories │ ├── AdminActionLogsRepository.php │ ├── AttachmentRepository.php │ ├── CategoryRepository.php │ ├── CircleRepository.php │ ├── DialogMessageRepository.php │ ├── DialogRepository.php │ ├── FinanceRepository.php │ ├── GroupPaidUserRepository.php │ ├── GroupRepository.php │ ├── InviteRepository.php │ ├── MobileCodeRepository.php │ ├── NotificationRepository.php │ ├── OrderRepository.php │ ├── PostRepository.php │ ├── RedPacketRepository.php │ ├── SequenceRepository.php │ ├── StopWordRepository.php │ ├── ThreadRepository.php │ ├── ThreadRewardRepository.php │ ├── ThreadVideoRepository.php │ ├── TopicRepository.php │ ├── UserFollowRepository.php │ ├── UserLoginFailLogRepository.php │ ├── UserRepository.php │ ├── UserWalletCashRepository.php │ ├── UserWalletFailLogsRepository.php │ ├── UserWalletLogsRepository.php │ ├── UserWalletRepository.php │ └── WechatOffiaccountReplyRepository.php ├── Rules │ ├── Captcha.php │ ├── Question │ │ ├── CheckOrder.php │ │ └── UserVerification.php │ └── Settings │ │ ├── BaseQcloud.php │ │ ├── CashMaxSum.php │ │ ├── CashMinSum.php │ │ ├── CashSumLimit.php │ │ ├── QcloudCaptchaVerify.php │ │ ├── QcloudClose.php │ │ ├── QcloudMasterSwitch.php │ │ ├── QcloudSMSVerify.php │ │ ├── QcloudSecretVerify.php │ │ ├── QcloudTaskflowGifVerify.php │ │ ├── QcloudVodCoverTemplateVerify.php │ │ ├── QcloudVodTranscodeVerify.php │ │ ├── QcloudVodVerify.php │ │ ├── SiteOnlookerPrice.php │ │ └── SupportExt.php ├── Settings │ ├── ForumSettingField.php │ ├── SettingsRepository.php │ └── SiteRevManifest.php ├── SmsMessages │ ├── SendCodeMessage.php │ └── SendNoticeMessage.php ├── SpecialChar │ └── SpecialChar.php ├── Trade │ ├── Config │ │ └── GatewayConfig.php │ ├── NotifyTrade.php │ ├── PayTrade.php │ ├── QueryTrade.php │ └── TransferTrade.php ├── Traits │ ├── HasPaidContent.php │ ├── Notifiable.php │ ├── PostGoodsTrait.php │ ├── PostNoticesTrait.php │ ├── RequestContainerTrait.php │ ├── ThreadNoticesTrait.php │ ├── UserTrait.php │ └── VideoCloudTrait.php ├── Ucenter │ ├── Authcode.php │ ├── Client.php │ └── Xml.php ├── User │ ├── AvatarUploader.php │ ├── BackgroundUploader.php │ ├── Bind.php │ ├── Bound.php │ ├── CrawlerAvatarUploader.php │ └── MiniprogramSchemeManage.php ├── Validators │ ├── AttachmentValidator.php │ ├── AvatarValidator.php │ ├── BackgroundValidator.php │ ├── CategoryValidator.php │ ├── CircleValidator.php │ ├── GroupPermissionValidator.php │ ├── GroupValidator.php │ ├── InviteValidator.php │ ├── OffIAccountAssetUpdateValidator.php │ ├── OffIAccountAssetUploadValidator.php │ ├── PostValidator.php │ ├── QuestionValidator.php │ ├── RedPacketValidator.php │ ├── ReportValidator.php │ ├── SetSettingValidator.php │ ├── StopWordValidator.php │ ├── ThreadValidator.php │ └── UserValidator.php └── WechatMessageHandler │ ├── EventMessageHandler.php │ ├── FileMessageHandler.php │ ├── ImageMessageHandler.php │ ├── LinkMessageHandler.php │ ├── LocationMessageHandler.php │ ├── ReplyMessageHandler.php │ ├── TextMessageHandler.php │ ├── VideoMessageHandler.php │ └── VoiceMessageHandler.php ├── composer.json ├── config └── config_default.php ├── database ├── migrations │ ├── 2020_01_01_000001_create_users.php │ ├── 2020_01_01_000002_create_groups.php │ ├── 2020_01_01_000003_create_group_permission.php │ ├── 2020_01_01_000004_create_group_user.php │ ├── 2020_01_01_000005_create_categories.php │ ├── 2020_01_01_000006_create_threads.php │ ├── 2020_01_01_000007_create_posts.php │ ├── 2020_01_01_000008_create_thread_user.php │ ├── 2020_01_01_000009_create_post_user.php │ ├── 2020_01_01_000010_create_post_mod.php │ ├── 2020_01_01_000011_create_attachments.php │ ├── 2020_01_01_000012_create_stop_words.php │ ├── 2020_01_01_000013_create_operation_log.php │ ├── 2020_01_01_000014_create_orders.php │ ├── 2020_01_01_000015_create_pay_notify.php │ ├── 2020_01_01_000016_create_user_wechats.php │ ├── 2020_01_01_000017_create_user_wallets.php │ ├── 2020_01_01_000018_create_user_wallet_cash.php │ ├── 2020_01_01_000019_create_user_wallet_logs.php │ ├── 2020_01_01_000020_create_user_login_fail_log.php │ ├── 2020_01_01_000021_create_emoji.php │ ├── 2020_01_01_000022_create_invites.php │ ├── 2020_01_01_000023_create_mobile_codes.php │ ├── 2020_01_01_000024_create_notifications.php │ ├── 2020_01_01_000025_create_settings.php │ ├── 2020_01_01_000026_create_user_follow.php │ ├── 2020_01_01_000027_create_finance.php │ ├── 2020_01_01_000028_create_dialog.php │ ├── 2020_01_01_000029_create_dialog_message.php │ ├── 2020_01_01_000030_create_notification_tpls.php │ ├── 2020_01_01_000031_create_session_tokens.php │ ├── 2020_01_01_000032_create_thread_video.php │ ├── 2020_03_20_104938_add_order_to_attachments.php │ ├── 2020_03_24_183227_create_user_wallet_fail_logs.php │ ├── 2020_03_28_012029_alter_users.php │ ├── 2020_04_14_101710_add_is_anonymous_to_orders.php │ ├── 2020_04_14_104730_update_users_table.php │ ├── 2020_04_14_174156_add_liked_count_to_users.php │ ├── 2020_04_16_134237_create_post_mentions_user.php │ ├── 2020_04_16_162908_add_free_words_to_threads.php │ ├── 2020_04_17_152036_add_paid_count_to_threads.php │ ├── 2020_04_20_185606_add_read_at_to_dialog.php │ ├── 2020_04_23_143614_add_is_display_to_groups.php │ ├── 2020_04_23_154946_create_topics.php │ ├── 2020_04_23_155120_create_thread_topic.php │ ├── 2020_04_26_111725_create_reports.php │ ├── 2020_04_26_142056_create_deny_users.php │ ├── 2020_04_30_150256_rename_operation_log_to_user_action_logs.php │ ├── 2020_04_30_153136_create_operation_logs.php │ ├── 2020_05_07_174510_add_location_to_posts.php │ ├── 2020_05_08_172741_create_post_goods.php │ ├── 2020_05_11_164733_create_group_paid_users.php │ ├── 2020_05_11_164907_alter_add_expiration_time_to_groups.php │ ├── 2020_05_11_165014_alter_add_groups_paid_mod.php │ ├── 2020_05_11_165120_alter_add_group_id_to_orders.php │ ├── 2020_05_11_175730_change_thread_video_columns.php │ ├── 2020_05_21_191500_alter_user_wechats.php │ ├── 2020_06_01_114859_alter_type_to_attachments.php │ ├── 2020_06_01_172353_alter_attachment_to_dialog_message.php │ ├── 2020_06_03_170416_alter_add_port_to_users.php │ ├── 2020_06_03_170507_alter_add_port_to_posts.php │ ├── 2020_06_08_155901_create_user_qq.php │ ├── 2020_06_08_155901_create_user_qy_wechats.php │ ├── 2020_06_10_105230_alter_add_foreign_key_to_user_follow.php │ ├── 2020_06_10_115509_alter_bigint_to_all.php │ ├── 2020_06_10_190229_alter_foreign_key_to_user_wechats.php │ ├── 2020_06_12_185624_create_wechat_offiaccount_replies.php │ ├── 2020_06_16_161128_change_threads_free_words_column_length.php │ ├── 2020_06_23_170151_change_wechat_offiaccount_replies_column.php │ ├── 2020_07_01_143404_change_user_wchats_user_id_to_null.php │ ├── 2020_07_03_171957_change_timestamps_to_datetime.php │ ├── 2020_07_15_183427_add_posts_reply_post_id_index.php │ ├── 2020_07_22_180923_add_duration_to_thread_video.php │ ├── 2020_07_24_145712_add_expired_at_to_orders.php │ ├── 2020_08_03_183433_change_scale_to_groups.php │ ├── 2020_08_04_154120_create_user_distributions.php │ ├── 2020_08_05_114608_add_category_id_index_to_threads.php │ ├── 2020_08_05_233234_add_be_scale_to_orders.php │ ├── 2020_08_07_174108_add_code_unique_to_invites.php │ ├── 2020_08_12_142541_create_user_ucenters.php │ ├── 2020_08_12_161140_alert_add_recommended_to_topics.php │ ├── 2020_08_12_161154_alert_add_recommended_at_to_topics.php │ ├── 2020_08_17_111947_add_location_to_threads.php │ ├── 2020_08_20_104455_add_is_subordinate_is_commission_to_groups.php │ ├── 2020_08_26_181122_add_address_to_threads.php │ ├── 2020_09_03_153645_add_moderators_to_categories.php │ ├── 2020_09_04_152844_create_questions.php │ ├── 2020_09_05_122736_add_question_id_to_user_wallet_logs.php │ ├── 2020_09_08_111818_add_cash_type_to_user_wallet_cash.php │ ├── 2020_09_09_184716_add_third_party_to_orders.php │ ├── 2020_09_09_203924_add_foreign_keys_to_group_permission.php │ ├── 2020_09_14_150620_add_is_site_to_threads.php │ ├── 2020_09_21_184613_add_attachment_price_to_threads.php │ ├── 2020_09_25_164242_add_delete_at_to_dialog.php │ ├── 2020_09_27_175432_add_index_to_dialog_message.php │ ├── 2020_09_27_184315_add_question_count_to_users.php │ ├── 2020_10_12_160100_add_answered_at_to_questions.php │ ├── 2020_10_13_190715_change_is_anonymous.php │ ├── 2020_10_21_152510_add_signature_and_dialog_to_stop_words.php │ ├── 2020_10_26_135924_add_is_display_to_threads.php │ ├── 2020_10_26_141128_alter_thread_add_free_percent.php │ ├── 2020_11_10_192530_add_some_index_to_user_wechats.php │ ├── 2020_11_11_105024_change_price_to_post_goods.php │ ├── 2020_12_01_141226_create_admin_sign_in_fields.php │ ├── 2020_12_01_141450_create_user_sign_in_fields.php │ ├── 2020_12_15_174414_add_comment_ids_to_posts.php │ ├── 2021_01_05_152234_add_reject_reason_to_users.php │ ├── 2021_01_16_141011_create_admin_action_logs.php │ ├── 2021_01_16_171411_add_parentid_to_categories.php │ ├── 2021_01_16_173911_add_post_id_to_orders.php │ ├── 2021_01_16_174311_create_sequences.php │ ├── 2021_01_16_174811_add_is_red_packet_is_draft_to_threads.php │ ├── 2021_01_16_175811_create_thread_red_packets.php │ ├── 2021_01_16_182011_create_thread_rewards.php │ ├── 2021_01_16_183511_add_thread_id_post_id_to_user_wallet_logs.php │ ├── 2021_01_21_104847_add_data_to_notification_tpls.php │ ├── 2021_01_27_000001_alter_bind_type_to_users.php │ ├── 2021_02_03_173216_add_notice_id_to_notification_tpls.php │ ├── 2021_02_25_110000_alter_content_to_posts.php │ ├── 2021_03_15_210352_add_posted_at_to_threads.php │ ├── 2021_03_19_103811_add_error_to_notification_tpls.php │ ├── 2021_03_31_000001_create_miniprogram_scheme_manage.php │ ├── 2021_03_31_001501_alter_nickname_to_users.php │ ├── 2021_04_07_142710_create_thread_tom.php │ ├── 2021_04_15_001501_alter_nickname_to_stop_words.php │ ├── 2021_04_16_153632_create_thread_tag.php │ ├── 2021_04_16_153727_add_share_count_to_threads.php │ ├── 2021_04_17_103345_add_refund_to_orders.php │ ├── 2021_04_17_103356_create_order_children.php │ ├── 2021_04_26_173510_add_back_image_to_users.php │ ├── 2021_05_11_175029_alter_read_status_to_dialog_message.php │ ├── 2021_05_14_175029_create_attachments_share.php │ ├── 2021_05_17_092200_create_username_change.php │ ├── 2021_06_18_200700_add_file_height_file_width_to_attachments.php │ ├── 2021_06_24_202106_add_status_to_dialog_message.php │ ├── 2021_07_02_202107_alter_sequences.php │ ├── 2021_08_02_153832_create_thread_vote_table.php │ ├── 2021_08_02_154729_create_thread_vote_subitems_table.php │ ├── 2021_08_02_155026_create_thread_vote_users_table.php │ ├── 2021_08_17_000001_change_nickname_index.php │ ├── 2021_08_18_180945_add_source_to_threads.php │ └── 2021_08_18_181532_create_thread_user_view_records.php └── seeds │ ├── CategoriesTableSeeder.php │ ├── DatabaseSeeder.php │ ├── EmojiTableSeeder.php │ ├── GroupTableSeeder.php │ ├── NotificationTplSeeder.php │ ├── PermissionTableSeeder.php │ └── SettingsTableSeeder.php ├── disco ├── phpunit.xml.dist ├── plugin ├── Jobs │ └── JobsBusi.php └── XiangQin │ └── XiangQinBusi.php ├── public ├── .htaccess ├── 404.html ├── 500.html ├── _next │ └── static │ │ ├── 2TA_BlYspJYYSpW3FbSpZ │ │ ├── _buildManifest.js │ │ └── _ssgManifest.js │ │ ├── chunks │ │ ├── 1bdc9b6b776f62fa1880d3f210dfe83a882e7357~493df0b3.7a8a0e41cf7ec0233f02.js │ │ ├── 356a3d8d87e3f94855d4228bc0c58e5fd8d21071~493df0b3.b3d4c9d97b9e9e51a187.js │ │ ├── 8313d723~9d180afe.83f306e2cde2165b08e4.js │ │ ├── 86.c74b7aa2cdb2b1359a09.js │ │ ├── 87.3db6e089cf6ed27e580f.js │ │ ├── 88.441ffca8f13ebcdcc419.js │ │ ├── 89.aeeb6dfd3b75cfd10e44.js │ │ ├── 919783596b205347bc30ca17673f1628755ade52~493df0b3.549df009862a6bd619cd.js │ │ ├── 95c976e72e9d4f67198ed00a7ebdac053e423a16~493df0b3.a0c10c1a9a3d27509604.js │ │ ├── b04b81bef99c2b8d124ec811978a3d08b84196c6~493df0b3.16019e83965ca99e087e.js │ │ ├── d6e1aeb5~6d61af90.276c37568d5a783b33fe.js │ │ ├── framework~f9ca8911.04d0db93c3651611635b.js │ │ ├── main~253ae210-2efa17d8c6e8467b7be8.js │ │ ├── pages │ │ │ ├── 404~493df0b3-869310fe4ff57fea3bfc.js │ │ │ ├── 500~493df0b3-9713305fec7f04e471e4.js │ │ │ ├── _app~493df0b3-a8b57a45f91ae434ad78.js │ │ │ ├── _error~31ecd969-f77306a0f4e652c9bb9d.js │ │ │ ├── card~493df0b3-b316f1137b088a208682.js │ │ │ ├── close~493df0b3-786469c37781ab3d4ab3.js │ │ │ ├── download~493df0b3-686b8cddf3b79cb1d9e8.js │ │ │ ├── forum │ │ │ │ └── partner-invite~493df0b3-b7525bc3fa09558065a3.js │ │ │ ├── forum~493df0b3-e6139dbe009a4d0e71c3.js │ │ │ ├── index~493df0b3-975a0db373d9447e2ed6.js │ │ │ ├── invite~493df0b3-0a1bbf7299a06bc3b463.js │ │ │ ├── join~493df0b3-4c0c5e85b0a74007d1fe.js │ │ │ ├── message~493df0b3-d9fd1e69b36f8c0ebb1c.js │ │ │ ├── modify │ │ │ │ └── paypwd~493df0b3-2a1aaf4af4dd66ab0ad8.js │ │ │ ├── my │ │ │ │ ├── block~493df0b3-134b00aaef363947a2f5.js │ │ │ │ ├── buy~493df0b3-ad6bb7a57e0416330f9e.js │ │ │ │ ├── collect~493df0b3-949260c36e6994b3096d.js │ │ │ │ ├── draft~493df0b3-7a744b3e46402fa17c8b.js │ │ │ │ ├── edit │ │ │ │ │ ├── additional-info~493df0b3-87a6fd113b6950709eaa.js │ │ │ │ │ ├── find-paypwd~493df0b3-3c225cedb6076cc8056c.js │ │ │ │ │ ├── mobile~493df0b3-3040991f238e30628289.js │ │ │ │ │ ├── paypwd~493df0b3-70d705eeeee143673382.js │ │ │ │ │ ├── pwd~493df0b3-3369688410c142f8b774.js │ │ │ │ │ ├── reset-paypwd~493df0b3-1c4c9a3bf31d718bb150.js │ │ │ │ │ └── username~493df0b3-60b23c19006892854d46.js │ │ │ │ ├── edit~493df0b3-d943e982643c3bb4e283.js │ │ │ │ ├── fans~493df0b3-242ba3522e61750f920f.js │ │ │ │ ├── follows~493df0b3-a599465aeae41962e034.js │ │ │ │ ├── index~493df0b3-f6a0b3fc766aacf4fae0.js │ │ │ │ ├── like~493df0b3-3e6d31286b814a3ec50d.js │ │ │ │ ├── notice~493df0b3-bdd60032944e1d9d8bb3.js │ │ │ │ ├── others~01d99f6b-7fb895b4f92ebcb80a8e.js │ │ │ │ └── renew~493df0b3-acc603a8551689c00622.js │ │ │ ├── my~493df0b3-553c023f41b20b63f400.js │ │ │ ├── no-install~493df0b3-59f1b21127db7315d716.js │ │ │ ├── pay │ │ │ │ └── middle~493df0b3-390493bd8734cdec0c96.js │ │ │ ├── render-error~493df0b3-3039ef3693f5484c7d57.js │ │ │ ├── search │ │ │ │ ├── index~493df0b3-5a0cf687a29f95149ff2.js │ │ │ │ ├── result-post~493df0b3-3df629f63368e2571bc4.js │ │ │ │ ├── result-topic~493df0b3-958afab9137c86e83849.js │ │ │ │ ├── result-user~493df0b3-fc504cce2272f12a6d31.js │ │ │ │ └── result~493df0b3-7a9eb9bb1e7294ed14c1.js │ │ │ ├── search~493df0b3-b443cc0a649b5343900b.js │ │ │ ├── thread │ │ │ │ ├── [id]~493df0b3-8a8eb64d13d3ec46a81e.js │ │ │ │ ├── comment │ │ │ │ │ └── [id]~493df0b3-2f578a527a1e6846fa48.js │ │ │ │ ├── post~31ecd969-eb3d0a27997277e48c25.js │ │ │ │ └── post~493df0b3.e7e53184e74cd8c470c8.js │ │ │ ├── topic │ │ │ │ └── topic-detail │ │ │ │ │ └── [id]~493df0b3-8cb0e04b4e0f7c7dcaa8.js │ │ │ ├── topic~493df0b3-15693f7c78f9695498fc.js │ │ │ ├── user │ │ │ │ ├── [id]~f075b844-051d2763ba18f38ad1fe.js │ │ │ │ ├── agreement~493df0b3-3efe7569fda4532fe5c0.js │ │ │ │ ├── bind-nickname~493df0b3-c18c2a00840fb5db7d97.js │ │ │ │ ├── bind-phone~493df0b3-a649fd42719bf3fd0bea.js │ │ │ │ ├── find-password~493df0b3-d0e6e88240ba7242456c.js │ │ │ │ ├── login~493df0b3-afdb1948b7e8bd80823e.js │ │ │ │ ├── phone-login~493df0b3-98d80d763c51d0a94d7f.js │ │ │ │ ├── rebind~493df0b3-6bca14bb6e5158f26cc6.js │ │ │ │ ├── register~493df0b3-0e99512501bd5f2ae8ed.js │ │ │ │ ├── reset-password~493df0b3-04f68f486d05190818e6.js │ │ │ │ ├── status~493df0b3-c986a1ad4090e8687d1c.js │ │ │ │ ├── supplementary~493df0b3-7a43bae96c056b1ad8d2.js │ │ │ │ ├── username-login~493df0b3-0a64010e4965beb32b78.js │ │ │ │ ├── wx-authorization~493df0b3-64d497b08a213ea960d6.js │ │ │ │ ├── wx-auth~493df0b3-498e4fc161693b836ba5.js │ │ │ │ ├── wx-bind-phone~493df0b3-7344688556777a7acdb1.js │ │ │ │ ├── wx-bind-qrcode~493df0b3-843605fdfab6188c5089.js │ │ │ │ ├── wx-bind-username~493df0b3-0495052dafd8b0394abd.js │ │ │ │ ├── wx-bind~493df0b3-5780dfd9d360a66afd68.js │ │ │ │ ├── wx-login~493df0b3-953fd73feb61d911c434.js │ │ │ │ ├── wx-rebind-action~493df0b3-26c3f4953115a1c76c2c.js │ │ │ │ └── wx-select~493df0b3-2de03396076270c109ed.js │ │ │ ├── wallet │ │ │ │ ├── frozen~01d99f6b-f2ba394a071af66129d8.js │ │ │ │ └── withdrawal~493df0b3-b68eedb574e7db64c06a.js │ │ │ └── wallet~493df0b3-5ad60e2fb9659e763d8f.js │ │ ├── polyfills~a4403643-7236f852b1a9882639b9.js │ │ ├── styles~f075b844.a48686c9a7767d075fb6.js │ │ └── webpack-a4c1a2a2f5d2b824db9b.js │ │ └── css │ │ └── styles~f075b844.36a020b5.chunk.css ├── admin.html ├── assets │ ├── css │ │ └── vditor.css │ ├── fonts │ │ ├── mem5YaGs126MiZpBA-UN7rgOUuhpKKSTjw.woff2 │ │ └── mem8YaGs126MiZpBA-UFVZ0bf8pkAg.woff2 │ └── js │ │ ├── jquery.min.js │ │ └── vditor@3.5.2 │ │ └── dist │ │ └── js │ │ ├── icons │ │ └── ant.js │ │ └── lute │ │ └── lute.min.js ├── card.html ├── close.html ├── cover-bottom.png ├── cover-top.png ├── download.html ├── dzq-img │ ├── 404.png │ ├── admin-logo-pc.jpg │ ├── admin-logo-pc.png │ ├── admin-logo-x2.png │ ├── beian.png │ ├── close.png │ ├── coin.png │ ├── content-header.png │ ├── default-favicon.png │ ├── default-logo.png │ ├── error.png │ ├── invite-banner-bg.png │ ├── invite-card-bg.png │ ├── jingdong.svg │ ├── join-banner-bg.png │ ├── login-ORcode.png │ ├── login-phone.png │ ├── login-status.jpg │ ├── login-user.png │ ├── login-weixin.png │ ├── look-more.jpg │ ├── my-default-header-img.jpg │ ├── pay-audio.png │ ├── pinduoduo.svg │ ├── published.svg │ ├── rectangle.png │ ├── red-packet.png │ ├── redpacket-mini.png │ ├── reward-question.png │ ├── shareKnow.png │ ├── sharePoint.png │ ├── ship-card-pc.png │ ├── taobao.svg │ ├── tmall.svg │ ├── topic-header.png │ ├── user.png │ ├── vercel.svg │ ├── video.svg │ ├── wallet-pc-bg.png │ ├── walletbackground.png │ └── youzan.svg ├── emoji │ └── qq │ │ ├── OK.gif │ │ ├── aini.gif │ │ ├── aixin.gif │ │ ├── aoman.gif │ │ ├── baiyan.gif │ │ ├── bangbangtang.gif │ │ ├── baojin.gif │ │ ├── baoquan.gif │ │ ├── bishi.gif │ │ ├── bizui.gif │ │ ├── cahan.gif │ │ ├── caidao.gif │ │ ├── chi.gif │ │ ├── ciya.gif │ │ ├── dabing.gif │ │ ├── daku.gif │ │ ├── dan.gif │ │ ├── deyi.gif │ │ ├── doge.gif │ │ ├── fadai.gif │ │ ├── fanu.gif │ │ ├── fendou.gif │ │ ├── ganga.gif │ │ ├── gouyin.gif │ │ ├── guzhang.gif │ │ ├── haixiu.gif │ │ ├── hanxiao.gif │ │ ├── haobang.gif │ │ ├── haqian.gif │ │ ├── hecai.gif │ │ ├── hexie.gif │ │ ├── huaixiao.gif │ │ ├── jie.gif │ │ ├── jingkong.gif │ │ ├── jingxi.gif │ │ ├── jingya.gif │ │ ├── juhua.gif │ │ ├── keai.gif │ │ ├── kelian.gif │ │ ├── koubi.gif │ │ ├── ku.gif │ │ ├── kuaikule.gif │ │ ├── kulou.gif │ │ ├── kun.gif │ │ ├── lanqiu.gif │ │ ├── leiben.gif │ │ ├── lenghan.gif │ │ ├── liuhan.gif │ │ ├── liulei.gif │ │ ├── nanguo.gif │ │ ├── penxue.gif │ │ ├── piezui.gif │ │ ├── pijiu.gif │ │ ├── qiang.gif │ │ ├── qiaoda.gif │ │ ├── qinqin.gif │ │ ├── qiudale.gif │ │ ├── quantou.gif │ │ ├── saorao.gif │ │ ├── se.gif │ │ ├── shengli.gif │ │ ├── shouqiang.gif │ │ ├── shuai.gif │ │ ├── shui.gif │ │ ├── tiaopi.gif │ │ ├── touxiao.gif │ │ ├── tu.gif │ │ ├── tuosai.gif │ │ ├── weiqu.gif │ │ ├── weixiao.gif │ │ ├── woshou.gif │ │ ├── wozuimei.gif │ │ ├── wunai.gif │ │ ├── xia.gif │ │ ├── xiaojiujie.gif │ │ ├── xiaoku.gif │ │ ├── xiaoyanger.gif │ │ ├── xieyanxiao.gif │ │ ├── xigua.gif │ │ ├── xu.gif │ │ ├── yangtuo.gif │ │ ├── yinxian.gif │ │ ├── yiwen.gif │ │ ├── youhengheng.gif │ │ ├── youling.gif │ │ ├── yun.gif │ │ ├── zaijian.gif │ │ ├── zhayanjian.gif │ │ ├── zhemo.gif │ │ ├── zhouma.gif │ │ ├── zhuakuang.gif │ │ └── zuohengheng.gif ├── favicon.ico ├── forum.html ├── forum │ └── partner-invite.html ├── images │ ├── goods │ │ ├── jd.svg │ │ ├── pdd.svg │ │ ├── taobao.svg │ │ ├── tmall.svg │ │ └── youzan.svg │ └── groups │ │ ├── group-1.svg │ │ ├── group-10.svg │ │ └── group-7.svg ├── index.html ├── index.php ├── invite.html ├── join.html ├── js │ └── cos-document-preview-sdk-v0.1.1.js ├── message.html ├── modify │ └── paypwd.html ├── my.html ├── my │ ├── block.html │ ├── buy.html │ ├── collect.html │ ├── draft.html │ ├── edit.html │ ├── edit │ │ ├── additional-info.html │ │ ├── find-paypwd.html │ │ ├── mobile.html │ │ ├── paypwd.html │ │ ├── pwd.html │ │ ├── reset-paypwd.html │ │ └── username.html │ ├── fans.html │ ├── follows.html │ ├── index.html │ ├── like.html │ ├── notice.html │ ├── others.html │ └── renew.html ├── no-install.html ├── pay │ └── middle.html ├── redpacket.png ├── render-error.html ├── search.html ├── search │ ├── index.html │ ├── result-post.html │ ├── result-topic.html │ ├── result-user.html │ └── result.html ├── static-admin │ ├── css │ │ ├── 0.2e979fafc3f1e43366fe.css │ │ ├── 1.dd554be527a0657efa5e.css │ │ ├── 10.b3e4eec8c2014030e5eb.css │ │ ├── 13.e05e94e8e96d259b09b8.css │ │ ├── 14.0fd2a7eef97c24183f3b.css │ │ ├── 2.b52d94575dabbbc6f63b.css │ │ ├── 21.f3af6cab2ef9bffc2f8d.css │ │ ├── 23.b3e4eec8c2014030e5eb.css │ │ ├── 24.b3e4eec8c2014030e5eb.css │ │ ├── 25.b3e4eec8c2014030e5eb.css │ │ ├── 26.b3e4eec8c2014030e5eb.css │ │ ├── 27.b3e4eec8c2014030e5eb.css │ │ ├── 28.2d3fec702b529eda5745.css │ │ ├── 29.050efcbd3cd850643b26.css │ │ ├── 3.7954e00bc4071b12de5b.css │ │ ├── 30.208d96a6ff33e72d5352.css │ │ ├── 32.8d37928e840be5f71da4.css │ │ ├── 4.ed6c5df3617eafb60ee0.css │ │ ├── 6.a52d7cee871a30b44eba.css │ │ ├── 7.312ace062426fc5b5247.css │ │ ├── 8.e05e94e8e96d259b09b8.css │ │ ├── 9.b3e4eec8c2014030e5eb.css │ │ ├── admin.css │ │ ├── admin │ │ │ ├── discuzQfont.css │ │ │ └── discuzQfonts.css │ │ ├── discuzQfont.css │ │ ├── iconfont │ │ │ ├── demo.css │ │ │ ├── demo_index.html │ │ │ ├── iconfont.css │ │ │ ├── iconfont.js │ │ │ ├── iconfont.json │ │ │ ├── iconfont.ttf │ │ │ ├── iconfont.woff │ │ │ └── iconfont.woff2 │ │ ├── reset.css │ │ └── vant-icon.css │ ├── font │ │ ├── admin │ │ │ ├── discuzQ.eot │ │ │ ├── discuzQ.svg │ │ │ ├── discuzQ.ttf │ │ │ ├── discuzQ.woff │ │ │ └── discuzQ.woff2 │ │ ├── discuzQ.eot │ │ ├── discuzQ.svg │ │ ├── discuzQ.ttf │ │ ├── discuzQ.woff │ │ ├── discuzQ.woff2 │ │ └── vant │ │ │ ├── vant-icon.ttf │ │ │ ├── vant-icon.woff │ │ │ └── vant-icon.woff2 │ ├── fonts │ │ ├── discuzQ.3155eca.eot │ │ ├── discuzQ.708468f.ttf │ │ ├── element-icons.535877f.woff │ │ └── element-icons.732389d.ttf │ ├── images │ │ ├── add.svg │ │ ├── admin-logo-x2.png │ │ ├── admin-logo.png │ │ ├── authIcon.svg │ │ ├── expre.png │ │ ├── icon-192.png │ │ ├── import.svg │ │ ├── logo.png │ │ ├── noavatar.gif │ │ ├── shareKnow.png │ │ ├── sharePoint.png │ │ ├── theme_blue.jpg │ │ ├── theme_red.jpg │ │ ├── transcoding.png │ │ └── wxshare.png │ ├── img │ │ └── discuzQ.846b1e9.svg │ ├── js │ │ ├── 0.19c0269b4e6b4c0a1f89.js │ │ ├── 1.e77a00edf7c3fbf22475.js │ │ ├── 10.b49503a6e25bd379a572.js │ │ ├── 12.8ed71b6470ce5c686c80.js │ │ ├── 13.62ece156ffa3e1c51065.js │ │ ├── 14.b66363f9dfac2b575c18.js │ │ ├── 15.f7d45273d3246dd6007b.js │ │ ├── 16.58fb20b1b9657a3ab9c1.js │ │ ├── 17.4b7667d02081ec1cb508.js │ │ ├── 18.b9b2075e4f21e00bf353.js │ │ ├── 19.2de08058fc05d13a2ca9.js │ │ ├── 2.64cee660960f19047101.js │ │ ├── 20.afd93023399cd2ef3bbd.js │ │ ├── 21.0ae7fb32e7f2ab3196a6.js │ │ ├── 22.0417696cb48ab09bd5c5.js │ │ ├── 23.ead9c56e20400b1278a5.js │ │ ├── 24.ad4025ebd3a62cb62162.js │ │ ├── 25.10c0f7091291ff589cfb.js │ │ ├── 26.e4efb2fcba7183ea4027.js │ │ ├── 27.36c176f389639871b35d.js │ │ ├── 28.4cda7769c64fbc69c082.js │ │ ├── 29.427fce457bc6014774b0.js │ │ ├── 3.fb660d8f767aaf810894.js │ │ ├── 30.1122ccf26ee6635c833f.js │ │ ├── 31.56383333ef8ffeb24c71.js │ │ ├── 32.d3789d9fbf0e3d50577a.js │ │ ├── 33.e7df5ec0c81a0a7ebbd2.js │ │ ├── 34.1c94d583af14d1672989.js │ │ ├── 35.c2a5021497cfe25f32cb.js │ │ ├── 36.93a695b3dbbd14cce76d.js │ │ ├── 37.6c42028c450e8986cc22.js │ │ ├── 38.8eaa18fd111f4ec91523.js │ │ ├── 39.192f21cc6f71e07aaf0b.js │ │ ├── 4.c7fc650241f3b8f5482d.js │ │ ├── 40.15a07241a70553a64e09.js │ │ ├── 41.b1ecd86dd33c82de6cea.js │ │ ├── 42.ba7effc1761887f111fd.js │ │ ├── 43.4b7303a4103d76da7c3e.js │ │ ├── 44.7dda61273ab54c6dad33.js │ │ ├── 45.b89886bc301955a2d4e6.js │ │ ├── 46.b2a503f09286fab4cf65.js │ │ ├── 47.e94526cc62dbbeede82f.js │ │ ├── 48.94d108305de01308ac67.js │ │ ├── 49.e4a2350ffe3e4e24741d.js │ │ ├── 5.033f3b0ecc7071dab1c1.js │ │ ├── 50.8f0ae661a8e723a4f782.js │ │ ├── 51.591277dd074e62f29fce.js │ │ ├── 52.1573f6b45728ed33ff64.js │ │ ├── 53.b0844df3cdadaa288309.js │ │ ├── 54.d59c8d97f0ff3c9c6c26.js │ │ ├── 55.5b218d75e2789ae44a8a.js │ │ ├── 56.2882fb34dbef49134f33.js │ │ ├── 57.082b3f8c73554d70088c.js │ │ ├── 58.0d294da83d242cffbf81.js │ │ ├── 59.c41525d627982f1fb277.js │ │ ├── 6.07e9710a26e28b39272a.js │ │ ├── 60.5fcd9337c530a82320b7.js │ │ ├── 61.7740414924f80a3aac6f.js │ │ ├── 62.220aff22833a700913cc.js │ │ ├── 63.c91e026b1b72dc462427.js │ │ ├── 64.458238a16309b8b2247e.js │ │ ├── 65.57bd6a416140f3ef8935.js │ │ ├── 66.682b70203fec66470da6.js │ │ ├── 67.f0c73b2f9b5de17464ea.js │ │ ├── 7.a58da2faf61f75f8cf4f.js │ │ ├── 8.396a468fa50a92f4bf4f.js │ │ ├── 9.4bcc942b3d7e2c28c7bf.js │ │ ├── admin.js │ │ ├── admin.js.LICENSE.txt │ │ ├── hwh5-cloudonline.js │ │ ├── jweixin-1.4.0.js │ │ └── rem.js │ └── languages │ │ ├── en.json │ │ └── zh.json ├── thread │ ├── [id].html │ ├── comment │ │ └── [id].html │ └── post.html ├── topic.html ├── topic │ └── topic-detail │ │ └── [id].html ├── user │ ├── [id].html │ ├── agreement.html │ ├── bind-nickname.html │ ├── bind-phone.html │ ├── find-password.html │ ├── login.html │ ├── phone-login.html │ ├── rebind.html │ ├── register.html │ ├── reset-password.html │ ├── status.html │ ├── supplementary.html │ ├── username-login.html │ ├── wx-auth.html │ ├── wx-authorization.html │ ├── wx-bind-phone.html │ ├── wx-bind-qrcode.html │ ├── wx-bind-username.html │ ├── wx-bind.html │ ├── wx-login.html │ ├── wx-rebind-action.html │ └── wx-select.html ├── wallet.html └── wallet │ ├── frozen.html │ └── withdrawal.html ├── readme.md ├── resources ├── .DS_Store ├── frame │ ├── .babelrc │ ├── .editorconfig │ ├── .gitignore │ ├── .postcss.js │ ├── .postcssrc.js │ ├── README.md │ ├── admin.html │ ├── build │ │ ├── build.admin.js │ │ ├── build.h5.js │ │ ├── build.js │ │ ├── check-versions.js │ │ ├── conditional.loader.config.js │ │ ├── utils.js │ │ ├── vue-loader.conf.js │ │ ├── webpack.admin.prd.conf.js │ │ ├── webpack.base.conf.js │ │ ├── webpack.dev.conf.js │ │ ├── webpack.h5.dev.conf.js │ │ ├── webpack.h5.prd.conf.js │ │ └── webpack.prod.conf.js │ ├── config │ │ ├── apiConfig.js │ │ ├── appConfig.js │ │ ├── appConfigInit.js │ │ ├── dev.env.js │ │ ├── index.js │ │ ├── languageConfig.js │ │ └── prod.env.js │ ├── doc │ │ ├── .htaccess │ │ ├── MANY-SCENARIOS.md │ │ ├── nginx.conf │ │ └── seo.md │ ├── index.html │ ├── nuxt.config.js │ ├── package.json │ ├── src │ │ ├── admin-main.js │ │ ├── admin │ │ │ ├── controllers │ │ │ │ └── site │ │ │ │ │ ├── IndexCon.js │ │ │ │ │ ├── common │ │ │ │ │ ├── card │ │ │ │ │ │ └── cardCon.js │ │ │ │ │ ├── cont │ │ │ │ │ │ └── contArrangeCon.js │ │ │ │ │ ├── page │ │ │ │ │ │ └── pageCon.js │ │ │ │ │ └── table │ │ │ │ │ │ └── tableContAddCon.js │ │ │ │ │ ├── cont │ │ │ │ │ ├── contClassCon.js │ │ │ │ │ ├── contClassConfigure.js │ │ │ │ │ ├── contManage │ │ │ │ │ │ ├── contManageCon.js │ │ │ │ │ │ ├── contManageSearchCon.js │ │ │ │ │ │ └── latestReplyCon.js │ │ │ │ │ ├── contModeration │ │ │ │ │ │ ├── contReviewCon.js │ │ │ │ │ │ └── replyReviewCon.js │ │ │ │ │ ├── recycleBin │ │ │ │ │ │ ├── recycleBinCon.js │ │ │ │ │ │ └── recycleBinReplyCon.js │ │ │ │ │ ├── reportManage │ │ │ │ │ │ ├── reportManageCon.js │ │ │ │ │ │ └── reportProcessedCon.js │ │ │ │ │ └── topicManagement │ │ │ │ │ │ └── topicManagementCon.js │ │ │ │ │ ├── finance │ │ │ │ │ ├── financialStatisticsCon.js │ │ │ │ │ ├── fundDetailsCon.js │ │ │ │ │ ├── orderRecordCon.js │ │ │ │ │ └── withdrawMange │ │ │ │ │ │ ├── withdrawalApplicationCon.js │ │ │ │ │ │ └── withdrawalSettingCon.js │ │ │ │ │ ├── global │ │ │ │ │ ├── annexSetCon.js │ │ │ │ │ ├── contentFilteringSet │ │ │ │ │ │ ├── addSensitiveWordsCon.js │ │ │ │ │ │ └── contentFilteringSetCon.js │ │ │ │ │ ├── indexCon.js │ │ │ │ │ ├── notice │ │ │ │ │ │ ├── WxNoticeSetCon.js │ │ │ │ │ │ ├── noticeConfigureCon.js │ │ │ │ │ │ └── systemNoticeSetCon.js │ │ │ │ │ ├── operationLogCon.js │ │ │ │ │ ├── otherService │ │ │ │ │ │ ├── otherServiceKeySetCon.js │ │ │ │ │ │ └── otherServiceSetCon.js │ │ │ │ │ ├── paySet │ │ │ │ │ │ ├── payConfigWxCon.js │ │ │ │ │ │ └── paySetCon.js │ │ │ │ │ ├── registrationRelated │ │ │ │ │ │ └── relatedConfiguration.js │ │ │ │ │ ├── roleManageSet │ │ │ │ │ │ ├── roleManagePermissionEdititingCon.js │ │ │ │ │ │ └── roleManageSetCon.js │ │ │ │ │ ├── signUpSetCon.js │ │ │ │ │ ├── siteSet │ │ │ │ │ │ ├── siteFunctionSetCon.js │ │ │ │ │ │ ├── siteSortSetCon.js │ │ │ │ │ │ └── siteThemeCon.js │ │ │ │ │ ├── siteSetCon.js │ │ │ │ │ ├── tencentCloundSet │ │ │ │ │ │ ├── tencentCloudConfigCloudCon.js │ │ │ │ │ │ ├── tencentCloudConfigCodeCon.js │ │ │ │ │ │ ├── tencentCloudConfigCosCon.js │ │ │ │ │ │ ├── tencentCloudConfigSmsCon.js │ │ │ │ │ │ ├── tencentCloudConfigVodCon.js │ │ │ │ │ │ └── tencentCloudSetCon.js │ │ │ │ │ ├── userManageSetCon.js │ │ │ │ │ ├── waterMarkSetCon.js │ │ │ │ │ └── worthMentioningSet │ │ │ │ │ │ ├── worthMentioningConfigAppletsCon.js │ │ │ │ │ │ ├── worthMentioningConfigH5WxCon.js │ │ │ │ │ │ ├── worthMentioningConfigPcWxCon.js │ │ │ │ │ │ ├── worthMentioningConfigUcenter.js │ │ │ │ │ │ └── worthMentioningSetCon.js │ │ │ │ │ ├── home │ │ │ │ │ ├── dataPanelCon.js │ │ │ │ │ └── homeCon.js │ │ │ │ │ ├── login │ │ │ │ │ └── loginCon.js │ │ │ │ │ └── user │ │ │ │ │ ├── userMange │ │ │ │ │ ├── userDetailsCon.js │ │ │ │ │ ├── userManageCon.js │ │ │ │ │ ├── userSearchListCon.js │ │ │ │ │ └── walletCon.js │ │ │ │ │ ├── userReviewCon.js │ │ │ │ │ └── userRol │ │ │ │ │ ├── rolPermissionCon.js │ │ │ │ │ └── userRolCon.js │ │ │ ├── scss │ │ │ │ ├── site │ │ │ │ │ ├── common │ │ │ │ │ │ ├── _index.scss │ │ │ │ │ │ ├── _var.scss │ │ │ │ │ │ ├── element-variables.scss │ │ │ │ │ │ └── icon.scss │ │ │ │ │ └── module │ │ │ │ │ │ ├── common │ │ │ │ │ │ ├── card │ │ │ │ │ │ │ ├── card.scss │ │ │ │ │ │ │ └── cardRow.scss │ │ │ │ │ │ ├── cont │ │ │ │ │ │ │ └── contArrage.scss │ │ │ │ │ │ ├── page │ │ │ │ │ │ │ └── page.scss │ │ │ │ │ │ └── table │ │ │ │ │ │ │ └── tableContAdd.scss │ │ │ │ │ │ ├── contStyle.scss │ │ │ │ │ │ ├── financeStyle.scss │ │ │ │ │ │ ├── globalStyle.scss │ │ │ │ │ │ ├── homeStyle.scss │ │ │ │ │ │ ├── indexView.scss │ │ │ │ │ │ ├── loginStyle.scss │ │ │ │ │ │ └── userStyle.scss │ │ │ │ └── systemCommon.scss │ │ │ ├── store │ │ │ │ ├── admin │ │ │ │ │ ├── actions.js │ │ │ │ │ ├── getters.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── mutations.js │ │ │ │ ├── index.js │ │ │ │ ├── login │ │ │ │ │ ├── actions.js │ │ │ │ │ ├── getters.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── mutations.js │ │ │ │ ├── mutationTypes.js │ │ │ │ └── site │ │ │ │ │ ├── actions.js │ │ │ │ │ ├── getters.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── mutations.js │ │ │ ├── view │ │ │ │ └── site │ │ │ │ │ ├── IndexView.vue │ │ │ │ │ ├── common │ │ │ │ │ ├── card │ │ │ │ │ │ ├── card.vue │ │ │ │ │ │ └── cardRow.vue │ │ │ │ │ ├── cont │ │ │ │ │ │ └── contArrange.vue │ │ │ │ │ ├── page │ │ │ │ │ │ └── page.vue │ │ │ │ │ └── table │ │ │ │ │ │ ├── tableContAdd.vue │ │ │ │ │ │ └── tableNoList.vue │ │ │ │ │ ├── cont │ │ │ │ │ ├── contClassConfigureView.vue │ │ │ │ │ ├── contClassPayView.vue │ │ │ │ │ ├── contClassView.vue │ │ │ │ │ ├── contManages │ │ │ │ │ │ ├── contManageSearchView.vue │ │ │ │ │ │ ├── contManageView.vue │ │ │ │ │ │ └── latestReplyView.vue │ │ │ │ │ ├── contModeration │ │ │ │ │ │ ├── contReviewView.vue │ │ │ │ │ │ └── replyReviewView.vue │ │ │ │ │ ├── recycleBin │ │ │ │ │ │ ├── recycleBinReplyView.vue │ │ │ │ │ │ └── recycleBinView.vue │ │ │ │ │ ├── reportManage │ │ │ │ │ │ ├── reportManageView.vue │ │ │ │ │ │ └── reportProcessedView.vue │ │ │ │ │ └── topicManagement │ │ │ │ │ │ └── topicManagementView.vue │ │ │ │ │ ├── finance │ │ │ │ │ ├── financialStatistics.vue │ │ │ │ │ ├── fundDetailsView.vue │ │ │ │ │ ├── orderRecordView.vue │ │ │ │ │ └── withdrawMange │ │ │ │ │ │ ├── withdrawalApplicationView.vue │ │ │ │ │ │ └── withdrawalSettingView.vue │ │ │ │ │ ├── global │ │ │ │ │ ├── annexSetView.vue │ │ │ │ │ ├── contentFilteringSet │ │ │ │ │ │ ├── addSensitiveWordsView.vue │ │ │ │ │ │ └── contentFilteringSetView.vue │ │ │ │ │ ├── notice │ │ │ │ │ │ ├── WxNoticeSetView.vue │ │ │ │ │ │ ├── noticeConfigureView.vue │ │ │ │ │ │ └── systemNoticeSetView.vue │ │ │ │ │ ├── operationLogView.vue │ │ │ │ │ ├── otherService │ │ │ │ │ │ ├── otherServiceKeySet.vue │ │ │ │ │ │ └── otherServiceSet.vue │ │ │ │ │ ├── paySet │ │ │ │ │ │ ├── payConfigWxView.vue │ │ │ │ │ │ └── paySetView.vue │ │ │ │ │ ├── registrationLoginPage │ │ │ │ │ │ ├── configUrationInformationView.vue │ │ │ │ │ │ └── expandPageView.vue │ │ │ │ │ ├── roleManagesSet │ │ │ │ │ │ ├── roleManagePermissionEditingView.vue │ │ │ │ │ │ └── roleManageSetView.vue │ │ │ │ │ ├── signUpSetView.vue │ │ │ │ │ ├── siteSet │ │ │ │ │ │ ├── siteFunctionSetView.vue │ │ │ │ │ │ ├── siteSortSetView.vue │ │ │ │ │ │ └── siteThemeView.vue │ │ │ │ │ ├── siteSetView.vue │ │ │ │ │ ├── tencentCloudConfig │ │ │ │ │ │ ├── tencentCloudConfigCloudView.vue │ │ │ │ │ │ ├── tencentCloudConfigCodeView.vue │ │ │ │ │ │ ├── tencentCloudConfigCosView.vue │ │ │ │ │ │ ├── tencentCloudConfigSmsView.vue │ │ │ │ │ │ ├── tencentCloudConfigVodView.vue │ │ │ │ │ │ └── tencentCloudSetView.vue │ │ │ │ │ ├── userManageSetView.vue │ │ │ │ │ ├── waterMarkSetView.vue │ │ │ │ │ └── worthMentioningSet │ │ │ │ │ │ ├── worthMentioningConfigAppletsView.vue │ │ │ │ │ │ ├── worthMentioningConfigH5WxView.vue │ │ │ │ │ │ ├── worthMentioningConfigPcWxView.vue │ │ │ │ │ │ ├── worthMentioningConfigUcenter.vue │ │ │ │ │ │ └── worthMentioningSetView.vue │ │ │ │ │ ├── home │ │ │ │ │ ├── dataPanelView.vue │ │ │ │ │ └── homeView.vue │ │ │ │ │ ├── login │ │ │ │ │ └── loginView.vue │ │ │ │ │ └── user │ │ │ │ │ ├── userManage │ │ │ │ │ ├── userDetailsView.vue │ │ │ │ │ ├── userManageView.vue │ │ │ │ │ ├── userSearchList.vue │ │ │ │ │ └── walletView.vue │ │ │ │ │ ├── userReviewView.vue │ │ │ │ │ └── userRol │ │ │ │ │ ├── rolPermissionPayView.vue │ │ │ │ │ ├── rolPermissionView.vue │ │ │ │ │ └── userRolView.vue │ │ │ └── viewConfig │ │ │ │ ├── search.js │ │ │ │ ├── tpl.js │ │ │ │ └── tplConfig.js │ │ ├── common │ │ │ ├── lang │ │ │ │ ├── en.js │ │ │ │ └── zh.js │ │ │ ├── textarea.js │ │ │ ├── urlGet.js │ │ │ └── utils │ │ │ │ ├── computed.js │ │ │ │ └── correctImg.js │ │ ├── extend │ │ │ └── viewBase │ │ │ │ ├── baseSearch.js │ │ │ │ ├── baseTpl.js │ │ │ │ ├── elementuiInit.js │ │ │ │ ├── vantuiInit.js │ │ │ │ └── vue-auth-image.js │ │ ├── h5-main.js │ │ └── helpers │ │ │ ├── axiosHelper.js │ │ │ ├── commonHelper.js │ │ │ └── webDbHelper.js │ ├── static │ │ ├── .gitkeep │ │ ├── css │ │ │ ├── admin │ │ │ │ └── discuzQfont.css │ │ │ ├── discuzQfont.css │ │ │ ├── reset.css │ │ │ └── vant-icon.css │ │ ├── font │ │ │ ├── admin │ │ │ │ ├── discuzQ.eot │ │ │ │ ├── discuzQ.svg │ │ │ │ ├── discuzQ.ttf │ │ │ │ ├── discuzQ.woff │ │ │ │ └── discuzQ.woff2 │ │ │ ├── discuzQ.eot │ │ │ ├── discuzQ.svg │ │ │ ├── discuzQ.ttf │ │ │ ├── discuzQ.woff │ │ │ ├── discuzQ.woff2 │ │ │ └── vant │ │ │ │ ├── vant-icon.ttf │ │ │ │ ├── vant-icon.woff │ │ │ │ └── vant-icon.woff2 │ │ ├── images │ │ │ ├── add.svg │ │ │ ├── admin-logo-x2.png │ │ │ ├── admin-logo.png │ │ │ ├── authIcon.svg │ │ │ ├── expre.png │ │ │ ├── icon-192.png │ │ │ ├── logo.png │ │ │ ├── noavatar.gif │ │ │ ├── shareKnow.png │ │ │ ├── sharePoint.png │ │ │ ├── theme_blue.jpg │ │ │ ├── theme_red.jpg │ │ │ ├── transcoding.png │ │ │ └── wxshare.png │ │ ├── js │ │ │ ├── hwh5-cloudonline.js │ │ │ ├── jweixin-1.4.0.js │ │ │ └── rem.js │ │ └── languages │ │ │ ├── en.json │ │ │ └── zh.json │ └── yarn.lock ├── images │ └── watermark.png ├── lang │ ├── en │ │ └── command.php │ └── zh-CN │ │ ├── command.php │ │ ├── core.php │ │ ├── login.php │ │ ├── order.php │ │ ├── post.php │ │ ├── redpacket.php │ │ ├── setting.php │ │ ├── statistic.php │ │ ├── template_variables.php │ │ ├── trade.php │ │ ├── user.php │ │ ├── usersExport.php │ │ ├── validation.php │ │ ├── wallet.php │ │ └── wechat.php └── views │ ├── app.blade.php │ ├── errors │ ├── 401.blade.php │ ├── 403.blade.php │ ├── 404.blade.php │ ├── 419.blade.php │ ├── 429.blade.php │ ├── 500.blade.php │ ├── 503.blade.php │ └── minimal.blade.php │ └── install │ ├── app.blade.php │ ├── install.blade.php │ └── problems.blade.php ├── routes ├── api.php ├── apiadmin.php ├── apiv3.php └── web.php └── storage ├── app ├── .gitignore └── public │ └── .gitignore ├── cache └── .gitignore ├── cert └── .gitignore ├── formatter └── .gitignore ├── locale └── .gitignore ├── logs └── .gitignore ├── public └── exports │ └── .gitignore ├── statistics └── .gitignore ├── tmp └── .gitignore └── views └── .gitignore /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.yml] 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /framework 2 | /vendor 3 | /composer.lock 4 | /.idea 5 | /config/config.php 6 | /node_modules 7 | .php_cs.cache 8 | /public/s9e.js 9 | /public/storage 10 | /storage/install.lock 11 | /public/docs 12 | /public/api-docs 13 | /public/manual-h5 14 | /public/manual-admin 15 | -------------------------------------------------------------------------------- /app/Api/Controller/Crawler/CheckCrawlerProcessController.php: -------------------------------------------------------------------------------- 1 | user->isAdmin(); 17 | } 18 | 19 | public function main() 20 | { 21 | $publicPath = public_path(); 22 | $lockPath = $publicPath . DIRECTORY_SEPARATOR . 'crawlerSplQueueLock.conf'; 23 | $lockFileContent = $this->getLockFileContent($lockPath); 24 | $this->outPut(ResponseCode::SUCCESS, '', $lockFileContent); 25 | } 26 | } -------------------------------------------------------------------------------- /app/Api/Controller/EmojiV3/ListAdminEmojiController.php: -------------------------------------------------------------------------------- 1 | user->isAdmin(); 16 | } 17 | 18 | public function main() 19 | { 20 | $emojis = Emoji::getEmojiListForController($this->request); 21 | $result = $this->camelData($emojis); 22 | $this->outPut(ResponseCode::SUCCESS, '', $result); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Api/Controller/NotificationV3/DeleteNotificationV2Controller.php: -------------------------------------------------------------------------------- 1 | user; 16 | if ($actor->isGuest()) { 17 | $this->outPut(ResponseCode::JUMP_TO_LOGIN); 18 | } 19 | return true; 20 | } 21 | 22 | public function main() 23 | { 24 | $ids = explode(',', $this->inPut('id')); 25 | 26 | $user = $this->user; 27 | 28 | $deleted = DatabaseNotification::query() 29 | ->whereIn('id', $ids) 30 | ->where('notifiable_id', $user->id) 31 | ->forceDelete(); 32 | 33 | $this->outPut($deleted > 0 ? ResponseCode::SUCCESS : ResponseCode::INVALID_PARAMETER); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Api/Controller/TestController.php: -------------------------------------------------------------------------------- 1 | (bool)$model->succeed, 29 | 'error' => $model->error 30 | ]; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Api/Serializer/UserSignInSerializer.php: -------------------------------------------------------------------------------- 1 | toArray(); 31 | } 32 | return $model; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Common/DzqConst.php: -------------------------------------------------------------------------------- 1 | cd /path/to/discuz && 命令名称 8 | 9 | ## 脚本列表 10 | 11 | | 命令名称 | 版本 | 描述 | 12 | | :------------------------------------- | :----| :------------------- | 13 | | php disco upgrade:category-permission | | 初始化分类权限 | 14 | | php disco upgrade:videoSize | | 初始化转码成功的视频宽高、时长 | 15 | | php disco upgrade:noticeAdd {--i|init} | | 初始化/新增通知类型数据格式 | 16 | | php disco upgrade:avatar | | 更新用户头像信息 | 17 | | php disco upgrade:ordersExpiredAt | | 初始化付费用户注册订单过期时间 | 18 | | php disco upgrade:postContent | | 初始化帖子内容,把原内容转为块编辑器的json数据。需要在迁移之前执行。 | 19 | | php disco upgrade:split-permissions | | 分类权限拆分,处理历史权限。 | 20 | | php disco upgrade:noticeIteration | | 更新迭代通知数据 | 21 | -------------------------------------------------------------------------------- /app/Console/Commands/Upgrades/UpdateAvatarData.php: -------------------------------------------------------------------------------- 1 | timestamps = false; 33 | 34 | $user->newQuery() 35 | ->where('avatar', 'like', 'https://%') 36 | ->update(['avatar' => User::query()->raw('CONCAT(\'cos://\', id, \'.png\')')]); 37 | 38 | $this->info('success'); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/Console/stubs/controller.stub: -------------------------------------------------------------------------------- 1 | bus = $bus; 35 | } 36 | 37 | protected function data(ServerRequestInterface $request, Document $document) 38 | { 39 | // TODO: Implement data() method. 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Events/DenyUsers/Saved.php: -------------------------------------------------------------------------------- 1 | denyUser = $denyUser; 30 | $this->actor = $actor; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Events/Setting/Saved.php: -------------------------------------------------------------------------------- 1 | settings = $settings; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Events/Setting/Saving.php: -------------------------------------------------------------------------------- 1 | settings = &$settings; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Events/Thread/Updated.php: -------------------------------------------------------------------------------- 1 | thread = $thread; 35 | $this->actor = $actor; 36 | $this->data = $data; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Events/Users/AdminLogind.php: -------------------------------------------------------------------------------- 1 | user = $user; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Events/Users/ChangeUserStatus.php: -------------------------------------------------------------------------------- 1 | user = $user; 32 | $this->refuse = $refuse; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Events/Users/Logind.php: -------------------------------------------------------------------------------- 1 | user = $user; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Events/Users/Logining.php: -------------------------------------------------------------------------------- 1 | user = $user; 34 | $this->username = $username; 35 | $this->password = $password; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Events/Users/RefreshTokend.php: -------------------------------------------------------------------------------- 1 | tokenResponse = $tokenResponse; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/Events/Users/RegisteredCheck.php: -------------------------------------------------------------------------------- 1 | user = $user; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Exceptions/CategoryNotFoundException.php: -------------------------------------------------------------------------------- 1 | columnMap = trans('usersExport'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Listeners/Wallet/CashReviewSubscriber.php: -------------------------------------------------------------------------------- 1 | listen(Cash::class, CashTransfer::class); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Models/AttachmentShare.php: -------------------------------------------------------------------------------- 1 | setTable($table); 17 | } 18 | return $ret; 19 | } 20 | 21 | public function setTable($table) 22 | { 23 | static::$_table = $table; 24 | } 25 | 26 | public function getTable() 27 | { 28 | return static::$_table; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Models/OrderChildren.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/Models/UsernameChange.php: -------------------------------------------------------------------------------- 1 | setIdentifier($identifier); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Traits/RequestContainerTrait.php: -------------------------------------------------------------------------------- 1 | instance('request', $request); 28 | app()->alias('request', ServerRequestInterface::class); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/migrations/2020_07_22_180923_add_duration_to_thread_video.php: -------------------------------------------------------------------------------- 1 | schema()->table('thread_video', function (Blueprint $table) { 16 | $table->unsignedDecimal('duration', 10, 2)->default(0)->after('width')->comment('视频时长'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('thread_video', function (Blueprint $table) { 28 | $table->dropColumn('duration'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_07_24_145712_add_expired_at_to_orders.php: -------------------------------------------------------------------------------- 1 | schema()->table('orders', function (Blueprint $table) { 16 | $table->dateTime('expired_at')->nullable()->after('is_anonymous')->comment('付费注册过期时长'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('orders', function (Blueprint $table) { 28 | $table->dropColumn('expired_at'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_08_03_183433_change_scale_to_groups.php: -------------------------------------------------------------------------------- 1 | schema()->table('groups', function (Blueprint $table) { 16 | $table->float('scale', 3, 1)->default(0)->comment('分成比例'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('groups', function (Blueprint $table) { 28 | $table->dropColumn('scale'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_08_05_114608_add_category_id_index_to_threads.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->index('category_id', 'idx_category_id'); 17 | $table->index('is_sticky', 'idx_is_sticky'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('threads', function (Blueprint $table) { 29 | $table->dropIndex('idx_category_id'); 30 | $table->dropIndex('idx_is_sticky'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_08_07_174108_add_code_unique_to_invites.php: -------------------------------------------------------------------------------- 1 | schema()->table('invites', function (Blueprint $table) { 16 | $table->unique('code', 'uk_code'); 17 | $table->index('user_id', 'idx_user_id'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('invites', function (Blueprint $table) { 29 | $table->dropIndex('uk_code'); 30 | $table->dropIndex('idx_user_id'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_08_12_142541_create_user_ucenters.php: -------------------------------------------------------------------------------- 1 | schema()->create('user_ucenters', function (Blueprint $table) { 16 | $table->id(); 17 | $table->unsignedInteger('user_id')->index()->default(0)->comment('用户 id'); 18 | $table->unsignedInteger('ucenter_id')->index()->default(0)->default(0)->comment('uc用户 id'); 19 | $table->dateTime('created_at')->comment('创建时间'); 20 | $table->dateTime('updated_at')->comment('更新时间'); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | $this->schema()->dropIfExists('user_ucenters'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_08_12_161140_alert_add_recommended_to_topics.php: -------------------------------------------------------------------------------- 1 | schema()->table('topics', function (Blueprint $table) { 16 | $table->unsignedTinyInteger('recommended')->default(0)->comment('是否推荐'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('topics', function (Blueprint $table) { 28 | $table->dropColumn('recommended'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_08_12_161154_alert_add_recommended_at_to_topics.php: -------------------------------------------------------------------------------- 1 | schema()->table('topics', function (Blueprint $table) { 16 | $table->dateTime('recommended_at')->nullable()->comment('推荐时间'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('topics', function (Blueprint $table) { 28 | $table->dropColumn('recommended_at'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_09_05_122736_add_question_id_to_user_wallet_logs.php: -------------------------------------------------------------------------------- 1 | schema()->table('user_wallet_logs', function (Blueprint $table) { 16 | $table->unsignedBigInteger('question_id')->default(0)->after('user_wallet_cash_id')->comment('关联问答记录 id'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('user_wallet_logs', function (Blueprint $table) { 28 | $table->dropColumn('question_id'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_09_08_111818_add_cash_type_to_user_wallet_cash.php: -------------------------------------------------------------------------------- 1 | schema()->table('user_wallet_cash', function (Blueprint $table) { 16 | $table->tinyInteger('cash_type')->default(1)->after('cash_status')->comment('提现转账类型:0:人工转账, 1:企业零钱付款'); 17 | $table->string('cash_mobile', 20)->default('')->after('cash_status')->comment('提现到账手机号码'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('user_wallet_cash', function (Blueprint $table) { 29 | $table->dropColumn('cash_type'); 30 | $table->dropColumn('cash_mobile'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_09_09_184716_add_third_party_to_orders.php: -------------------------------------------------------------------------------- 1 | schema()->table('orders', function (Blueprint $table) { 16 | $table->unsignedBigInteger('third_party_id')->nullable()->after('payee_id')->comment('第三者收益人 id'); 17 | $table->decimal('third_party_amount')->unsigned()->default(0)->after('author_amount')->comment('第三者收益金额'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('orders', function (Blueprint $table) { 29 | $table->dropColumn('third_party_id'); 30 | $table->dropColumn('third_party_amount'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_09_09_203924_add_foreign_keys_to_group_permission.php: -------------------------------------------------------------------------------- 1 | whereNotIn('group_id', Group::query()->pluck('id'))->delete(); 19 | 20 | $this->schema()->table('group_permission', function (Blueprint $table) { 21 | $table->foreign('group_id')->references('id')->on('groups')->onDelete('cascade'); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | * 28 | * @return void 29 | */ 30 | public function down() 31 | { 32 | $this->schema()->table('group_permission', function (Blueprint $table) { 33 | $table->dropForeign(['group_id']); 34 | }); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2020_09_14_150620_add_is_site_to_threads.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->unsignedTinyInteger('is_site')->default(0)->comment('是否推荐到首页(0否 1是)'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('threads', function (Blueprint $table) { 28 | $table->dropColumn('is_site'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_09_21_184613_add_attachment_price_to_threads.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->decimal('attachment_price')->unsigned()->default(0)->after('price')->comment('附件价格'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('threads', function (Blueprint $table) { 28 | $table->dropColumn('attachment_price'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_09_25_164242_add_delete_at_to_dialog.php: -------------------------------------------------------------------------------- 1 | schema()->table('dialog', function (Blueprint $table) { 16 | $table->dateTime('sender_deleted_at')->nullable()->comment('发送人删除时间'); 17 | $table->dateTime('recipient_deleted_at')->nullable()->comment('收信人删除时间'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('dialog', function (Blueprint $table) { 29 | $table->dropColumn('sender_deleted_at'); 30 | $table->dropColumn('recipient_deleted_at'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_09_27_175432_add_index_to_dialog_message.php: -------------------------------------------------------------------------------- 1 | schema()->table('dialog_message', function (Blueprint $table) { 16 | $table->index('dialog_id', 'idx_dialog_id'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('dialog_message', function (Blueprint $table) { 28 | // 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_09_27_184315_add_question_count_to_users.php: -------------------------------------------------------------------------------- 1 | schema()->table('users', function (Blueprint $table) { 16 | $table->unsignedInteger('question_count')->default(0)->after('liked_count')->comment('提问数'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('users', function (Blueprint $table) { 28 | $table->dropColumn('question_count'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_10_12_160100_add_answered_at_to_questions.php: -------------------------------------------------------------------------------- 1 | schema()->table('questions', function (Blueprint $table) { 16 | $table->dateTime('answered_at')->nullable()->comment('回答时间'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('questions', function (Blueprint $table) { 28 | $table->dropColumn('answered_at'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_10_21_152510_add_signature_and_dialog_to_stop_words.php: -------------------------------------------------------------------------------- 1 | schema()->table('stop_words', function (Blueprint $table) { 16 | $table->string('signature', 10)->default('')->after('username')->comment('用户签名处理方式'); 17 | $table->string('dialog', 10)->default('')->after('signature')->comment('短消息处理方式'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('stop_words', function (Blueprint $table) { 29 | $table->dropColumn('signature'); 30 | $table->dropColumn('dialog'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_10_26_135924_add_is_display_to_threads.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->tinyInteger('is_display')->default(1)->comment('是否显示 0否 1是'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('threads', function (Blueprint $table) { 28 | $table->dropColumn('is_display'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_10_26_141128_alter_thread_add_free_percent.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->unsignedFloat('free_words')->default(0)->comment('免费字数百分比')->change(); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('threads', function (Blueprint $table) { 28 | // 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_11_10_192530_add_some_index_to_user_wechats.php: -------------------------------------------------------------------------------- 1 | schema()->table('user_wechats', function (Blueprint $table) { 16 | $table->index('mp_openid', 'idx_mp_openid'); 17 | $table->index('dev_openid', 'idx_dev_openid'); 18 | $table->index('min_openid', 'idx_min_openid'); 19 | $table->index('unionid', 'idx_unionid'); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | $this->schema()->table('user_wechats', function (Blueprint $table) { 31 | // 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /database/migrations/2020_11_11_105024_change_price_to_post_goods.php: -------------------------------------------------------------------------------- 1 | schema()->table('post_goods', function (Blueprint $table) { 16 | $table->string('price')->default('')->comment('价格')->change(); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('post_goods', function (Blueprint $table) { 28 | $table->unsignedDecimal('price', 10, 2)->default(0)->comment('价格')->change(); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2020_12_15_174414_add_comment_ids_to_posts.php: -------------------------------------------------------------------------------- 1 | schema()->table('posts', function (Blueprint $table) { 16 | $table->unsignedBigInteger('comment_post_id')->nullable()->after('reply_user_id')->comment('评论回复 id'); 17 | $table->unsignedBigInteger('comment_user_id')->nullable()->after('comment_post_id')->comment('评论回复用户 id'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('posts', function (Blueprint $table) { 29 | $table->dropColumn('comment_post_id'); 30 | $table->dropColumn('comment_user_id'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2021_01_05_152234_add_reject_reason_to_users.php: -------------------------------------------------------------------------------- 1 | schema()->table('users', function (Blueprint $table) { 16 | $table->string('reject_reason', 100)->default('')->comment('审核拒绝原因')->after('register_reason'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('users', function (Blueprint $table) { 28 | 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_01_16_171411_add_parentid_to_categories.php: -------------------------------------------------------------------------------- 1 | schema()->table('categories', function (Blueprint $table) { 16 | $table->unsignedBigInteger('parentid')->default(0)->after('ip')->comment('所属一级分类的ID'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('categories', function (Blueprint $table) { 28 | $table->dropColumn('parentid'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_01_16_173911_add_post_id_to_orders.php: -------------------------------------------------------------------------------- 1 | schema()->table('orders', function (Blueprint $table) { 16 | $table->unsignedBigInteger('post_id')->default(0)->after('is_anonymous')->comment('关联的posts主键ID'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('orders', function (Blueprint $table) { 28 | $table->dropColumn('post_id'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_01_16_174811_add_is_red_packet_is_draft_to_threads.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->tinyInteger('is_red_packet')->unsigned()->default(0)->after('is_display')->comment('是否添加红包,0未添加,1添加'); 17 | $table->tinyInteger('is_draft')->unsigned()->default(0)->after('is_red_packet')->comment('是否为草稿,0不是,1是'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('threads', function (Blueprint $table) { 29 | $table->dropColumn('is_red_packet'); 30 | $table->dropColumn('is_draft'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2021_01_16_183511_add_thread_id_post_id_to_user_wallet_logs.php: -------------------------------------------------------------------------------- 1 | schema()->table('user_wallet_logs', function (Blueprint $table) { 16 | $table->unsignedBigInteger('thread_id')->nullable()->after('question_id')->comment('关联的threads主键ID'); 17 | $table->unsignedBigInteger('post_id')->nullable()->after('thread_id')->comment('关联的posts主键ID'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('user_wallet_logs', function (Blueprint $table) { 29 | $table->dropColumn('thread_id'); 30 | $table->dropColumn('post_id'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2021_01_27_000001_alter_bind_type_to_users.php: -------------------------------------------------------------------------------- 1 | schema()->table('users', function (Blueprint $table) { 16 | $table->tinyInteger('bind_type')->default(0)->comment('登录绑定类型;0:默认或微信;2:qq登录;'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('users', function (Blueprint $table) { 28 | $table->dropColumn('bind_type'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_02_03_173216_add_notice_id_to_notification_tpls.php: -------------------------------------------------------------------------------- 1 | schema()->table('notification_tpls', function (Blueprint $table) { 16 | $table->string('notice_id')->nullable()->after('id')->comment('模板唯一标识ID'); 17 | // index 18 | $table->unique('notice_id', 'uk_notice_id'); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | * 25 | * @return void 26 | */ 27 | public function down() 28 | { 29 | $this->schema()->table('notification_tpls', function (Blueprint $table) { 30 | // index 31 | $table->dropUnique('uk_notice_id'); 32 | $table->dropColumn('notice_id'); 33 | }); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /database/migrations/2021_02_25_110000_alter_content_to_posts.php: -------------------------------------------------------------------------------- 1 | schema()->table('posts', function (Blueprint $table) { 16 | $table->mediumtext('content')->nullable()->comment('内容')->change(); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('posts', function (Blueprint $table) { 28 | // 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_03_15_210352_add_posted_at_to_threads.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->dateTime('posted_at')->nullable()->after('location')->comment('最新评论时间'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /database/migrations/2021_03_19_103811_add_error_to_notification_tpls.php: -------------------------------------------------------------------------------- 1 | schema()->table('notification_tpls', function (Blueprint $table) { 16 | $table->tinyInteger('is_error')->default(0)->comment('模板是否配置错误'); 17 | $table->text('error_msg')->nullable()->comment('错误信息'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('notification_tpls', function (Blueprint $table) { 29 | $table->dropColumn('is_error'); 30 | $table->dropColumn('error_msg'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2021_03_31_000001_create_miniprogram_scheme_manage.php: -------------------------------------------------------------------------------- 1 | schema()->create('miniprogram_scheme_manage', function (Blueprint $table) { 16 | $table->id()->comment('id'); 17 | $table->string('mini_app_id', 100)->comment('小程序appid'); 18 | $table->string('scheme', 100)->comment('小程序全局scheme'); 19 | $table->integer('expired_at')->useCurrent()->comment('过期时间'); 20 | $table->integer('created_at')->useCurrent()->comment('创建时间'); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | $this->schema()->dropIfExists('miniprogram_scheme_manage'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2021_03_31_001501_alter_nickname_to_users.php: -------------------------------------------------------------------------------- 1 | schema()->table('users', function (Blueprint $table) { 16 | $table->string('nickname', 100)->default('')->after('password')->comment('用户昵称'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('users', function (Blueprint $table) { 28 | $table->dropColumn('nickname'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_04_15_001501_alter_nickname_to_stop_words.php: -------------------------------------------------------------------------------- 1 | schema()->table('stop_words', function (Blueprint $table) { 16 | $table->string('nickname', 100)->default('')->after('username')->comment('用户昵称'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('stop_words', function (Blueprint $table) { 28 | $table->dropColumn('nickname'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_04_16_153727_add_share_count_to_threads.php: -------------------------------------------------------------------------------- 1 | schema()->table('threads', function (Blueprint $table) { 16 | $table->unsignedInteger('share_count')->nullable(false)->default(0)->after('paid_count')->comment('分享数'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /database/migrations/2021_04_17_103345_add_refund_to_orders.php: -------------------------------------------------------------------------------- 1 | schema()->table('orders', function (Blueprint $table) { 16 | $table->unsignedDecimal('refund', 10, 2)->default(0)->after('post_id')->comment('退款金额'); 17 | $table->timestamp('return_at')->nullable(true)->comment('退款时间'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('orders', function (Blueprint $table) { 29 | $table->dropColumn('refund'); 30 | $table->dropColumn('return_at'); 31 | }); 32 | } 33 | } -------------------------------------------------------------------------------- /database/migrations/2021_04_26_173510_add_back_image_to_users.php: -------------------------------------------------------------------------------- 1 | schema()->table('users', function (Blueprint $table) { 16 | $table->string('background', 255)->default('')->after('avatar')->comment('背景图地址'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | $this->schema()->table('users', function (Blueprint $table) { 28 | $table->dropColumn('background'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2021_05_17_092200_create_username_change.php: -------------------------------------------------------------------------------- 1 | schema()->create('username_change', function (Blueprint $table) { 17 | $table->id()->comment('ID'); 18 | $table->unsignedInteger('user_id')->index('user_id')->default(0)->comment('用户id'); 19 | $table->integer('number')->unsigned()->nullable()->comment('次数'); 20 | $table->dateTime('created_at')->comment('创建时间'); 21 | $table->dateTime('updated_at')->comment('更新时间'); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | * 28 | * @return void 29 | */ 30 | public function down() 31 | { 32 | $this->schema()->dropIfExists('username_change'); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /database/migrations/2021_06_18_200700_add_file_height_file_width_to_attachments.php: -------------------------------------------------------------------------------- 1 | schema()->table('attachments', function (Blueprint $table) { 16 | $table->unsignedBigInteger('file_height')->default(0)->after('file_size')->comment('高度'); 17 | $table->unsignedBigInteger('file_width')->default(0)->after('file_size')->comment('宽度'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | $this->schema()->table('attachments', function (Blueprint $table) { 29 | $table->dropColumn('file_height'); 30 | $table->dropColumn('file_width'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /disco: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | singleton( 13 | Illuminate\Contracts\Console\Kernel::class, 14 | App\Console\Kernel::class 15 | ); 16 | 17 | $app->make(Illuminate\Contracts\Console\Kernel::class)->listen(); 18 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | tests 19 | 20 | 21 | 22 | 23 | ./src 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /plugin/Jobs/JobsBusi.php: -------------------------------------------------------------------------------- 1 | 2 | Options +FollowSymLinks 3 | RewriteEngine On 4 | SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 5 | RewriteCond %{REQUEST_FILENAME} !-f 6 | RewriteCond %{REQUEST_FILENAME} !-d 7 | RewriteRule . index.php?%{QUERY_STRING} [L,QSA,PT] 8 | RewriteRule ^$ index.php?%{QUERY_STRING} [L,QSA,PT] 9 | 10 | -------------------------------------------------------------------------------- /public/_next/static/2TA_BlYspJYYSpW3FbSpZ/_ssgManifest.js: -------------------------------------------------------------------------------- 1 | self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() -------------------------------------------------------------------------------- /public/assets/fonts/mem5YaGs126MiZpBA-UN7rgOUuhpKKSTjw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/assets/fonts/mem5YaGs126MiZpBA-UN7rgOUuhpKKSTjw.woff2 -------------------------------------------------------------------------------- /public/assets/fonts/mem8YaGs126MiZpBA-UFVZ0bf8pkAg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/assets/fonts/mem8YaGs126MiZpBA-UFVZ0bf8pkAg.woff2 -------------------------------------------------------------------------------- /public/cover-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/cover-bottom.png -------------------------------------------------------------------------------- /public/cover-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/cover-top.png -------------------------------------------------------------------------------- /public/dzq-img/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/404.png -------------------------------------------------------------------------------- /public/dzq-img/admin-logo-pc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/admin-logo-pc.jpg -------------------------------------------------------------------------------- /public/dzq-img/admin-logo-pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/admin-logo-pc.png -------------------------------------------------------------------------------- /public/dzq-img/admin-logo-x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/admin-logo-x2.png -------------------------------------------------------------------------------- /public/dzq-img/beian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/beian.png -------------------------------------------------------------------------------- /public/dzq-img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/close.png -------------------------------------------------------------------------------- /public/dzq-img/coin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/coin.png -------------------------------------------------------------------------------- /public/dzq-img/content-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/content-header.png -------------------------------------------------------------------------------- /public/dzq-img/default-favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/default-favicon.png -------------------------------------------------------------------------------- /public/dzq-img/default-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/default-logo.png -------------------------------------------------------------------------------- /public/dzq-img/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/error.png -------------------------------------------------------------------------------- /public/dzq-img/invite-banner-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/invite-banner-bg.png -------------------------------------------------------------------------------- /public/dzq-img/invite-card-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/invite-card-bg.png -------------------------------------------------------------------------------- /public/dzq-img/join-banner-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/join-banner-bg.png -------------------------------------------------------------------------------- /public/dzq-img/login-ORcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/login-ORcode.png -------------------------------------------------------------------------------- /public/dzq-img/login-phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/login-phone.png -------------------------------------------------------------------------------- /public/dzq-img/login-status.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/login-status.jpg -------------------------------------------------------------------------------- /public/dzq-img/login-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/login-user.png -------------------------------------------------------------------------------- /public/dzq-img/login-weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/login-weixin.png -------------------------------------------------------------------------------- /public/dzq-img/look-more.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/look-more.jpg -------------------------------------------------------------------------------- /public/dzq-img/my-default-header-img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/my-default-header-img.jpg -------------------------------------------------------------------------------- /public/dzq-img/pay-audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/pay-audio.png -------------------------------------------------------------------------------- /public/dzq-img/published.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/dzq-img/rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/rectangle.png -------------------------------------------------------------------------------- /public/dzq-img/red-packet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/red-packet.png -------------------------------------------------------------------------------- /public/dzq-img/redpacket-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/redpacket-mini.png -------------------------------------------------------------------------------- /public/dzq-img/reward-question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/reward-question.png -------------------------------------------------------------------------------- /public/dzq-img/shareKnow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/shareKnow.png -------------------------------------------------------------------------------- /public/dzq-img/sharePoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/sharePoint.png -------------------------------------------------------------------------------- /public/dzq-img/ship-card-pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/ship-card-pc.png -------------------------------------------------------------------------------- /public/dzq-img/topic-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/topic-header.png -------------------------------------------------------------------------------- /public/dzq-img/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/user.png -------------------------------------------------------------------------------- /public/dzq-img/vercel.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /public/dzq-img/video.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /public/dzq-img/wallet-pc-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/wallet-pc-bg.png -------------------------------------------------------------------------------- /public/dzq-img/walletbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/dzq-img/walletbackground.png -------------------------------------------------------------------------------- /public/emoji/qq/OK.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/OK.gif -------------------------------------------------------------------------------- /public/emoji/qq/aini.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/aini.gif -------------------------------------------------------------------------------- /public/emoji/qq/aixin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/aixin.gif -------------------------------------------------------------------------------- /public/emoji/qq/aoman.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/aoman.gif -------------------------------------------------------------------------------- /public/emoji/qq/baiyan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/baiyan.gif -------------------------------------------------------------------------------- /public/emoji/qq/bangbangtang.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/bangbangtang.gif -------------------------------------------------------------------------------- /public/emoji/qq/baojin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/baojin.gif -------------------------------------------------------------------------------- /public/emoji/qq/baoquan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/baoquan.gif -------------------------------------------------------------------------------- /public/emoji/qq/bishi.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/bishi.gif -------------------------------------------------------------------------------- /public/emoji/qq/bizui.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/bizui.gif -------------------------------------------------------------------------------- /public/emoji/qq/cahan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/cahan.gif -------------------------------------------------------------------------------- /public/emoji/qq/caidao.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/caidao.gif -------------------------------------------------------------------------------- /public/emoji/qq/chi.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/chi.gif -------------------------------------------------------------------------------- /public/emoji/qq/ciya.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/ciya.gif -------------------------------------------------------------------------------- /public/emoji/qq/dabing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/dabing.gif -------------------------------------------------------------------------------- /public/emoji/qq/daku.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/daku.gif -------------------------------------------------------------------------------- /public/emoji/qq/dan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/dan.gif -------------------------------------------------------------------------------- /public/emoji/qq/deyi.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/deyi.gif -------------------------------------------------------------------------------- /public/emoji/qq/doge.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/doge.gif -------------------------------------------------------------------------------- /public/emoji/qq/fadai.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/fadai.gif -------------------------------------------------------------------------------- /public/emoji/qq/fanu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/fanu.gif -------------------------------------------------------------------------------- /public/emoji/qq/fendou.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/fendou.gif -------------------------------------------------------------------------------- /public/emoji/qq/ganga.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/ganga.gif -------------------------------------------------------------------------------- /public/emoji/qq/gouyin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/gouyin.gif -------------------------------------------------------------------------------- /public/emoji/qq/guzhang.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/guzhang.gif -------------------------------------------------------------------------------- /public/emoji/qq/haixiu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/haixiu.gif -------------------------------------------------------------------------------- /public/emoji/qq/hanxiao.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/hanxiao.gif -------------------------------------------------------------------------------- /public/emoji/qq/haobang.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/haobang.gif -------------------------------------------------------------------------------- /public/emoji/qq/haqian.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/haqian.gif -------------------------------------------------------------------------------- /public/emoji/qq/hecai.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/hecai.gif -------------------------------------------------------------------------------- /public/emoji/qq/hexie.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/hexie.gif -------------------------------------------------------------------------------- /public/emoji/qq/huaixiao.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/huaixiao.gif -------------------------------------------------------------------------------- /public/emoji/qq/jie.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/jie.gif -------------------------------------------------------------------------------- /public/emoji/qq/jingkong.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/jingkong.gif -------------------------------------------------------------------------------- /public/emoji/qq/jingxi.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/jingxi.gif -------------------------------------------------------------------------------- /public/emoji/qq/jingya.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/jingya.gif -------------------------------------------------------------------------------- /public/emoji/qq/juhua.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/juhua.gif -------------------------------------------------------------------------------- /public/emoji/qq/keai.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/keai.gif -------------------------------------------------------------------------------- /public/emoji/qq/kelian.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/kelian.gif -------------------------------------------------------------------------------- /public/emoji/qq/koubi.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/koubi.gif -------------------------------------------------------------------------------- /public/emoji/qq/ku.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/ku.gif -------------------------------------------------------------------------------- /public/emoji/qq/kuaikule.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/kuaikule.gif -------------------------------------------------------------------------------- /public/emoji/qq/kulou.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/kulou.gif -------------------------------------------------------------------------------- /public/emoji/qq/kun.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/kun.gif -------------------------------------------------------------------------------- /public/emoji/qq/lanqiu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/lanqiu.gif -------------------------------------------------------------------------------- /public/emoji/qq/leiben.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/leiben.gif -------------------------------------------------------------------------------- /public/emoji/qq/lenghan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/lenghan.gif -------------------------------------------------------------------------------- /public/emoji/qq/liuhan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/liuhan.gif -------------------------------------------------------------------------------- /public/emoji/qq/liulei.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/liulei.gif -------------------------------------------------------------------------------- /public/emoji/qq/nanguo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/nanguo.gif -------------------------------------------------------------------------------- /public/emoji/qq/penxue.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/penxue.gif -------------------------------------------------------------------------------- /public/emoji/qq/piezui.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/piezui.gif -------------------------------------------------------------------------------- /public/emoji/qq/pijiu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/pijiu.gif -------------------------------------------------------------------------------- /public/emoji/qq/qiang.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/qiang.gif -------------------------------------------------------------------------------- /public/emoji/qq/qiaoda.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/qiaoda.gif -------------------------------------------------------------------------------- /public/emoji/qq/qinqin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/qinqin.gif -------------------------------------------------------------------------------- /public/emoji/qq/qiudale.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/qiudale.gif -------------------------------------------------------------------------------- /public/emoji/qq/quantou.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/quantou.gif -------------------------------------------------------------------------------- /public/emoji/qq/saorao.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/saorao.gif -------------------------------------------------------------------------------- /public/emoji/qq/se.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/se.gif -------------------------------------------------------------------------------- /public/emoji/qq/shengli.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/shengli.gif -------------------------------------------------------------------------------- /public/emoji/qq/shouqiang.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/shouqiang.gif -------------------------------------------------------------------------------- /public/emoji/qq/shuai.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/shuai.gif -------------------------------------------------------------------------------- /public/emoji/qq/shui.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/shui.gif -------------------------------------------------------------------------------- /public/emoji/qq/tiaopi.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/tiaopi.gif -------------------------------------------------------------------------------- /public/emoji/qq/touxiao.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/touxiao.gif -------------------------------------------------------------------------------- /public/emoji/qq/tu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/tu.gif -------------------------------------------------------------------------------- /public/emoji/qq/tuosai.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/tuosai.gif -------------------------------------------------------------------------------- /public/emoji/qq/weiqu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/weiqu.gif -------------------------------------------------------------------------------- /public/emoji/qq/weixiao.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/weixiao.gif -------------------------------------------------------------------------------- /public/emoji/qq/woshou.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/woshou.gif -------------------------------------------------------------------------------- /public/emoji/qq/wozuimei.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/wozuimei.gif -------------------------------------------------------------------------------- /public/emoji/qq/wunai.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/wunai.gif -------------------------------------------------------------------------------- /public/emoji/qq/xia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/xia.gif -------------------------------------------------------------------------------- /public/emoji/qq/xiaojiujie.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/xiaojiujie.gif -------------------------------------------------------------------------------- /public/emoji/qq/xiaoku.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/xiaoku.gif -------------------------------------------------------------------------------- /public/emoji/qq/xiaoyanger.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/xiaoyanger.gif -------------------------------------------------------------------------------- /public/emoji/qq/xieyanxiao.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/xieyanxiao.gif -------------------------------------------------------------------------------- /public/emoji/qq/xigua.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/xigua.gif -------------------------------------------------------------------------------- /public/emoji/qq/xu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/xu.gif -------------------------------------------------------------------------------- /public/emoji/qq/yangtuo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/yangtuo.gif -------------------------------------------------------------------------------- /public/emoji/qq/yinxian.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/yinxian.gif -------------------------------------------------------------------------------- /public/emoji/qq/yiwen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/yiwen.gif -------------------------------------------------------------------------------- /public/emoji/qq/youhengheng.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/youhengheng.gif -------------------------------------------------------------------------------- /public/emoji/qq/youling.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/youling.gif -------------------------------------------------------------------------------- /public/emoji/qq/yun.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/yun.gif -------------------------------------------------------------------------------- /public/emoji/qq/zaijian.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/zaijian.gif -------------------------------------------------------------------------------- /public/emoji/qq/zhayanjian.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/zhayanjian.gif -------------------------------------------------------------------------------- /public/emoji/qq/zhemo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/zhemo.gif -------------------------------------------------------------------------------- /public/emoji/qq/zhouma.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/zhouma.gif -------------------------------------------------------------------------------- /public/emoji/qq/zhuakuang.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/zhuakuang.gif -------------------------------------------------------------------------------- /public/emoji/qq/zuohengheng.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/emoji/qq/zuohengheng.gif -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/favicon.ico -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | singleton(Discuz\Http\Server::class, Discuz\Http\Server::class); 26 | 27 | $app->make(Discuz\Http\Server::class)->listen(); 28 | -------------------------------------------------------------------------------- /public/redpacket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/redpacket.png -------------------------------------------------------------------------------- /public/static-admin/css/21.f3af6cab2ef9bffc2f8d.css: -------------------------------------------------------------------------------- 1 | .disabled .el-upload--picture-card{display:none} -------------------------------------------------------------------------------- /public/static-admin/css/28.2d3fec702b529eda5745.css: -------------------------------------------------------------------------------- 1 | .table-no-list[data-v-7d149013]{width:100%;height:45PX;text-align:center}p[data-v-7d149013]{line-height:45PX;color:#909399} -------------------------------------------------------------------------------- /public/static-admin/css/32.8d37928e840be5f71da4.css: -------------------------------------------------------------------------------- 1 | .avatar-LogoImage{max-width:96%} -------------------------------------------------------------------------------- /public/static-admin/css/admin/discuzQfonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; /* Project id 2704146 */ 3 | src: url('//at.alicdn.com/t/font_2704146_iiogbjak6ng.woff2?t=1627380871532') format('woff2'), 4 | url('//at.alicdn.com/t/font_2704146_iiogbjak6ng.woff?t=1627380871532') format('woff'), 5 | url('//at.alicdn.com/t/font_2704146_iiogbjak6ng.ttf?t=1627380871532') format('truetype'); 6 | } 7 | 8 | .iconfont { 9 | font-family: "iconfont" !important; 10 | font-size: 16PX; 11 | font-style: normal; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | .icondaoru:before { 17 | content: "\e6f7"; 18 | } -------------------------------------------------------------------------------- /public/static-admin/css/iconfont/iconfont.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "iconfont"; /* Project id 2692600 */ 3 | src: url('iconfont.woff2?t=1627437973494') format('woff2'), 4 | url('iconfont.woff?t=1627437973494') format('woff'), 5 | url('iconfont.ttf?t=1627437973494') format('truetype'); 6 | } 7 | 8 | .iconfont { 9 | font-family: "iconfont" !important; 10 | font-size: 16px; 11 | font-style: normal; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | .icon-daoru:before { 17 | content: "\eabf"; 18 | } 19 | 20 | .icon-daoru1:before { 21 | content: "\e6f7"; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /public/static-admin/css/iconfont/iconfont.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "2692600", 3 | "name": "icon", 4 | "font_family": "iconfont", 5 | "css_prefix_text": "icon-", 6 | "description": "", 7 | "glyphs": [ 8 | { 9 | "icon_id": "5387382", 10 | "name": "导入", 11 | "font_class": "daoru", 12 | "unicode": "eabf", 13 | "unicode_decimal": 60095 14 | }, 15 | { 16 | "icon_id": "15685683", 17 | "name": "导入", 18 | "font_class": "daoru1", 19 | "unicode": "e6f7", 20 | "unicode_decimal": 59127 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /public/static-admin/css/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/css/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /public/static-admin/css/iconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/css/iconfont/iconfont.woff -------------------------------------------------------------------------------- /public/static-admin/css/iconfont/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/css/iconfont/iconfont.woff2 -------------------------------------------------------------------------------- /public/static-admin/css/reset.css: -------------------------------------------------------------------------------- 1 | html,body,h1,h2,h3,h4,h5,h6,div,dl,dt,dd,ul,ol,li,p,blockquote,pre,hr,figure,table,caption,th,td,form,fieldset,legend,input,button,textarea,menu{margin:0;padding:0;} 2 | header,footer,section,article,aside,nav,hgroup,address,figure,figcaption,menu,details{display:block;} 3 | table{border-collapse:collapse;border-spacing:0;} 4 | caption,th{text-align:left;font-weight:normal;} 5 | html,body,fieldset,img,iframe,abbr{border:0;} 6 | i,cite,var,address,dfn{font-style:normal;} 7 | [hidefocus],summary{outline:0;} 8 | li{list-style:none;} 9 | h1,h2,h3,h4,h5,h6,small{font-size:100%;} 10 | sup,sub{font-size:83%;} 11 | pre,code,kbd,samp{font-family:inherit;} 12 | q:before,q:after{content:none;} 13 | textarea{overflow:auto;resize:none;} 14 | label,summary{cursor:default;} 15 | a,button{cursor:pointer;} 16 | h1,h2,h3,h4,h5,h6,strong,b{font-weight:bold;} 17 | del,ins,u,s,a,a:hover{text-decoration:none;} 18 | body,textarea,input,button,select,keygen,legend{color:#303133;outline:0;} 19 | body{background:#fff;} 20 | a{color:#336699;} 21 | -------------------------------------------------------------------------------- /public/static-admin/css/vant-icon.css: -------------------------------------------------------------------------------- 1 | /* @font-face { 2 | font-family: "van-discuzQ"; 3 | src: url('../font/vant/vant-icon.ttf') format('truetype'), 4 | url('../font/vant/vant-icon.woff') format('woff'), 5 | url('../font/vant/vant-icon.woff2') format('woff2') 6 | } 7 | .van-icon { 8 | font-family: "van-discuzQ" !important; 9 | font-size: 14px; 10 | font-style: normal; 11 | -webkit-font-smoothing: antialiased; 12 | -moz-osx-font-smoothing: grayscale; 13 | } 14 | .van-icon,.van-icon::before { 15 | display: inline-block; 16 | } */ 17 | -------------------------------------------------------------------------------- /public/static-admin/font/admin/discuzQ.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/admin/discuzQ.eot -------------------------------------------------------------------------------- /public/static-admin/font/admin/discuzQ.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/admin/discuzQ.ttf -------------------------------------------------------------------------------- /public/static-admin/font/admin/discuzQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/admin/discuzQ.woff -------------------------------------------------------------------------------- /public/static-admin/font/admin/discuzQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/admin/discuzQ.woff2 -------------------------------------------------------------------------------- /public/static-admin/font/discuzQ.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/discuzQ.eot -------------------------------------------------------------------------------- /public/static-admin/font/discuzQ.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/discuzQ.ttf -------------------------------------------------------------------------------- /public/static-admin/font/discuzQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/discuzQ.woff -------------------------------------------------------------------------------- /public/static-admin/font/discuzQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/discuzQ.woff2 -------------------------------------------------------------------------------- /public/static-admin/font/vant/vant-icon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/vant/vant-icon.ttf -------------------------------------------------------------------------------- /public/static-admin/font/vant/vant-icon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/vant/vant-icon.woff -------------------------------------------------------------------------------- /public/static-admin/font/vant/vant-icon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/font/vant/vant-icon.woff2 -------------------------------------------------------------------------------- /public/static-admin/fonts/discuzQ.3155eca.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/fonts/discuzQ.3155eca.eot -------------------------------------------------------------------------------- /public/static-admin/fonts/discuzQ.708468f.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/fonts/discuzQ.708468f.ttf -------------------------------------------------------------------------------- /public/static-admin/fonts/element-icons.535877f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/fonts/element-icons.535877f.woff -------------------------------------------------------------------------------- /public/static-admin/fonts/element-icons.732389d.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/fonts/element-icons.732389d.ttf -------------------------------------------------------------------------------- /public/static-admin/images/admin-logo-x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/admin-logo-x2.png -------------------------------------------------------------------------------- /public/static-admin/images/admin-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/admin-logo.png -------------------------------------------------------------------------------- /public/static-admin/images/expre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/expre.png -------------------------------------------------------------------------------- /public/static-admin/images/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/icon-192.png -------------------------------------------------------------------------------- /public/static-admin/images/import.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/static-admin/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/logo.png -------------------------------------------------------------------------------- /public/static-admin/images/noavatar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/noavatar.gif -------------------------------------------------------------------------------- /public/static-admin/images/shareKnow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/shareKnow.png -------------------------------------------------------------------------------- /public/static-admin/images/sharePoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/sharePoint.png -------------------------------------------------------------------------------- /public/static-admin/images/theme_blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/theme_blue.jpg -------------------------------------------------------------------------------- /public/static-admin/images/theme_red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/theme_red.jpg -------------------------------------------------------------------------------- /public/static-admin/images/transcoding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/transcoding.png -------------------------------------------------------------------------------- /public/static-admin/images/wxshare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/public/static-admin/images/wxshare.png -------------------------------------------------------------------------------- /public/static-admin/js/2.64cee660960f19047101.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"KHd+":function(n,t,e){"use strict";function o(n,t,e,o,i,r,s,a){var c,d="function"==typeof n?n.options:n;if(t&&(d.render=t,d.staticRenderFns=e,d._compiled=!0),o&&(d.functional=!0),r&&(d._scopeId="data-v-"+r),s?(c=function(n){(n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(n=__VUE_SSR_CONTEXT__),i&&i.call(this,n),n&&n._registeredComponents&&n._registeredComponents.add(s)},d._ssrRegister=c):i&&(c=a?function(){i.call(this,(d.functional?this.parent:this).$root.$options.shadowRoot)}:i),c)if(d.functional){d._injectStyles=c;var p=d.render;d.render=function(n,t){return c.call(t),p(n,t)}}else{var f=d.beforeCreate;d.beforeCreate=f?[].concat(f,c):[c]}return{exports:n,options:d}}e.d(t,"a",(function(){return o}))},lpfh:function(n,t,e){}}]); -------------------------------------------------------------------------------- /public/static-admin/js/4.c7fc650241f3b8f5482d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"lL+3":function(n,w,o){}}]); -------------------------------------------------------------------------------- /public/static-admin/js/6.07e9710a26e28b39272a.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{"I1+7":function(n,w,o){}}]); -------------------------------------------------------------------------------- /public/static-admin/js/7.a58da2faf61f75f8cf4f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{"KHd+":function(n,t,e){"use strict";function o(n,t,e,o,i,r,s,a){var c,d="function"==typeof n?n.options:n;if(t&&(d.render=t,d.staticRenderFns=e,d._compiled=!0),o&&(d.functional=!0),r&&(d._scopeId="data-v-"+r),s?(c=function(n){(n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(n=__VUE_SSR_CONTEXT__),i&&i.call(this,n),n&&n._registeredComponents&&n._registeredComponents.add(s)},d._ssrRegister=c):i&&(c=a?function(){i.call(this,(d.functional?this.parent:this).$root.$options.shadowRoot)}:i),c)if(d.functional){d._injectStyles=c;var p=d.render;d.render=function(n,t){return c.call(t),p(n,t)}}else{var f=d.beforeCreate;d.beforeCreate=f?[].concat(f,c):[c]}return{exports:n,options:d}}e.d(t,"a",(function(){return o}))},z99J:function(n,t,e){}}]); -------------------------------------------------------------------------------- /public/static-admin/js/admin.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /* 2 | object-assign 3 | (c) Sindre Sorhus 4 | @license MIT 5 | */ 6 | 7 | /*! 8 | * Vue-Lazyload.js v1.3.3 9 | * (c) 2019 Awe 10 | * Released under the MIT License. 11 | */ 12 | 13 | /*! 14 | * vue-i18n v8.25.0 15 | * (c) 2021 kazuya kawaguchi 16 | * Released under the MIT License. 17 | */ 18 | 19 | /*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */ 20 | 21 | /** 22 | * Checks if an event is supported in the current execution environment. 23 | * 24 | * NOTE: This will not work correctly for non-generic events such as `change`, 25 | * `reset`, `load`, `error`, and `select`. 26 | * 27 | * Borrows from Modernizr. 28 | * 29 | * @param {string} eventNameSuffix Event name, e.g. "click". 30 | * @param {?boolean} capture Check if the capture phase is supported. 31 | * @return {boolean} True if the event is supported. 32 | * @internal 33 | * @license Modernizr 3.0.0pre (Custom Build) | MIT 34 | */ 35 | -------------------------------------------------------------------------------- /public/static-admin/js/rem.js: -------------------------------------------------------------------------------- 1 | // // 基准大小 2 | // const baseSize = 37.5; //需要跟.postcssrc.js’rootValue‘属性统一大小 3 | // // 设置 rem 函数 4 | // function setRem () { 5 | // // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。 6 | // const scale = document.documentElement.clientWidth / 375; 7 | // // 设置页面根节点字体大小 8 | // document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px' 9 | // } 10 | // // 初始化 11 | // setRem(); 12 | // // 改变窗口大小时重新设置 rem 13 | // window.onresize = function () { 14 | // setRem() 15 | // }; 16 | -------------------------------------------------------------------------------- /public/static-admin/languages/en.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "webName": "webName", 4 | "home": "home", 5 | "setUp": "setUp", 6 | "changePassword": "changePassword", 7 | "Logout": "Logout", 8 | "eventManagement": "eventManagement", 9 | "admin": { 10 | "siteHome": "siteHome" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /public/static-admin/languages/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "webName": "展会系统", 3 | "home": "系统首页", 4 | "setUp": "个人设置", 5 | "changePassword": "修改密码", 6 | "Logout": "退出登录", 7 | "eventManagement": "展会管理", 8 | "admin": { 9 | "siteHome": "返回站点首页" 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/.DS_Store -------------------------------------------------------------------------------- /resources/frame/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": [ 12 | "transform-es2015-modules-commonjs", 13 | "transform-vue-jsx", 14 | "transform-runtime", 15 | [ 16 | "import", { 17 | "libraryName": "vant", 18 | "libraryDirectory": "es" 19 | }, 20 | "component", { 21 | "libraryName": "element-ui", 22 | "styleLibraryName": "theme-chalk" 23 | } 24 | ] 25 | ] 26 | } 27 | 28 | 29 | //"style": true 30 | -------------------------------------------------------------------------------- /resources/frame/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /resources/frame/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .sass-cache/ 3 | node_modules/ 4 | /dist/ 5 | package-lock.json 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Editor directories and files 11 | .idea 12 | .vscode 13 | *.suo 14 | *.ntvs* 15 | *.njsproj 16 | *.sln 17 | -------------------------------------------------------------------------------- /resources/frame/.postcss.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "plugins": { 3 | "postcss-import": {}, 4 | "postcss-url": {}, 5 | // to edit target browsers: use "browserslist" field in package.json 6 | "autoprefixer": {}, 7 | "postcss-pxtorem": { // 此处为添加部分 8 | rootValue: 32, // 对应16px 适配移动端750px宽度 9 | unitPrecision: 5, 10 | propList: ['*'], 11 | selectorBlackList: [], 12 | replace: true, 13 | mediaQuery: false, 14 | minPixelValue: 0 15 | } 16 | // 'autoprefixer': {overrideBrowserslist: [ 17 | // 'Android 4.1', 18 | // 'iOS 7.1', 19 | // 'Chrome > 31', 20 | // 'ff > 31', 21 | // 'ie >= 8' 22 | // ] 23 | // }, 24 | // 'postcss-pxtorem': { 25 | // rootValue: 37.5, 26 | // propList: ['*'] 27 | // } 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /resources/frame/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | 'autoprefixer': { 6 | overrideBrowserslist: [ 7 | 'Android 4.1', 8 | 'iOS 7.1', 9 | 'Chrome > 31', 10 | 'ff > 31', 11 | 'ie >= 8' 12 | ] 13 | }, 14 | 'postcss-pxtorem': { 15 | rootValue: 37.5, //需要跟rem.js文件基准大小统一 16 | propList: ['*'], 17 | selectorBlackList:['.el-','.ad-'] 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /resources/frame/build/conditional.loader.config.js: -------------------------------------------------------------------------------- 1 | // 条件编译 2 | const conditionalCompiler = { 3 | loader: 'js-conditional-compile-loader', 4 | options: { 5 | default: process.env.SCENE === 'default', 6 | pay: process.env.SCENE === 'pay' 7 | } 8 | } 9 | 10 | module.exports = () => { 11 | return { 12 | enforce: 'pre', 13 | test: /\.(js|vue|css|scss)$/, 14 | loader: conditionalCompiler, 15 | exclude: /(node_modules)/ 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /resources/frame/build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const config = require('../config') 4 | const isProduction = process.env.NODE_ENV === 'production' 5 | const sourceMapEnabled = isProduction 6 | ? config.build.productionSourceMap 7 | : config.dev.cssSourceMap 8 | 9 | module.exports = { 10 | loaders: utils.cssLoaders({ 11 | sourceMap: sourceMapEnabled, 12 | extract: isProduction 13 | }), 14 | cssSourceMap: sourceMapEnabled, 15 | cacheBusting: config.dev.cacheBusting, 16 | transformToRequire: { 17 | video: ['src', 'poster'], 18 | source: 'src', 19 | img: 'src', 20 | image: 'xlink:href' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /resources/frame/config/appConfig.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 全局配置 3 | */ 4 | let apiConfig = require("./apiConfig.js"); 5 | 6 | var appConfig = { 7 | port: '8883', //本地调试端口 8 | devHostName: 'local.test.discuz.com', //本地调试域名 9 | devApiUrl: 'https://dq.comsenz-service.com', //本地调试接口域名 10 | 11 | baseUrl: '', //网站根目录 12 | apiBaseUrl: '', //网站根目录 13 | staticBaseUrl: '', //静态文件根目录 14 | uploadBaseUrl: '', //上传文件地址 15 | 16 | siteBasePath: '/', //网站所属目录 17 | apiBasePath: "/api", //接口所属目录 18 | staticPath: "/static", //静态文件所属目录 19 | uploadPath: "/upload", //上传文件所属目录 20 | sourceV: new Date().getTime(), //资源版本,打包时使用 21 | 22 | //接口列表 23 | apis: apiConfig 24 | }; 25 | 26 | module.exports = appConfig; 27 | -------------------------------------------------------------------------------- /resources/frame/config/appConfigInit.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 初始化appConfig 3 | * 4 | * 根据环境设置正确的基础url,以便使用 5 | */ 6 | 7 | import Vue from "vue"; 8 | import appConfig from "./appConfig"; 9 | 10 | appConfig.port = location.port; 11 | appConfig.domainName = location.hostname; 12 | 13 | var baseUrl = location.protocol + "//" + location.hostname + ((location.port == "80" || location.port == '') ? "" : ":" + location.port); 14 | appConfig.baseUrl = baseUrl + (appConfig.siteBasePath != "/" ? appConfig.siteBasePath : ""); 15 | 16 | if (location.href.indexOf('local.') !== -1) { 17 | appConfig.apiBaseUrl = appConfig.devApiUrl; 18 | appConfig.uploadBaseUrl = appConfig.devApiUrl + appConfig.uploadPath; 19 | } else { 20 | appConfig.apiBaseUrl = baseUrl + appConfig.apiBasePath; 21 | appConfig.uploadBaseUrl = baseUrl + appConfig.uploadPath; 22 | } 23 | appConfig.staticBaseUrl = appConfig.baseUrl + appConfig.staticPath; 24 | 25 | Vue.prototype.appConfig = appConfig; 26 | -------------------------------------------------------------------------------- /resources/frame/config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /resources/frame/config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /resources/frame/doc/seo.md: -------------------------------------------------------------------------------- 1 | 2 | 1、在服务器上启动prerender服务; 3 | 2、在业务网站的服务器配置中设置重定向,如果发现是爬虫的userAgent就将请求转发给prerender服务,具体配置请参考该目录下的apache和nginx配置。 -------------------------------------------------------------------------------- /resources/frame/nuxt.config.js: -------------------------------------------------------------------------------- 1 | plugins: [ 2 | '@/plugins/vue-auth-image.js' 3 | ] -------------------------------------------------------------------------------- /resources/frame/src/admin/controllers/site/common/card/cardCon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 卡片控制器 3 | */ 4 | 5 | export default { 6 | data:function () { 7 | return { 8 | 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /resources/frame/src/admin/controllers/site/common/table/tableContAddCon.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * 添加表格空内容 4 | * */ 5 | 6 | export default { 7 | data:function () { 8 | return { 9 | 10 | } 11 | }, 12 | 13 | methods:{ 14 | tableContAddClick(){ 15 | this.$emit('tableContAddClick') 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /resources/frame/src/admin/controllers/site/global/indexCon.js: -------------------------------------------------------------------------------- 1 | import { mapMutations,mapState } from 'vuex'; 2 | 3 | export default { 4 | data:function () { 5 | return { 6 | 7 | } 8 | }, 9 | methods:{ 10 | ...mapMutations({ 11 | setNum: 'site/SET_NUM', 12 | setLoading:'site/SET_LOADING' 13 | }), 14 | 15 | login(){ 16 | this.$router.push('/login/loginview') 17 | }, 18 | buttonClick(){ 19 | this.setNum({name:'张三'}); 20 | } 21 | 22 | }, 23 | computed:mapState({ 24 | //直接映射state内的数据 25 | loginState: state => state.login.loginState, 26 | 27 | //映射函数可以处理一些数据返回,在别的地方this.直接调用 28 | countPlusLocalState(state){ 29 | return state.login.loginState + 10 30 | } 31 | }), 32 | mounted:function () { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /resources/frame/src/admin/scss/site/common/_index.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 抽象出来的样式 3 | * 例:清除默认浏览器样式 4 | */ 5 | 6 | @import "var"; 7 | @import "element-variables"; 8 | @import "icon"; 9 | 10 | /* 11 | 公共样式 12 | */ 13 | input::-webkit-outer-spin-button, 14 | input::-webkit-inner-spin-button { 15 | -webkit-appearance: none; 16 | } 17 | input[type="number"]{ 18 | -moz-appearance: textfield; 19 | } 20 | 21 | 22 | /* 23 | 公共样式:表情样式 24 | */ 25 | .qq-emotion{ 26 | width: 20PX; 27 | height: 20PX; 28 | vertical-align: text-bottom; 29 | display:inline-block; 30 | } 31 | 32 | /* 33 | 链接手势 34 | */ 35 | .cursor-pointer{ 36 | cursor:pointer; 37 | } 38 | 39 | 40 | /*使用Card组件时,去掉底部边框*/ 41 | .footer-btn{ 42 | border-bottom: 0; 43 | } 44 | 45 | 46 | /* 47 | 后台样式总设置 48 | */ 49 | html,body{ 50 | width: 100%; 51 | height: 100%; 52 | min-width: 1100PX; 53 | font:14PX/1 Lucida Grande,Lucida Sans Unicode,Helvetica Neue,Hiragino Sans GB,Microsoft Yahei,sans-serif !important; 54 | a{ 55 | color: $main; 56 | } 57 | } 58 | html{ 59 | overflow-y: scroll; 60 | } 61 | body{ 62 | padding-right: 0PX !important; 63 | } 64 | -------------------------------------------------------------------------------- /resources/frame/src/admin/scss/site/common/_var.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 定义风格变量 3 | * 字体 4 | * 字号 5 | * 颜色 6 | */ 7 | 8 | 9 | /* 10 | 全局变量 11 | */ 12 | 13 | $blue:#0054A5; 14 | 15 | $main:#336699; //主体颜色 16 | 17 | $titleColor:#303133; //内容正文、标题字体颜色 18 | 19 | $descColor:#909399; //内容副文、描述字体颜色 20 | 21 | $commentColor:#606266; //副标题、注释字体颜色 22 | 23 | $inputPlaceholder:#B2B2B2; 24 | 25 | $headerFontColor:#FFF; //头部字体原色 26 | $headerFontColorShallow:rgba(255,255,255 ,0.65); //头部字体浅色 27 | 28 | $borderColor:#E5E5E5; //边框颜色 29 | 30 | $contBorderColor:#F8F9F9; //card边框、内容、子边框颜色 31 | 32 | $tableBorderColor:#EBEEF5; //表格边框线 33 | 34 | $tableHeaderColor:#FAFAFA; //表格头部颜色 35 | 36 | $splitLine:#DCDFE6; //竖分割线颜色 37 | 38 | //多选、单选按钮颜色、副颜色 39 | $selectColor:#1989FA; 40 | //多选、单选文字颜色 41 | $selectFontColor:#303133; 42 | 43 | $--color-primary:#336699; 44 | -------------------------------------------------------------------------------- /resources/frame/src/admin/scss/site/common/icon.scss: -------------------------------------------------------------------------------- 1 | .iconweixin{ 2 | color: #50B674; 3 | } 4 | 5 | .iconH{ 6 | color: #E45300; 7 | } 8 | .fuwuhao{ 9 | color:#50B674; 10 | } 11 | 12 | .iconxiaochengxu{ 13 | color: #59C1AD; 14 | } 15 | 16 | .iconAPI{ 17 | color: #E73838; 18 | } 19 | 20 | .iconduanxin{ 21 | color: #4EC5F1; 22 | } 23 | 24 | .icontupian{ 25 | color: #50B674; 26 | } 27 | 28 | .iconwenben{ 29 | color: #F4BB2A; 30 | } 31 | 32 | .iconicon_select{ 33 | color: #336699; 34 | font-size: 13PX; 35 | } 36 | 37 | .iconicon_{ 38 | color: #336699; 39 | font-size: 13PX; 40 | } 41 | 42 | .iconshimingrenzheng{ 43 | color: #F47A2A; 44 | } 45 | 46 | .iconduixiangcunchu{ 47 | color: #8792E3; 48 | } 49 | .iconchongzhi,.iconqianbaozongjine,.icondashangtichengshouru,.iconzhucejiarushouru,.icondingdanzongshu,.iconshouxufeishouru,.iconcaiwutongji,.icontixian{ 50 | color: #336699; 51 | font-size: 18PX; 52 | } 53 | .iconyanzhengma{ 54 | color:#4D7CF0; 55 | } 56 | .iconshipin{ 57 | color:#BE0000; 58 | } 59 | -------------------------------------------------------------------------------- /resources/frame/src/admin/scss/site/module/common/card/cardRow.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /** 3 | 公共组件--横条 4 | 公共组件的颜色需要element-variables文件 5 | */ 6 | 7 | @import "../../../common/index"; 8 | 9 | .card-row-box{ 10 | //min-width: 650PX; 11 | .card-row-lf{ 12 | display: inline-block; 13 | margin-right: 14PX; 14 | width: 50%; 15 | } 16 | .card-row-rf{ 17 | width: 47%; 18 | flex-basis:auto; 19 | display: inline-block; 20 | vertical-align: top; 21 | padding-top: 8PX; 22 | span{ 23 | color:rgba(144,147,153,1); 24 | line-height:20PX; 25 | } 26 | 27 | } 28 | } 29 | //满屏输入框 30 | .card-box.fullScreen { 31 | .card-row-lf { 32 | width:100%; 33 | } 34 | .card-row-rf{ 35 | display: none; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /resources/frame/src/admin/scss/site/module/common/page/page.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* 3 | 分页器 4 | 公共组件的颜色需要element-variables文件 5 | */ 6 | 7 | @import "../../../common/index"; 8 | 9 | 10 | .page-box{ 11 | padding: 15PX 0; 12 | text-align: center; 13 | } 14 | -------------------------------------------------------------------------------- /resources/frame/src/admin/scss/site/module/common/table/tableContAdd.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* 3 | 添加表格空内容 4 | 公共组件的颜色需要element-variables文件 5 | */ 6 | 7 | @import "../../../common/index"; 8 | 9 | 10 | .table-cont-add-box{ 11 | width: 100%; 12 | height: 45PX; 13 | border-bottom: 1PX solid $tableBorderColor; 14 | display: flex; 15 | align-items: center; 16 | 17 | p{ 18 | margin-left: 65PX; 19 | color: $main; 20 | display: flex; 21 | align-items: center; 22 | span{ 23 | cursor: pointer; 24 | margin-right: 4PX; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /resources/frame/src/admin/scss/systemCommon.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | /** 进度条 */ 4 | #progress_loading { 5 | width: 100%; 6 | height: 0px; 7 | position: fixed; 8 | left: 0; 9 | top: 0; 10 | z-index: 99999; 11 | overflow: hidden; 12 | } 13 | 14 | #progress_loading div { 15 | width: 0px; 16 | height: 0px; 17 | border-radius: 1px; 18 | background-color: #336699; 19 | } 20 | .el-loading-mask.is-fullscreen{ 21 | .el-icon-loading { 22 | font-size: 50px; 23 | } 24 | } -------------------------------------------------------------------------------- /resources/frame/src/admin/store/admin/actions.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/admin/getters.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/admin/index.js: -------------------------------------------------------------------------------- 1 | import actions from './actions'; 2 | import getters from './getters'; 3 | import mutations from './mutations' 4 | 5 | export default { 6 | namespaced:true, 7 | state(){ 8 | return { 9 | searchData:{ 10 | categoryId:'', //主题分类ID 11 | pageSelect:'10', //每页显示数 12 | themeAuthor:'', //主题作者 13 | themeKeyWords:'', //主题关键词 14 | dataValue:'', //发表时间范围 15 | viewedTimesMin:'', //被浏览次数最小 16 | viewedTimesMax:'', //被浏览次数最大 17 | numberOfRepliesMin:'', //被回复数最小 18 | numberOfRepliesMax:'', //被回复数最大 19 | essentialTheme:'', //精华主题类型 20 | topType:'' //置顶主题类型 21 | } 22 | }; 23 | }, 24 | getters, 25 | mutations, 26 | actions 27 | } 28 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/admin/mutations.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | 3 | import { 4 | SET_SEARCH_CONDITION 5 | } from '../mutationTypes' 6 | 7 | export default { 8 | /** 9 | * 搜索条件 10 | * state -> index.js/state定义的数据 11 | * payload 表示调用这个方法传过来的值 12 | */ 13 | [SET_SEARCH_CONDITION](state,payload){ 14 | //传过来的值对state内数据进行更改 15 | state.searchData.categoryId = payload.categoryId; 16 | state.searchData.pageSelect = payload.pageSelect; 17 | state.searchData.themeAuthor = payload.themeAuthor; 18 | state.searchData.themeKeyWords = payload.themeKeyWords; 19 | state.searchData.dataValue = payload.dataValue; 20 | state.searchData.viewedTimesMin = payload.viewedTimesMin; 21 | state.searchData.viewedTimesMax = payload.viewedTimesMax; 22 | state.searchData.numberOfRepliesMin = payload.numberOfRepliesMin; 23 | state.searchData.numberOfRepliesMax = payload.numberOfRepliesMax; 24 | state.searchData.essentialTheme =payload.essentialTheme; 25 | state.searchData.topType = payload.topType; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/index.js: -------------------------------------------------------------------------------- 1 | // vuex 入口文件 2 | 3 | import Vue from "vue"; 4 | import Vuex from "vuex"; 5 | import siteModule from "./site/index"; 6 | import loginModule from './login/index'; 7 | import adminModule from './admin/index'; 8 | 9 | Vue.use(Vuex); 10 | 11 | //实例化vuex 12 | const appStore = new Vuex.Store({ 13 | modules: { 14 | site: siteModule, 15 | login: loginModule, 16 | admin:adminModule 17 | } 18 | }); 19 | 20 | //热加载模块 21 | if (module.hot) { 22 | module.hot.accept(['./site/index', './login/index', './admin/index'], () => { 23 | const newSiteModule = require('./site/index').default; 24 | const newLoginModule = require('./login/index').default; 25 | const newAmindModule = require('./admin/index').default; 26 | 27 | // 加载新模块 28 | appStore.hotUpdate({ 29 | modules: { 30 | site: newSiteModule, 31 | login: newLoginModule, 32 | adminModule:newAmindModule 33 | } 34 | }); 35 | 36 | }) 37 | } 38 | 39 | export default appStore; 40 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/login/actions.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/login/getters.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/login/index.js: -------------------------------------------------------------------------------- 1 | import actions from './actions'; 2 | import getters from './getters'; 3 | import mutations from './mutations' 4 | 5 | export default { 6 | namespaced:true, 7 | state(){ 8 | return { 9 | loginState:0 10 | }; 11 | }, 12 | getters, 13 | mutations, 14 | actions 15 | } 16 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/login/mutations.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import { 3 | SET_LOGIN_STATE 4 | } from '../mutationTypes' 5 | 6 | export default { 7 | /** 8 | * 登录状态 9 | */ 10 | [SET_LOGIN_STATE](state,payload){ 11 | state.loginState = !state.loginState; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/mutationTypes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 注册所有type 类型 3 | */ 4 | 5 | //网站公共模块 6 | export const SET_LOADING = "SET_LOADING"; 7 | export const SET_NUM = 'SET_NUM'; 8 | 9 | //登录模块 10 | export const SET_LOGIN_STATE = 'SET_LOGIN_STATE'; 11 | 12 | //admin后台模块 13 | export const SET_SEARCH_CONDITION = 'SET_SEARCH_CONDITION'; 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/site/actions.js: -------------------------------------------------------------------------------- 1 | // 表单模块 actions 2 | 3 | export default { 4 | 5 | } -------------------------------------------------------------------------------- /resources/frame/src/admin/store/site/getters.js: -------------------------------------------------------------------------------- 1 | // 表单模块 getters 2 | 3 | export default { 4 | 5 | } -------------------------------------------------------------------------------- /resources/frame/src/admin/store/site/index.js: -------------------------------------------------------------------------------- 1 | // 表单模块 vuex 2 | import getters from "./getters"; 3 | import mutations from "./mutations"; 4 | import actions from "./actions"; 5 | 6 | export default{ 7 | namespaced: true, 8 | state: function() { 9 | return { 10 | loading: 0, //loading状态,0为隐藏,非0显示 11 | num:0 12 | }; 13 | }, 14 | getters, 15 | mutations, 16 | actions 17 | }; 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /resources/frame/src/admin/store/site/mutations.js: -------------------------------------------------------------------------------- 1 | // 网站基础模块 mutation方法 2 | 3 | import Vue from "vue"; 4 | import { 5 | SET_LOADING,SET_NUM 6 | } from "../mutationTypes"; 7 | 8 | export default { 9 | /** 10 | * 设置加载状态 11 | * @param {[type]} state [description] 12 | * @param {[type]} payload [description] 13 | * @return {[type]} [description] 14 | */ 15 | [SET_LOADING] (state, payload) { 16 | var nowLoadingNum = state.loading + payload; 17 | 18 | nowLoadingNum = nowLoadingNum >= 0 ? nowLoadingNum : 0; 19 | state.index.loading = nowLoadingNum; 20 | }, 21 | 22 | 23 | [SET_NUM](state,payload){ 24 | state.num++; 25 | } 26 | 27 | } 28 | 29 | -------------------------------------------------------------------------------- /resources/frame/src/admin/view/site/common/card/card.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 22 | 23 | -------------------------------------------------------------------------------- /resources/frame/src/admin/view/site/common/card/cardRow.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 39 | 40 | -------------------------------------------------------------------------------- /resources/frame/src/admin/view/site/common/page/page.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 21 | -------------------------------------------------------------------------------- /resources/frame/src/admin/view/site/common/table/tableContAdd.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 18 | -------------------------------------------------------------------------------- /resources/frame/src/admin/view/site/common/table/tableNoList.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 24 | -------------------------------------------------------------------------------- /resources/frame/src/admin/view/site/global/annexSetView.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 36 | -------------------------------------------------------------------------------- /resources/frame/src/admin/view/site/global/otherService/otherServiceKeySet.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 25 | -------------------------------------------------------------------------------- /resources/frame/src/admin/viewConfig/search.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 默认模板下搜索目录 3 | * @type {[type]} 4 | */ 5 | var path = require("path"), 6 | publicPath = "../"; 7 | 8 | module.exports = [ 9 | // control搜索配置 10 | path.resolve(__dirname, publicPath+'controllers/cloud'), 11 | path.resolve(__dirname, publicPath+'controllers/content'), 12 | path.resolve(__dirname, publicPath+'controllers/finance'), 13 | path.resolve(__dirname, publicPath+'controllers/global'), 14 | path.resolve(__dirname, publicPath+'controllers/login'), 15 | path.resolve(__dirname, publicPath+'controllers/user'), 16 | 17 | //样式 18 | path.resolve(__dirname, publicPath+'scss/'), 19 | path.resolve(__dirname, publicPath+'../helpers'), 20 | 21 | ...require("../../extend/viewBase/baseSearch"), 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/frame/src/common/lang/en.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/src/common/lang/en.js -------------------------------------------------------------------------------- /resources/frame/src/common/lang/zh.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/src/common/lang/zh.js -------------------------------------------------------------------------------- /resources/frame/src/common/urlGet.js: -------------------------------------------------------------------------------- 1 | /** 2 | * getUrlKey 截取地址栏参数 3 | * @param value 4 | * @returns {String} 5 | */ 6 | function getUrlKey(name) { 7 | return ( 8 | decodeURIComponent( 9 | (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec( 10 | location.href 11 | ) || [, ''])[1].replace(/\+/g, '%20') 12 | ) || null 13 | ); 14 | } 15 | 16 | export default { 17 | getUrlKey, 18 | }; -------------------------------------------------------------------------------- /resources/frame/src/extend/viewBase/baseSearch.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 自定义搜索目录汇总 3 | * @type {[type]} 4 | */ 5 | 6 | var path = require("path"), 7 | publicPath = "../../"; 8 | 9 | module.exports = [ 10 | path.resolve(__dirname, publicPath+'../config/'), 11 | path.resolve(__dirname, publicPath+'helpers'), 12 | path.resolve(__dirname, publicPath+'extend'), 13 | 'node_modules' 14 | ]; -------------------------------------------------------------------------------- /resources/frame/src/extend/viewBase/elementuiInit.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import {Image,MessageBox,Pagination,Upload,Popover,DatePicker,FormItem,Form,Option,Select,TableColumn,Table,CheckboxGroup,Checkbox,RadioButton,RadioGroup,Radio,Card,Button,Message,Input,Container,Header,Aside,Main,Menu,MenuItem,Loading,Dialog } from 'element-ui' 3 | 4 | Vue.use(Image).use(Pagination).use(Upload).use(Popover).use(DatePicker).use(FormItem).use(Form).use(Option).use(Select).use(TableColumn).use(Table).use(CheckboxGroup).use(Checkbox).use(RadioButton).use(RadioGroup).use(Radio).use(Card).use(Button).use(Input).use(Container).use(Header).use(Aside).use(Main).use(Menu).use(MenuItem).use(Loading).use(Dialog); 5 | 6 | Vue.prototype.$message = Message; 7 | Vue.prototype.$MessageBox = MessageBox; 8 | 9 | 10 | import 'element-ui/lib/theme-chalk/base.css'; 11 | // collapse 展开折叠 12 | import CollapseTransition from 'element-ui/lib/transitions/collapse-transition'; 13 | 14 | Vue.component(CollapseTransition.name, CollapseTransition); 15 | -------------------------------------------------------------------------------- /resources/frame/src/extend/viewBase/vantuiInit.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import { 3 | RadioGroup, 4 | Radio, 5 | PasswordInput, 6 | Loading, 7 | Picker, 8 | Button, 9 | Popup, 10 | Cell, 11 | CellGroup, 12 | Tab, 13 | Tabs, 14 | Toast, 15 | Dialog, 16 | Field, 17 | Divider, 18 | Search, 19 | NumberKeyboard, 20 | Checkbox, 21 | CheckboxGroup, 22 | Icon, 23 | uploader, 24 | List, 25 | PullRefresh, 26 | Image, 27 | ImagePreview 28 | } from "vant"; 29 | 30 | Vue.use(RadioGroup) 31 | .use(Radio) 32 | .use(PasswordInput) 33 | .use(Loading) 34 | .use(Picker) 35 | .use(Icon) 36 | .use(Button) 37 | .use(Popup) 38 | .use(Cell) 39 | .use(CellGroup) 40 | .use(Tab) 41 | .use(Tabs) 42 | .use(Toast) 43 | .use(Dialog) 44 | .use(Field) 45 | .use(Divider) 46 | .use(Search) 47 | .use(NumberKeyboard) 48 | .use(Checkbox) 49 | .use(CheckboxGroup) 50 | .use(uploader) 51 | .use(List) 52 | .use(PullRefresh) 53 | .use(Image) 54 | .use(ImagePreview); 55 | -------------------------------------------------------------------------------- /resources/frame/src/extend/viewBase/vue-auth-image.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/src/extend/viewBase/vue-auth-image.js -------------------------------------------------------------------------------- /resources/frame/static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/.gitkeep -------------------------------------------------------------------------------- /resources/frame/static/css/reset.css: -------------------------------------------------------------------------------- 1 | html,body,h1,h2,h3,h4,h5,h6,div,dl,dt,dd,ul,ol,li,p,blockquote,pre,hr,figure,table,caption,th,td,form,fieldset,legend,input,button,textarea,menu{margin:0;padding:0;} 2 | header,footer,section,article,aside,nav,hgroup,address,figure,figcaption,menu,details{display:block;} 3 | table{border-collapse:collapse;border-spacing:0;} 4 | caption,th{text-align:left;font-weight:normal;} 5 | html,body,fieldset,img,iframe,abbr{border:0;} 6 | i,cite,var,address,dfn{font-style:normal;} 7 | [hidefocus],summary{outline:0;} 8 | li{list-style:none;} 9 | h1,h2,h3,h4,h5,h6,small{font-size:100%;} 10 | sup,sub{font-size:83%;} 11 | pre,code,kbd,samp{font-family:inherit;} 12 | q:before,q:after{content:none;} 13 | textarea{overflow:auto;resize:none;} 14 | label,summary{cursor:default;} 15 | a,button{cursor:pointer;} 16 | h1,h2,h3,h4,h5,h6,strong,b{font-weight:bold;} 17 | del,ins,u,s,a,a:hover{text-decoration:none;} 18 | body,textarea,input,button,select,keygen,legend{color:#303133;outline:0;} 19 | body{background:#fff;} 20 | a{color:#336699;} 21 | -------------------------------------------------------------------------------- /resources/frame/static/css/vant-icon.css: -------------------------------------------------------------------------------- 1 | /* @font-face { 2 | font-family: "van-discuzQ"; 3 | src: url('../font/vant/vant-icon.ttf') format('truetype'), 4 | url('../font/vant/vant-icon.woff') format('woff'), 5 | url('../font/vant/vant-icon.woff2') format('woff2') 6 | } 7 | .van-icon { 8 | font-family: "van-discuzQ" !important; 9 | font-size: 14px; 10 | font-style: normal; 11 | -webkit-font-smoothing: antialiased; 12 | -moz-osx-font-smoothing: grayscale; 13 | } 14 | .van-icon,.van-icon::before { 15 | display: inline-block; 16 | } */ 17 | -------------------------------------------------------------------------------- /resources/frame/static/font/admin/discuzQ.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/admin/discuzQ.eot -------------------------------------------------------------------------------- /resources/frame/static/font/admin/discuzQ.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/admin/discuzQ.ttf -------------------------------------------------------------------------------- /resources/frame/static/font/admin/discuzQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/admin/discuzQ.woff -------------------------------------------------------------------------------- /resources/frame/static/font/admin/discuzQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/admin/discuzQ.woff2 -------------------------------------------------------------------------------- /resources/frame/static/font/discuzQ.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/discuzQ.eot -------------------------------------------------------------------------------- /resources/frame/static/font/discuzQ.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/discuzQ.ttf -------------------------------------------------------------------------------- /resources/frame/static/font/discuzQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/discuzQ.woff -------------------------------------------------------------------------------- /resources/frame/static/font/discuzQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/discuzQ.woff2 -------------------------------------------------------------------------------- /resources/frame/static/font/vant/vant-icon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/vant/vant-icon.ttf -------------------------------------------------------------------------------- /resources/frame/static/font/vant/vant-icon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/vant/vant-icon.woff -------------------------------------------------------------------------------- /resources/frame/static/font/vant/vant-icon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/font/vant/vant-icon.woff2 -------------------------------------------------------------------------------- /resources/frame/static/images/admin-logo-x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/admin-logo-x2.png -------------------------------------------------------------------------------- /resources/frame/static/images/admin-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/admin-logo.png -------------------------------------------------------------------------------- /resources/frame/static/images/expre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/expre.png -------------------------------------------------------------------------------- /resources/frame/static/images/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/icon-192.png -------------------------------------------------------------------------------- /resources/frame/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/logo.png -------------------------------------------------------------------------------- /resources/frame/static/images/noavatar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/noavatar.gif -------------------------------------------------------------------------------- /resources/frame/static/images/shareKnow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/shareKnow.png -------------------------------------------------------------------------------- /resources/frame/static/images/sharePoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/sharePoint.png -------------------------------------------------------------------------------- /resources/frame/static/images/theme_blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/theme_blue.jpg -------------------------------------------------------------------------------- /resources/frame/static/images/theme_red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/theme_red.jpg -------------------------------------------------------------------------------- /resources/frame/static/images/transcoding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/transcoding.png -------------------------------------------------------------------------------- /resources/frame/static/images/wxshare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/frame/static/images/wxshare.png -------------------------------------------------------------------------------- /resources/frame/static/js/rem.js: -------------------------------------------------------------------------------- 1 | // // 基准大小 2 | // const baseSize = 37.5; //需要跟.postcssrc.js’rootValue‘属性统一大小 3 | // // 设置 rem 函数 4 | // function setRem () { 5 | // // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。 6 | // const scale = document.documentElement.clientWidth / 375; 7 | // // 设置页面根节点字体大小 8 | // document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px' 9 | // } 10 | // // 初始化 11 | // setRem(); 12 | // // 改变窗口大小时重新设置 rem 13 | // window.onresize = function () { 14 | // setRem() 15 | // }; 16 | -------------------------------------------------------------------------------- /resources/frame/static/languages/en.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "webName": "webName", 4 | "home": "home", 5 | "setUp": "setUp", 6 | "changePassword": "changePassword", 7 | "Logout": "Logout", 8 | "eventManagement": "eventManagement", 9 | "admin": { 10 | "siteHome": "siteHome" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /resources/frame/static/languages/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "webName": "展会系统", 3 | "home": "系统首页", 4 | "setUp": "个人设置", 5 | "changePassword": "修改密码", 6 | "Logout": "退出登录", 7 | "eventManagement": "展会管理", 8 | "admin": { 9 | "siteHome": "返回站点首页" 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /resources/images/watermark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onekb/DiscuzQ/05e725a222085786fba39638930f8abaef502a8f/resources/images/watermark.png -------------------------------------------------------------------------------- /resources/lang/en/command.php: -------------------------------------------------------------------------------- 1 | 'Generate OAUTH2 private.key and public.key', 5 | 'key:generate' => 'Generate unique site key for HASH', 6 | 'storage:link' => 'Create a symbolic link from "public/storage" to "storage/app/public"', 7 | 8 | // clear 9 | 'clear:avatar' => 'Clean up local / COS unused avatars', 10 | 'clear:attachment' => 'Clean up local / COS unused attachments', 11 | 'clear:video' => 'Clean up unposted topic videos', 12 | 13 | // upgrade 14 | 'upgrade:category-permission' => 'Initialize category permission for historical data', 15 | 'upgrade:videoSize' => 'Initialize video size for front display', 16 | 'upgrade:notice' => 'Initialization/new notification type data format', 17 | 'upgrade:notice-iteration' => 'Upgrade iteration notification', 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/command.php: -------------------------------------------------------------------------------- 1 | '生成 OAUTH2 private.key 和 public.key', 5 | 'key:generate' => '生成站点唯一key,用于HASH', 6 | 'storage:link' => '创建从“公共/存储”到“存储/应用/公共”的符号链接', 7 | 8 | // clear 9 | 'clear:avatar' => '清理本地/COS未使用的头像', 10 | 'clear:attachment' => '清理本地/COS未使用的附件', 11 | 'clear:video' => '清理未发布的主题视频', 12 | 'clear:question' => '返还过期未回答的问答金额', 13 | 14 | // upgrade 15 | 'upgrade:avatar' => '更新用户头像信息', 16 | 'upgrade:ordersExpiredAt' => '初始化付费注册订单的过期时间', 17 | 'upgrade:category-permission' => '初始化分类权限', 18 | 'upgrade:videoSize' => '初始化转码成功的视频宽高、时长', 19 | 'upgrade:notice' => '初始化/新增通知类型数据格式', 20 | 'upgrade:postContent' => '初始化帖子内容,把原内容转为块编辑器的json数据。需要在迁移之前执行。', 21 | 'upgrade:notice-iteration' => '更新迭代通知数据', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/login.php: -------------------------------------------------------------------------------- 1 | '登录失败,您还可以尝试:values次', 5 | 'login_info_error' => '登录名或密码错误', 6 | 'WebUser_img_error' => '二维码生成失败', 7 | 'WebUser_login_success' => '登录成功', 8 | 'WebNewUser_login_success' => '扫码成功', 9 | 'WebUser_img_payload_error' => '用户未扫码', 10 | ]; 11 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/statistic.php: -------------------------------------------------------------------------------- 1 | '周', 5 | 'month' => '月', 6 | ]; 7 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/trade.php: -------------------------------------------------------------------------------- 1 | '交易方式不存在。', 5 | 'wallet_pay_password_error' => '支付密码错误。今天还能重试 :value 次', 6 | 'wallet_pay_success' => '支付成功。', 7 | 'missing_wechat_openid' => '未绑定微信,缺少openid', 8 | 'reward_success' => '采纳成功。', 9 | 'uninitialized_pay_password' => '未设置支付密码', 10 | 'pay_password_failures_times_toplimit' => '您输入的密码错误次数已超限,请点击忘记密码找回或次日后重试', 11 | ]; 12 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/usersExport.php: -------------------------------------------------------------------------------- 1 | '用户ID', 4 | 'username' => '用户名', 5 | 'mobile' => '手机号', 6 | 'originalMobile' => '手机号', 7 | 'status' => '帐号状态', 8 | 'sex' => '性别', 9 | 'groups' => '用户组名', 10 | 'mp_openid' => '微信openid', 11 | 'unionid' => '微信unionID', 12 | 'nickname' => '微信昵称', 13 | 'created_at' => '注册时间', 14 | 'register_ip' => '注册IP', 15 | 'register_port' => '注册端口', 16 | 'login_at' => '最后登录时间', 17 | 'last_login_ip' => '最后登录ip', 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/wechat.php: -------------------------------------------------------------------------------- 1 | '无效未知url地址', 12 | 'wechat_invalid_config_exception' => '无效配置异常', 13 | 'wechat_runtime_exception' => '运行时异常', 14 | 'wechat_invalid_argument_exception' => '无效参数异常', 15 | 16 | // reply 17 | 'wechat_only_one_message_fail' => '该消息类型只允许创建一条', 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/views/errors/401.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors::minimal') 2 | 3 | @section('title', __('Unauthorized')) 4 | @section('code', '401') 5 | @section('message', __('Unauthorized')) 6 | -------------------------------------------------------------------------------- /resources/views/errors/403.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors::minimal') 2 | 3 | @section('title', __('Forbidden')) 4 | @section('code', '403') 5 | @section('message', __($exception->getMessage() ?: 'Forbidden')) 6 | -------------------------------------------------------------------------------- /resources/views/errors/404.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.minimal') 2 | 3 | @section('title', 'Not Found') 4 | @section('code', '404') 5 | @section('message', 'Not Found') 6 | -------------------------------------------------------------------------------- /resources/views/errors/419.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors::minimal') 2 | 3 | @section('title', __('Page Expired')) 4 | @section('code', '419') 5 | @section('message', __('Page Expired')) 6 | -------------------------------------------------------------------------------- /resources/views/errors/429.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors::minimal') 2 | 3 | @section('title', __('Too Many Requests')) 4 | @section('code', '429') 5 | @section('message', __('Too Many Requests')) 6 | -------------------------------------------------------------------------------- /resources/views/errors/500.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.minimal') 2 | 3 | @section('title', 'Server Error') 4 | @section('code', '500') 5 | @section('message', 'Server Error') 6 | -------------------------------------------------------------------------------- /resources/views/errors/503.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors::minimal') 2 | 3 | @section('title', __('Service Unavailable')) 4 | @section('code', '503') 5 | @section('message', __($exception->getMessage() ?: 'Service Unavailable')) 6 | -------------------------------------------------------------------------------- /resources/views/install/problems.blade.php: -------------------------------------------------------------------------------- 1 | @extends('install.app') 2 | 3 | @section('content') 4 |

环境检测

5 | 6 |

服务器信息,请解决以下问题然后刷新页面:可看到安装文档 Discuz! Q 官方文档.

7 | 8 |
9 | @foreach($problems as $problem) 10 |
11 |

{!! $problem['message'] !!}

12 | @isset($problem['detail']) 13 |

{{$problem['detail']}}

14 | @endisset 15 |
16 | @endforeach 17 |
18 | @endsection 19 | -------------------------------------------------------------------------------- /routes/web.php: -------------------------------------------------------------------------------- 1 | get('/install', 'install.index', InstallController\IndexController::class); 6 | $route->post('/install', 'install', InstallController\InstallController::class); 7 | $route->get('/upgrade', 'upgrade', InstallController\UpgradeLogController::class); 8 | $route->get('/{other:.*}', 'other', \App\Http\Controller\IndexController::class); 9 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/cert/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/formatter/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/locale/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/public/exports/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/statistics/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/tmp/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | --------------------------------------------------------------------------------