30 Commits
8.0 ... 8.2

Author SHA1 Message Date
yubaolee
add77fb23c 📃docs: 完善多租户 2025-06-28 17:28:57 +08:00
yubaolee
f392992605 📃docs: 完善多数据库访问 2025-06-28 17:19:26 +08:00
yubaolee
b61b315d27 ⚠️feat: SqlSugar自动识别所有连接字符串 2025-06-28 17:14:35 +08:00
yubaolee
b38391fddd 📃docs: 日常更新 2025-06-27 21:13:09 +08:00
yubaolee
77ce71d603 📃docs: 日常更新 2025-06-27 21:03:22 +08:00
yubaolee
437d657131 Merge branch 'main' of https://gitee.com/dotnetchina/OpenAuth.Net 2025-06-27 08:48:54 +08:00
yubaolee
1f3eb20676 📃docs: 增加多语言说明 2025-06-27 08:48:43 +08:00
yubaolee
1b162e22cc 📃docs: 完善多数据库 2025-06-26 21:16:50 +08:00
yubaolee
a44ca9ae16 🐛fix: #ICI0GZ 2025-06-26 21:02:11 +08:00
yubaolee
220f49743f 📃docs: 完善多语言配置 2025-06-25 23:20:18 +08:00
yubaolee
d7f4b667a1 📃docs: 增加多语言说明 2025-06-25 15:16:36 +08:00
yubaolee
7c36c79f37 📃docs: 增加sqlsugar访问多数据库 2025-06-24 23:27:43 +08:00
yubaolee
a8681f962c 🐛fix: 多数据库时,默认数据类型异常 2025-06-23 21:59:25 +08:00
yubaolee
ebfbc7eceb Merge branch 'main' of https://gitee.com/dotnetchina/OpenAuth.Net 2025-06-23 09:09:19 +08:00
yubaolee
98dad768e5 🐛fix: 修复统一接口导致的返回问题 2025-06-20 21:01:29 +08:00
yubaolee
ae92db7e1a 🔧chore: 修复脚本 2025-06-20 14:14:15 +08:00
yubaolee
878acdacc0 🐛fix: #ICGJPH Resource表已经改为SysResource,但代码里面还有Resource相关 2025-06-20 11:15:32 +08:00
yubaolee
ee6a57b7bf 🐛fix: 修复代码生成器 2025-06-15 18:42:42 +08:00
yubaolee
35bd071384 ⚠️feat: 代码生成器增加排序功能 2025-06-14 12:13:47 +08:00
yubaolee
b275847f3b ⚠️feat: 增加排序字段 2025-06-14 11:07:26 +08:00
yubaolee
ab027241bf 🔄refactor: 完善代码生成器 2025-06-11 21:50:41 +08:00
yubaolee
f496f48738 🔄refactor: response.result调整为response.data 2025-06-11 21:25:36 +08:00
yubaolee
069991504c 🔄refactor: 统一返回给前端的数据结构 2025-06-11 21:14:41 +08:00
yubaolee
0b930dc6b4 🔄refactor: 删除MVC相关的代码 2025-06-11 20:26:11 +08:00
yubaolee
93326b634b Merge branch 'main' of https://gitee.com/dotnetchina/OpenAuth.Net into main 2025-06-08 14:10:33 +08:00
yubaolee
4f88d84780 chore: 调整首页描述 2025-06-08 14:10:12 +08:00
yubaolee
748b522681 docs: update doc 2025-06-08 13:59:44 +08:00
yubaolee
18f94787e0 docs: 完善文档 2025-06-08 11:43:41 +08:00
李玉宝
a743463132 update README.md.
Signed-off-by: 李玉宝 <yubaolee@163.com>
2025-06-07 17:45:12 +00:00
yubaolee
18cbbc6fea 📃docs: 修改说明 2025-06-08 01:43:05 +08:00
130 changed files with 1299 additions and 994 deletions

View File

@@ -13,5 +13,6 @@
/newdocs/docs/.vuepress/.cache
/newdocs/docs/.vuepress/.temp
/newdocs/docs/.vuepress/dist
/Vue2/node_modules

View File

@@ -1,3 +1,62 @@
## v8.1
* [重磅] 统一后端返回格式response.result调整为response.data
* [重磅] 表格组件增加排序功能
* [优化] 持续优化代码
## v8.0
* [重磅] 开源十周年特别版!
* [重磅] 全面开源原付费vue2版本源码及文档免费使用。
* [重磅] 删除原有mvc项目从此以后只有前后端分离。
## v7.6
* [重磅] 分离会签和网关功能,详情请查看工作流中的概念
* [优化] 前后端统一流程节点类型。详情请查看文档流程相关代码-流程模板
* [优化] 修复顺序加签
## v7.5
* [新增] 流程执行节点支持通过Sql配置用户
* [优化] 流程节点设置json对象统一为datas字段
* [优化] 优化layui样式
## v7.4
* [新增] 代码生成加上外部数据源支持;
* [新增] 新增动态API功能
* [优化] 流程模板调整为sqlsugar
## v7.3
* [新增] 新增API鉴权功能
* [优化] 优化vue3代码生成
## v7.2
* [重磅]流程增加任意节点撤回审批功能
* [重磅]全面优化数据库初始脚本SqlServer采用帕斯卡命名MySql/pg采用小写命名,Oracle采用大写
* [重磅]优化layui点击行可选中
## v7.1
* [重磅]全面优化对Oracle数据库的支持
* [优化]FIX issue #IBLX2E:目前Oracle工作流列表不能加载 目前Oracle工作流列表不能加载
* [优化]流程实例历史操作记录
## v7.0
- **新特性**
- [新增] 全面支持.Net 9
- [新增] 新增Dockerfile支持
- [新增] 修复vue3代码生成部分bug
## v6.5
- **新特性**

View File

@@ -5,6 +5,11 @@
/// </summary>
public static class Define
{
/// <summary>
/// 默认租户ID
/// </summary>
public const string DEFAULT_TENANT_ID = "OpenAuthDBContext";
//Relevance关联KEY
/// <summary>
/// 用户角色关联KEY

View File

@@ -16,7 +16,7 @@ namespace Infrastructure.Extensions.AutofacManager
public static TService GetService<TService>() where TService:class
{
Type typeParameterType = typeof(TService);
return (TService)_provider.GetService(typeParameterType);
return (TService)_provider?.GetService(typeParameterType);
}
}
}

View File

@@ -29,6 +29,6 @@
/// <summary>
/// 回传的结果
/// </summary>
public T Result { get; set; }
public T Data { get; set; }
}
}

View File

@@ -5,9 +5,10 @@ namespace Infrastructure.Utilities
{
public static class HttpContextUtil
{
private static IHttpContextAccessor _accessor=AutofacContainerModule.GetService<IHttpContextAccessor>();
// 不要在静态初始化时获取IHttpContextAccessor而是在需要时获取
private static IHttpContextAccessor _accessor => AutofacContainerModule.GetService<IHttpContextAccessor>();
public static Microsoft.AspNetCore.Http.HttpContext Current => _accessor.HttpContext;
public static Microsoft.AspNetCore.Http.HttpContext Current => _accessor?.HttpContext;
/// <summary>
/// 获取租户ID
@@ -15,7 +16,7 @@ namespace Infrastructure.Utilities
/// <returns></returns>
public static string GetTenantId(this IHttpContextAccessor accessor)
{
string tenantId = "OpenAuthDBContext";
string tenantId = Define.DEFAULT_TENANT_ID;
if (accessor != null && accessor.HttpContext != null)
{

View File

@@ -74,17 +74,6 @@ namespace OpenAuth.App
return _strategy.GetTableColumns(moduleCode);
}
/// <summary>
/// 获取角色可访问的字段信息因为MVC版本没有代码生成器所以只能通过直接读取数据库表结构的方式
/// </summary>
/// <param name="moduleCode"></param>
/// <returns></returns>
[Obsolete("获取角色可访问的字段信息因为MVC版本没有代码生成器所以只能通过直接读取数据库表结构的方式")]
public List<BuilderTableColumn> GetTableColumnsFromDb(string moduleCode)
{
return _strategy.GetTableColumnsFromDb(moduleCode);
}
}
}

View File

@@ -148,24 +148,6 @@ namespace OpenAuth.App
return allprops.Where(u => props.Contains(u.ColumnName)).ToList();
}
public List<BuilderTableColumn> GetTableColumnsFromDb(string moduleCode)
{
var allprops = _dbExtension.GetTableColumnsFromDb(moduleCode);
//如果是系统模块直接返回所有字段。防止开发者把模块配置成系统模块还在外层调用loginContext.GetProperties("xxxx");
bool? isSysModule = SugarClient.Queryable<Module>().First(u => u.Code == moduleCode)?.IsSys;
if (isSysModule!= null && isSysModule.Value)
{
return allprops.ToList();
}
var props =SugarClient.Queryable<Relevance>().Where(u =>
u.RelKey == Define.ROLEDATAPROPERTY && _userRoleIds.Contains(u.FirstId) && u.SecondId == moduleCode)
.Select(u => u.ThirdId).ToList();
return allprops.Where(u => props.Contains(u.ColumnName)).ToList();
}
//用户角色
public NormalAuthStrategy(ISqlSugarClient client,DbExtension dbExtension) : base(client, null)

View File

@@ -85,11 +85,6 @@ namespace OpenAuth.App
return SugarClient.Queryable<BuilderTableColumn>().Where(u => u.TableName.ToLower() == moduleCode.ToLower()).ToList();
}
public List<BuilderTableColumn> GetTableColumnsFromDb(string moduleCode)
{
return _dbExtension.GetTableColumnsFromDb(moduleCode);
}
public SystemAuthStrategy(ISqlSugarClient client,DbExtension dbExtension) : base(client, null)
{

View File

@@ -15,6 +15,12 @@
public string key { get; set; }
/// <summary>
/// 排序字段
/// </summary>
/// <example>sort=id,asc</example>
public string sort { get; set; }
/// <summary>
/// 自定义sql条件
/// </summary>

View File

@@ -6,7 +6,7 @@
// Last Modified By : yubaolee
// Last Modified On : 03-09-2016
// ***********************************************************************
// <copyright file="TableData.cs" company="Microsoft">
// <copyright file="PagedDynamicDataResp.cs" company="Microsoft">
// 版权所有(C) Microsoft 2015
// </copyright>
// <summary>layui datatable数据返回</summary>
@@ -18,41 +18,33 @@ using OpenAuth.Repository.Domain;
namespace OpenAuth.App.Response
{
/// <summary>
/// table的返回数据
/// 返回动态数据类型的分页数据
/// <para>带有列定义</para>
/// </summary>
public class TableData
public class PagedDynamicDataResp : Infrastructure.Response
{
/// <summary>
/// 状态码
/// </summary>
public int code { get; set; }
/// <summary>
/// 操作消息
/// </summary>
public string msg { get; set; }
/// <summary>
/// 总记录条数
/// </summary>
public int count { get; set; }
public int Count { get; set; }
/// <summary>
/// 返回的表格列定义
/// 该属性基于代码生成使用的列定义
/// </summary>
public List<BuilderTableColumn> columnFields;
public List<BuilderTableColumn> ColumnFields{ get; set; }
/// <summary>
/// 数据内容
/// </summary>
public dynamic data { get; set; }
public dynamic Data { get; set; }
public TableData()
public PagedDynamicDataResp()
{
code = 200;
msg = "加载成功";
columnFields = new List<BuilderTableColumn>();
Code = 200;
Message = "加载成功";
ColumnFields = new List<BuilderTableColumn>();
}
}
}

View File

@@ -0,0 +1,28 @@
using System.Collections.Generic;
using Infrastructure;
namespace OpenAuth.App.Response
{
/// <summary>
/// 返回确定类型的表格数据可以为swagger提供精准的注释
/// </summary>
public class PagedListDataResp<T> : Infrastructure.Response
{
/// <summary>
/// 总记录条数
/// </summary>
public int Count { get; set; }
/// <summary>
/// 数据内容
/// </summary>
public List<T> Data { get; set; }
public PagedListDataResp()
{
Code = 200;
Message = "加载成功";
}
}
}

View File

@@ -1,11 +1,16 @@
using System;
using System.Linq;
using Infrastructure;
using Infrastructure.Utilities;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using OpenAuth.App.Interface;
using OpenAuth.Repository;
using OpenAuth.Repository.Core;
using OpenAuth.Repository.Domain;
using SqlSugar;
using Autofac;
using Infrastructure.Extensions.AutofacManager;
namespace OpenAuth.App
{
@@ -13,7 +18,7 @@ namespace OpenAuth.App
/// SqlSugar基础类
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract class SqlSugarBaseApp<T> where T : class, new()
public abstract class SqlSugarBaseApp<T> where T : BaseEntity, new()
{
protected ISqlSugarClient SugarClient;
@@ -21,8 +26,23 @@ namespace OpenAuth.App
protected IAuth _auth;
/// <summary>
/// 保持向后兼容的构造函数,避免修改子类
/// </summary>
public SqlSugarBaseApp(ISqlSugarClient client, IAuth auth)
{
string tenantId = Define.DEFAULT_TENANT_ID;
var httpContextAccessor = AutofacContainerModule.GetService<IHttpContextAccessor>();
if (httpContextAccessor != null)
{
tenantId = httpContextAccessor.GetTenantId();
}
if(tenantId != Define.DEFAULT_TENANT_ID) //如果不是默认租户则使用租户id获取连接
{
client = client.AsTenant().GetConnection(tenantId);
}
Repository = new SqlSugarRepository<T>(client); //这里用new而不用注入可以保证client和repository用的是同一个client
SugarClient = client;
_auth = auth;

View File

@@ -1,42 +0,0 @@
using System.Collections.Generic;
using Infrastructure;
namespace OpenAuth.App.Response
{
/// <summary>
/// 返回确定类型的表格数据可以为swagger提供精准的注释
/// </summary>
public class TableResp<T>
{
/// <summary>
/// 状态码
/// </summary>
public int code { get; set; }
/// <summary>
/// 操作消息
/// </summary>
public string msg { get; set; }
/// <summary>
/// 总记录条数
/// </summary>
public int count { get; set; }
/// <summary>
/// 数据内容
/// </summary>
public List<T> data { get; set; }
/// <summary>
/// 返回的列表头信息
/// </summary>
public List<KeyDescription> columnHeaders { get; set; }
public TableResp()
{
code = 200;
msg = "加载成功";
columnHeaders = new List<KeyDescription>();
}
}
}

View File

@@ -78,7 +78,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableResp<BuilderTable>> Load(QueryBuilderTableListReq request)
public async Task<PagedListDataResp<BuilderTable>> Load(QueryBuilderTableListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -86,17 +86,17 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var result = new TableResp<BuilderTable>();
var result = new PagedListDataResp<BuilderTable>();
var objs = UnitWork.Find<BuilderTable>(null);
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.Id.Contains(request.key));
}
result.data = await objs.OrderBy(u => u.Id)
result.Data = await objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
@@ -864,17 +864,17 @@ namespace OpenAuth.App
/// 加载所有的主表parentId为空的
/// </summary>
/// <returns></returns>
public async Task<TableData> AllMain()
public async Task<PagedDynamicDataResp> AllMain()
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = UnitWork.Find<BuilderTable>(u => string.IsNullOrEmpty(u.ParentTableId)).Select(u => new
{
Id = u.Id,
Name = u.TableName
});
result.data = await objs.OrderBy(u => u.Id).ToListAsync();
result.count = await objs.CountAsync();
result.Data = await objs.OrderBy(u => u.Id).ToListAsync();
result.Count = await objs.CountAsync();
return result;
}
}

View File

@@ -21,24 +21,24 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableResp<BuilderTableColumn>> Load(QueryBuilderTableColumnListReq request)
public async Task<PagedListDataResp<BuilderTableColumn>> Load(QueryBuilderTableColumnListReq request)
{
if (string.IsNullOrEmpty(request.BuilderTableId))
{
throw new Exception($"缺少必要的参数BuilderTableId");
}
var result = new TableResp<BuilderTableColumn>();
var result = new PagedListDataResp<BuilderTableColumn>();
var objs = Repository.AsQueryable().Where(u => u.TableId == request.BuilderTableId);
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.ColumnName.Contains(request.key));
}
result.data = await objs.OrderByDescending(u => u.IsList)
result.Data = await objs.OrderByDescending(u => u.IsList)
.OrderBy(u => u.Sort)
.OrderBy(u => u.ColumnName)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
public void Update(AddOrUpdateBuilderTableColumnReq obj)

View File

@@ -16,7 +16,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryCategoryListReq request)
public async Task<PagedDynamicDataResp> Load(QueryCategoryListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -36,7 +36,7 @@ namespace OpenAuth.App
};
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = SugarClient.Queryable<Category>();
if (!string.IsNullOrEmpty(request.TypeId))
{
@@ -54,11 +54,11 @@ namespace OpenAuth.App
}
var propertyStr = string.Join(',', columnFields.Select(u =>u.ColumnName));
result.columnFields = columnFields;
result.data = objs.OrderBy(u => u.DtCode)
result.ColumnFields = columnFields;
result.Data = objs.OrderBy(u => u.DtCode)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
@@ -69,7 +69,7 @@ namespace OpenAuth.App
var user = _auth.GetCurrentUser().User;
obj.CreateUserId = user.Id;
obj.CreateUserName = user.Name;
await SugarClient.Insertable(obj).ExecuteCommandAsync();
Repository.Insert(obj);
}
public void Update(AddOrUpdateCategoryReq obj)

View File

@@ -21,19 +21,19 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryCategoryTypeListReq request)
public async Task<PagedDynamicDataResp> Load(QueryCategoryTypeListReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = UnitWork.Find<CategoryType>(null);
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.Id.Contains(request.key) || u.Name.Contains(request.key));
}
result.data =await objs.OrderBy(u => u.Name)
result.Data =await objs.OrderBy(u => u.Name)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count =await objs.CountAsync();
result.Count =await objs.CountAsync();
return result;
}

View File

@@ -15,7 +15,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryDataPrivilegeRuleListReq request)
public async Task<PagedDynamicDataResp> Load(QueryDataPrivilegeRuleListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -29,7 +29,7 @@ namespace OpenAuth.App
throw new Exception("请在代码生成界面配置DataPrivilegeRule表的字段属性");
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = SugarClient.Queryable<DataPrivilegeRule>();
if (!string.IsNullOrEmpty(request.key))
{
@@ -41,11 +41,11 @@ namespace OpenAuth.App
}
var propertyStr = string.Join(',', columnFields.Select(u => u.ColumnName));
result.columnFields = columnFields;
result.data = objs.OrderBy(u => u.Id)
result.ColumnFields = columnFields;
result.Data = objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}

View File

@@ -31,53 +31,6 @@ namespace OpenAuth.App
SugarClient = sugarClient;
}
/// <summary>
/// 通过实体获取字段定义因为MVC版本没有代码生成界面只能通过这种方式
/// </summary>
/// <param name="moduleName">模块名称/表名</param>
/// <returns></returns>
[Obsolete("因为MVC版本没有代码生成界面只能通过这种方式")]
public List<BuilderTableColumn> GetTableColumnsFromDb(string moduleName)
{
var result = new List<BuilderTableColumn>();
//获取所有继承了StringEntity的类型
//单元测试时,这个一直报错????奇怪
var entiTypes = typeof(StringEntity).Assembly.GetTypes().Where(u => typeof(StringEntity).IsAssignableFrom(u) && !u.IsAbstract).ToList();
var entityType = entiTypes.FirstOrDefault(u => u.Name.ToLower() == moduleName.ToLower());
if (entityType == null)
{
throw new Exception($"未能找到{moduleName}对应的实体类");
}
foreach (var property in entityType.GetProperties())
{
object[] objs = property.GetCustomAttributes(typeof(DescriptionAttribute), true);
object[] browsableObjs = property.GetCustomAttributes(typeof(BrowsableAttribute), true);
var description = objs.Length > 0 ? ((DescriptionAttribute)objs[0]).Description : property.Name;
if (string.IsNullOrEmpty(description)) description = property.Name;
//如果没有BrowsableAttribute或 [Browsable(true)]表示可见,其他均为不可见,需要前端配合显示
bool browsable = browsableObjs == null || browsableObjs.Length == 0 ||
((BrowsableAttribute)browsableObjs[0]).Browsable;
var typeName = property.PropertyType.Name;
if (Nullable.GetUnderlyingType(property.PropertyType) != null)
{
typeName = Nullable.GetUnderlyingType(property.PropertyType).Name;
}
result.Add(new BuilderTableColumn
{
ColumnName = property.Name,
TableName = moduleName,
Remark = description,
IsList = browsable,
ColumnType = typeName
});
}
return result;
}
/// <summary>
/// 获取数据库表结构信息
/// </summary>

View File

@@ -36,16 +36,16 @@ namespace OpenAuth.App
/// </summary>
/// <param name="req">查询参数</param>
/// <returns></returns>
public async Task<TableData> GetList(QueryDynamicListReq req)
public async Task<PagedDynamicDataResp> GetList(QueryDynamicListReq req)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
try
{
// 验证表名是否存在
if (!TableExists(req.TableName))
{
result.code = 500;
result.msg = $"表不存在:{req.TableName}";
result.Code = 500;
result.Message = $"表不存在:{req.TableName}";
return result;
}
@@ -78,13 +78,13 @@ namespace OpenAuth.App
.Take(req.limit)
.ToListAsync();
result.data = list;
result.count = total;
result.Data = list;
result.Count = total;
}
catch (Exception ex)
{
result.code = 500;
result.msg = ex.InnerException?.Message ?? ex.Message;
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
@@ -122,7 +122,7 @@ namespace OpenAuth.App
return result;
}
result.Result = entity;
result.Data = entity;
}
catch (Exception ex)
{

View File

@@ -18,7 +18,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryExternalDataSourceListReq request)
public async Task<PagedDynamicDataResp> Load(QueryExternalDataSourceListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -26,7 +26,7 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -37,10 +37,10 @@ namespace OpenAuth.App
objs = objs.Where(request.sqlWhere);
}
result.data = objs.OrderBy(u => u.Name)
result.Data = objs.OrderBy(u => u.Name)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
@@ -48,15 +48,15 @@ namespace OpenAuth.App
/// 获取数据库类型
/// </summary>
/// <returns></returns>
public TableData GetDbTypes()
public PagedDynamicDataResp GetDbTypes()
{
var result = new TableData();
var result = new PagedDynamicDataResp();
// 创建包含键值对的列表
var dbTypeList = Enum.GetValues(typeof(DbType))
.Cast<DbType>()
.Select(item => new { label = item.ToString(), value = (int)item })
.ToList();
result.data = dbTypeList;
result.Data = dbTypeList;
return result;
}

View File

@@ -44,19 +44,19 @@ namespace OpenAuth.App
/// <summary>
/// 加载附件列表
/// </summary>
public async Task<TableData> Load(QueryFileListReq request)
public async Task<PagedDynamicDataResp> Load(QueryFileListReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = UnitWork.Find<UploadFile>(null);
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.FileName.Contains(request.key) || u.FilePath.Contains(request.key));
}
result.data =await objs.OrderByDescending(u => u.CreateTime)
result.Data =await objs.OrderByDescending(u => u.CreateTime)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count =await objs.CountAsync();
result.Count =await objs.CountAsync();
return result;
}

View File

@@ -70,13 +70,13 @@ namespace OpenAuth.App
/// <summary>
/// 加载当前节点的加签人
/// </summary>
public async Task<TableResp<FlowApprover>> Load(QueryApproverReq request)
public async Task<PagedListDataResp<FlowApprover>> Load(QueryApproverReq request)
{
var objs = await Repository.GetListAsync(u =>
u.InstanceId == request.FlowInstanceId && u.ActivityId == request.ActivityId);
return new TableResp<FlowApprover>()
return new PagedListDataResp<FlowApprover>()
{
data = objs
Data = objs
};
}

View File

@@ -672,9 +672,9 @@ namespace OpenAuth.App
return resp;
}
public async Task<TableData> Load(QueryFlowInstanceListReq request)
public async Task<PagedDynamicDataResp> Load(QueryFlowInstanceListReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var user = _auth.GetCurrentUser();
//行转列专用SQL
string groupConcatSql = $@" ( SELECT GROUP_CONCAT(Account SEPARATOR ',')
@@ -828,8 +828,8 @@ namespace OpenAuth.App
var finalQuery = SugarClient.SqlQueryable<FlowInstance>(sql)
.WhereIF(!string.IsNullOrEmpty(request.key), t => t.CustomName.Contains(request.key));
result.count = await finalQuery.CountAsync();
result.data = await finalQuery.OrderByDescending(u => u.CreateDate)
result.Count = await finalQuery.CountAsync();
result.Data = await finalQuery.OrderByDescending(u => u.CreateDate)
.ToPageListAsync(request.page, request.limit);
return result;

View File

@@ -64,19 +64,19 @@ namespace OpenAuth.App
}
public async Task<TableData> Load(QueryFlowSchemeListReq request)
public async Task<PagedDynamicDataResp> Load(QueryFlowSchemeListReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.SchemeName.Contains(request.key) || u.Id.Contains(request.key));
}
result.data = await objs.OrderByDescending(u => u.CreateDate)
result.Data = await objs.OrderByDescending(u => u.CreateDate)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}

View File

@@ -23,19 +23,19 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryFormListReq request)
public async Task<PagedDynamicDataResp> Load(QueryFormListReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var forms = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
forms = forms.Where(u => u.Name.Contains(request.key) || u.Id.Contains(request.key));
}
result.data = forms.OrderByDescending(u => u.CreateDate)
result.Data = forms.OrderByDescending(u => u.CreateDate)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToList();
result.count = await forms.CountAsync();
result.Count = await forms.CountAsync();
return result;
}

View File

@@ -18,12 +18,12 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryFrmLeaveReqListReq request)
public async Task<PagedDynamicDataResp> Load(QueryFrmLeaveReqListReq request)
{
return new TableData
return new PagedDynamicDataResp
{
count = await Repository.CountAsync(null),
data = await Repository.Find(request.page, request.limit, "Id desc").ToListAsync()
Count = await Repository.CountAsync(null),
Data = await Repository.Find(request.page, request.limit, "Id desc").ToListAsync()
};
}

View File

@@ -46,13 +46,6 @@ namespace OpenAuth.App
/// <param name="moduleCode"></param>
/// <returns></returns>
List<BuilderTableColumn> GetTableColumns(string moduleCode);
/// <summary>
/// 获取角色可访问的字段信息因为MVC版本没有代码生成器所以只能通过直接读取数据库表结构的方式
/// </summary>
/// <param name="moduleCode"></param>
/// <returns></returns>
[Obsolete("获取角色可访问的字段信息因为MVC版本没有代码生成器所以只能通过直接读取数据库表结构的方式")]
List<BuilderTableColumn> GetTableColumnsFromDb(string moduleCode);
}
}

View File

@@ -28,19 +28,19 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryOpenJobListReq request)
public async Task<PagedDynamicDataResp> Load(QueryOpenJobListReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = SugarClient.Queryable<OpenJob>();
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.Id.Contains(request.key));
}
result.data =await objs.OrderBy(u => u.Id)
result.Data =await objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count =await objs.CountAsync();
result.Count =await objs.CountAsync();
return result;
}

View File

@@ -18,7 +18,7 @@
<ItemGroup>
<PackageReference Include="Autofac" Version="8.1.1" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" />
<PackageReference Include="Autofac.Extras.Quartz" Version="5.1.0" />
<PackageReference Include="Autofac.Extras.Quartz" Version="10.0.0" />
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.2" />
@@ -31,7 +31,7 @@
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="NUnit" Version="3.13.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
<PackageReference Include="Quartz" Version="3.0.7" />
<PackageReference Include="Quartz" Version="3.14.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -10,7 +10,7 @@
/// </summary>
public string RoleId { get; set; }
/// <summary>
/// 模块的Code,比如Category/Resource
/// 模块的Code,比如Category/SysResource
/// </summary>
public string ModuleCode { get; set; }
/// <summary>

View File

@@ -69,7 +69,7 @@ namespace OpenAuth.App
return SugarClient.Queryable<SysResource>().Where(u => elementIds.Contains(u.Id) && (appId == null || appId =="" || u.AppId == appId)).ToArray();
}
public async Task<TableData> Load(QueryResourcesReq request)
public async Task<PagedDynamicDataResp> Load(QueryResourcesReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -77,14 +77,14 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var columnFields = loginContext.GetTableColumns("Resource");
var columnFields = loginContext.GetTableColumns("SysResource");
if (columnFields == null || columnFields.Count == 0)
{
throw new Exception("请在代码生成界面配置Resource表的字段属性");
throw new Exception("请在代码生成界面配置SysResource表的字段属性");
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var resources = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -104,11 +104,11 @@ namespace OpenAuth.App
var columnnames = columnFields.Select(u => u.ColumnName);
var propertyStr = string.Join(',', columnnames);
result.columnFields = columnFields;
result.data = resources.OrderBy(u => u.TypeId)
result.ColumnFields = columnFields;
result.Data = resources.OrderBy(u => u.TypeId)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await resources.CountAsync();
result.Count = await resources.CountAsync();
return result;
}

View File

@@ -36,19 +36,19 @@ namespace OpenAuth.App
/// 获取所有的角色
/// 为了控制权限通常只用于流程实例选择执行角色其他地方请使用Load
/// </summary>
public async Task<TableResp<Role>> LoadAll(QueryRoleListReq request)
public async Task<PagedListDataResp<Role>> LoadAll(QueryRoleListReq request)
{
var result = new TableResp<Role>();
var result = new PagedListDataResp<Role>();
var objs = UnitWork.Find<Role>(null);
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.Name.Contains(request.key));
}
result.data = await objs.OrderBy(u => u.Name)
result.Data = await objs.OrderBy(u => u.Name)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}

View File

@@ -17,19 +17,19 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QuerySysLogListReq request)
public async Task<PagedDynamicDataResp> Load(QuerySysLogListReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = UnitWork.Find<SysLog>(null);
if (!string.IsNullOrEmpty(request.key))
{
objs = objs.Where(u => u.Content.Contains(request.key) || u.Id.Contains(request.key));
}
result.data = await objs.OrderByDescending(u => u.CreateTime)
result.Data = await objs.OrderByDescending(u => u.CreateTime)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}

View File

@@ -22,7 +22,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QuerySysMessageListReq request)
public async Task<PagedDynamicDataResp> Load(QuerySysMessageListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -30,7 +30,7 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = UnitWork.Find<SysMessage>(u =>u.ToId == loginContext.User.Id && u.ToStatus != -1);
if (!string.IsNullOrEmpty(request.key))
@@ -44,10 +44,10 @@ namespace OpenAuth.App
objs = objs.Where(u => u.ToStatus == request.Status);
}
result.data =await objs.OrderByDescending(u => u.CreateTime)
result.Data =await objs.OrderByDescending(u => u.CreateTime)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToListAsync();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}

View File

@@ -17,7 +17,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QuerySysPrinterPlanListReq request)
public async Task<PagedDynamicDataResp> Load(QuerySysPrinterPlanListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -31,7 +31,7 @@ namespace OpenAuth.App
throw new Exception("请在代码生成界面配置SysPrinterPlan表的字段属性");
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -47,17 +47,17 @@ namespace OpenAuth.App
var columnnames = columnFields.Select(u => u.ColumnName);
var propertyStr = string.Join(',', columnnames);
result.columnFields = columnFields;
result.data = objs.OrderByDescending(u => u.CreateTime)
result.ColumnFields = columnFields;
result.Data = objs.OrderByDescending(u => u.CreateTime)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
public async Task<TableData> Query(QueryReq request)
public async Task<PagedDynamicDataResp> Query(QueryReq request)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
var sugarParams = new List<SugarParameter>();
if (!string.IsNullOrEmpty(request.ParamJsonStr))
@@ -70,8 +70,8 @@ namespace OpenAuth.App
}
var objs = await SugarClient.Ado.SqlQueryAsync<dynamic>(request.SourceSql,sugarParams);
result.count = SugarClient.Ado.SqlQuery<dynamic>(request.SourceSql, sugarParams).Count;
result.data = objs.Skip((request.page - 1) * request.limit)
result.Count = SugarClient.Ado.SqlQuery<dynamic>(request.SourceSql, sugarParams).Count;
result.Data = objs.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToList();
return result;

View File

@@ -76,7 +76,7 @@ namespace OpenAuth.App.Test
app.UnAssignData(new AssignDataReq
{
ModuleCode = "Resource",
ModuleCode = "SysResource",
Properties = new string[]{},
RoleId = "09ee2ffa-7463-4938-ae0b-1cb4e80c7c13"
});

View File

@@ -86,7 +86,7 @@ namespace OpenAuth.App.Test
app.Clear();
app.Add(new AddOrUpdateDataPriviReq
{
SourceCode = "Resource",
SourceCode = "SysResource",
Description = "资源数据规则",
PrivilegeRules = JsonHelper.Instance.Serialize(filterGroup)
});

View File

@@ -9,16 +9,6 @@ namespace OpenAuth.App.Test
class TestDbExtension :TestBase
{
private ILog log = LogManager.GetLogger(typeof(TestDbExtension));
[Test]
public void TestGetProperties()
{
var app = _autofacServiceProvider.GetService<DbExtension>();
var result = app.GetTableColumnsFromDb("Category");
Console.WriteLine(JsonHelper.Instance.Serialize(result));
}
[Test]
public void TestGetTables()

View File

@@ -32,7 +32,7 @@ namespace OpenAuth.App
/// 加载当前登录用户可访问的一个部门及子部门全部用户
/// 如果请求的request.OrgId为空则可以获取到已被删除机构的用户没有分配任何机构的用户
/// </summary>
public async Task<TableData> Load(QueryUserListReq request)
public async Task<PagedDynamicDataResp> Load(QueryUserListReq request)
{
var loginUser = _auth.GetCurrentUser();
IQueryable<SysUser> query = UnitWork.Find<SysUser>(null);
@@ -99,10 +99,10 @@ namespace OpenAuth.App
OrganizationIds = string.Join(",", u.Select(x=>x.OrgId))
,Organizations = string.Join(",", u.Select(x=>x.OrgName))
});
return new TableData
return new PagedDynamicDataResp
{
count =userViews.Count(),
data =userViews.OrderBy(u => u.Name)
Count =userViews.Count(),
Data =userViews.OrderBy(u => u.Name)
.Skip((request.page - 1) * request.limit)
.Take(request.limit),
};
@@ -111,7 +111,7 @@ namespace OpenAuth.App
/// 获取所有的用户
/// 为了控制权限通常只用于流程实例选择执行角色其他地方请使用Load
/// </summary>
public async Task<TableResp<UserView>> LoadAll(QueryUserListReq request)
public async Task<PagedListDataResp<UserView>> LoadAll(QueryUserListReq request)
{
IQueryable<SysUser> query = UnitWork.Find<SysUser>(null);
if (!string.IsNullOrEmpty(request.key))
@@ -166,10 +166,10 @@ namespace OpenAuth.App
OrganizationIds = string.Join(",", u.Select(x=>x.OrgId))
,Organizations = string.Join(",", u.Select(x=>x.OrgName))
});
return new TableResp<UserView>()
return new PagedListDataResp<UserView>()
{
count = userViews.Count(),
data = userViews.OrderBy(u => u.Name)
Count = userViews.Count(),
Data = userViews.OrderBy(u => u.Name)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToList()
};
@@ -252,17 +252,17 @@ namespace OpenAuth.App
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<TableData> LoadByRole(QueryUserListByRoleReq request)
public async Task<PagedDynamicDataResp> LoadByRole(QueryUserListByRoleReq request)
{
var users = from userRole in UnitWork.Find<Relevance>(u =>
u.SecondId == request.roleId && u.RelKey == Define.USERROLE)
join user in UnitWork.Find<SysUser>(null) on userRole.FirstId equals user.Id into temp
from c in temp.Where(u =>u.Id != null)
select c;
return new TableData
return new PagedDynamicDataResp
{
count =await users.CountAsync(),
data =await users.Skip((request.page - 1) * request.limit).Take(request.limit).ToListAsync()
Count =await users.CountAsync(),
Data =await users.Skip((request.page - 1) * request.limit).Take(request.limit).ToListAsync()
};
}
/// <summary>
@@ -270,17 +270,17 @@ namespace OpenAuth.App
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<TableData> LoadByOrg(QueryUserListByOrgReq request)
public async Task<PagedDynamicDataResp> LoadByOrg(QueryUserListByOrgReq request)
{
var users = from userOrg in UnitWork.Find<Relevance>(u =>
u.SecondId == request.orgId && u.RelKey == Define.USERORG)
join user in UnitWork.Find<SysUser>(null) on userOrg.FirstId equals user.Id into temp
from c in temp.Where(u =>u.Id != null)
select c;
return new TableData
return new PagedDynamicDataResp
{
count =await users.CountAsync(),
data =await users.Skip((request.page - 1) * request.limit).Take(request.limit).ToListAsync()
Count =await users.CountAsync(),
Data =await users.Skip((request.page - 1) * request.limit).Take(request.limit).ToListAsync()
};
}
/// <summary>

View File

@@ -14,7 +14,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryWmsInboundOrderDtblListReq request)
public async Task<PagedDynamicDataResp> Load(QueryWmsInboundOrderDtblListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -26,7 +26,7 @@ namespace OpenAuth.App
{
throw new Exception("请在代码生成界面配置WmsInboundOrderDtbl表的字段属性");
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = SugarClient.Queryable<WmsInboundOrderDtbl>();
if (!string.IsNullOrEmpty(request.InboundOrderId))
{
@@ -37,11 +37,11 @@ namespace OpenAuth.App
objs = objs.Where(u => u.GoodsId.Contains(request.key));
}
var propertyStr = string.Join(',', properties.Select(u => u.ColumnName));
result.columnFields = properties;
result.data = objs.OrderBy(u => u.Id)
result.ColumnFields = properties;
result.Data = objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
public void Add(AddOrUpdateWmsInboundOrderDtblReq request)

View File

@@ -15,7 +15,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryWmsInboundOrderTblListReq request)
public async Task<PagedDynamicDataResp> Load(QueryWmsInboundOrderTblListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -27,8 +27,8 @@ namespace OpenAuth.App
{
throw new Exception("请在代码生成界面配置WmsInboundOrderTbl表的字段属性");
}
var result = new TableData();
result.columnFields = columns;
var result = new PagedDynamicDataResp();
result.ColumnFields = columns;
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -39,10 +39,19 @@ namespace OpenAuth.App
objs = objs.Where(request.sqlWhere);
}
var propertyStr = string.Join(',', columns.Select(u => u.ColumnName));
result.data = objs.OrderBy(u => u.Id)
if (!string.IsNullOrEmpty(request.sort))
{
var sortfields = request.sort.Split(',');
objs = objs.OrderBy($"{sortfields[0]} {sortfields[1]}");
}else{
objs = objs.OrderBy(u => u.Id);
}
result.Data = objs
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
public void Add(AddOrUpdateWmsInboundOrderTblReq request)

View File

@@ -76,8 +76,8 @@ namespace OpenAuth.IdentityServer
//在startup里面只能通过这种方式获取到appsettings里面的值不能用IOptions😰
var dbtypes = ((ConfigurationSection)Configuration.GetSection("AppSetting:DbTypes")).GetChildren()
.ToDictionary(x => x.Key, x => x.Value);
var dbType = dbtypes["OpenAuthDBContext"];
var connectionString = Configuration.GetConnectionString("OpenAuthDBContext");
var dbType = dbtypes[Define.DEFAULT_TENANT_ID];
var connectionString = Configuration.GetConnectionString(Define.DEFAULT_TENANT_ID);
if (dbType == Define.DBTYPE_SQLSERVER)
{
services.AddDbContext<OpenAuthDBContext>(options =>

View File

@@ -1,4 +1,5 @@
using SqlSugar;
using OpenAuth.Repository.Core;
using SqlSugar;
namespace OpenAuth.Repository
{
@@ -6,12 +7,22 @@ namespace OpenAuth.Repository
/// SqlSugar仓储
/// <para>具体用法参考https://www.donet5.com/Home/Doc?typeId=1228</para>
/// </summary>
public class SqlSugarRepository<T> : SimpleClient<T> where T : class, new()
public class SqlSugarRepository<T> : SimpleClient<T> where T : BaseEntity, new()
{
public SqlSugarRepository(ISqlSugarClient client)
{
base.Context = client;
}
public new bool Insert(T entity)
{
if (entity.KeyIsNull())
{
entity.GenerateDefaultKeyVal();
}
return base.Insert(entity);
}
}
}

View File

@@ -25,13 +25,13 @@ namespace OpenAuth.WebApi.Controllers
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryAppListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryAppListReq request)
{
var applications =await _app.GetList(request);
return new TableData
return new PagedDynamicDataResp
{
data = applications,
count = applications.Count
Data = applications,
Count = applications.Count
};
}

View File

@@ -26,7 +26,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<BuilderTableColumn>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -83,7 +83,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableResp<BuilderTableColumn>> Load([FromQuery]QueryBuilderTableColumnListReq request)
public async Task<PagedListDataResp<BuilderTableColumn>> Load([FromQuery]QueryBuilderTableColumnListReq request)
{
var tableResp = await _app.Load(request);
return tableResp;

View File

@@ -30,7 +30,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<string>();
try
{
result.Result = _app.Add(obj);
result.Data = _app.Add(obj);
}
catch (Exception ex)
@@ -69,7 +69,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableResp<BuilderTable>> Load([FromQuery]QueryBuilderTableListReq request)
public async Task<PagedListDataResp<BuilderTable>> Load([FromQuery]QueryBuilderTableListReq request)
{
return await _app.Load(request);
}
@@ -78,7 +78,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载所有的主表parentId为空的
/// </summary>
[HttpGet]
public async Task<TableData> AllMain()
public async Task<PagedDynamicDataResp> AllMain()
{
return await _app.AllMain();
}

View File

@@ -60,7 +60,7 @@ using OpenAuth.App.Response;
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryCategoryTypeListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryCategoryTypeListReq request)
{
return await _app.Load(request);
}

View File

@@ -30,7 +30,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<Category>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -88,7 +88,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery] QueryCategoryListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery] QueryCategoryListReq request)
{
return await _app.Load(request);
}

View File

@@ -57,7 +57,7 @@ namespace OpenAuth.WebApi.Controllers
var resp = new Response<UserView>();
try
{
resp.Result = _authStrategyContext.User.MapTo<UserView>();
resp.Data = _authStrategyContext.User.MapTo<UserView>();
}
catch (Exception e)
{
@@ -80,7 +80,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<bool>();
try
{
result.Result = _authUtil.CheckLogin();
result.Data = _authUtil.CheckLogin();
}
catch (Exception ex)
{
@@ -99,7 +99,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<Role>>();
try
{
result.Result = _authStrategyContext.Roles;
result.Data = _authStrategyContext.Roles;
}
catch (CommonException ex)
{
@@ -132,7 +132,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<BuilderTableColumn>>();
try
{
result.Result = _authStrategyContext.GetTableColumns(moduleCode);
result.Data = _authStrategyContext.GetTableColumns(moduleCode);
}
catch (Exception ex)
{
@@ -151,7 +151,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<OrgView>>();
try
{
result.Result = _authStrategyContext.Orgs;
result.Data = _authStrategyContext.Orgs;
}
catch (CommonException ex)
{
@@ -179,7 +179,7 @@ namespace OpenAuth.WebApi.Controllers
/// <param name="orgId">机构ID</param>
/// <returns></returns>
[HttpGet]
public TableData GetSubOrgs(string orgId)
public PagedDynamicDataResp GetSubOrgs(string orgId)
{
string cascadeId = ".0.";
if (!string.IsNullOrEmpty(orgId))
@@ -187,10 +187,10 @@ namespace OpenAuth.WebApi.Controllers
var org = _authStrategyContext.Orgs.SingleOrDefault(u => u.Id == orgId);
if (org == null)
{
return new TableData
return new PagedDynamicDataResp
{
msg = "未找到指定的节点",
code = 500,
Message = "未找到指定的节点",
Code = 500,
};
}
cascadeId = org.CascadeId;
@@ -200,10 +200,10 @@ namespace OpenAuth.WebApi.Controllers
.Where(u => u.CascadeId.Contains(cascadeId))
.OrderBy(u =>u.CascadeId);
return new TableData
return new PagedDynamicDataResp
{
data = query.ToList(),
count = query.Count(),
Data = query.ToList(),
Count = query.Count(),
};
}
@@ -216,7 +216,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<ModuleView>>();
try
{
result.Result = _authStrategyContext.Modules;
result.Data = _authStrategyContext.Modules;
}
catch (CommonException ex)
{
@@ -247,7 +247,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<IEnumerable<TreeItem<ModuleView>>>();
try
{
result.Result = _authStrategyContext.Modules.GenerateTree(u => u.Id, u => u.ParentId);
result.Data = _authStrategyContext.Modules.GenerateTree(u => u.Id, u => u.ParentId);
}
catch (CommonException ex)
{
@@ -278,7 +278,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<SysResource>>();
try
{
result.Result = _authStrategyContext.Resources;
result.Data = _authStrategyContext.Resources;
}
catch (CommonException ex)
{
@@ -309,7 +309,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<string>();
try
{
result.Result = _authStrategyContext.User.Account;
result.Data = _authStrategyContext.User.Account;
}
catch (CommonException ex)
{
@@ -364,11 +364,11 @@ namespace OpenAuth.WebApi.Controllers
var resp = new Response<bool>();
try
{
resp.Result = _authUtil.Logout();
resp.Data = _authUtil.Logout();
}
catch (Exception e)
{
resp.Result = false;
resp.Data = false;
resp.Message = e.Message;
}

View File

@@ -30,7 +30,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<DataPrivilegeRule>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -88,7 +88,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryDataPrivilegeRuleListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryDataPrivilegeRuleListReq request)
{
return await _app.Load(request);
}

View File

@@ -34,9 +34,9 @@ namespace OpenAuth.WebApi.Controllers
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<TableData> GetList([FromBody] QueryDynamicListReq req)
public async Task<PagedDynamicDataResp> GetList([FromBody] QueryDynamicListReq req)
{
TableData result = new TableData();
PagedDynamicDataResp result = new PagedDynamicDataResp();
try
{
// 获取实体类型
@@ -44,8 +44,8 @@ namespace OpenAuth.WebApi.Controllers
}
catch (Exception ex)
{
result.code = 500;
result.msg = ex.InnerException?.Message ?? ex.Message;
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
@@ -160,7 +160,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<object>();
try
{
result.Result = await _app.Invoke(req);
result.Data = await _app.Invoke(req);
}
catch (Exception ex)
{

View File

@@ -26,7 +26,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<ExternalDataSource>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -98,7 +98,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryExternalDataSourceListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryExternalDataSourceListReq request)
{
return await _app.Load(request);
}
@@ -108,7 +108,7 @@ namespace OpenAuth.WebApi.Controllers
/// </summary>
/// <returns></returns>
[HttpGet]
public TableData GetDbTypes()
public PagedDynamicDataResp GetDbTypes()
{
return _app.GetDbTypes();

View File

@@ -33,7 +33,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载附件列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryFileListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryFileListReq request)
{
return await _app.Load(request);
}
@@ -74,7 +74,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<IList<UploadFile>>();
try
{
result.Result = _app.Add(files);
result.Data = _app.Add(files);
}
catch (Exception ex)
{
@@ -99,7 +99,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
var files = HttpContext.Request.Form.Files;
result.Result = _app.Add(files);
result.Data = _app.Add(files);
}
catch (Exception ex)
{

View File

@@ -59,7 +59,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableResp<FlowApprover>> Load([FromQuery] QueryApproverReq request)
public async Task<PagedListDataResp<FlowApprover>> Load([FromQuery] QueryApproverReq request)
{
return await _app.Load(request);
}

View File

@@ -33,7 +33,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<FlowVerificationResp>();
try
{
result.Result = _app.GetForVerification(id);
result.Data = _app.GetForVerification(id);
}
catch (Exception ex)
{
@@ -53,7 +53,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<FlowInstanceOperationHistory>>();
try
{
result.Result= _app.QueryHistories(request);
result.Data= _app.QueryHistories(request);
}
catch (Exception ex)
{
@@ -73,7 +73,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<string>();
try
{
result.Result = _app.CreateInstance(obj);
result.Data = _app.CreateInstance(obj);
}
catch (Exception ex)
{
@@ -192,7 +192,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryFlowInstanceListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryFlowInstanceListReq request)
{
return await _app.Load(request);
}

View File

@@ -26,7 +26,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<FlowScheme>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -79,7 +79,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryFlowSchemeListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryFlowSchemeListReq request)
{
return await _app.Load(request);
}
@@ -91,7 +91,7 @@ namespace OpenAuth.WebApi.Controllers
public Response<List<FlowScheme>> LoadUrlFormFlowScheme()
{
var result = new Response<List<FlowScheme>>();
result.Result = _app.LoadUrlFormFlowScheme();
result.Data = _app.LoadUrlFormFlowScheme();
return result;
}

View File

@@ -31,11 +31,11 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<FormResp>();
try
{
result.Result = _app.FindSingle(id);
result.Data = _app.FindSingle(id);
if (!string.IsNullOrEmpty(canWriteFormItemIds))
{
result.Result.CanWriteFormItemIds = JsonHelper.Instance.Deserialize<string[]>(canWriteFormItemIds);
result.Data.CanWriteFormItemIds = JsonHelper.Instance.Deserialize<string[]>(canWriteFormItemIds);
}
}
catch (Exception ex)
@@ -89,7 +89,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryFormListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryFormListReq request)
{
return await _app.Load(request);
}

View File

@@ -37,7 +37,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<IEnumerable<Module>>();
try
{
result.Result = _app.LoadForRole(firstId);
result.Data = _app.LoadForRole(firstId);
}
catch (Exception ex)
{
@@ -58,7 +58,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<IEnumerable<ModuleElement>>();
try
{
result.Result = _app.LoadMenusForRole(moduleId, firstId);
result.Data = _app.LoadMenusForRole(moduleId, firstId);
}
catch (Exception ex)
{
@@ -81,7 +81,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<IEnumerable<string>>();
try
{
result.Result = _app.LoadPropertiesForRole(roleId, moduleCode);
result.Data = _app.LoadPropertiesForRole(roleId, moduleCode);
}
catch (Exception ex)
{
@@ -105,7 +105,7 @@ namespace OpenAuth.WebApi.Controllers
var user = _authUtil.GetCurrentUser();
if (string.IsNullOrEmpty(moduleId))
{
result.Result = user.ModuleElements;
result.Data = user.ModuleElements;
}
else
{
@@ -115,7 +115,7 @@ namespace OpenAuth.WebApi.Controllers
throw new Exception("模块不存在");
}
result.Result = module.Elements;
result.Data = module.Elements;
}
}
catch (Exception ex)
@@ -138,7 +138,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
_app.Add(obj);
result.Result = obj;
result.Data = obj;
}
catch (Exception ex)
{
@@ -198,7 +198,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
_app.AddMenu(obj);
result.Result = obj;
result.Data = obj;
}
catch (Exception ex)
{
@@ -259,7 +259,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<SysPrinterPlan>>();
try
{
result.Result = _app.LoadPrinterPlans(moduleId).ToList();
result.Data = _app.LoadPrinterPlans(moduleId).ToList();
}
catch (Exception ex)
{
@@ -279,7 +279,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<FlowScheme>>();
try
{
result.Result = _app.LoadFlowSchemes(moduleId).ToList();
result.Data = _app.LoadFlowSchemes(moduleId).ToList();
}
catch (Exception ex)
{

View File

@@ -28,7 +28,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<OpenJob>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -89,7 +89,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryOpenJobListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryOpenJobListReq request)
{
return await _app.Load(request);
}
@@ -124,7 +124,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<string>>();
try
{
result.Result = _app.QueryLocalHandlers();
result.Data = _app.QueryLocalHandlers();
}
catch (Exception ex)
{

View File

@@ -25,7 +25,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<SysOrg>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -49,7 +49,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
_app.Add(obj);
result.Result = obj;
result.Data = obj;
}
catch (Exception ex)
{

View File

@@ -27,7 +27,7 @@ namespace OpenAuth.WebApi.Controllers
_app = app;
}
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryResourcesReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryResourcesReq request)
{
return await _app.Load(request);
}
@@ -77,7 +77,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
_app.Add(obj);
resp.Result = obj.Id;
resp.Data = obj.Id;
}
catch (Exception e)
{
@@ -114,7 +114,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<SysResource>>();
try
{
result.Result = _app.LoadForRole(appId, firstId).ToList();
result.Data = _app.LoadForRole(appId, firstId).ToList();
}
catch (Exception e)
@@ -135,7 +135,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<SysResourceApp>>();
try
{
result.Result = await _app.GetResourceApps();
result.Data = await _app.GetResourceApps();
}
catch (Exception e)
{

View File

@@ -32,7 +32,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<Role>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -53,7 +53,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
_app.Add(obj);
result.Result = obj;
result.Data = obj;
}
catch (Exception ex)
@@ -93,7 +93,7 @@ namespace OpenAuth.WebApi.Controllers
/// 为了控制权限通常只用于流程实例选择执行角色其他地方请使用Load
/// </summary>
[HttpGet]
public async Task<TableResp<Role>> LoadAll([FromQuery]QueryRoleListReq request)
public async Task<PagedListDataResp<Role>> LoadAll([FromQuery]QueryRoleListReq request)
{
return await _app.LoadAll(request);
}
@@ -107,7 +107,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<Role>>();
try
{
result.Result = _app.Load(request);
result.Data = _app.Load(request);
}
catch (Exception ex)
@@ -128,7 +128,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<string>>();
try
{
result.Result = _revelanceManagerApp.Get(Define.USERROLE, true, userId);
result.Data = _revelanceManagerApp.Get(Define.USERROLE, true, userId);
}
catch (Exception e)
{

View File

@@ -38,7 +38,7 @@ namespace OpenAuth.WebApi.Controllers
{
return new Response<bool>
{
Result = _appConfiguration.Value.IsIdentityAuth
Data = _appConfiguration.Value.IsIdentityAuth
};
}
@@ -54,7 +54,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<SysTableColumn>>();
try
{
result.Result = _dbExtension.GetDbTableStructure(tableName, externalDataSourceId).ToList();
result.Data = _dbExtension.GetDbTableStructure(tableName, externalDataSourceId).ToList();
}
catch (Exception ex)
{
@@ -71,12 +71,12 @@ namespace OpenAuth.WebApi.Controllers
/// <param name="externalDataSourceId">外部数据源ID</param>
/// <returns></returns>
[HttpGet]
public TableData GetDbTableStructureForSelect(string tableName, string externalDataSourceId)
public PagedDynamicDataResp GetDbTableStructureForSelect(string tableName, string externalDataSourceId)
{
var result = new TableData();
var result = new PagedDynamicDataResp();
try
{
result.data = _dbExtension.GetDbTableStructure(tableName, externalDataSourceId).Select(u => new
result.Data = _dbExtension.GetDbTableStructure(tableName, externalDataSourceId).Select(u => new
{
Id = u.ColumnName,
Name = u.ColumnName
@@ -84,8 +84,8 @@ namespace OpenAuth.WebApi.Controllers
}
catch (Exception ex)
{
result.code = 500;
result.msg = ex.Message;
result.Code = 500;
result.Message = ex.Message;
}
return result;
}

View File

@@ -26,7 +26,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<SysLog>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -83,7 +83,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QuerySysLogListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QuerySysLogListReq request)
{
return await _app.Load(request);
}

View File

@@ -30,7 +30,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<SysMessage>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -68,7 +68,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QuerySysMessageListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QuerySysMessageListReq request)
{
return await _app.Load(request);
}

View File

@@ -28,7 +28,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<SysPrinterPlan>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -46,7 +46,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<string>();
try
{
result.Result=_app.Add(obj);
result.Data=_app.Add(obj);
}
catch (Exception ex)
@@ -68,7 +68,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<DbTableInfo>>();
try
{
result.Result = _app.GetTables();
result.Data = _app.GetTables();
}
catch (Exception ex)
{
@@ -90,7 +90,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<List<DbColumnInfo>>();
try
{
result.Result = _app.GetColumns(tableViewName);
result.Data = _app.GetColumns(tableViewName);
}
catch (Exception ex)
{
@@ -124,7 +124,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QuerySysPrinterPlanListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QuerySysPrinterPlanListReq request)
{
return await _app.Load(request);
}
@@ -133,7 +133,7 @@ namespace OpenAuth.WebApi.Controllers
/// 打印方案根据数据源获取打印数据
/// </summary>
[HttpPost]
public async Task<TableData> Query([FromBody] QueryReq request)
public async Task<PagedDynamicDataResp> Query([FromBody] QueryReq request)
{
return await _app.Query(request);
}

View File

@@ -24,7 +24,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<UserView>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -89,7 +89,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
_app.AddOrUpdate(obj);
result.Result = obj.Id; //返回ID
result.Data = obj.Id; //返回ID
}
catch (Exception ex)
{
@@ -106,7 +106,7 @@ namespace OpenAuth.WebApi.Controllers
/// 获取当前登录用户可访问的一个部门及子部门全部用户
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryUserListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryUserListReq request)
{
return await _app.Load(request);
}
@@ -116,7 +116,7 @@ namespace OpenAuth.WebApi.Controllers
/// 为了控制权限通常只用于流程实例选择执行角色其他地方请使用Load
/// </summary>
[HttpGet]
public async Task<TableResp<UserView>> LoadAll([FromQuery]QueryUserListReq request)
public async Task<PagedListDataResp<UserView>> LoadAll([FromQuery]QueryUserListReq request)
{
return await _app.LoadAll(request);
}
@@ -143,7 +143,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载指定角色的用户
/// </summary>
[HttpGet]
public async Task<TableData> LoadByRole([FromQuery]QueryUserListByRoleReq request)
public async Task<PagedDynamicDataResp> LoadByRole([FromQuery]QueryUserListByRoleReq request)
{
return await _app.LoadByRole(request);
}
@@ -153,7 +153,7 @@ namespace OpenAuth.WebApi.Controllers
/// 不包含下级部门的用户
/// </summary>
[HttpGet]
public async Task<TableData> LoadByOrg([FromQuery]QueryUserListByOrgReq request)
public async Task<PagedDynamicDataResp> LoadByOrg([FromQuery]QueryUserListByOrgReq request)
{
return await _app.LoadByOrg(request);
}

View File

@@ -27,7 +27,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<WmsInboundOrderDtbl>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -46,7 +46,7 @@ namespace OpenAuth.WebApi.Controllers
try
{
_app.Add(obj);
result.Result = obj.Id;
result.Data = obj.Id;
}
catch (Exception ex)
{
@@ -85,7 +85,7 @@ namespace OpenAuth.WebApi.Controllers
/// </summary>
[HttpGet]
[AllowAnonymous]
public async Task<TableData> Load([FromQuery]QueryWmsInboundOrderDtblListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryWmsInboundOrderDtblListReq request)
{
return await _app.Load(request);
}

View File

@@ -26,7 +26,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<WmsInboundOrderTbl>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -90,7 +90,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryWmsInboundOrderTblListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]QueryWmsInboundOrderTblListReq request)
{
return await _app.Load(request);
}

View File

@@ -92,7 +92,7 @@ namespace OpenAuth.WebApi
logger.LogInformation($"api doc basepath:{AppContext.BaseDirectory}");
foreach (var name in Directory.GetFiles(AppContext.BaseDirectory, "*.*",
SearchOption.AllDirectories).Where(f => Path.GetExtension(f).ToLower() == ".xml"))
SearchOption.AllDirectories).Where(f => Path.GetExtension(f).ToLower() == ".xml"))
{
option.IncludeXmlComments(name, includeControllerXmlComments: true);
// logger.LogInformation($"find api file{name}");
@@ -126,9 +126,6 @@ namespace OpenAuth.WebApi
services.AddControllers(option => { option.Filters.Add<OpenAuthFilter>(); })
.ConfigureApiBehaviorOptions(options =>
{
// 禁用自动模态验证
// options.SuppressModelStateInvalidFilter = true;
//启动WebAPI自动模态验证处理返回值
options.InvalidModelStateResponseFactory = (ActionContext context) =>
{
@@ -146,66 +143,77 @@ namespace OpenAuth.WebApi
});
services.AddMemoryCache();
services.AddCors();
// todo:如果正式 环境请用下面的方式限制随意访问跨域
// var origins = new []
// {
// "http://localhost:1803",
// "http://localhost:52789"
// };
// if (Environment.IsProduction())
// {
// origins = new []
// {
// "http://demo.openauth.net.cn:1803",
// "http://demo.openauth.net.cn:52789"
// };
// }
// services.AddCors(option=>option.AddPolicy("cors", policy =>
// policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(origins)));
//在startup里面只能通过这种方式获取到appsettings里面的值不能用IOptions😰
var dbtypes = ((ConfigurationSection) Configuration.GetSection("AppSetting:DbTypes")).GetChildren()
.ToDictionary(x => x.Key, x => x.Value);
var connectionString = Configuration.GetConnectionString("OpenAuthDBContext");
logger.LogInformation($"系统配置的数据库类型:{JsonHelper.Instance.Serialize(dbtypes)},连接字符串:{connectionString}");
services.AddDbContext<OpenAuthDBContext>();
services.AddHttpClient();
services.AddDataProtection().PersistKeysToFileSystem(new DirectoryInfo(Configuration["DataProtection"]));
//在startup里面只能通过这种方式获取到appsettings里面的值不能用IOptions😰
var dbtypes = ((ConfigurationSection) Configuration.GetSection("AppSetting:DbTypes")).GetChildren()
.ToDictionary(x => x.Key, x => x.Value);
var sqlsugarTypes = UtilMethods.EnumToDictionary<SqlSugar.DbType>();
var dbType = sqlsugarTypes.FirstOrDefault(it =>
dbtypes.ToDictionary(u => u.Key, v => v.Value.ToLower()).ContainsValue(it.Key));
services.AddScoped<ISqlSugarClient>(s =>
{
var sqlSugar = new SqlSugarClient(new ConnectionConfig()
// 获取所有连接字符串配置
var connectionStrings = Configuration.GetSection("ConnectionStrings").GetChildren()
.ToDictionary(x => x.Key, x => x.Value);
// 准备ConnectionConfig列表
var connectionConfigs = new List<ConnectionConfig>();
// 遍历所有连接字符串
foreach (var conn in connectionStrings)
{
DbType = dbType.Value,
ConnectionString = connectionString,
IsAutoCloseConnection = true
}, db => { db.Aop.OnLogExecuting = (sql, pars) => { logger.LogInformation(sql); }; });
if(dbType.Value != SqlSugar.DbType.PostgreSQL){
return sqlSugar;
}
// 配置bool类型转换为smallint
sqlSugar.Aop.OnExecutingChangeSql = (sql, parameters) =>
{
foreach (var param in parameters)
// 获取对应的数据库类型
var connDbType = dbtypes.ContainsKey(conn.Key) ?
sqlsugarTypes.FirstOrDefault(it => dbtypes[conn.Key].ToLower().Contains(it.Key)).Value :
DbType.SqlServer; // 如果没有定义DbType使用默认类型
// 创建连接配置
var config = new ConnectionConfig
{
if (param.Value is bool boolValue)
{
param.DbType = System.Data.DbType.Int16;
// 将 bool 转换为 smallint
param.Value = boolValue ? (short)1 : (short)0;
}
DbType = connDbType,
ConnectionString = conn.Value,
IsAutoCloseConnection = true,
};
// 如果不是默认连接设置ConfigId
if (conn.Key != Define.DEFAULT_TENANT_ID)
{
config.ConfigId = conn.Key;
}
// 返回修改后的 SQL 和参数
return new System.Collections.Generic.KeyValuePair<string, SugarParameter[]>(sql, parameters);
};
connectionConfigs.Add(config);
logger.LogInformation($"添加数据库连接: {conn.Key} / {(dbtypes.ContainsKey(conn.Key) ? dbtypes[conn.Key] : "")},连接字符串:{conn.Value}");
}
var sqlSugar = new SqlSugarClient(connectionConfigs);
// 配置PostgreSQL数据库处理
foreach (var connConfig in connectionConfigs)
{
if(connConfig.DbType == SqlSugar.DbType.PostgreSQL)
{
// 配置bool类型转换为smallint
sqlSugar.Aop.OnExecutingChangeSql = (sql, parameters) =>
{
foreach (var param in parameters)
{
if (param.Value is bool boolValue)
{
param.DbType = System.Data.DbType.Int16;
// 将 bool 转换为 smallint
param.Value = boolValue ? (short)1 : (short)0;
}
}
// 返回修改后的 SQL 和参数
return new System.Collections.Generic.KeyValuePair<string, SugarParameter[]>(sql, parameters);
};
break; // 找到一个PostgreSQL连接后就设置一次即可
}
}
return sqlSugar;
});

View File

@@ -26,7 +26,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<{ClassName}>();
try
{
result.Result = _app.Get(id);
result.Data = _app.Get(id);
}
catch (Exception ex)
{
@@ -79,7 +79,7 @@ namespace OpenAuth.WebApi.Controllers
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]Query{ClassName}ListReq request)
public async Task<PagedDynamicDataResp> Load([FromQuery]Query{ClassName}ListReq request)
{
return await _app.Load(request);
}

View File

@@ -15,7 +15,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(Query{ClassName}ListReq request)
public async Task<PagedDynamicDataResp> Load(Query{ClassName}ListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -23,7 +23,7 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -34,10 +34,18 @@ namespace OpenAuth.App
objs = objs.Where(request.sqlWhere);
}
result.data = objs.OrderBy(u => u.Id)
if (!string.IsNullOrEmpty(request.sort))
{
var sortfields = request.sort.Split(',');
objs = objs.OrderBy($"{sortfields[0]} {sortfields[1]}");
}else{
objs = objs.OrderBy(u => u.Id);
}
result.Data = objs
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
public void Add(AddOrUpdate{ClassName}Req request)

View File

@@ -15,7 +15,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(Query{ClassName}ListReq request)
public async Task<PagedDynamicDataResp> Load(Query{ClassName}ListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -27,8 +27,8 @@ namespace OpenAuth.App
{
throw new Exception("请在代码生成界面配置{ClassName}表的字段属性");
}
var result = new TableData();
result.columnFields = columns;
var result = new PagedDynamicDataResp();
result.ColumnFields = columns;
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -39,10 +39,18 @@ namespace OpenAuth.App
objs = objs.Where(request.sqlWhere);
}
var propertyStr = string.Join(',', columns.Select(u => u.ColumnName));
result.data = objs.OrderBy(u => u.Id)
if (!string.IsNullOrEmpty(request.sort))
{
var sortfields = request.sort.Split(',');
objs = objs.OrderBy($"{sortfields[0]} {sortfields[1]}");
}else{
objs = objs.OrderBy(u => u.Id);
}
result.Data = objs
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}
public void Add(AddOrUpdate{ClassName}Req request)

View File

@@ -343,9 +343,9 @@ const createData = () => {
tempData = setDetails(tempData)
tempData.OrgId = defaultorgid.value
{FirstTableName}s.add(tempData).then(resp => {
if (resp.result != undefined) {
if (resp.data != undefined) {
//如果服务器返回生成的ID
firstTemp.id = resp.result
firstTemp.id = resp.data
}
mainList.value.unshift(firstTemp)
editModel.value = false

View File

@@ -332,9 +332,9 @@ const createData = () => {
tempData = setDetails(tempData)
tempData.OrgId = defaultorgid.value
{FirstTableName}s.add(tempData).then(resp => {
if (resp.result != undefined) {
if (resp.data != undefined) {
//如果服务器返回生成的ID
firstTemp.id = resp.result
firstTemp.id = resp.data
}
mainList.value.unshift(firstTemp)
editModel.value = false

View File

@@ -18,7 +18,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(Query{ClassName}ListReq request)
public async Task<PagedDynamicDataResp> Load(Query{ClassName}ListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -26,7 +26,7 @@ namespace OpenAuth.App
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -39,10 +39,18 @@ namespace OpenAuth.App
{ForeignKeyTemplate}
result.data = objs.OrderBy(u => u.Id)
if (!string.IsNullOrEmpty(request.sort))
{
var sortfields = request.sort.Split(',');
objs = objs.OrderBy($"{sortfields[0]} {sortfields[1]}");
}else{
objs = objs.OrderBy(u => u.Id);
}
result.Data = objs
.Skip((request.page - 1) * request.limit)
.Take(request.limit).ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}

View File

@@ -18,7 +18,7 @@ namespace OpenAuth.App
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(Query{ClassName}ListReq request)
public async Task<PagedDynamicDataResp> Load(Query{ClassName}ListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
@@ -32,7 +32,7 @@ namespace OpenAuth.App
throw new Exception("请在代码生成界面配置{ClassName}表的字段属性");
}
var result = new TableData();
var result = new PagedDynamicDataResp();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
@@ -44,11 +44,19 @@ namespace OpenAuth.App
var columnnames = columnFields.Select(u => u.ColumnName);
var propertyStr = string.Join(',', columnnames);
result.columnFields = columnFields;
result.data = objs.OrderByDescending(u => u.Id)
result.ColumnFields = columnFields;
if (!string.IsNullOrEmpty(request.sort))
{
var sortfields = request.sort.Split(',');
objs = objs.OrderBy($"{sortfields[0]} {sortfields[1]}");
}else{
objs = objs.OrderBy(u => u.Id);
}
result.Data = objs
.Skip((request.page - 1) * request.limit)
.Take(request.limit).Select($"{propertyStr}").ToList();
result.count = await objs.CountAsync();
result.Count = await objs.CountAsync();
return result;
}

View File

@@ -4,33 +4,12 @@
<img src="https://gitee.com/uploads/images/2018/0425/163228_7077c3fd_362401.png" alt="LOGO" width="300" />
</p>
**logo图标含义** OpenAuth中OA字母的结合体整体像鱼授人以渔你非说像咸鱼那也是积极向上的咸鱼中心是个笑脸微笑面对生活(✿◡‿◡)。
| **官网** http://www.openauth.net.cn | **文档** http://doc.openauth.net.cn |
|---|---|
**官方网站** http://www.openauth.net.cn
## 🏗️ 架构图
**官方文档** http://doc.openauth.net.cn
![](https://img.shields.io/badge/release-7.0-blue)
![](https://img.shields.io/badge/SqlSugar-5.1.4-blue)
![](https://img.shields.io/badge/IdentityServer4-3.0.1-blue)
![](https://img.shields.io/badge/quartz-3.0.7-blue)
![](https://img.shields.io/badge/Autofac-5.2-blue)
![](https://img.shields.io/badge/NUnit-3.13.1-blue)
![](https://img.shields.io/badge/SwaggerUI-OAS%203.0-blue)
![](https://img.shields.io/badge/Moq-4.13-blue)
![](https://img.shields.io/badge/log4net-2.0.12-blue)
![](https://img.shields.io/badge/vue-2.6.10-brightgreen)
![](https://img.shields.io/badge/vue-3.3.4-brightgreen)
![](https://img.shields.io/badge/vite-4.4.9-brightgreen)
![](https://img.shields.io/badge/element--ui-2.10.1-brightgreen)
![](https://img.shields.io/badge/element--plus-2.3.9-brightgreen)
![](https://img.shields.io/badge/node-%3E%3D4.0-brightgreen)
![](https://img.shields.io/badge/npm-9.7.1-brightgreen)
![](https://img.shields.io/badge/layui-2.8.6-brightgreen)
主分支main默认.Net SDK 9.0.100如果需要降低sdk版本请参考[切换sdk版本](http://doc.openauth.net.cn/core/changesdk.html)。使用.Net Core 2.1-3.1的请点[这里](https://gitee.com/yubaolee/OpenAuth.Core) ,已停止维护
![架构图](snapshot/architect.png)
## ▶️演示直达
@@ -116,8 +95,6 @@
* 建立三方对接规范,已有系统可以无缝对接流程引擎
* MVC前端采用 layui + ztree + gooflow + leipiformdesign
* vue前端采用 vue + element-ui + vform + hiprinter
* 后端采用 .net +EF + sqlsugar + autofac + quartz +IdentityServer4 + nunit + swagger

View File

@@ -1,7 +1,7 @@
<!--
* @Author: yubaolee <yubaolee@163.com> | ahfu~ <954478625@qq.com>
* @Date: 2022-05-12 23:33:44
* @LastEditTime: 2024-06-20 09:23:53
* @LastEditTime: 2025-06-08 14:02:36
* @Description:
*
* Copyright (c) 2023 by yubaolee | ahfu~ , All Rights Reserved.
@@ -11,7 +11,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>OpenAuth.Net Vue2版本|最好用的.net权限工作流框架|.net快速开发框架|.net权限管理|.net工作流</title>
<title>OpenAuth.Net开源版|最好用的.net权限工作流框架|.net快速开发框架|.net权限管理|.net工作流</title>
<meta name="Keywords" content="openauth.net,.net开源工作流,.NET开源权限管理">
<meta name="Description" content="最好用的.net开源工作流框架,最好用的.NET开源权限管理框架">
<link rel="stylesheep" type="text/css" media="print" href="./print-lock.css"></link>

View File

@@ -1,7 +1,7 @@
<!--
* @Author: yubaolee <yubaolee@163.com> | ahfu~ <954478625@qq.com>
* @Date: 2022-05-12 23:34:17
* @LastEditTime: 2024-02-24 18:56:22
* @LastEditTime: 2025-06-11 21:17:23
* @Description: 为角色分配模块
* @
* @Copyright (c) 2024 by yubaolee | ahfu~ , All Rights Reserved.
@@ -119,7 +119,7 @@ export default {
mounted() {
var _this = this
login.getModules().then(response => {
var modules = response.result.map(function (item) {
var modules = response.data.map(function (item) {
let lable = item.name
if (!item.isSys) {
lable += '(非系统模块,可分配字段)'
@@ -138,7 +138,7 @@ export default {
})
// 获取用户可访问的全部的菜单
apiModules.loadMenus('').then(response => {
_this.menus = response.result
_this.menus = response.data
_this.init()
})
},
@@ -156,13 +156,13 @@ export default {
var _this = this
apiModules.loadForRole(_this.roleId).then(response => {
//选中有具体路由的节点因为el-tree设置了自动级联会自动选中上面的节点。但需要用tree.getCheckedNodes(false, true)获取
_this.$refs.tree.setCheckedKeys(response.result.filter(i => i.url.trim() != "/").map(item => item.id))
_this.$refs.tree.setCheckedKeys(response.data.filter(i => i.url.trim() != "/").map(item => item.id))
})
},
getRoleMenuIds() { // 获取角色已分配的菜单
var _this = this
apiModules.loadMenusForRole(_this.roleId).then(response => {
_this.roleMenuIds = response.result.map(item => item.id)
_this.roleMenuIds = response.data.map(item => item.id)
})
},
onChange(val) {

View File

@@ -263,7 +263,7 @@ export default {
this.changeAttrType()
var _this = this // 记录vuecomponent
login.getOrgs().then(response => {
_this.orgs = response.result.map(function (item) {
_this.orgs = response.data.map(function (item) {
return {
id: item.id,
label: item.name,

View File

@@ -79,11 +79,11 @@ export default {
var moduleId = route.meta.moduleId
//加载模块对应的打印方案
modules.loadPrinterPlans(moduleId).then(response => {
this.modulePlans = response.result
this.modulePlans = response.data
})
//加载模块对应的送审方案
modules.loadFlowSchemes(moduleId).then(response => {
this.flowschemes = response.result
this.flowschemes = response.data
})
this.buttons = elements.sort((a, b) => {
return a.sort - b.sort

View File

@@ -278,7 +278,7 @@ export default {
})
} else {
roles.getList(this.tableData.listQuery).then((response) => {
this.tableData.datas = response.result
this.tableData.datas = response.data
this.initCurrentPageData()
this.setSelectTable()
})
@@ -313,7 +313,7 @@ export default {
*/
getLeftTree() {
login.getOrgs().then((response) => {
this.leftTreeDatas = response.result.map(function (item) {
this.leftTreeDatas = response.data.map(function (item) {
return {
id: item.id,
label: item.name,

View File

@@ -16,7 +16,7 @@ const user = {
getCheckModules({ commit, state }) {
return new Promise((resolve, reject) => {
getModules(state.token).then(response => {
commit('SET_CHECK_MODULES', response.result)
commit('SET_CHECK_MODULES', response.data)
resolve(response)
}).catch(error => {
reject(error)

View File

@@ -19,8 +19,8 @@ const serverConf = {
}
isIdentityAuth().then(response => {
commit('SET_IDENTITYAUTH', response.result)
resolve(response.result)
commit('SET_IDENTITYAUTH', response.data)
resolve(response.data)
}).catch(error => {
reject(error)
})

View File

@@ -47,7 +47,7 @@ const user = {
GetInfo({ commit, state }) {
return new Promise((resolve, reject) => {
getInfo(state.token).then(response => {
commit('SET_NAME', response.result)
commit('SET_NAME', response.data)
resolve(response)
}).catch(error => {
reject(error)
@@ -59,7 +59,7 @@ const user = {
GetDefaultOrg({ commit, state }) {
return new Promise((resolve, reject) => {
getOrgs(state.token).then(response => {
commit('SET_DEFAULTORG', response.result[0])
commit('SET_DEFAULTORG', response.data[0])
resolve(response)
}).catch(error => {
reject(error)
@@ -70,7 +70,7 @@ const user = {
GetModules({ commit, state }) {
return new Promise((resolve, reject) => {
getModules(state.token).then(response => {
commit('SET_MODULES', response.result)
commit('SET_MODULES', response.data)
resolve(response)
}).catch(error => {
reject(error)
@@ -85,8 +85,8 @@ const user = {
return
}
getModulesTree(state.token).then(response => {
commit('SET_MODULES', response.result)
resolve(response.result)
commit('SET_MODULES', response.data)
resolve(response.data)
}).catch(error => {
reject(error)
})

View File

@@ -1,7 +1,7 @@
<!--
* @Author: yubaolee <yubaolee@163.com> | ahfu~ <954478625@qq.com>
* @Date: 2022-05-12 23:34:30
* @LastEditTime: 2025-04-17 14:50:16
* @LastEditTime: 2025-06-20 20:59:32
* @Description: 2021-08-24 采用通用的列表和表单组件改造
* 2021-09-14 保持和订单界面一致
* @Copyright (c) 2023 by yubaolee | ahfu~ , All Rights Reserved.
@@ -363,7 +363,7 @@ export default {
let tempData = Object.assign({}, this.firstTemp)
tempData.OrgId = this.defaultorgid
builderTables.add(tempData).then((resp) => {
this.firstTemp.id = resp.result
this.firstTemp.id = resp.data
this.mainList.unshift(this.firstTemp)
this.editModel = false
this.rowClickFirstTable(this.firstTemp)

View File

@@ -1,7 +1,7 @@
<!--
* @Author: yubaolee <yubaolee@163.com> | ahfu~ <954478625@qq.com>
* @Date: 2021-06-01 14:10:29
* @LastEditTime: 2025-06-07 23:54:30
* @LastEditTime: 2025-06-08 14:07:28
* @Description:
* @
* @Copyright (c) 2022 by yubaolee | ahfu~ , All Rights Reserved.
@@ -17,8 +17,6 @@
<el-card class="box-card">
<el-tag type="danger">一些说明</el-tag>
<p></p>
开源版演示地址<a href="http://demo.openauth.net.cn:1803">http://demo.openauth.net.cn:1803</a>
<p></p>
官方网址<a href="http://openauth.net.cn">http://openauth.net.cn</a>
<p></p>
官方博客<a href="http://www.cnblogs.com/yubaolee/">http://www.cnblogs.com/yubaolee/</a>
@@ -32,12 +30,12 @@
</el-row>
<el-row class="auth-box" :gutter="0">
<el-col :span="6" class="auth-col">
<div class="auth-head" style="line-height: 50px;"><p>功能特权</p></div>
<div class="auth-head" style="line-height: 50px;"><p>功能</p></div>
<div class="auth-item" v-for="(item, index) in auths" :key="index">{{item.name}}</div>
</el-col>
<el-col :span="6" v-for="good in goods" :key="good.type" class="auth-col" :class="{'active': good.recomment}">
<div class="auth-head">
<a target="_blank" href="http://old.openauth.net.cn/question/detail.html?id=a2be2d61-7fcb-4df8-8be2-9f296c22a89c">
<a target="_blank" href="http://www.openauth.net.cn/newpricing/">
<span v-if="good.recomment" class="recomment">推荐</span>
<p>{{good.name}}<br><span class="subTitle">{{good.subTitle}}</span></p>
<el-button type="warning" plain style="width: 100px;" size="mini">选择</el-button>
@@ -46,9 +44,9 @@
<div class="auth-item" v-for="(item, index) in auths" :key="index">
<span v-if="item.belongs.indexOf(good.type) >= 0" class="auth-icon"><i class="el-icon-success"></i></span>
<span v-else class="auth-icon"><i class="el-icon-error"></i></span>
<span v-if="good.type === 'base' && item.baseRemark">{{item.baseRemark}}</span>
<span v-else-if="good.type === 'senior' && item.seniorRemark">{{item.seniorRemark}}</span>
<span v-else-if="good.type === 'business' && item.businessRemark">{{item.businessRemark}}</span>
<span v-if="good.type === 'opensource' && item.opensourceRemark">{{item.opensourceRemark}}</span>
<span v-else-if="good.type === 'annual' && item.annualRemark">{{item.annualRemark}}</span>
<span v-else-if="good.type === 'lifetime' && item.lifetimeRemark">{{item.lifetimeRemark}}</span>
</div>
</el-col>
</el-row>
@@ -65,79 +63,78 @@
return {
auths: [
{
name: '专属QQ群',
belongs: ['base', 'senior', 'business'],
name: '价格',
belongs: ['opensource', 'annual', 'lifetime'],
opensourceRemark: '永久免费',
annualRemark: '1688元/年',
lifetimeRemark: '3000元/永久',
},
{
name: '专属授权文件',
belongs: ['base', 'senior', 'business'],
name: '代码获取',
belongs: ['opensource', 'annual', 'lifetime'],
opensourceRemark: '开源中国、GitHub',
annualRemark: '平台下载、持续更新',
lifetimeRemark: '平台下载、持续更新',
},
{
name: '社区VIP',
belongs: ['base', 'senior', 'business'],
baseRemark: 'VIP标识',
seniorRemark: '高级VIP标识',
businessRemark: '企业VIP标识',
name: '授权域名个数',
belongs: ['opensource', 'annual', 'lifetime'],
opensourceRemark: '无限制',
annualRemark: '无限制',
lifetimeRemark: '无限制',
},
{
name: '分发限制',
belongs: ['base', 'senior', 'business'],
baseRemark: '仅个人,禁止公司',
seniorRemark: '仅个人,禁止公司',
businessRemark: '无任何限制',
name: '授权项目个数',
belongs: ['opensource', 'annual', 'lifetime'],
opensourceRemark: '无限制',
annualRemark: '无限制',
lifetimeRemark: '无限制',
},
{
name: '永久使用',
belongs: ['opensource', 'annual', 'lifetime'],
},
{
name: 'Vue2+ElementUI源码',
belongs: ['base', 'senior', 'business'],
baseRemark: '不支持升级',
belongs: ['opensource', 'annual', 'lifetime'],
},
{
name: '最新的代码生成工具',
belongs: ['senior', 'business'],
},
{
name: '永久免费升级',
belongs: ['senior', 'business'],
},
{
name: '提供项目管理平台账号',
belongs: ['senior', 'business'],
},
{
name: '技术咨询服务',
belongs: ['senior', 'business'],
seniorRemark: '为个人提供',
businessRemark: '为公司团队提供',
},
{
name: 'Vue3+ElementPlus源码',
belongs: ['business'],
},
{
name: '移动H5源码',
belongs: ['business'],
},
{
name: '远程技术支持',
belongs: ['business'],
name: '专属QQ群',
belongs: ['annual', 'lifetime'],
opensourceRemark: '可进大群',
},
{
name: '提供正规发票',
belongs: ['business'],
belongs: ['annual', 'lifetime'],
},
{
name: 'Vue3+ElementPlus源码',
belongs: ['annual', 'lifetime'],
annualRemark: '订阅期内有效',
},
{
name: '移动UniApp源码',
belongs: ['annual', 'lifetime'],
annualRemark: '订阅期内有效',
},
{
name: '技术支持服务',
belongs: ['annual', 'lifetime'],
annualRemark: '订阅期内有效',
}
],
goods: [{
name: '标准版',
subTitle: '500元',
type: 'base'
name: '开源版',
subTitle: '',
type: 'opensource'
},{
name: '高级版',
subTitle: '800元',
type: 'senior'
name: '年费订阅',
subTitle: '',
type: 'annual'
},{
name: '企业版',
subTitle: '2000元',
type: 'business',
name: '终生订阅',
subTitle: '',
type: 'lifetime',
recomment: true
}]
}

View File

@@ -391,7 +391,7 @@ export default {
// 获取部门信息
getPartData() {
login.getOrgs().then((response) => {
this.partDatas = response.result.map(function(item) {
this.partDatas = response.data.map(function(item) {
return {
id: item.id,
label: item.name,
@@ -460,7 +460,7 @@ export default {
this.comonInfo.loading = true
this.roleInfo.listQuery.key = this.searchKey
roles.getList(this.listQuery).then((response) => {
this.comonInfo.datas = response.result
this.comonInfo.datas = response.data
this.comonInfo.loading = false
this.setSelectTable()
})

View File

@@ -222,24 +222,24 @@ export default {
canWriteFormItemIds: JSON.stringify(_this.canWriteFormItemIds),
})
.then((response) => {
if (response.result.frmType === 1) {
if (response.data.frmType === 1) {
// 用户自定义的页面,即Vue组件
_this.postObj.frmType = 1
_this.postObj.dbName = response.result.webId
_this.postObj.dbName = response.data.webId
let loadComp = () => import(`@/views/forms/userDefine/${this.postObj.dbName}/add`)
loadComp().then(res => {
_this.userDefineComp = res.default
})
} else if (response.result.frmType === 2) {
} else if (response.data.frmType === 2) {
_this.reLoadVform = false;
// 拖拽界面
_this.postObj.frmType = 2
_this.postObj.dbName = ''
response.result.html = response.result.content // 暂无用content替代一下html
response.data.html = response.data.content // 暂无用content替代一下html
//拖动表单
if (!response.result.contentData.includes('widgetList')) {
if (!response.data.contentData.includes('widgetList')) {
this.$message({
message: '最新版表单设计不支持v4.4及以前版本的拖动表单,新增个表单试试~~',
type: 'error',
@@ -247,7 +247,7 @@ export default {
return
}
this.formJson = JSON.parse(response.result.contentData)
this.formJson = JSON.parse(response.data.contentData)
this.$nextTick(()=>{
_this.reLoadVform = true;
_this.$nextTick(()=>{
@@ -256,20 +256,20 @@ export default {
})
//读写权限控制
if (response.result.canWriteFormItemIds && response.result.canWriteFormItemIds.length > 0) {
if (response.data.canWriteFormItemIds && response.data.canWriteFormItemIds.length > 0) {
_this.$nextTick(function () {
_this.$refs.vFormRef.disableForm()
_this.$refs.vFormRef.enableWidgets(response.result.canWriteFormItemIds)
_this.$refs.vFormRef.enableWidgets(response.data.canWriteFormItemIds)
})
}
_this.frmPreview = response.result.html // 表单预览的数据
_this.fields = response.result.fields // 表单属性的个数
_this.frmPreview = response.data.html // 表单预览的数据
_this.fields = response.data.fields // 表单属性的个数
} else {
_this.postObj.frmType = 0
_this.postObj.dbName = ''
_this.frmPreview = response.result.htmlWithCanWriteIds // 表单预览的数据
_this.fields = response.result.fields // 表单属性的个数
_this.frmPreview = response.data.htmlWithCanWriteIds // 表单预览的数据
_this.fields = response.data.fields // 表单属性的个数
}
})
},

View File

@@ -102,18 +102,18 @@ export default {
id: id,
})
.then((response) => {
_this.postObj = response.result
_this.postObj = response.data
if (_this.postObj.frmType === 2) {
//拖动表单
if (!response.result.frmContentData.includes('widgetList')) {
if (!response.data.frmContentData.includes('widgetList')) {
_this.$message({
message: '最新版表单设计不支持v4.4及以前版本的拖动表单,新增个表单试试~~',
type: 'error',
})
return
}
_this.formJson = JSON.parse(response.result.frmContentData)
_this.formData = JSON.parse(response.result.frmData)
_this.formJson = JSON.parse(response.data.frmContentData)
_this.formData = JSON.parse(response.data.frmData)
_this.$nextTick(function () {
this.$refs.vFormRef.disableForm()
@@ -135,7 +135,7 @@ export default {
flowInstanceId: id,
})
.then((response) => {
this.histories = response.result
this.histories = response.data
})
.catch((err) => {
console.log(err)

View File

@@ -255,7 +255,7 @@
id: row.id,
})
.then((response) => {
var type = response.result.nextNodeDesignateType
var type = response.data.nextNodeDesignateType
var secondNodeDync = type === 'RUNTIME_SPECIAL_USER' || type === 'RUNTIME_SPECIAL_ROLE'
if (secondNodeDync) {
this.$router.push('/flowinstances/verify/' + row.id)

View File

@@ -169,9 +169,9 @@ export default {
id: id,
})
.then((response) => {
this.postObj = response.result
this.formData = JSON.parse(response.result.frmData)
this.formJson = JSON.parse(response.result.frmContentData)
this.postObj = response.data
this.formData = JSON.parse(response.data.frmData)
this.formJson = JSON.parse(response.data.frmContentData)
if (this.postObj.frmType === 1) {
// 用户自定义的页面,即Vue组件

View File

@@ -149,29 +149,29 @@ export default {
id: id,
})
.then((response) => {
this.flowObj = response.result
this.flowObj = response.data
if (this.flowObj.frmType === 2) {
//拖动表单
if (!response.result.frmContentData.includes('widgetList')) {
if (!response.data.frmContentData.includes('widgetList')) {
this.$message({
message: '最新版表单设计不支持v4.4及以前版本的拖动表单,新增个表单试试~~',
type: 'error',
})
return
}
this.formJson = JSON.parse(response.result.frmContentData)
this.formData = JSON.parse(response.result.frmData)
this.formJson = JSON.parse(response.data.frmContentData)
this.formData = JSON.parse(response.data.frmData)
} else if (this.flowObj.frmType === 1) { //用户自定义表单
let loadComp = () => import(`@/views/forms/userDefine/${this.flowObj.dbName}/detail`)
loadComp().then(res => {
this.userDefineComp = res.default
})
}
this.postObj.frmType = response.result.frmType
this.postObj.NodeDesignateType = response.result.nextNodeDesignateType //节点的执行权限类型,如执行时选定用户或设计时确定用户
this.postObj.frmType = response.data.frmType
this.postObj.NodeDesignateType = response.data.nextNodeDesignateType //节点的执行权限类型,如执行时选定用户或设计时确定用户
var nodes = JSON.parse(this.flowObj.schemeContent).nodes
this.FlowNodes = nodes // 需要过滤条件,应该退回到已经处理过的某个节点
this.canWriteFormItemIds = response.result.canWriteFormItemIds
this.canWriteFormItemIds = response.data.canWriteFormItemIds
if (this.flowObj.frmType === 2) {
//控制拖动表单字段读写权限

View File

@@ -245,9 +245,9 @@ export default {
id: val,
})
.then((response) => {
_this.postObj.frmType = response.result.frmType
if (response.result.frmType === 1) {// 自定义表单
let loadComp = () => import(`@/views/forms/userDefine/${response.result.webId}/add`)
_this.postObj.frmType = response.data.frmType
if (response.data.frmType === 1) {// 自定义表单
let loadComp = () => import(`@/views/forms/userDefine/${response.data.webId}/add`)
loadComp().then(res => {
_this.userDefineComp = res.default
_this.$nextTick(() => {
@@ -258,8 +258,8 @@ export default {
return
}
if (response.result.frmType === 2) {
if (!response.result.contentData.includes('widgetList')) {
if (response.data.frmType === 2) {
if (!response.data.contentData.includes('widgetList')) {
this.$message({
message: '最新版表单设计不支持v4.4及以前版本的拖动表单,新增个表单试试~~',
type: 'error',
@@ -267,15 +267,15 @@ export default {
return;
}
// 拖动表单
_this.formJson = JSON.parse(response.result.contentData)
_this.formJson = JSON.parse(response.data.contentData)
_this.$refs.vFormRef[0].setFormJson(_this.formJson)
_this.$nextTick(()=>{
_this.currentForm = _this.$refs.vFormRef[0].getFieldWidgets().map(item=>{return {name:item.field.options.name, title:item.field.options.label}})
})
return
}
_this.frmPreview = response.result.html // 默认动态表单
_this.currentForm = JSON.parse(response.result.contentData)
_this.frmPreview = response.data.html // 默认动态表单
_this.currentForm = JSON.parse(response.data.contentData)
})
},
submitForm() {

View File

@@ -223,7 +223,7 @@ export default {
forms
.get(id)
.then((response) => {
this.postForm = response.result
this.postForm = response.data
})
.catch((err) => {
console.log(err)

View File

@@ -135,7 +135,7 @@ export default {
handleChange(file, fileList) {
this.temp.files = fileList
.filter((u) => u.status === 'success')
.map((u) => u.response.result[0])
.map((u) => u.response.data[0])
.map((u) => {
return {
fileName: u.fileName,

View File

@@ -73,7 +73,7 @@
methods: {
handleChange(file, fileList) {
this.temp.files = fileList.filter(u => u.status === 'success')
.map(u => u.response.result[0])
.map(u => u.response.data[0])
.map(u => {
return {
fileName: u.fileName,

Some files were not shown because too many files have changed in this diff Show More