1.预览地址:www.eipflow.com
(1) 权限工作流:www.demo.eipflow.com/Account/Login
(2) 基础权限版:www.auth.eipflow.com/Account/Login
(3) Net4.5开源版:http://www.open.eipflow.com/Account/Login
2.Adminlte(https://adminlte.io/)
Adminlte是国外一款开源免费的Bootstrap后台模板,集成了大多数后台系统需要的控件,如Tab,Table,Checkbox,报表等
学习参考地址:
https://gitee.com/zhougaojun/KangarooAdmin
https://blog.csdn.net/jrn1012/article/details/54096408
https://www.cnblogs.com/roy-blog/p/8280933.html?utm_source=debugrun&utm_medium=referral
https://www.jianshu.com/p/e80b1f5001eb
多标签模式:
https://gitee.com/weituotian/AdminLTE-With-Iframe
Vue模式
https://devjin0617.github.io/vue2-admin-lte/
https://github.com/r0r1/vuejs-AdminLTE
3.Asp.Net Core2.1 Mvc区域,使用区域,可以有效的对业务进行隔离,各种业务及分工可以更灵活
wwwroot:放置系统需要的静态资源如js,css,图片等
app:所有区域模块使用的Js
build:所有自动化压缩后的文件存放目录,生产环境全部使用压缩后的js,css,主要使用bundleconfig.json进行配置,安装功能插件
参考:https://www.cnblogs.com/tdfblog/p/bundling-and-minification-in-asp-net-core.html
css:系统中需要用到的Css文件
lIb:使用的第三方组件
upload:一些上传的文件存放目录,也可单独放到文件服务器上
areas:区域,根据功能模块进行划分,基于此套系统开发时,新系统即可开一个新的区域进行隔离,如Oa,Crm,PDM等等,区域里面只会有控制器和页面
baseController:所有前端页面的基类,主要实现页面的缓存
using Microsoft.AspNetCore.Mvc; namespace EIP { /// <summary>
/// 添加缓存 /// </summary>
[ResponseCache(CacheProfileName = "EipCacheProfiles")] public class BaseController : Controller { } }
Startup:系统启动项配置,可配置缓存相关参数,BaseController中的缓存名即从此文件进行配置
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace EIP { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) { //添加缓存策略
services.AddMvc(option => option.CacheProfiles.Add("EipCacheProfiles", new CacheProfile { Duration = 86400 })); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.Configure<FormOptions>(x => { x.ValueLengthLimit = int.MaxValue; x.MultipartBodyLengthLimit = int.MaxValue; }); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); //添加区域支持
app.UseMvc(routes => { routes.MapRoute( name: "areas", template: "{area:exists}/{controller=Home}/{action=Index}/{id?}" ); routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } } }