Coder Social home page Coder Social logo

colinin / abp-next-admin Goto Github PK

View Code? Open in Web Editor NEW
791.0 36.0 239.0 27.98 MB

这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目

License: MIT License

C# 52.92% HTML 0.34% JavaScript 16.44% CSS 3.62% Dockerfile 0.04% TypeScript 10.69% Vue 12.34% Batchfile 0.06% Smarty 0.17% PowerShell 0.08% Lua 0.01% Shell 0.09% Less 0.40% SCSS 0.03% Java 0.04% Objective-C 0.05% Dart 2.22% C++ 0.20% C 0.04% CMake 0.23%
typescript vue vben abp-vnext

abp-next-admin's People

Contributors

andywu188 avatar catcherwong avatar colinin avatar dependabot[bot] avatar dingyzh avatar jasonliao-cb avatar leehom0123 avatar tangtang1997 avatar think-ya avatar xgluxv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abp-next-admin's Issues

建议开发支持antd版本

ant-design框架社区影响力比较大,几乎已经成为国内UI标准了。考虑项目推广使用的话建议开发antd版本。
https://github.com/ant-design/ant-design (react版本)
https://github.com/ant-design/ant-design-pro (react版本)
https://github.com/vueComponent/ant-design-vue (vue版本)
https://github.com/NG-ZORRO/ng-zorro-antd (angular版本)
https://github.com/ant-design-blazor/ant-design-blazor (blazor版本)
...

blazor + grpc + abp 强无敌。预计到abp 3.0开始支持grpc了。

Platform.HttpApi.Host启动不起来

我已经改了appsetting里的数据库连接地址,但是启动仍会报错

MySqlConnector.MySqlException (0x80004005): Access denied for user 'colin'@'192.168.0.37' (using password: YES)
at MySqlConnector.Core.ServerSession.SwitchAuthenticationAsync(ConnectionSettings cs, PayloadData payload, IOBehavior ioBehavior, CancellationToken cancellationToken) in //src/MySqlConnector/Core/ServerSession.cs:line 577
at MySqlConnector.Core.ServerSession.ConnectAsync(ConnectionSettings cs, Int32 startTickCount, ILoadBalancer loadBalancer, IOBehavior ioBehavior, CancellationToken cancellationToken) in /
/src/MySqlConnector/Core/ServerSession.cs:line 467
at MySqlConnector.Core.ConnectionPool.GetSessionAsync(MySqlConnection connection, Int32 startTickCount, IOBehavior ioBehavior, CancellationToken cancellationToken) in //src/MySqlConnector/Core/ConnectionPool.cs:line 110
at MySqlConnector.Core.ConnectionPool.GetSessionAsync(MySqlConnection connection, Int32 startTickCount, IOBehavior ioBehavior, CancellationToken cancellationToken) in /
/src/MySqlConnector/Core/ConnectionPool.cs:line 140
at MySqlConnector.MySqlConnection.CreateSessionAsync(ConnectionPool pool, Int32 startTickCount, Nullable1 ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlConnection.cs:line 846 at MySqlConnector.MySqlConnection.OpenAsync(Nullable1 ioBehavior, CancellationToken cancellationToken) in //src/MySqlConnector/MySqlConnection.cs:line 410
at MySqlConnector.MySqlConnection.Open() in /
/src/MySqlConnector/MySqlConnection.cs:line 376
at DotNetCore.CAP.MySql.DbConnectionExtensions.ExecuteNonQuery(IDbConnection connection, String sql, IDbTransaction transaction, Object[] sqlParams)
at DotNetCore.CAP.MySql.MySqlStorageInitializer.InitializeAsync(CancellationToken cancellationToken)
at DotNetCore.CAP.MySql.MySqlStorageInitializer.InitializeAsync(CancellationToken cancellationToken)
at DotNetCore.CAP.Internal.Bootstrapper.BootstrapAsync(CancellationToken stoppingToken)

What needs to be done next time

As backend services grow more and more functional, the current backend admin project is too bloated and deviated from what was originally assigned.

In the future, backend-admin project will be further broken up to separate Identity-apiIdentity-server-apiSetting-management-apiTenant-management-apiFrature-management-api

外网部署的时候 apigateway-host-service 无法启动:Authorization failed! Given policy has not granted.

使用的docker的启动方式

其他服务启动正常
但是 apigateway-host-service 无法启动:Authorization failed! Given policy has not granted.

其中 apigateway-admin-service的Debug.log文件中可以看到如下


   at Microsoft.AspNetCore.Authorization.AbpAuthorizationServiceExtensions.CheckAsync(IAuthorizationService authorizationService, AuthorizationPolicy policy)
   at Volo.Abp.Authorization.MethodInvocationAuthorizationService.CheckAsync(MethodInvocationAuthorizationContext context)
   at Volo.Abp.Authorization.AuthorizationInterceptor.AuthorizeAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at LINGYUN.ApiGateway.Ocelot.GlobalConfigurationController.GetAsync(GlobalGetByAppIdInputDto input)
   at lambda_method(Closure , Object )
   at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

我检查了redis中的token
image
这个域名已经做过host可以正常访问的

platform.abppermissiongrants表中数据如下

image

对比过 #136 的方法 还是没有进展 apigateway-host-service 无法启动 无法启动……

【关于项目更新与问题处理】

最近收到邮件提醒(催更啊小伙子...)问我是不是放弃这个项目,我想abp框架不停更我就不放弃,正式项目正在用某些模块,前端纯属个人学习Vue,所以很多地方大量重复编码,界面也不美观(css从入门到放弃)

项目不会停止,只是年底了,太太太太太忙了,昨天1点半打的下班卡。。。

等放假了,我就有充足的精力来维护这个项目,和处理问题了,如果现在发现问题,可以开个issue,或者联系我的邮箱,谢谢

vue前端编译报错

使用yarn install安装后,再执行start-vue-admin.bat
结果报错。
Webpack: Starting ... [1] [1] √ Compile modules [1] √ Build modules [1] √ Optimize modules [1] > Emit files [1] ERROR Failed to compile with 1 errors下午10:31:47 [1] Webpack: Starting ... [1] [1] √ Compile modules [1] √ Build modules [1] √ Optimize modules [1] √ Emit files [1] [1] Webpack: Finished after 25.016 seconds. [1] [1] ERROR in E:/source/net/abp/abp-vue-admin-element-typescript/vueJs/node_modules/vuedraggable/src/vuedraggable.d.ts(8,5): [1] 8:5 Property 'element' in type 'Draggable' is not assignable to the same property in base type 'object & Record<never, any> & Vue'. [1] Type 'string' is not assignable to type 'Element | null'. [1] 6 | noTransitionOnDrag: boolean; [1] 7 | [1] > 8 | element: string; [1] | ^ [1] 9 | [1] 10 | tag: string; [1] 11 | [1] ERROR in E:/source/net/abp/abp-vue-admin-element-typescript/vueJs/src/components/DraggableKanban/index.vue(26,2): [1] 26:2 No overload matches this call. [1] Overload 1 of 2, '(options: ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<...>> & ThisType<...>): <VC extends VueClass<...>>(target: VC) => VC', gave the following error. [1] Type 'typeof Draggable' is not assignable to type 'VueConstructor<Vue> | FunctionalComponentOptions<any, PropsDefinition<any>> | ComponentOptions<never, any, any, any, any, Record<...>> | AsyncComponentPromise<...> | AsyncComponentFactory<...>'. [1] Type 'typeof Draggable' is not assignable to type 'VueConstructor<Vue>'. [1] Types of parameters 'options' and 'options' are incompatible. [1] Type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<...>> | undefined' is not assignable to type 'ThisTypedComponentOptionsWithArrayProps<Vue, object, object, object, never> | undefined'. [1] Type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<...>>' is not assignable to type 'ThisTypedComponentOptionsWithArrayProps<Vue, object, object, object, never>'. [1] Type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Record<string, any>>, Record<...>>' is not assignable to type 'ComponentOptions<Vue, DataDef<object, Record<never, any>, Vue>, object, object, never[], Record<never, any>>'. [1] Types of property 'props' are incompatible. [1] Type 'ArrayPropsDefinition<Record<string, any>> | RecordPropsDefinition<Record<string, any>> | undefined' is not assignable to type 'never[] | undefined'. [1] Type 'ArrayPropsDefinition<Record<string, any>>' is not assignable to type 'never[]'. [1] Overload 2 of 2, '(target: VueClass<Vue>): VueClass<Vue>', gave the following error. [1] Argument of type '{ name: string; components: { Draggable: typeof Draggable; }; }' is not assignable to parameter of type 'VueClass<Vue>'. [1] Object literal may only specify known properties, and 'name' does not exist in type 'VueClass<Vue>'. [1] 24 | import { Component, Prop, Vue } from 'vue-property-decorator' [1] 25 | [1] > 26 | @Component({ [1] | ^ [1] 27 | name: 'DraggableKanban', [1] 28 | components: { [1] 29 | Draggable [1] ERROR in E:/source/net/abp/abp-vue-admin-element-typescript/vueJs/src/components/DraggableList/index.vue(67,2):

通过PermissionAppService查询权限时的性能问题

当通过官方库查询权限时,直接采用的IPermissionGrantRepository来查询,而查询用户权限的时候,还需要查询用户角色组,因此带来了额外的性能开销,需要重写IPermissionManager来优化

后端程序调试

对这个开源项目很感兴趣,看着后台框架都是放的模块,后端程序没有sln如何正确进行调试

多租户

我看到代码里面有多租户,但是运行是数据没有隔离是因为没启用多租户吗

通过设置的方式来集成阿里云SDK

目前是用过配置Options来启用阿里云的API,无法做到运行时动态改变配置,考虑使用设置管理模块?

阿里云API属于底层模块,理论上来说是不会随时改变的

How to start to debug with frontend application

Hi, can you write documents on how to start the frontend application with more-detail?
for example:
1:the suitable vue-cli version?
2:the yarn install dependancy? which is the suitable directory to run it?
for me, i got the following error and yarn failed

E:\abp-vue-admin-element-typescript\vueJs>yarn install
yarn install v1.19.1
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
warning @microsoft/signalr > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
warning @microsoft/signalr > request > [email protected]: this
warning element-ui > async-validator > babel-runtime > [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
warning jsonlint > [email protected]: Package no longer supported. Contact [email protected] for more info.
error An unexpected error occurred: "https://github.com/seonim-ryu/Squire: connect ETIMEDOUT 192.30.253.112:443".
info If you think this is a bug, please open a bug report with the information provided in "E:\\abp-vue-admin-element-typescript\\vueJs\\yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

3:how to distinguish the vuejs and vuejsempty?

in fact , i couldnot run the following cmd success, only in vuejsempty folder i can yarn install , but i couldnot start the vue project to see the front-end . where should i input the right configuration.

cd vueJs

start-vue-admin.bat

4: how to fill the follow default address according to the services in the source project:


VUE_APP_BASE_API = '你的api网关服务器地址'

VUE_APP_BASE_IDENTITY_SERVICE = '你的identityService服务器地址'

VUE_APP_BASE_IDENTITY_SERVER = '你的identityServer服务器地址'

成功运行后台及前端。登录后,后台页面没有菜单列表

前端页面如图:
TIM截图20200715135614

后台没有错误, 前端有错误。
TIM截图20200715135701

[HMR] Waiting for update signal from WDS...
start signalr connection...
[2020-07-15T05:51:03.174Z] Information: Normalizing '/signalr-hubs/notifications' to 'http://localhost:9527/signalr-hubs/notifications'.
Failed to load resource: the server responded with a status of 404 (Not Found)
webpack-internal:///./node_modules/@microsoft/signalr/dist/esm/Utils.js:210 [2020-07-15T05:51:03.289Z] Error: Failed to complete negotiation with the server: Error: Not Found
webpack-internal:///./node_modules/@microsoft/signalr/dist/esm/Utils.js:210 [2020-07-15T05:51:03.291Z] Error: Failed to start the connection: Error: Not Found
webpack-internal:///./node_modules/@microsoft/signalr/dist/esm/Errors.js:29 Uncaught (in promise) Error: Not Found
    at new HttpError (webpack-internal:///./node_modules/@microsoft/signalr/dist/esm/Errors.js:29)
    at XMLHttpRequest.xhr.onload (webpack-internal:///./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js:75)

网关启动失败,网关服务已启动了,是什么情况呢?

Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module LINGYUN.ApiGateway.ApiGatewayHostModule, LINGYUN.ApiGateway.Host, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: One or more errors occurred. (Remote service returns error! StatusCode = BadGateway). See the inner exception for details.
---> System.AggregateException: One or more errors occurred. (Remote service returns error! StatusCode = BadGateway)
---> Volo.Abp.AbpException: Remote service returns error! StatusCode = BadGateway

appsettings配置错了吗?
{ "ApiGateway": { "AppId": "TEST-APP"//这里是用于Ocelot主机去API服务器获取参数的标识,指定需要获取什么类型的网关配置 }, "Redis": { "Configuration": "myredis", "InstanceName": "LINGYUN.AbpApplication", "DefaultDatabase": 10 }, "RemoteServices": { "ApiGateway": { "BaseUrl": "http://api-gateway-service/", "IdentityClient": "ApigatewayHostClient" } } }

【分布式权限管理】当前权限管理的难点

当前权限管理太过于集中,框架依赖于IPermissionDefinitionProvider,如果要管理权限,则Admin模块必须依赖于权限配置模块,如果权限越来越多,很难有效的管理(查询权限也会越来越慢)

解决要点:

1、创建一个基础模块,定义接口IPermissionRegisterContributer,该接口在应用启动时通过扫描IPermissionDefinitionProvider来向权限中心注册项目权限;

2、IPermissionRegisterContributer的实现可以是分布式事件的发布者,权限中心通过订阅此事件向自身的IPermissionDefinitionProvider接口注入对应的权限,而后续所有的权限管理都通过权限中心来实现,解耦具体的业务权限与管理模块

3、待续,应该还有更好的思路;而且SettingManagement、FeatureManagement等都可以采用这种思路

RTL support

UIs for languages that are read from right-to-left (RTL), such as Arabic and Hebrew, should be mirrored to ensure content is easy to understand.

Mirroring layout

The main difference between left-to-right (LTR) and right-to-left (RTL) language scripts is the direction in which content is displayed:

LTR languages display content from left to right
RTL languages display content from right to left

RTL content also affects the direction in which some icons and images are displayed, particularly those depicting a sequence of events.

In general, the passage of time is depicted as left to right for LTR languages, and right to left for RTL languages.
flexbox-axis

【Important】Please back up your custom gateway data

Among the issues: #34: How to start to debug with backend application,

As suggested, I left the initialization of the gateway to the data seed, but this was followed by the non-negligible problem of deleting the original gateway data structure and data each time the gateway was started.

If want to check for changes and only write preset data, this is a lot of work, so In the current version I have not considered,

so: please back up your own gateway management database!

登录续租问题

我有一个问题,整个架构是否没有设计续租问题,一个活跃用户在使用期间,假设token有效期过了,应该是自动续租,我发现现在貌似是设置一个长期有效的token来解决这个问题

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.