修改授权方式为手机号码和验证码方式
测试出的问题修复
@@ -1,4 +1,6 @@
|
|||||||
namespace Ewide.Core
|
using System;
|
||||||
|
|
||||||
|
namespace Ewide.Core
|
||||||
{
|
{
|
||||||
public class ClaimConst
|
public class ClaimConst
|
||||||
{
|
{
|
||||||
@@ -21,6 +23,10 @@
|
|||||||
/// 是否超级管理
|
/// 是否超级管理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string CLAINM_SUPERADMIN = "SuperAdmin";
|
public const string CLAINM_SUPERADMIN = "SuperAdmin";
|
||||||
|
/// <summary>
|
||||||
|
/// 过期时间
|
||||||
|
/// </summary>
|
||||||
|
public const string ExpireTime = "";
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -489,6 +489,11 @@
|
|||||||
是否超级管理
|
是否超级管理
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:Ewide.Core.ClaimConst.ExpireTime">
|
||||||
|
<summary>
|
||||||
|
过期时间
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="F:Ewide.Core.CommonConst.DEFAULT_PASSWORD">
|
<member name="F:Ewide.Core.CommonConst.DEFAULT_PASSWORD">
|
||||||
<summary>
|
<summary>
|
||||||
默认密码
|
默认密码
|
||||||
|
|||||||
@@ -115,19 +115,19 @@ namespace Ewide.Core.Extension
|
|||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Task<PagedList<T>> ToPageData<T>(this IQueryable<T> source, PageInputBase input) where T : new()
|
public static async Task<PagedList<T>> ToPageData<T>(this IQueryable<T> source, PageInputBase input) where T : new()
|
||||||
{
|
{
|
||||||
return source.OrderBy(OrderBuilder<T>(input)).ToPagedListAsync(input.PageIndex, input.PageSize);
|
return await source.OrderBy(OrderBuilder<T>(input)).ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Task<PagedList<O>> ToPageData<T, O>(this IQueryable<T> source, PageInputBase input) where O : new()
|
public static async Task<PagedList<O>> ToPageData<T, O>(this IQueryable<T> source, PageInputBase input) where O : new()
|
||||||
{
|
{
|
||||||
return source.OrderBy(OrderBuilder<T>(input)).Select(u => u.Adapt<O>()).ToPagedListAsync(input.PageIndex, input.PageSize);
|
return await source.OrderBy(OrderBuilder<T>(input)).Select(u => u.Adapt<O>()).ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Task<PagedList<O>> ToPageData<T, O>(this IQueryable<T> source, PageInputBase input, TypeAdapterConfig config) where O : new()
|
public static async Task<PagedList<O>> ToPageData<T, O>(this IQueryable<T> source, PageInputBase input, TypeAdapterConfig config) where O : new()
|
||||||
{
|
{
|
||||||
return source.OrderBy(OrderBuilder<T>(input)).Select(u => u.Adapt<O>(config)).ToPagedListAsync(input.PageIndex, input.PageSize);
|
return await source.OrderBy(OrderBuilder<T>(input)).Select(u => u.Adapt<O>(config)).ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region DAPPER
|
#region DAPPER
|
||||||
@@ -212,7 +212,7 @@ namespace Ewide.Core.Extension
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string PageSqlBuilder(string sql , PageInputBase input)
|
private static string PageSqlBuilder(string sql, PageInputBase input)
|
||||||
{
|
{
|
||||||
var sqlStrList = new List<string>();
|
var sqlStrList = new List<string>();
|
||||||
var orderStr = OrderBuilder(input);
|
var orderStr = OrderBuilder(input);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ namespace Ewide.Core
|
|||||||
bool SuperAdmin { get; }
|
bool SuperAdmin { get; }
|
||||||
SysUser User { get; }
|
SysUser User { get; }
|
||||||
string UserId { get; }
|
string UserId { get; }
|
||||||
|
bool IsExpire { get; }
|
||||||
|
|
||||||
Task<SysUser> CheckUserAsync(string userId);
|
Task<SysUser> CheckUserAsync(string userId);
|
||||||
Task<SysUser> CheckUserAsync();
|
Task<SysUser> CheckUserAsync();
|
||||||
|
|||||||
@@ -51,7 +51,23 @@ namespace Ewide.Core
|
|||||||
{
|
{
|
||||||
get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.CLAINM_SUPERADMIN)?.Value == ((int)AdminType.SuperAdmin).ToString();
|
get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.CLAINM_SUPERADMIN)?.Value == ((int)AdminType.SuperAdmin).ToString();
|
||||||
}
|
}
|
||||||
|
public bool IsExpire
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var _extime = _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.ExpireTime)?.Value;
|
||||||
|
if (string.IsNullOrWhiteSpace(_extime))
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var extime = Convert.ToDateTime(_extime);
|
||||||
|
if (extime > DateTime.Now)
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public SysUser User
|
public SysUser User
|
||||||
{
|
{
|
||||||
get => _sysUserRep.Find(UserId);
|
get => _sysUserRep.Find(UserId);
|
||||||
@@ -220,9 +236,9 @@ namespace Ewide.Core
|
|||||||
.Select(u => u.SysOrgId).ToListAsync();
|
.Select(u => u.SysOrgId).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<string>> GetUserExtraAreaScopeList()
|
public async Task<List<string>> GetUserExtraAreaScopeList()
|
||||||
{
|
{
|
||||||
return GetUserExtraAreaScopeList(UserId);
|
return await GetUserExtraAreaScopeList(UserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<string>> GetUserExtraAreaScopeList(string userId)
|
public async Task<List<string>> GetUserExtraAreaScopeList(string userId)
|
||||||
@@ -230,14 +246,14 @@ namespace Ewide.Core
|
|||||||
return await _sysUserAreaRep.DetachedEntities.Where(u => u.SysUserId == userId).Select(u => u.AreaCode).ToListAsync();
|
return await _sysUserAreaRep.DetachedEntities.Where(u => u.SysUserId == userId).Select(u => u.AreaCode).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<string>> GetRoleExtraDataScopeList(string roleId)
|
public async Task<List<string>> GetRoleExtraDataScopeList(string roleId)
|
||||||
{
|
{
|
||||||
return _sysRoleDataRep.DetachedEntities.Where(u => u.SysRoleId == roleId).Select(u => u.SysOrgId).ToListAsync();
|
return await _sysRoleDataRep.DetachedEntities.Where(u => u.SysRoleId == roleId).Select(u => u.SysOrgId).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<string>> GetRoleExtraAreaScopeList(string roleId)
|
public async Task<List<string>> GetRoleExtraAreaScopeList(string roleId)
|
||||||
{
|
{
|
||||||
return _sysRoleAreaRep.DetachedEntities.Where(u => u.SysRoleId == roleId).Select(u => u.AreaCode).ToListAsync();
|
return await _sysRoleAreaRep.DetachedEntities.Where(u => u.SysRoleId == roleId).Select(u => u.AreaCode).ToListAsync();
|
||||||
}
|
}
|
||||||
public Task<List<string>> GetUserAllDataScopeList()
|
public Task<List<string>> GetUserAllDataScopeList()
|
||||||
{
|
{
|
||||||
@@ -361,15 +377,15 @@ namespace Ewide.Core
|
|||||||
var areaCode = await GetCachedAreaCode();
|
var areaCode = await GetCachedAreaCode();
|
||||||
if (roleDataTypeList.Any(r => r == (int)DataScopeType.ALL))
|
if (roleDataTypeList.Any(r => r == (int)DataScopeType.ALL))
|
||||||
{
|
{
|
||||||
return areaCode.Select(a => a.Code).ToList();
|
return areaCode.Select(a => a.Code).ToList();
|
||||||
}
|
}
|
||||||
if (roleDataTypeList.Any(r => new[] { DataScopeType.DEPT_WITH_CHILD, DataScopeType.AREA_WITH_CHILD }.Cast<int>().Contains(r)))
|
if (roleDataTypeList.Any(r => new[] { DataScopeType.DEPT_WITH_CHILD, DataScopeType.AREA_WITH_CHILD }.Cast<int>().Contains(r)))
|
||||||
{
|
{
|
||||||
return areaCode.Where(a => a.Code.StartsWith(orgAreaCode)).Select(a => a.Code).ToList();
|
return areaCode.Where(a => a.Code.StartsWith(orgAreaCode)).Select(a => a.Code).ToList();
|
||||||
}
|
}
|
||||||
if (roleDataTypeList.Any(r => new[] { DataScopeType.DEPT, DataScopeType.AREA }.Cast<int>().Contains(r)))
|
if (roleDataTypeList.Any(r => new[] { DataScopeType.DEPT, DataScopeType.AREA }.Cast<int>().Contains(r)))
|
||||||
{
|
{
|
||||||
return areaCode.Where(a => a.Code == orgAreaCode).Select(a => a.Code).ToList();
|
return areaCode.Where(a => a.Code == orgAreaCode).Select(a => a.Code).ToList();
|
||||||
}
|
}
|
||||||
return new List<string>();
|
return new List<string>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ namespace Ewide.Core.Service
|
|||||||
var user = await _sysUserRep.FirstOrDefaultAsync(u => (u.Account.Equals(input.Account) || u.Phone.Equals(input.Account) || u.Email.Equals(input.Account)) && u.Password.Equals(encryptPasswod));
|
var user = await _sysUserRep.FirstOrDefaultAsync(u => (u.Account.Equals(input.Account) || u.Phone.Equals(input.Account) || u.Email.Equals(input.Account)) && u.Password.Equals(encryptPasswod));
|
||||||
_ = user ?? throw Oops.Oh(ErrorCode.D1000);
|
_ = user ?? throw Oops.Oh(ErrorCode.D1000);
|
||||||
#endif
|
#endif
|
||||||
|
_ = user ?? throw Oops.Oh(ErrorCode.D1000);
|
||||||
// 验证账号是否被冻结
|
// 验证账号是否被冻结
|
||||||
if (user.Status == CommonStatus.DISABLE)
|
if (user.Status == CommonStatus.DISABLE)
|
||||||
throw Oops.Oh(ErrorCode.D1017);
|
throw Oops.Oh(ErrorCode.D1017);
|
||||||
@@ -176,6 +176,7 @@ namespace Ewide.Core.Service
|
|||||||
{ ClaimConst.CLAINM_ACCOUNT, user.Account },
|
{ ClaimConst.CLAINM_ACCOUNT, user.Account },
|
||||||
{ ClaimConst.CLAINM_NAME, user.Name },
|
{ ClaimConst.CLAINM_NAME, user.Name },
|
||||||
{ ClaimConst.CLAINM_SUPERADMIN, user.AdminType },
|
{ ClaimConst.CLAINM_SUPERADMIN, user.AdminType },
|
||||||
|
{ ClaimConst.ExpireTime,DateTime.Now.AddHours(2)},
|
||||||
});
|
});
|
||||||
|
|
||||||
// 设置Swagger自动登录
|
// 设置Swagger自动登录
|
||||||
|
|||||||
@@ -117,10 +117,10 @@ namespace Ewide.Core.Service
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="key"></param>
|
/// <param name="key"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<bool> DelAsync(string key)
|
public async Task<bool> DelAsync(string key)
|
||||||
{
|
{
|
||||||
_cache.DelAsync(key);
|
await _cache.DelAsync(key);
|
||||||
return Task.FromResult(true);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -128,10 +128,10 @@ namespace Ewide.Core.Service
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="key"></param>
|
/// <param name="key"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<bool> DelByPatternAsync(string key)
|
public async Task<bool> DelByPatternAsync(string key)
|
||||||
{
|
{
|
||||||
_cache.DelByPatternAsync(key);
|
await _cache.DelByPatternAsync(key);
|
||||||
return Task.FromResult(true);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ namespace Ewide.Core.Service
|
|||||||
codeGenConfig.EffectType = DataTypeToEff(codeGenConfig.NetType);
|
codeGenConfig.EffectType = DataTypeToEff(codeGenConfig.NetType);
|
||||||
codeGenConfig.QueryType = "=="; // QueryTypeEnum.eq.ToString();
|
codeGenConfig.QueryType = "=="; // QueryTypeEnum.eq.ToString();
|
||||||
|
|
||||||
codeGenConfig.InsertAsync();
|
codeGenConfig.Insert();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ namespace Ewide.Core.Service.CodeGen
|
|||||||
var menuType0 = new SysMenu
|
var menuType0 = new SysMenu
|
||||||
{
|
{
|
||||||
Pid = emptyGuid,
|
Pid = emptyGuid,
|
||||||
Pids = "["+ emptyGuid + "],",
|
Pids = "[" + emptyGuid + "],",
|
||||||
Name = busName + "管理",
|
Name = busName + "管理",
|
||||||
Code = "dilon_" + className.ToLower(),
|
Code = "dilon_" + className.ToLower(),
|
||||||
Type = 1,
|
Type = 1,
|
||||||
@@ -236,7 +236,7 @@ namespace Ewide.Core.Service.CodeGen
|
|||||||
var pid1 = _sysMenuRep.InsertNowAsync(menuType1).GetAwaiter().GetResult().Entity.Id;
|
var pid1 = _sysMenuRep.InsertNowAsync(menuType1).GetAwaiter().GetResult().Entity.Id;
|
||||||
|
|
||||||
// 按钮-page
|
// 按钮-page
|
||||||
var menuType2 = new SysMenu
|
var menuType2 = await new SysMenu
|
||||||
{
|
{
|
||||||
Pid = pid1,
|
Pid = pid1,
|
||||||
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
||||||
@@ -248,7 +248,7 @@ namespace Ewide.Core.Service.CodeGen
|
|||||||
}.InsertAsync();
|
}.InsertAsync();
|
||||||
|
|
||||||
// 按钮-detail
|
// 按钮-detail
|
||||||
var menuType2_1 = new SysMenu
|
var menuType2_1 = await new SysMenu
|
||||||
{
|
{
|
||||||
Pid = pid1,
|
Pid = pid1,
|
||||||
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
||||||
@@ -260,7 +260,7 @@ namespace Ewide.Core.Service.CodeGen
|
|||||||
}.InsertAsync();
|
}.InsertAsync();
|
||||||
|
|
||||||
// 按钮-add
|
// 按钮-add
|
||||||
var menuType2_2 = new SysMenu
|
var menuType2_2 = await new SysMenu
|
||||||
{
|
{
|
||||||
Pid = pid1,
|
Pid = pid1,
|
||||||
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
||||||
@@ -272,7 +272,7 @@ namespace Ewide.Core.Service.CodeGen
|
|||||||
}.InsertAsync();
|
}.InsertAsync();
|
||||||
|
|
||||||
// 按钮-delete
|
// 按钮-delete
|
||||||
var menuType2_3 = new SysMenu
|
var menuType2_3 = await new SysMenu
|
||||||
{
|
{
|
||||||
Pid = pid1,
|
Pid = pid1,
|
||||||
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
||||||
@@ -284,7 +284,7 @@ namespace Ewide.Core.Service.CodeGen
|
|||||||
}.InsertAsync();
|
}.InsertAsync();
|
||||||
|
|
||||||
// 按钮-edit
|
// 按钮-edit
|
||||||
var menuType2_4 = new SysMenu
|
var menuType2_4 = await new SysMenu
|
||||||
{
|
{
|
||||||
Pid = pid1,
|
Pid = pid1,
|
||||||
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
Pids = "[0],[" + pid0 + "],[" + pid1 + "],",
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
"logout",
|
"logout",
|
||||||
"sysDictType:dropDown",
|
"sysDictType:dropDown",
|
||||||
"sysDictType:dropDowns",
|
"sysDictType:dropDowns",
|
||||||
"sysFileInfo:upload",
|
//"sysFileInfo:upload",
|
||||||
"sysFileInfo:download",
|
"sysFileInfo:download",
|
||||||
"sysFileInfo:detail",
|
"sysFileInfo:detail",
|
||||||
"sysFileInfo:preview",
|
"sysFileInfo:preview",
|
||||||
@@ -112,7 +112,11 @@
|
|||||||
"sysNotice:detail",
|
"sysNotice:detail",
|
||||||
"houseLog:list",
|
"houseLog:list",
|
||||||
"houseLog:listByInfoId",
|
"houseLog:listByInfoId",
|
||||||
"houseLog:listByTaskId"
|
"houseLog:listByTaskId",
|
||||||
|
"gb:yjb:api:outsidewall:Communitys",
|
||||||
|
"gb:yjb:api:outsidewall:sysFileInfo:upload",
|
||||||
|
"gb:yjb:api:outsidewall:VerifyIsLogin",
|
||||||
|
"gb:yjb:api:outsidewall:submit"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -88,8 +88,9 @@ namespace Ewide.EntityFramework.Core
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (dbContext == null) return;
|
||||||
// 获取所有更改,删除,新增的实体,但排除审计实体(避免死循环)
|
// 获取所有更改,删除,新增的实体,但排除审计实体(避免死循环)
|
||||||
var entities = dbContext.ChangeTracker.Entries()
|
var entities = dbContext?.ChangeTracker?.Entries()?
|
||||||
.Where(u => u.Entity.GetType() != typeof(SysLogAudit) && u.Entity.GetType() != typeof(SysLogOp) && u.Entity.GetType() != typeof(SysLogVis) &&
|
.Where(u => u.Entity.GetType() != typeof(SysLogAudit) && u.Entity.GetType() != typeof(SysLogOp) && u.Entity.GetType() != typeof(SysLogVis) &&
|
||||||
(u.State == EntityState.Modified || u.State == EntityState.Deleted || u.State == EntityState.Added))
|
(u.State == EntityState.Modified || u.State == EntityState.Deleted || u.State == EntityState.Added))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ namespace Ewide.Web.Core
|
|||||||
{
|
{
|
||||||
// 管理员跳过判断
|
// 管理员跳过判断
|
||||||
var userManager = App.GetService<IUserManager>();
|
var userManager = App.GetService<IUserManager>();
|
||||||
|
if (userManager.IsExpire) return false;
|
||||||
if (userManager.SuperAdmin) return true;
|
if (userManager.SuperAdmin) return true;
|
||||||
|
|
||||||
// 路由名称
|
// 路由名称
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1011 B |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 831 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 820 B |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 375 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 831 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 820 B |
|
Before Width: | Height: | Size: 831 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 375 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 417 B |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 831 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 119 KiB |
@@ -21,7 +21,7 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="提交码:" prop="name">
|
<el-form-item label="手机号码:" prop="name">
|
||||||
<el-input v-model="form.submitCode" style="width:300px"></el-input>
|
<el-input v-model="form.submitCode" style="width:300px"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template slot-scope="props">
|
<template slot-scope="props">
|
||||||
<el-form label-position="left" class="demo-table-expand" :model="props.row" style="width: 90%;margin:0 auto;">
|
<el-form label-position="left" class="demo-table-expand" :model="props.row" style="width: 90%;margin:0 auto;">
|
||||||
<el-form-item label="提交码:">
|
<el-form-item label="手机号码:">
|
||||||
<span style="font-weight:bold;">{{ props.row.submitCode }}</span>
|
<span style="font-weight:bold;">{{ props.row.submitCode }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="社区/小区名称:">
|
<el-form-item label="社区/小区名称:">
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="提交码" width="120"><template slot-scope="props">{{ props.row.submitCode}}</template></el-table-column>
|
<el-table-column label="手机号码" width="120"><template slot-scope="props">{{ props.row.submitCode}}</template></el-table-column>
|
||||||
<el-table-column label="社区/小区名称" width="200"><template slot-scope="props">{{ props.row.communityName}}</template></el-table-column>
|
<el-table-column label="社区/小区名称" width="200"><template slot-scope="props">{{ props.row.communityName}}</template></el-table-column>
|
||||||
<el-table-column label="提交日期" width="120"><template slot-scope="props">{{ dateFormat("mm-dd", props.row.createtime )}}</template></el-table-column>
|
<el-table-column label="提交日期" width="120"><template slot-scope="props">{{ dateFormat("mm-dd", props.row.createtime )}}</template></el-table-column>
|
||||||
<el-table-column label="幢名称"><template slot-scope="props">{{ props.row.buildingName}}</template></el-table-column>
|
<el-table-column label="幢名称"><template slot-scope="props">{{ props.row.buildingName}}</template></el-table-column>
|
||||||
@@ -160,7 +160,6 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handlePreview(src, srcs) {
|
handlePreview(src, srcs) {
|
||||||
debugger
|
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
console.log(src);
|
console.log(src);
|
||||||
this.dialogImageUrl = src.preview;
|
this.dialogImageUrl = src.preview;
|
||||||
@@ -197,7 +196,7 @@
|
|||||||
axios({
|
axios({
|
||||||
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: '/gb/yjb/api/outsidewall/querybuilding',
|
url: `/gb/yjb/api/outsidewall/querybuilding`,
|
||||||
data: { wallId: row.id },
|
data: { wallId: row.id },
|
||||||
responseType: "json",
|
responseType: "json",
|
||||||
headers: {
|
headers: {
|
||||||
@@ -236,7 +235,7 @@
|
|||||||
axios({
|
axios({
|
||||||
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: '/gb/yjb/api/outsidewall/Communitys?searchkey=' + queryString,
|
url: `/gb/yjb/api/outsidewall/Communitys?access_token=${window.sessionStorage.getItem('__TOKEN')}&searchkey=` + queryString,
|
||||||
responseType: "json",
|
responseType: "json",
|
||||||
}).then(async response => {
|
}).then(async response => {
|
||||||
_this.communitys = response.data.data
|
_this.communitys = response.data.data
|
||||||
|
|||||||
@@ -18,6 +18,26 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
|
<el-dialog v-model="pageData.dialogLoginVisible" title="请先登录" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" append-to-body width="60%">
|
||||||
|
<el-form :model="pageData.loginForm" ref="loginFormRef" label-position="top">
|
||||||
|
<el-form-item label="手机号码" label-width="80px" prop="phone" :rules="[{ required: true, trigger: 'blur', min: 11, max: 11, message: '请输入正确的手机号码' }]">
|
||||||
|
<el-input v-model="pageData.loginForm.phone" autocomplete="off" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="验证码" label-width="80px">
|
||||||
|
<el-input type="text" maxlength="4" placeholder="验证码" v-model="pageData.loginForm.code">
|
||||||
|
<template slot="append" #append>
|
||||||
|
<el-button :disabled="pageData.loginForm.disabled" @click="(v,v2)=>funHandles.getCode(v,pageData,loginFormRef)">{{ pageData.loginForm.valiBtn }}</el-button>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<!--<el-button @click="dialogFormVisible = false">Cancel</el-button>-->
|
||||||
|
<el-button type="primary" @click="(v,v2)=>funHandles.verifyKey(pageData,loginFormRef)">登录</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
<h3 style="text-align:center;">宁波既有建筑外墙脱落问卷调查</h3>
|
<h3 style="text-align:center;">宁波既有建筑外墙脱落问卷调查</h3>
|
||||||
<el-form ref="formRef" :model="pageData.form" label-position="left" require-asterisk-position="right" label-width="160px" style="margin-top:15px;">
|
<el-form ref="formRef" :model="pageData.form" label-position="left" require-asterisk-position="right" label-width="160px" style="margin-top:15px;">
|
||||||
<el-form-item label="1.社区/小区名:" prop="communityId" :rules="[{ required: true, trigger: 'blur', message: '请选择社区/小区' }]">
|
<el-form-item label="1.社区/小区名:" prop="communityId" :rules="[{ required: true, trigger: 'blur', message: '请选择社区/小区' }]">
|
||||||
@@ -43,7 +63,7 @@
|
|||||||
</el-form-item>*@-->
|
</el-form-item>*@-->
|
||||||
<el-form-item label="3.外墙结构:" prop="outsidewallstructurefiles">
|
<el-form-item label="3.外墙结构:" prop="outsidewallstructurefiles">
|
||||||
<el-upload class="upload-demo" drag multiple
|
<el-upload class="upload-demo" drag multiple
|
||||||
action="/gb/yjb/api/outsidewall/sysFileInfo/upload"
|
:action="pageData.uploadaction"
|
||||||
auto-upload
|
auto-upload
|
||||||
list-type="picture-card"
|
list-type="picture-card"
|
||||||
v-model:file-list="pageData.fileList"
|
v-model:file-list="pageData.fileList"
|
||||||
@@ -141,11 +161,11 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="8.7 问题照片:">
|
<el-form-item label="8.7 问题照片:">
|
||||||
<el-upload class="upload-demo" drag multiple
|
<el-upload class="upload-demo" drag multiple
|
||||||
action="/gb/yjb/api/outsidewall/sysFileInfo/upload"
|
:action="pageData.uploadaction"
|
||||||
auto-upload
|
auto-upload
|
||||||
list-type="picture-card"
|
list-type="picture-card"
|
||||||
v-model:file-list="pageData.childFileList1"
|
v-model:file-list="buildingItem.childFileList1"
|
||||||
:on-preview="(file)=>funHandles.filePreview(file,pageData.childFileList1)"
|
:on-preview="(file)=>funHandles.filePreview(file,buildingItem.childFileList1)"
|
||||||
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
||||||
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'东')"
|
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'东')"
|
||||||
style="width:100%">
|
style="width:100%">
|
||||||
@@ -155,11 +175,11 @@
|
|||||||
</el-upload>
|
</el-upload>
|
||||||
|
|
||||||
<el-upload class="upload-demo" drag multiple
|
<el-upload class="upload-demo" drag multiple
|
||||||
action="/gb/yjb/api/outsidewall/sysFileInfo/upload"
|
:action="pageData.uploadaction"
|
||||||
auto-upload
|
auto-upload
|
||||||
list-type="picture-card"
|
list-type="picture-card"
|
||||||
v-model:file-list="pageData.childFileList2"
|
v-model:file-list="buildingItem.childFileList2"
|
||||||
:on-preview="(file)=> funHandles.filePreview(file,pageData.childFileList2)"
|
:on-preview="(file)=> funHandles.filePreview(file,buildingItem.childFileList2)"
|
||||||
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
||||||
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'西')"
|
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'西')"
|
||||||
style="width:100%">
|
style="width:100%">
|
||||||
@@ -168,11 +188,11 @@
|
|||||||
<div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
|
<div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<el-upload class="upload-demo" drag multiple
|
<el-upload class="upload-demo" drag multiple
|
||||||
action="/gb/yjb/api/outsidewall/sysFileInfo/upload"
|
:action="pageData.uploadaction"
|
||||||
auto-upload
|
auto-upload
|
||||||
list-type="picture-card"
|
list-type="picture-card"
|
||||||
v-model:file-list="pageData.childFileList3"
|
v-model:file-list="buildingItem.childFileList3"
|
||||||
:on-preview="(file)=> funHandles.filePreview(file,pageData.childFileList3)"
|
:on-preview="(file)=> funHandles.filePreview(file,buildingItem.childFileList3)"
|
||||||
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
||||||
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'南')"
|
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'南')"
|
||||||
style="width:100%">
|
style="width:100%">
|
||||||
@@ -181,11 +201,11 @@
|
|||||||
<div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
|
<div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<el-upload class="upload-demo" drag multiple
|
<el-upload class="upload-demo" drag multiple
|
||||||
action="/gb/yjb/api/outsidewall/sysFileInfo/upload"
|
:action="pageData.uploadaction"
|
||||||
auto-upload
|
auto-upload
|
||||||
list-type="picture-card"
|
list-type="picture-card"
|
||||||
v-model:file-list="pageData.childFileList4"
|
v-model:file-list="buildingItem.childFileList4"
|
||||||
:on-preview="(file)=>funHandles.filePreview(file,pageData.childFileList4)"
|
:on-preview="(file)=>funHandles.filePreview(file,buildingItem.childFileList4)"
|
||||||
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
:on-remove="(file, fileList)=>funHandles.fileChildRemove(file, fileList,buildingItem)"
|
||||||
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'北')"
|
:on-success="(response, file, fileList)=>funHandles.fileChildChange(response, file, fileList, buildingItem,'北')"
|
||||||
style="width:100%">
|
style="width:100%">
|
||||||
@@ -244,12 +264,17 @@
|
|||||||
<el-button type="primary" @click.prevent="funHandles.onSubmit(formRef,childFormRef,pageData)"> 提 交 </el-button>
|
<el-button type="primary" @click.prevent="funHandles.onSubmit(formRef,childFormRef,pageData)"> 提 交 </el-button>
|
||||||
<!--<el-button @click.prevent="showinfo()">我的报名</el-button>-->
|
<!--<el-button @click.prevent="showinfo()">我的报名</el-button>-->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-image-viewer v-if="pageData.dialogImageUrl"
|
<el-image-viewer v-if="pageData.dialogImageUrl"
|
||||||
:zIndex="8000"
|
:zIndex="8000"
|
||||||
@close="() => { pageData.dialogImageUrl='' }"
|
@close="() => { pageData.dialogImageUrl='' }"
|
||||||
:url-list="pageData.dialogImageUrls"
|
:url-list="pageData.dialogImageUrls"
|
||||||
:initial-index="XEUtils.indexOf(pageData.dialogImageUrls, pageData.dialogImageUrl)"></el-image-viewer>
|
:initial-index="XEUtils.indexOf(pageData.dialogImageUrls, pageData.dialogImageUrl)"></el-image-viewer>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
@@ -260,14 +285,27 @@
|
|||||||
setup() {
|
setup() {
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const childFormRef = ref();
|
const childFormRef = ref();
|
||||||
|
const loginFormRef = ref();
|
||||||
|
|
||||||
const pageData = ref({
|
const pageData = ref({
|
||||||
form: {},
|
form: {},
|
||||||
|
loginForm: {
|
||||||
|
valiBtn: '获取验证码',
|
||||||
|
disabled: false
|
||||||
|
},
|
||||||
//communitys: [],
|
//communitys: [],
|
||||||
//buildings: [],
|
//buildings: [],
|
||||||
//buildingItemId: ''
|
//buildingItemId: '',
|
||||||
|
dialogLoginVisible: false,
|
||||||
|
uploadaction: "/gb/yjb/api/outsidewall/sysFileInfo/upload"
|
||||||
});
|
});
|
||||||
|
const checkPhone = (rule, value, callback) => {
|
||||||
|
const regMobile = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/;
|
||||||
|
if (regMobile.test(value)) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
callback(new Error("请输入正确的手机号码"))
|
||||||
|
};
|
||||||
const rulesCheckData = {
|
const rulesCheckData = {
|
||||||
checkPhone: (rule, value, callback) => {
|
checkPhone: (rule, value, callback) => {
|
||||||
const regMobile = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/;
|
const regMobile = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/;
|
||||||
@@ -305,42 +343,104 @@
|
|||||||
const staticData = { wallproblems: ['漏水', '开裂', '脱落', '空鼓', '其他问题'] };
|
const staticData = { wallproblems: ['漏水', '开裂', '脱落', '空鼓', '其他问题'] };
|
||||||
const funHandles = {
|
const funHandles = {
|
||||||
init: async (data) => {
|
init: async (data) => {
|
||||||
do {
|
try {
|
||||||
data.key = await funHandles.verifyKey();
|
const response = await axios({
|
||||||
} while (!data.key);
|
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
||||||
|
method: 'get',
|
||||||
|
url: `/gb/yjb/api/outsidewall/VerifyIsLogin?access_token=${window.sessionStorage.getItem('__VerifyLogin')}`,
|
||||||
|
responseType: "json",
|
||||||
|
});
|
||||||
|
window.loadingInstance?.close();
|
||||||
|
if (response.data.data != true) {
|
||||||
|
//if (!window.sessionStorage.getItem('__VerifyLogin'))
|
||||||
|
data.dialogLoginVisible = true
|
||||||
|
} else {
|
||||||
|
data.uploadaction = `/gb/yjb/api/outsidewall/sysFileInfo/upload?access_token=${window.sessionStorage.getItem('__VerifyLogin')}`
|
||||||
|
}
|
||||||
|
//do {
|
||||||
|
// data.key = await funHandles.verifyKey(data);
|
||||||
|
//} while (data.key == false);
|
||||||
|
|
||||||
await funHandles.getCommunitys("", data);
|
//await funHandles.getCommunitys("", data);
|
||||||
|
} catch (error) {
|
||||||
|
window.loadingInstance?.close();
|
||||||
|
console.log(error)
|
||||||
|
//await ElMessageBox.alert(error.message, '异常', { type: 'error' });
|
||||||
|
//window.location.reload();//刷新当前页面
|
||||||
|
data.dialogLoginVisible = true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
verifyKey: async () => {
|
getCode(v, pageData, loginFormRef) {
|
||||||
const key = await ElMessageBox.prompt('请输入授权码', {
|
loginFormRef.validate(async (valid) => {
|
||||||
title: '授权',
|
if (valid) {
|
||||||
inputPlaceholder: '授权码',
|
console.log('已通过')
|
||||||
draggable: true,
|
console.log(pageData.loginForm.phone)
|
||||||
showClose: false,
|
axios({
|
||||||
showCancelButton: false,
|
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
||||||
closeOnClickModal: false,
|
method: 'post',
|
||||||
closeOnPressEscape: false,
|
url: '/gb/yjb/api/ningbozhichun/sendcode',
|
||||||
inputErrorMessage: '请输入授权码',
|
data: pageData.loginForm,
|
||||||
})
|
responseType: "json",
|
||||||
|
}).then(async response => {
|
||||||
|
if (response.data.data != true) {
|
||||||
|
await ElMessageBox.alert("发送失败:" + response.data.message, '错误', { type: 'error' });
|
||||||
|
} else {
|
||||||
|
funHandles.tackBtn(pageData); //验证码倒数60秒
|
||||||
|
}
|
||||||
|
//_this.loading = false;
|
||||||
|
}).catch(async error => {
|
||||||
|
console.log(error)
|
||||||
|
await ElMessageBox.alert(error.message, '错误', { type: 'error' });
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.log('未通过')
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
tackBtn(pageData) { //验证码倒数60秒
|
||||||
|
let time = 60;
|
||||||
|
let timer = setInterval(() => {
|
||||||
|
if (time == 0) {
|
||||||
|
clearInterval(timer);
|
||||||
|
pageData.loginForm.valiBtn = '获取验证码';
|
||||||
|
pageData.loginForm.disabled = false;
|
||||||
|
} else {
|
||||||
|
pageData.loginForm.disabled = true;
|
||||||
|
pageData.loginForm.valiBtn = time + '秒后重试';
|
||||||
|
time--;
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
},
|
||||||
|
verifyKey: async (pageData) => {
|
||||||
|
if (pageData.loginForm?.phone?.length != 11 || pageData.loginForm?.code?.length != 4) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
window.loadingInstance = ElLoading.service({ lock: true, text: '处理中' });
|
window.loadingInstance = ElLoading.service({ lock: true, text: '处理中' });
|
||||||
const response = await axios({
|
const response = await axios({
|
||||||
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: `/gb/yjb/api/outsidewall/VerifyKey?key=${key?.value ?? ''}`,
|
url: `/gb/yjb/api/outsidewall/VerifyLogin`,
|
||||||
|
data: pageData.loginForm,
|
||||||
responseType: "json",
|
responseType: "json",
|
||||||
});
|
});
|
||||||
window.loadingInstance?.close();
|
window.loadingInstance?.close();
|
||||||
if (response.data.data)
|
if (response.data.data.passed == true) {
|
||||||
return key?.value;
|
window.sessionStorage.setItem('__VerifyLogin', response.data.data.token);
|
||||||
|
await funHandles.getCommunitys("", pageData);
|
||||||
|
pageData.dialogLoginVisible = false
|
||||||
|
pageData.uploadaction = `/gb/yjb/api/outsidewall/sysFileInfo/upload?access_token=${window.sessionStorage.getItem('__VerifyLogin')}`
|
||||||
|
//return response.data.data;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
await ElMessageBox.alert("授权码错误,授权失败", '授权', { type: 'error' });
|
await ElMessageBox.alert("验证码错误或已失效,登录失败", '登录', { type: 'error' });
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
window.loadingInstance?.close();
|
window.loadingInstance?.close();
|
||||||
console.log(error)
|
console.log(error)
|
||||||
await ElMessageBox.alert(error.message, '异常', { type: 'error' });
|
await ElMessageBox.alert(error.message, '异常', { type: 'error' });
|
||||||
window.location.reload();//刷新当前页面
|
//window.location.reload();//刷新当前页面
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getCommunitys: async (queryString, data) => {
|
getCommunitys: async (queryString, data) => {
|
||||||
@@ -352,7 +452,7 @@
|
|||||||
const response = await axios({
|
const response = await axios({
|
||||||
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: `/gb/yjb/api/outsidewall/Communitys?searchkey=${queryString ?? ''}`,
|
url: `/gb/yjb/api/outsidewall/Communitys?access_token=${window.sessionStorage.getItem('__VerifyLogin')}&searchkey=${queryString ?? ''}`,
|
||||||
responseType: "json",
|
responseType: "json",
|
||||||
});
|
});
|
||||||
window.loadingInstance?.close();
|
window.loadingInstance?.close();
|
||||||
@@ -361,7 +461,10 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
window.loadingInstance?.close();
|
window.loadingInstance?.close();
|
||||||
console.log(error)
|
console.log(error)
|
||||||
ElMessageBox.alert(error.message, '异常', { type: 'error' });
|
if (error.response.status == 401)
|
||||||
|
ElMessageBox.alert("请先登录", '异常', { type: 'error' });
|
||||||
|
else
|
||||||
|
ElMessageBox.alert(error.message, '异常', { type: 'error' });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onChangeSelectCommunity: async (v, data) => {
|
onChangeSelectCommunity: async (v, data) => {
|
||||||
@@ -446,7 +549,7 @@
|
|||||||
if (data?.form?.isExistProblem == '0') { isAllChildValid = true; }
|
if (data?.form?.isExistProblem == '0') { isAllChildValid = true; }
|
||||||
else {
|
else {
|
||||||
//验证
|
//验证
|
||||||
var waitValid = data.form?.buildingsForm
|
var waitValid = data.form?.buildingsForm?.filter(a => a.building.curwallproblems.length > 0)
|
||||||
if (waitValid?.length > 0) {
|
if (waitValid?.length > 0) {
|
||||||
for (let ii = 0; ii < waitValid.length; ii++) {
|
for (let ii = 0; ii < waitValid.length; ii++) {
|
||||||
let _fe = waitValid[ii]?.formEl;
|
let _fe = waitValid[ii]?.formEl;
|
||||||
@@ -578,13 +681,13 @@
|
|||||||
debugger
|
debugger
|
||||||
window.loadingInstance = ElLoading.service({ lock: true, text: '提交中...请稍候' });
|
window.loadingInstance = ElLoading.service({ lock: true, text: '提交中...请稍候' });
|
||||||
try {
|
try {
|
||||||
data.form.buildings = data.form.buildings.filter(a => a.curwallproblems?.length > 0)
|
data.form.buildings = data.form.buildings?.filter(a => a.curwallproblems?.length > 0)
|
||||||
const response = await axios({
|
const response = await axios({
|
||||||
headers: { 'Content-Type': 'multipart/form-data' },
|
headers: { 'Content-Type': 'multipart/form-data' },
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: `/gb/yjb/api/outsidewall/submit?key=${data.key ?? ''}`,
|
url: `/gb/yjb/api/outsidewall/submit?access_token=${window.sessionStorage.getItem('__VerifyLogin')}`,
|
||||||
data: data.form,
|
data: data.form,
|
||||||
responseType: "json",
|
responseType: "json"
|
||||||
});
|
});
|
||||||
window.loadingInstance?.close();
|
window.loadingInstance?.close();
|
||||||
|
|
||||||
@@ -691,7 +794,9 @@
|
|||||||
XEUtils,
|
XEUtils,
|
||||||
formRef,
|
formRef,
|
||||||
childFormRef,
|
childFormRef,
|
||||||
|
loginFormRef,
|
||||||
rulesCheckData,
|
rulesCheckData,
|
||||||
|
checkPhone,
|
||||||
pageData,
|
pageData,
|
||||||
staticData,
|
staticData,
|
||||||
funHandles
|
funHandles
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="提交码:" prop="name">
|
<el-form-item label="手机号码:" prop="name">
|
||||||
<el-input v-model="form.submitCode" style="width:300px"></el-input>
|
<el-input v-model="form.submitCode" style="width:300px"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="提交码">
|
<el-table-column label="手机号码">
|
||||||
<template slot-scope="props">
|
<template slot-scope="props">
|
||||||
{{ props.row.submitCode}}
|
{{ props.row.submitCode}}
|
||||||
</template>
|
</template>
|
||||||
@@ -259,12 +259,10 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
lookphoto(outside_wall_photos) {
|
lookphoto(outside_wall_photos) {
|
||||||
debugger;
|
|
||||||
this.outside_wall_photos = outside_wall_photos
|
this.outside_wall_photos = outside_wall_photos
|
||||||
this.dialogTableVisible = true
|
this.dialogTableVisible = true
|
||||||
},
|
},
|
||||||
handlePreview(src, srcs) {
|
handlePreview(src, srcs) {
|
||||||
debugger
|
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
console.log(src);
|
console.log(src);
|
||||||
this.dialogImageUrl = src.preview;
|
this.dialogImageUrl = src.preview;
|
||||||
@@ -340,7 +338,7 @@
|
|||||||
axios({
|
axios({
|
||||||
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: '/gb/yjb/api/outsidewall/Communitys?searchkey=' + queryString,
|
url: `/gb/yjb/api/outsidewall/Communitys?access_token=${window.sessionStorage.getItem('__TOKEN')}&searchkey=` + queryString,
|
||||||
responseType: "json",
|
responseType: "json",
|
||||||
}).then(async response => {
|
}).then(async response => {
|
||||||
_this.communitys = response.data.data
|
_this.communitys = response.data.data
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ namespace Vote.Services.ApiController
|
|||||||
{
|
{
|
||||||
code = code.ToString(),
|
code = code.ToString(),
|
||||||
CreatedTime = DateTime.Now,
|
CreatedTime = DateTime.Now,
|
||||||
expire_time = DateTime.Now.AddMinutes(10),
|
expire_time = DateTime.Now.AddMinutes(1),
|
||||||
IsDeleted = false,
|
IsDeleted = false,
|
||||||
phone = args.phone
|
phone = args.phone
|
||||||
}.InsertOrUpdate();
|
}.InsertOrUpdate();
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
using Ewide.Core;
|
using Ewide.Core;
|
||||||
|
using Ewide.Core.Service;
|
||||||
using Furion;
|
using Furion;
|
||||||
using Furion.DatabaseAccessor;
|
using Furion.DatabaseAccessor;
|
||||||
using Furion.DatabaseAccessor.Extensions;
|
using Furion.DatabaseAccessor.Extensions;
|
||||||
|
using Furion.DataEncryption;
|
||||||
using Furion.DataEncryption.Extensions;
|
using Furion.DataEncryption.Extensions;
|
||||||
using Furion.DynamicApiController;
|
using Furion.DynamicApiController;
|
||||||
using Furion.FriendlyException;
|
using Furion.FriendlyException;
|
||||||
@@ -9,9 +11,11 @@ using Furion.RemoteRequest.Extensions;
|
|||||||
using Mapster;
|
using Mapster;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
using Minio;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@@ -39,6 +43,9 @@ namespace Vote.Services.ApiController
|
|||||||
private readonly SqlSugarRepository<SysFile> rep_SysFile;
|
private readonly SqlSugarRepository<SysFile> rep_SysFile;
|
||||||
private readonly IMemoryCache _memoryCache;
|
private readonly IMemoryCache _memoryCache;
|
||||||
readonly IOptions<UploadFileOptions> _options;
|
readonly IOptions<UploadFileOptions> _options;
|
||||||
|
private readonly SqlSugarRepository<Entities.nbzc_sms_code> repSmsCode;
|
||||||
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||||
|
private readonly IUserManager _userManager; // 用户管理
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -47,7 +54,7 @@ namespace Vote.Services.ApiController
|
|||||||
/// <param name="_repoutside_wall_building_photo"></param>
|
/// <param name="_repoutside_wall_building_photo"></param>
|
||||||
/// <param name="_repoutside_wall_photo"></param>
|
/// <param name="_repoutside_wall_photo"></param>
|
||||||
/// <param name="memoryCache"></param>
|
/// <param name="memoryCache"></param>
|
||||||
public OutsideWallService(SqlSugarRepository<Entities.Experts> repoutsideExperts, SqlSugarRepository<Entities.outside_wall> _repoutside_wall, SqlSugarRepository<Entities.outside_wall_building> _repoutside_wall_building, SqlSugarRepository<Entities.outside_wall_building_photo> _repoutside_wall_building_photo, SqlSugarRepository<Entities.outside_wall_photo> _repoutside_wall_photo, IMemoryCache memoryCache, SqlSugarRepository<SysFile> _rep_SysFile, IOptions<UploadFileOptions> options)
|
public OutsideWallService(SqlSugarRepository<Entities.Experts> repoutsideExperts, SqlSugarRepository<Entities.outside_wall> _repoutside_wall, SqlSugarRepository<Entities.outside_wall_building> _repoutside_wall_building, SqlSugarRepository<Entities.outside_wall_building_photo> _repoutside_wall_building_photo, SqlSugarRepository<Entities.outside_wall_photo> _repoutside_wall_photo, IMemoryCache memoryCache, SqlSugarRepository<SysFile> _rep_SysFile, IOptions<UploadFileOptions> options, SqlSugarRepository<Entities.nbzc_sms_code> _repSmsCode, IHttpContextAccessor httpContextAccessor, IUserManager userManager)
|
||||||
{
|
{
|
||||||
_repoutsideExperts = repoutsideExperts;
|
_repoutsideExperts = repoutsideExperts;
|
||||||
repoutside_wall = _repoutside_wall;
|
repoutside_wall = _repoutside_wall;
|
||||||
@@ -57,6 +64,9 @@ namespace Vote.Services.ApiController
|
|||||||
_memoryCache = memoryCache;
|
_memoryCache = memoryCache;
|
||||||
_options = options;
|
_options = options;
|
||||||
rep_SysFile = _rep_SysFile;
|
rep_SysFile = _rep_SysFile;
|
||||||
|
this.repSmsCode = _repSmsCode;
|
||||||
|
_httpContextAccessor = httpContextAccessor;
|
||||||
|
_userManager = userManager;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 导出Excel
|
/// 导出Excel
|
||||||
@@ -206,7 +216,7 @@ namespace Vote.Services.ApiController
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="file"></param>
|
/// <param name="file"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[AllowAnonymous]
|
//[AllowAnonymous]
|
||||||
[HttpPost("sysFileInfo/upload")]
|
[HttpPost("sysFileInfo/upload")]
|
||||||
public async Task<string> UploadFileDefault(IFormFile file)
|
public async Task<string> UploadFileDefault(IFormFile file)
|
||||||
{
|
{
|
||||||
@@ -316,6 +326,60 @@ namespace Vote.Services.ApiController
|
|||||||
|
|
||||||
|
|
||||||
#region 调查页
|
#region 调查页
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 授权验证
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("VerifyIsLogin")]
|
||||||
|
public async Task<bool> VerifyIsLogin()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 授权验证
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("VerifyLogin")]
|
||||||
|
[AllowAnonymous]
|
||||||
|
public async Task<dynamic> VerifyLogin(VerifyLoginInput args)
|
||||||
|
{
|
||||||
|
_ = args == null ? throw Oops.Oh("参数异常") : 1;
|
||||||
|
var passed = false;
|
||||||
|
var entity = await repSmsCode.AsQueryable().Where(p => p.phone == args.phone && !p.IsDeleted && p.code.Trim() == args.code.Trim() && p.expire_time > DateTime.Now).FirstAsync();
|
||||||
|
if (entity != null)
|
||||||
|
{
|
||||||
|
passed = true;
|
||||||
|
entity.IsDeleted = true;
|
||||||
|
await repSmsCode.UpdateAsync(entity);
|
||||||
|
var token = await HandlerLoginAsync(args);
|
||||||
|
return new { passed, token };
|
||||||
|
}
|
||||||
|
return new { passed, token = "" };
|
||||||
|
}
|
||||||
|
private async Task<string> HandlerLoginAsync(VerifyLoginInput args)
|
||||||
|
{
|
||||||
|
// 生成Token令牌
|
||||||
|
//var accessToken = await _jwtBearerManager.CreateTokenAdmin(user);
|
||||||
|
var accessToken = JWTEncryption.Encrypt(new Dictionary<string, object>
|
||||||
|
{
|
||||||
|
{ ClaimConst.CLAINM_USERID, args.phone },
|
||||||
|
{ ClaimConst.CLAINM_ACCOUNT, args.phone},
|
||||||
|
{ ClaimConst.CLAINM_NAME, args.phone},
|
||||||
|
{ ClaimConst.ExpireTime,DateTime.Now.AddMinutes(60)},
|
||||||
|
});
|
||||||
|
|
||||||
|
// 设置Swagger自动登录
|
||||||
|
_httpContextAccessor.HttpContext.SigninToSwagger(accessToken);
|
||||||
|
|
||||||
|
// 生成刷新Token令牌
|
||||||
|
var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken, 30);
|
||||||
|
|
||||||
|
// 设置刷新Token令牌
|
||||||
|
_httpContextAccessor.HttpContext.Response.Headers["x-access-token"] = refreshToken;
|
||||||
|
|
||||||
|
return accessToken;
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 授权验证
|
/// 授权验证
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -331,7 +395,7 @@ namespace Vote.Services.ApiController
|
|||||||
/// 获取三居系统中的社区
|
/// 获取三居系统中的社区
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[AllowAnonymous]
|
//[AllowAnonymous]
|
||||||
[HttpGet("communitys")]
|
[HttpGet("communitys")]
|
||||||
public async Task<List<SanjuCommunity>> GetCommunitys(string searchkey)
|
public async Task<List<SanjuCommunity>> GetCommunitys(string searchkey)
|
||||||
{
|
{
|
||||||
@@ -396,20 +460,15 @@ namespace Vote.Services.ApiController
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Consumes("application/json", "multipart/form-data")]
|
[Consumes("application/json", "multipart/form-data")]
|
||||||
[HttpPost("submit")]
|
[HttpPost("submit")]
|
||||||
[AllowAnonymous]
|
//[AllowAnonymous]
|
||||||
public async Task<dynamic> Submit([FromForm] OutsideWallInput args, [FromQuery] string key)
|
public async Task<dynamic> Submit([FromForm] OutsideWallInput args)
|
||||||
{
|
{
|
||||||
var verifyKey = await _repoutsideExperts.IsExistsAsync(f => f.login_code.ToUpper() == key.ToUpper());
|
|
||||||
if (!verifyKey)
|
|
||||||
{
|
|
||||||
throw Oops.Oh("授权码错误");
|
|
||||||
}
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//string key = GetCode(6, true);
|
//string key = GetCode(6, true);
|
||||||
repoutside_wall.Ado.BeginTran();
|
repoutside_wall.Ado.BeginTran();
|
||||||
var wall = args.Adapt<outside_wall>();
|
var wall = args.Adapt<outside_wall>();
|
||||||
wall.submitCode = key;
|
wall.submitCode = _userManager.Account;
|
||||||
wall.Id = Guid.NewGuid().ToString();
|
wall.Id = Guid.NewGuid().ToString();
|
||||||
wall.createtime = DateTime.Now;
|
wall.createtime = DateTime.Now;
|
||||||
wall.isdeleted = 0;
|
wall.isdeleted = 0;
|
||||||
@@ -425,31 +484,34 @@ namespace Vote.Services.ApiController
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach (var item in args.buildings)
|
if (args.buildings != null)
|
||||||
{
|
{
|
||||||
if (!item.curwallproblems.Any())
|
foreach (var item in args.buildings)
|
||||||
continue;
|
|
||||||
var build = item.Adapt<outside_wall_building>();
|
|
||||||
build.Id = Guid.NewGuid().ToString();
|
|
||||||
build.outsidewallId = wall.Id;
|
|
||||||
build.BuildingId = build.Id;
|
|
||||||
build.createtime = DateTime.Now;
|
|
||||||
build = await repoutside_wall_building.InsertReturnEntityAsync(build);
|
|
||||||
if (item.problemfiles != null)
|
|
||||||
{
|
{
|
||||||
foreach (var item1 in item.problemfiles)
|
if (!item.curwallproblems.Any())
|
||||||
|
continue;
|
||||||
|
var build = item.Adapt<outside_wall_building>();
|
||||||
|
build.Id = Guid.NewGuid().ToString();
|
||||||
|
build.outsidewallId = wall.Id;
|
||||||
|
build.BuildingId = build.Id;
|
||||||
|
build.createtime = DateTime.Now;
|
||||||
|
build = await repoutside_wall_building.InsertReturnEntityAsync(build);
|
||||||
|
if (item.problemfiles != null)
|
||||||
{
|
{
|
||||||
await repoutside_wall_building_photo.InsertReturnEntityAsync(new outside_wall_building_photo
|
foreach (var item1 in item.problemfiles)
|
||||||
{
|
{
|
||||||
outsidewallBuildingId = build.Id,
|
await repoutside_wall_building_photo.InsertReturnEntityAsync(new outside_wall_building_photo
|
||||||
sysfileid = item1.file,
|
{
|
||||||
toward = item1.Toward
|
outsidewallBuildingId = build.Id,
|
||||||
});
|
sysfileid = item1.file,
|
||||||
|
toward = item1.Toward
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
repoutside_wall.Ado.CommitTran();
|
repoutside_wall.Ado.CommitTran();
|
||||||
return key;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using Mapster;
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -113,4 +114,22 @@ namespace Vote.Services.Dto
|
|||||||
.Map(dest => dest.diaoluowu, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.diaoluowu));
|
.Map(dest => dest.diaoluowu, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.diaoluowu));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public class VerifyLoginInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public string code { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public string phone { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
外墙调查问卷
|
外墙调查问卷
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Vote.Services.ApiController.OutsideWallService.#ctor(Ewide.Core.SqlSugarRepository{Vote.Services.Entities.Experts},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_building},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_building_photo},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_photo},Microsoft.Extensions.Caching.Memory.IMemoryCache,Ewide.Core.SqlSugarRepository{Ewide.Core.SysFile},Microsoft.Extensions.Options.IOptions{Ewide.Core.UploadFileOptions})">
|
<member name="M:Vote.Services.ApiController.OutsideWallService.#ctor(Ewide.Core.SqlSugarRepository{Vote.Services.Entities.Experts},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_building},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_building_photo},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_photo},Microsoft.Extensions.Caching.Memory.IMemoryCache,Ewide.Core.SqlSugarRepository{Ewide.Core.SysFile},Microsoft.Extensions.Options.IOptions{Ewide.Core.UploadFileOptions},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.nbzc_sms_code},Microsoft.AspNetCore.Http.IHttpContextAccessor,Ewide.Core.IUserManager)">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
@@ -161,6 +161,18 @@
|
|||||||
<param name="Length">生成长度</param>
|
<param name="Length">生成长度</param>
|
||||||
<param name="Sleep">是否要在生成前将当前线程阻止以避免重复</param>
|
<param name="Sleep">是否要在生成前将当前线程阻止以避免重复</param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Vote.Services.ApiController.OutsideWallService.VerifyIsLogin">
|
||||||
|
<summary>
|
||||||
|
授权验证
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Vote.Services.ApiController.OutsideWallService.VerifyLogin(Vote.Services.Dto.VerifyLoginInput)">
|
||||||
|
<summary>
|
||||||
|
授权验证
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:Vote.Services.ApiController.OutsideWallService.VerifyKey(System.String)">
|
<member name="M:Vote.Services.ApiController.OutsideWallService.VerifyKey(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
授权验证
|
授权验证
|
||||||
@@ -185,7 +197,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Vote.Services.ApiController.OutsideWallService.Submit(Vote.Services.Dto.OutsideWallInput,System.String)">
|
<member name="M:Vote.Services.ApiController.OutsideWallService.Submit(Vote.Services.Dto.OutsideWallInput)">
|
||||||
<summary>
|
<summary>
|
||||||
提交
|
提交
|
||||||
</summary>
|
</summary>
|
||||||
@@ -418,6 +430,21 @@
|
|||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:Vote.Services.Dto.VerifyLoginInput">
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Vote.Services.Dto.VerifyLoginInput.code">
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Vote.Services.Dto.VerifyLoginInput.phone">
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:Vote.Services.Dto.ProjectsInput.type">
|
<member name="P:Vote.Services.Dto.ProjectsInput.type">
|
||||||
<summary>
|
<summary>
|
||||||
项目类型
|
项目类型
|
||||||
|
|||||||