main
liangzongpeng 2024-05-24 18:22:01 +08:00
parent 4d90594321
commit d3cb68aec8
643 changed files with 3360 additions and 669 deletions

View File

@ -0,0 +1,29 @@
using Admin.NET.Core;
namespace Admin.NET.Application.Entity;
/// <summary>
/// 码元素
/// </summary>
[SugarTable("CodeElement","码元素")]
public class CodeElement : EntityBase
{
/// <summary>
/// 码长度
/// </summary>
[Required]
[SugarColumn(ColumnName = "CodeLength", ColumnDescription = "码长度")]
public int CodeLength { get; set; }
/// <summary>
/// 码包名称
/// </summary>
[SugarColumn(ColumnName = "CodeName", ColumnDescription = "码包名称", Length = 32)]
public string? CodeName { get; set; }
/// <summary>
/// 导出格式示例
/// </summary>
[SugarColumn(ColumnName = "ExportFormatExample", ColumnDescription = "导出格式示例", Length = 32)]
public string? ExportFormatExample { get; set; }
}

View File

@ -0,0 +1,48 @@
using Admin.NET.Core;
namespace Admin.NET.Application.Entity;
/// <summary>
/// 码元素内容
/// </summary>
[SugarTable("CodeElementProp","码元素内容")]
public class CodeElementProp : EntityBaseId
{
/// <summary>
/// 码元素Id
/// </summary>
[Required]
[SugarColumn(ColumnName = "CodeElementId", IsIdentity = false, ColumnDescription = "码元素Id", IsPrimaryKey = true)]
public long CodeElementId { get; set; }
/// <summary>
/// 长度
/// </summary>
[Required]
[SugarColumn(ColumnName = "Length", IsIdentity = false, ColumnDescription = "长度", IsPrimaryKey = true)]
public int Length { get; set; }
/// <summary>
/// 序号
/// </summary>
[SugarColumn(ColumnName = "Index", ColumnDescription = "序号")]
public int? Index { get; set; }
/// <summary>
/// 码元素值
/// </summary>
[SugarColumn(ColumnName = "CodeValue", ColumnDescription = "码元素值", Length = 32)]
public string? CodeValue { get; set; }
/// <summary>
/// 产码规则
/// </summary>
[SugarColumn(ColumnName = "CodeType", ColumnDescription = "产码规则", Length = 32)]
public string? CodeType { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnName = "Remark", ColumnDescription = "备注", Length = 32)]
public string? Remark { get; set; }
}

View File

@ -35,7 +35,7 @@ public class CodePakageConfiguration : EntityTenant
/// 导出格式
/// </summary>
[SugarColumn(ColumnName = "ExportFormat", ColumnDescription = "导出格式")]
public int? ExportFormat { get; set; }
public string? ExportFormat { get; set; }
/// <summary>
/// 条码前缀
@ -55,4 +55,17 @@ public class CodePakageConfiguration : EntityTenant
[SugarColumn(ColumnName = "ExportFormatExample", ColumnDescription = "导出格式示例", Length = 32)]
public string? ExportFormatExample { get; set; }
/// <summary>
/// 条码长度
/// </summary>
[Required]
[SugarColumn(ColumnName = "CodeLength", ColumnDescription = "条码长度")]
public int CodeLength { get; set; }
/// <summary>
/// 后缀类型
/// </summary>
[SugarColumn(ColumnName = "SuffixType", ColumnDescription = "后缀类型", Length = 32)]
public string? SuffixType { get; set; }
}

View File

@ -98,7 +98,7 @@ public class BrandService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<BrandOutput>> List()
{
return await _rep.AsQueryable().Select<BrandOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<BrandOutput>().ToListAsync();
}

View File

@ -0,0 +1,122 @@
using Admin.NET.Core.Service;
using Admin.NET.Application.Const;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
namespace Admin.NET.Application;
/// <summary>
/// 码元素服务
/// </summary>
[ApiDescriptionSettings(ApplicationConst.GroupName, Order = 100)]
public class CodeElementService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<CodeElement> _rep;
public CodeElementService(SqlSugarRepository<CodeElement> rep)
{
_rep = rep;
}
/// <summary>
/// 分页查询码元素
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Page")]
public async Task<SqlSugarPagedList<CodeElementOutput>> Page(CodeElementInput input)
{
var query = _rep.AsQueryable()
.WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
u.CodeName.Contains(input.SearchKey.Trim())
|| u.ExportFormatExample.Contains(input.SearchKey.Trim())
)
.WhereIF(!string.IsNullOrWhiteSpace(input.CodeName), u => u.CodeName.Contains(input.CodeName.Trim()))
.WhereIF(!string.IsNullOrWhiteSpace(input.ExportFormatExample), u => u.ExportFormatExample.Contains(input.ExportFormatExample.Trim()))
.Select<CodeElementOutput>();
return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
}
/// <summary>
/// 增加码元素
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Add")]
public async Task<long> Add(AddCodeElementInput input)
{
var entity = input.Adapt<CodeElement>();
await _rep.InsertAsync(entity);
return entity.Id;
}
/// <summary>
/// 删除码元素
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Delete")]
public async Task Delete(DeleteCodeElementInput input)
{
var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
//var entity = await _rep.GetFirstAsync(u => u.CodeLength == input.CodeLength) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
//await _rep.FakeDeleteAsync(entity); //假删除
await _rep.DeleteAsync(entity); //真删除
}
/// <summary>
/// 更新码元素
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Update")]
public async Task Update(UpdateCodeElementInput input)
{
var entity = input.Adapt<CodeElement>();
await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
}
/// <summary>
/// 获取码元素
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
[ApiDescriptionSettings(Name = "Detail")]
public async Task<CodeElement> Detail([FromQuery] QueryByIdCodeElementInput input)
{
return await _rep.GetFirstAsync(u => u.Id == input.Id);
//return await _rep.GetFirstAsync(u => u.CodeLength == input.CodeLength);
}
/// <summary>
/// 获取码元素
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
[ApiDescriptionSettings(Name = "ElementByName")]
public async Task<CodeElement> GetElementByName([FromQuery] string input)
{
return await _rep.GetFirstAsync(u => u.CodeName == input);
}
/// <summary>
/// 获取码元素列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
[ApiDescriptionSettings(Name = "List")]
public async Task<List<CodeElementOutput>> List()
{
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<CodeElementOutput>().ToListAsync();
}
}

View File

@ -0,0 +1,63 @@
namespace Admin.NET.Application;
/// <summary>
/// 码元素输出参数
/// </summary>
public class CodeElementDto
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 码长度
/// </summary>
public int CodeLength { get; set; }
/// <summary>
/// 码包名称
/// </summary>
public string? CodeName { get; set; }
/// <summary>
/// 导出格式示例
/// </summary>
public string? ExportFormatExample { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 创建者Id
/// </summary>
public long? CreateUserId { get; set; }
/// <summary>
/// 创建者姓名
/// </summary>
public string? CreateUserName { get; set; }
/// <summary>
/// 修改者Id
/// </summary>
public long? UpdateUserId { get; set; }
/// <summary>
/// 修改者姓名
/// </summary>
public string? UpdateUserName { get; set; }
/// <summary>
/// 软删除
/// </summary>
public bool IsDelete { get; set; }
}

View File

@ -0,0 +1,136 @@
using Admin.NET.Core;
using Microsoft.AspNetCore.Components.Web.Virtualization;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
/// <summary>
/// 码元素基础输入参数
/// </summary>
public class CodeElementBaseInput
{
/// <summary>
/// 码包名称
/// </summary>
public virtual string? CodeName { get; set; }
/// <summary>
/// 码长度
/// </summary>
public virtual int CodeLength { get; set; }
/// <summary>
/// 导出格式示例
/// </summary>
public virtual string? ExportFormatExample { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public virtual DateTime? CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public virtual DateTime? UpdateTime { get; set; }
/// <summary>
/// 创建者Id
/// </summary>
public virtual long? CreateUserId { get; set; }
/// <summary>
/// 创建者姓名
/// </summary>
public virtual string? CreateUserName { get; set; }
/// <summary>
/// 修改者Id
/// </summary>
public virtual long? UpdateUserId { get; set; }
/// <summary>
/// 修改者姓名
/// </summary>
public virtual string? UpdateUserName { get; set; }
/// <summary>
/// 软删除
/// </summary>
public virtual bool IsDelete { get; set; }
}
/// <summary>
/// 码元素分页查询输入参数
/// </summary>
public class CodeElementInput : BasePageInput
{
/// <summary>
/// 关键字查询
/// </summary>
public string? SearchKey { get; set; }
/// <summary>
/// 码包名称
/// </summary>
public string? CodeName { get; set; }
/// <summary>
/// 码长度
/// </summary>
public virtual int CodeLength { get; set; }
/// <summary>
/// 导出格式示例
/// </summary>
public string? ExportFormatExample { get; set; }
}
/// <summary>
/// 码元素增加输入参数
/// </summary>
public class AddCodeElementInput : CodeElementBaseInput
{
/// <summary>
/// 软删除
/// </summary>
[Required(ErrorMessage = "软删除不能为空")]
public override bool IsDelete { get; set; }
}
/// <summary>
/// 码元素删除输入参数
/// </summary>
public class DeleteCodeElementInput : BaseIdInput
{
/// <summary>
/// 码长度
/// </summary>
[Required(ErrorMessage = "码长度不能为空")]
public int CodeLength { get; set; }
}
/// <summary>
/// 码元素更新输入参数
/// </summary>
public class UpdateCodeElementInput : CodeElementBaseInput
{
/// <summary>
/// 主键Id
/// </summary>
[Required(ErrorMessage = "主键Id不能为空")]
public long Id { get; set; }
}
/// <summary>
/// 码元素主键查询输入参数
/// </summary>
public class QueryByIdCodeElementInput : DeleteCodeElementInput
{
}

View File

@ -0,0 +1,65 @@
namespace Admin.NET.Application;
/// <summary>
/// 码元素输出参数
/// </summary>
public class CodeElementOutput
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 码长度
/// </summary>
public int CodeLength { get; set; }
/// <summary>
/// 码包名称
/// </summary>
public string? CodeName { get; set; }
/// <summary>
/// 导出格式示例
/// </summary>
public string? ExportFormatExample { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 创建者Id
/// </summary>
public long? CreateUserId { get; set; }
/// <summary>
/// 创建者姓名
/// </summary>
public string? CreateUserName { get; set; }
/// <summary>
/// 修改者Id
/// </summary>
public long? UpdateUserId { get; set; }
/// <summary>
/// 修改者姓名
/// </summary>
public string? UpdateUserName { get; set; }
/// <summary>
/// 软删除
/// </summary>
public bool IsDelete { get; set; }
}

View File

@ -0,0 +1,149 @@
using Admin.NET.Core.Service;
using Admin.NET.Application.Const;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using Admin.NET.Application.Utils;
namespace Admin.NET.Application;
/// <summary>
/// 码元素内容服务
/// </summary>
[ApiDescriptionSettings(ApplicationConst.GroupName, Order = 100)]
public class CodeElementPropService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<CodeElementProp> _rep;
public CodeElementPropService(SqlSugarRepository<CodeElementProp> rep)
{
_rep = rep;
}
/// <summary>
/// 分页查询码元素内容
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Page")]
public async Task<SqlSugarPagedList<CodeElementPropOutput>> Page(CodeElementPropInput input)
{
var query = _rep.AsQueryable()
.WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
u.CodeValue.Contains(input.SearchKey.Trim())
|| u.CodeType.Contains(input.SearchKey.Trim())
|| u.Remark.Contains(input.SearchKey.Trim())
)
.WhereIF(input.Index>0, u => u.Index == input.Index)
.WhereIF(!string.IsNullOrWhiteSpace(input.CodeValue), u => u.CodeValue.Contains(input.CodeValue.Trim()))
.WhereIF(!string.IsNullOrWhiteSpace(input.CodeType), u => u.CodeType.Contains(input.CodeType.Trim()))
.WhereIF(!string.IsNullOrWhiteSpace(input.Remark), u => u.Remark.Contains(input.Remark.Trim()))
.Select<CodeElementPropOutput>();
return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
}
/// <summary>
/// 增加码元素内容
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Add")]
public async Task<long> Add(AddCodeElementPropInput input)
{
var entity = input.Adapt<CodeElementProp>();
await _rep.InsertAsync(entity);
return entity.Id;
}
/// <summary>
/// 删除码元素内容
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Delete")]
public async Task Delete(DeleteCodeElementPropInput input)
{
var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
//var entity = await _rep.GetFirstAsync(u => u.CodeElementId == input.CodeElementId) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
//var entity = await _rep.GetFirstAsync(u => u.Length == input.Length) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
//await _rep.FakeDeleteAsync(entity); //假删除
await _rep.DeleteAsync(entity); //真删除
}
/// <summary>
/// 更新码元素内容
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "Update")]
public async Task Update(UpdateCodeElementPropInput input)
{
var entity = input.Adapt<CodeElementProp>();
if (input.Id > 0)
{
await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
}
else
{
await _rep.InsertAsync(entity);
}
}
/// <summary>
/// 获取码元素内容
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
[ApiDescriptionSettings(Name = "Detail")]
public async Task<CodeElementProp> Detail([FromQuery] QueryByIdCodeElementPropInput input)
{
return await _rep.GetFirstAsync(u => u.Id == input.Id);
//return await _rep.GetFirstAsync(u => u.CodeElementId == input.CodeElementId);
//return await _rep.GetFirstAsync(u => u.Length == input.Length);
}
/// <summary>
/// 获取码元素内容列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
[ApiDescriptionSettings(Name = "List")]
public async Task<List<CodeElementPropOutput>> List()
{
return await _rep.AsQueryable().Select<CodeElementPropOutput>().ToListAsync();
}
/// <summary>
/// 获取码元素内容列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "CodePropByElement")]
public async Task<List<CodeElementPropOutput>> CodePropByElement(CodeElementOutput input)
{
var list = await _rep.AsQueryable().Where(a => a.CodeElementId == input.Id).Select<CodeElementPropOutput>().ToListAsync();
if (list == null || list.Count < 1)
{
var result = new List<CodeElementPropOutput>();
result.Add(new CodeElementPropOutput() { CodeElementId = input.Id, Index = 1, CodeValue = "110", Length = 3, Remark = "110" });
if (input.CodeLength > 7)
{
var len = input.CodeLength - 7;
var value = CodeHelper.GetCodeRandom(len);
result.Add(new CodeElementPropOutput() { CodeElementId = input.Id, Index = 2, CodeValue = value, Length = len, CodeType = "随机数", Remark = value });
}
result.Add(new CodeElementPropOutput() { CodeElementId = input.Id, Index = 3, CodeValue = "0000", Length = 4, CodeType = "序号", Remark = "0001" });
return result;
}
return list;
}
}

View File

@ -0,0 +1,43 @@
namespace Admin.NET.Application;
/// <summary>
/// 码元素内容输出参数
/// </summary>
public class CodeElementPropDto
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 码元素Id
/// </summary>
public long CodeElementId { get; set; }
/// <summary>
/// 长度
/// </summary>
public int Length { get; set; }
/// <summary>
/// 序号
/// </summary>
public int? Index { get; set; }
/// <summary>
/// 码元素值
/// </summary>
public string? CodeValue { get; set; }
/// <summary>
/// 产码规则
/// </summary>
public string? CodeType { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remark { get; set; }
}

View File

@ -0,0 +1,122 @@
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application;
/// <summary>
/// 码元素内容基础输入参数
/// </summary>
public class CodeElementPropBaseInput
{
/// <summary>
/// 序号
/// </summary>
public virtual int? Index { get; set; }
/// <summary>
/// 码元素值
/// </summary>
public virtual string? CodeValue { get; set; }
/// <summary>
/// 产码规则
/// </summary>
public virtual string? CodeType { get; set; }
/// <summary>
/// 备注
/// </summary>
public virtual string? Remark { get; set; }
}
/// <summary>
/// 码元素内容分页查询输入参数
/// </summary>
public class CodeElementPropInput : BasePageInput
{
/// <summary>
/// 关键字查询
/// </summary>
public string? SearchKey { get; set; }
/// <summary>
/// 序号
/// </summary>
public int? Index { get; set; }
/// <summary>
/// 码元素值
/// </summary>
public string? CodeValue { get; set; }
/// <summary>
/// 产码规则
/// </summary>
public string? CodeType { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 码元素内容增加输入参数
/// </summary>
public class AddCodeElementPropInput : CodeElementPropBaseInput
{
}
/// <summary>
/// 码元素内容删除输入参数
/// </summary>
public class DeleteCodeElementPropInput : BaseIdInput
{
/// <summary>
/// 码元素Id
/// </summary>
[Required(ErrorMessage = "码元素Id不能为空")]
public long CodeElementId { get; set; }
/// <summary>
/// 长度
/// </summary>
[Required(ErrorMessage = "长度不能为空")]
public int Length { get; set; }
}
/// <summary>
/// 码元素内容更新输入参数
/// </summary>
public class UpdateCodeElementPropInput : CodeElementPropBaseInput
{
/// <summary>
/// 主键Id
/// </summary>
[Required(ErrorMessage = "主键Id不能为空")]
public long Id { get; set; }
/// <summary>
/// 码元素Id
/// </summary>
[Required(ErrorMessage = "码元素Id不能为空")]
public long CodeElementId { get; set; }
/// <summary>
/// 长度
/// </summary>
[Required(ErrorMessage = "长度不能为空")]
public int Length { get; set; }
}
/// <summary>
/// 码元素内容主键查询输入参数
/// </summary>
public class QueryByIdCodeElementPropInput : DeleteCodeElementPropInput
{
}

View File

@ -0,0 +1,45 @@
namespace Admin.NET.Application;
/// <summary>
/// 码元素内容输出参数
/// </summary>
public class CodeElementPropOutput
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 码元素Id
/// </summary>
public long CodeElementId { get; set; }
/// <summary>
/// 长度
/// </summary>
public int Length { get; set; }
/// <summary>
/// 序号
/// </summary>
public int? Index { get; set; }
/// <summary>
/// 码元素值
/// </summary>
public string? CodeValue { get; set; }
/// <summary>
/// 产码规则
/// </summary>
public string? CodeType { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remark { get; set; }
}

View File

@ -94,10 +94,22 @@ public class CodePakageConfigurationService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<CodePakageConfigurationOutput>> List()
{
return await _rep.AsQueryable().Select<CodePakageConfigurationOutput>().ToListAsync();
var list = await _rep.AsQueryable().Where(a => !a.IsDelete).Select<CodePakageConfigurationOutput>().ToListAsync();
return list;
}
/// <summary>
/// 获取码包示例
/// </summary>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "GetExample")]
public async Task<string> GetExample(CodePakageConfigurationOutput codePakage)
{
var result = "";
return result;
}
}

View File

@ -33,7 +33,7 @@
/// <summary>
/// 导出格式
/// </summary>
public int? ExportFormat { get; set; }
public string? ExportFormat { get; set; }
/// <summary>
/// 条码前缀

View File

@ -31,7 +31,7 @@ namespace Admin.NET.Application;
/// <summary>
/// 导出格式
/// </summary>
public virtual int? ExportFormat { get; set; }
public virtual string? ExportFormat { get; set; }
/// <summary>
/// 条码前缀
@ -48,10 +48,20 @@ namespace Admin.NET.Application;
/// </summary>
public virtual string? ExportFormatExample { get; set; }
/// <summary>
/// 租户Id
/// </summary>
public virtual long? TenantId { get; set; }
/// <summary>
/// 条码长度
/// </summary>
public virtual int CodeLength { get; set; }
/// <summary>
/// 后缀类型
/// </summary>
public virtual string? SuffixType { get; set; }
/// <summary>
/// 租户Id
/// </summary>
public virtual long? TenantId { get; set; }
/// <summary>
/// 创建时间
@ -123,7 +133,7 @@ namespace Admin.NET.Application;
/// <summary>
/// 导出格式
/// </summary>
public int? ExportFormat { get; set; }
public string? ExportFormat { get; set; }
/// <summary>
/// 条码前缀
@ -139,8 +149,17 @@ namespace Admin.NET.Application;
/// 导出格式示例
/// </summary>
public string? ExportFormatExample { get; set; }
/// <summary>
/// 条码长度
/// </summary>
public virtual int CodeLength { get; set; }
}
/// <summary>
/// 后缀类型
/// </summary>
public virtual string? SuffixType { get; set; }
}
/// <summary>
/// 码包配置增加输入参数

View File

@ -33,7 +33,7 @@ public class CodePakageConfigurationOutput
/// <summary>
/// 导出格式
/// </summary>
public int? ExportFormat { get; set; }
public string? ExportFormat { get; set; }
/// <summary>
/// 条码前缀
@ -50,6 +50,16 @@ public class CodePakageConfigurationOutput
/// </summary>
public string? ExportFormatExample { get; set; }
/// <summary>
/// 条码长度
/// </summary>
public virtual int CodeLength { get; set; }
/// <summary>
/// 后缀类型
/// </summary>
public virtual string? SuffixType { get; set; }
/// <summary>
/// 租户Id
/// </summary>

View File

@ -102,7 +102,7 @@ public class CodeRuleByInfomationService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<CodeRuleByInfomationOutput>> List()
{
return await _rep.AsQueryable().Select<CodeRuleByInfomationOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<CodeRuleByInfomationOutput>().ToListAsync();
}

View File

@ -99,7 +99,7 @@ public class CodeRuleByReceiptService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<CodeRuleByReceiptOutput>> List()
{
return await _rep.AsQueryable().Select<CodeRuleByReceiptOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<CodeRuleByReceiptOutput>().ToListAsync();
}

View File

@ -105,7 +105,7 @@ public class CustomService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<CustomOutput>> List()
{
return await _rep.AsQueryable().Select<CustomOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<CustomOutput>().ToListAsync();
}

View File

@ -95,7 +95,7 @@ public class CustonClassifyService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<CustonClassifyOutput>> List()
{
return await _rep.AsQueryable().Select<CustonClassifyOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<CustonClassifyOutput>().ToListAsync();
}

View File

@ -114,7 +114,7 @@ public class DistributorService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<DistributorOutput>> List()
{
return await _rep.AsQueryable().Select<DistributorOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<DistributorOutput>().ToListAsync();
}

View File

@ -133,7 +133,7 @@ public class InvoiceService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<InvoiceOutput>> List()
{
return await _rep.AsQueryable().Select<InvoiceOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<InvoiceOutput>().ToListAsync();
}

View File

@ -95,7 +95,7 @@ public class MaterialClassifyService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<MaterialClassifyOutput>> List()
{
return await _rep.AsQueryable().Select<MaterialClassifyOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<MaterialClassifyOutput>().ToListAsync();
}

View File

@ -119,7 +119,7 @@ public class MaterialsService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<MaterialsOutput>> List()
{
return await _rep.AsQueryable().Select<MaterialsOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<MaterialsOutput>().ToListAsync();
}
/// <summary>

View File

@ -105,7 +105,7 @@ public class OutboundService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<OutboundOutput>> List()
{
return await _rep.AsQueryable().Select<OutboundOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<OutboundOutput>().ToListAsync();
}

View File

@ -118,7 +118,7 @@ public class PackageInfoService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<PackageInfoOutput>> List(long materialsId)
{
var list = await _rep.AsQueryable().Where(u => u.MaterialsId == materialsId)?.Select<PackageInfoOutput>().ToListAsync();
var list = await _rep.AsQueryable().Where(u =>!u.IsDelete && u.MaterialsId == materialsId)?.Select<PackageInfoOutput>().ToListAsync();
if (list != null && list.Count > 5)
{
var units = await _unitService.List();

View File

@ -2,6 +2,8 @@
using Admin.NET.Application.Const;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using Admin.NET.Application.Utils;
namespace Admin.NET.Application;
/// <summary>
/// 打印信息服务
@ -10,9 +12,15 @@ namespace Admin.NET.Application;
public class PrintDataService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<PrintData> _rep;
public PrintDataService(SqlSugarRepository<PrintData> rep)
private readonly CodeElementService _codeElementService;
private readonly CodeElementPropService _codeElementPropService;
public PrintDataService(SqlSugarRepository<PrintData> rep,
CodeElementService codeElementService,
CodeElementPropService codeElementPropService)
{
_rep = rep;
_codeElementService = codeElementService;
_codeElementPropService = codeElementPropService;
}
/// <summary>
@ -100,28 +108,77 @@ public class PrintDataService : IDynamicApiController, ITransient
public async Task<List<PrintData>> GetPrintDataList(PrintDataMaterialsInput input)
{
var result = new List<PrintData>();
var headCode = string.IsNullOrEmpty(input.CodeHead) ? "" : input.CodeHead;
int countN = input.CodeLength > 3 ? input.CodeLength : 5;
var format = "";
for (int i = 0; i < countN; i++)
if (string.IsNullOrEmpty(input.CodeHead))
{
format += "0";
return result;
}
for (int i = 1; i < input.Count+1; i++)
var elem = await _codeElementService.GetElementByName(input.CodeHead);
if (elem == null)
{ return result; }
var elemProp = await _codeElementPropService.CodePropByElement(new CodeElementOutput() { Id = elem.Id, CodeLength = elem.CodeLength });
if (elemProp.Count>0)
{
var code = $"{headCode}{i.ToString(format)}";
if (input.CodeType == "条形码")
elemProp = elemProp.OrderBy(a => a.Index).ToList();
for (int i = 0; i < input.Count; i++)
{
result.Add(new PrintData() { BarCode = code });
}
else
{
result.Add(new PrintData() { QrCode = code });
var code = GetCodeNumByProp(elemProp, i + 1);
if (input.CodeType == "条形码")
{
result.Add(new PrintData() { BarCode = code });
}
else
{
result.Add(new PrintData() { QrCode = code });
}
}
}
return result;
}
private string GetCodeNumByProp(List<CodeElementPropOutput> lists,int index)
{
var result = string.Empty;
for (int i = 0; i < lists.Count; i++)
{
var item = lists[i];
var format = "";
for (int j = 0; j < item.Length; j++)
{
format += "0";
}
switch (item.CodeType)
{
case "序号":
result += (Convert.ToInt32(item.CodeValue) + index).ToString(format);
break;
case "随机数":
result += CodeHelper.GetCodeRandom(item.Length);
break;
case "固定字符串":
result += item.CodeValue;
break;
case "随机字母数字":
result += CodeHelper.GetCodeLetterNum(item.Length);
break;
case "随机大小写字母":
result += CodeHelper.GetCodeLetter(item.Length);
break;
case "随机大写字母":
result += CodeHelper.GetCodeUpLetter(item.Length);
break;
case "随机小写字母":
result += CodeHelper.GetCodeDownLetter(item.Length);
break;
default:
result += (Convert.ToInt32(item.CodeValue) + 1).ToString(format);
break;
}
}
return result;
}
/// <summary>
/// 获取打印信息列表
/// </summary>

View File

@ -122,7 +122,7 @@ public class PrintLabelService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<PrintLabelOutput>> List()
{
return await _rep.AsQueryable().Select<PrintLabelOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<PrintLabelOutput>().ToListAsync();
}

View File

@ -104,7 +104,7 @@ public class ProductBarCodeService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<ProductBarCodeOutput>> List()
{
return await _rep.AsQueryable().Select<ProductBarCodeOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<ProductBarCodeOutput>().ToListAsync();
}

View File

@ -98,7 +98,7 @@ public class ProductCodeConfigurationService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<ProductCodeConfigurationOutput>> List()
{
return await _rep.AsQueryable().Select<ProductCodeConfigurationOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<ProductCodeConfigurationOutput>().ToListAsync();
}

View File

@ -102,7 +102,7 @@ public class ProductionService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<ProductionOutput>> List()
{
return await _rep.AsQueryable().Select<ProductionOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<ProductionOutput>().ToListAsync();
}

View File

@ -138,7 +138,7 @@ public class ProductionTasksService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<ProductionTasksOutput>> List()
{
return await _rep.AsQueryable().Select<ProductionTasksOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<ProductionTasksOutput>().ToListAsync();
}

View File

@ -0,0 +1,27 @@
// 大名科技(天津)有限公司版权所有 电话18020030720 QQ515096995
//
// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
using Admin.NET.Application.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.NET.Application.Service.ReportTable.Dto;
public class AddReportContext
{
/// <summary>
/// 单位组Id
/// </summary>
public long UnitGroupId { get; set; }
/// <summary>
/// 码包名称
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 打印数据
/// </summary>
public List<PrintData> PrintDatas { get; set; }
}

View File

@ -2,6 +2,8 @@
using Admin.NET.Application.Const;
using Admin.NET.Application.Entity;
using Microsoft.AspNetCore.Http;
using Admin.NET.Application.Service.ReportTable.Dto;
namespace Admin.NET.Application;
/// <summary>
/// 汇报单服务
@ -10,9 +12,15 @@ namespace Admin.NET.Application;
public class ReportTableService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<ReportTable> _rep;
public ReportTableService(SqlSugarRepository<ReportTable> rep)
private readonly SysUnitService _repUnit;
private readonly SysUnitGroupService _repUnitGroup;
public ReportTableService(SqlSugarRepository<ReportTable> rep,
SysUnitService repUnit,
SysUnitGroupService repUnitGroup)
{
_rep = rep;
_repUnit = repUnit;
_repUnitGroup = repUnitGroup;
}
/// <summary>
@ -116,11 +124,41 @@ public class ReportTableService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<ReportTableOutput>> List()
{
return await _rep.AsQueryable().Select<ReportTableOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<ReportTableOutput>().ToListAsync();
}
/// <summary>
/// 新增汇报单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[ApiDescriptionSettings(Name = "AddReport")]
public async Task AddReport(AddReportContext input)
{
var unitGroup = await _repUnitGroup.Detail(new QueryByIdSysUnitGroupInput() { Id = input.UnitGroupId });
if (unitGroup == null)
{
throw new ArgumentNullException(nameof(unitGroup));
}
var units = await _repUnit.ListByGroupId(unitGroup.Id);
if (units == null || units.Count < 1)
{
throw new ArgumentNullException(nameof(unitGroup));
}
var unit = units.Find(a => a.Name == input.Name);
if (unit == null)
throw new ArgumentNullException(nameof(unitGroup));
var newReport = new AddReportTableInput() { CreateTime = DateTime.Now, IsDelete = false, OddNumber = DateTime.Now.ToString("yyyyMMddhhmmss"), State = 1 };
var addReport = await Add(newReport);
var others = units.FindAll(a => a.Rate < unit.Rate);
var entity = input.Adapt<ReportTable>();
await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
}
}

View File

@ -99,7 +99,7 @@ public class SuppleInformationService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<SuppleInformationOutput>> List()
{
return await _rep.AsQueryable().Select<SuppleInformationOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<SuppleInformationOutput>().ToListAsync();
}

View File

@ -95,7 +95,7 @@ public class SuppleTypeService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<SuppleTypeOutput>> List()
{
return await _rep.AsQueryable().Select<SuppleTypeOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<SuppleTypeOutput>().ToListAsync();
}

View File

@ -107,7 +107,7 @@ public class SupplierService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<SupplierOutput>> List([FromQuery] SupplierInput input)
{
return await _rep.AsQueryable().Select<SupplierOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<SupplierOutput>().ToListAsync();
}

View File

@ -98,7 +98,7 @@ public class SysUnitGroupService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<SysUnitGroupOutput>> List()
{
return await _rep.AsQueryable().Select<SysUnitGroupOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<SysUnitGroupOutput>().ToListAsync();
}

View File

@ -115,7 +115,7 @@ public class SysUnitService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<SysUnitOutput>> ListByGroupId(long unitGroupId)
{
return await _rep.AsQueryable().WhereIF(unitGroupId > 0, u => u.GroupUnitId == unitGroupId).Select<SysUnitOutput>().ToListAsync();
return await _rep.AsQueryable().WhereIF(unitGroupId > 0, u => u.GroupUnitId == unitGroupId).Where(a => !a.IsDelete).Select<SysUnitOutput>().ToListAsync();
}

View File

@ -100,7 +100,7 @@ public class UrlInfoService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<UrlInfoOutput>> List()
{
return await _rep.AsQueryable().Select<UrlInfoOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<UrlInfoOutput>().ToListAsync();
}

View File

@ -102,7 +102,7 @@ public class WarehouseService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<WarehouseOutput>> List()
{
return await _rep.AsQueryable().Select<WarehouseOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<WarehouseOutput>().ToListAsync();
}

View File

@ -111,7 +111,7 @@ public class WarehousingService : IDynamicApiController, ITransient
[ApiDescriptionSettings(Name = "List")]
public async Task<List<WarehousingOutput>> List()
{
return await _rep.AsQueryable().Select<WarehousingOutput>().ToListAsync();
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<WarehousingOutput>().ToListAsync();
}

View File

@ -0,0 +1,81 @@
// 大名科技(天津)有限公司版权所有 电话18020030720 QQ515096995
//
// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
using Admin.NET.Application.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.NET.Application.Utils;
internal class CodeHelper
{
// '序号',
//'随机数',
//'固定字符串',
//'随机字母数字',
//'随机大小写字母',
//'随机大写字母',
//'随机小写字母',
public static string GetCodeRandom(int codeLen)
{
var result = "";
var format = "";
var max = "";
for (int i = 0; i < codeLen; i++)
{
format += "0";
max += "9";
}
var random = new Random();
result = random.Next(Convert.ToInt32(max)).ToString(format);
return result;
}
public static string GetCodeLetterNum(int codeLen)
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < codeLen; i++)
{
stringBuilder.Append(chars[random.Next(chars.Length)]);
}
return stringBuilder.ToString();
}
public static string GetCodeLetter(int codeLen)
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < codeLen; i++)
{
stringBuilder.Append(chars[random.Next(chars.Length)]);
}
return stringBuilder.ToString();
}
public static string GetCodeUpLetter(int codeLen)
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < codeLen; i++)
{
stringBuilder.Append(chars[random.Next(chars.Length)]);
}
return stringBuilder.ToString();
}
public static string GetCodeDownLetter(int codeLen)
{
const string chars = "abcdefghijklmnopqrstuvwxyz";
Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < codeLen; i++)
{
stringBuilder.Append(chars[random.Next(chars.Length)]);
}
return stringBuilder.ToString();
}
}

View File

@ -219,7 +219,7 @@
@:import { SysPrint } from '/@@/api-services/models';
}
import printDialog from '/@@/views/system/print/component/hiprint/preview.vue'
import printDialog from '/@@/views/labelPrinting/print/component/hiprint/preview.vue'
import editDialog from '/@@/views/main/@(@Model.LowerClassName)/component/editDialog.vue'
import { page@(@Model.ClassName), delete@(@Model.ClassName) } from '/@@/api/main/@(@Model.LowerClassName)';
@foreach (var column in Model.QueryWhetherList){

View File

@ -22,6 +22,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Admin.NET.Plugin.GoView", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Admin.NET.Plugin.Elsa", "Plugins\Admin.NET.Plugin.Elsa\Admin.NET.Plugin.Elsa.csproj", "{48EFC3A6-BDC0-4D05-819A-B1FB927FA4C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{2C4A635E-5826-41FE-BFF9-5D1724594863}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -52,6 +54,10 @@ Global
{48EFC3A6-BDC0-4D05-819A-B1FB927FA4C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48EFC3A6-BDC0-4D05-819A-B1FB927FA4C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48EFC3A6-BDC0-4D05-819A-B1FB927FA4C8}.Release|Any CPU.Build.0 = Release|Any CPU
{2C4A635E-5826-41FE-BFF9-5D1724594863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2C4A635E-5826-41FE-BFF9-5D1724594863}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C4A635E-5826-41FE-BFF9-5D1724594863}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C4A635E-5826-41FE-BFF9-5D1724594863}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -0,0 +1,8 @@
// 大名科技(天津)有限公司版权所有 电话18020030720 QQ515096995
//
// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
Console.WriteLine(DateTime.Now.ToString("yyyyMMddhhmmss"));
Console.WriteLine("Hello, World!");
Console.ReadKey();

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

View File

@ -2,7 +2,7 @@
/* eslint-disable */
/**
*
* .NET (.NET6/Vue3)沿<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
* .NET (.NET6/Vue3)沿
*
* OpenAPI spec version: 1.0.0
*

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