From 4a5734735a5a735c8665c02dfacdd7dd00a41572 Mon Sep 17 00:00:00 2001 From: zhangqi <2794379662@qq.com> Date: Tue, 1 Jun 2021 10:09:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=E4=B8=8D=E6=98=AF=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E4=BB=A3=E7=A0=81=E8=80=8C=E6=98=AF=E6=89=80?= =?UTF-8?q?=E5=9C=A8=E5=8C=BA=E5=9F=9F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Service/Org/SysOrgService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Api/Ewide.Core/Service/Org/SysOrgService.cs b/Api/Ewide.Core/Service/Org/SysOrgService.cs index ee7be0e..c2b935c 100644 --- a/Api/Ewide.Core/Service/Org/SysOrgService.cs +++ b/Api/Ewide.Core/Service/Org/SysOrgService.cs @@ -361,9 +361,9 @@ namespace Ewide.Core.Service { var org = await _sysOrgRep.FirstOrDefaultAsync(o => o.Id == orgId); if (dataScopeType == (int)DataScopeType.AREA_WITH_CHILD) - return await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode.StartsWith(org.Code)).Select(p => p.Id).ToListAsync(); + return await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode.StartsWith(org.AreaCode)).Select(p => p.Id).ToListAsync(); if (dataScopeType == (int)DataScopeType.AREA) - return await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode == org.Code).Select(p => p.Id).ToListAsync(); + return await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode == org.AreaCode).Select(p => p.Id).ToListAsync(); return new List(); } public async Task> GetAreaDataScopeIdListWithoutChildrenArea(string areaNumberCode) From 08e4573e195633041cb47e4261f02ffd830ae1f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?= <188633308@qq.com> Date: Tue, 1 Jun 2021 10:21:07 +0800 Subject: [PATCH 2/4] =?UTF-8?q?update=20=E6=89=A9=E5=B1=95userManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Manager/IUserManager.cs | 10 ++-- Api/Ewide.Core/Manager/UserManager.cs | 63 +++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/Api/Ewide.Core/Manager/IUserManager.cs b/Api/Ewide.Core/Manager/IUserManager.cs index 658afd8..a9c9f42 100644 --- a/Api/Ewide.Core/Manager/IUserManager.cs +++ b/Api/Ewide.Core/Manager/IUserManager.cs @@ -11,11 +11,15 @@ namespace Ewide.Core SysUser User { get; } string UserId { get; } - Task CheckUserAsync(); Task CheckUserAsync(string userId); - Task GetUserEmpInfo(); + Task CheckUserAsync(); Task GetUserEmpInfo(string userId); - Task> GetUserRoleIdList(); + Task GetUserEmpInfo(); + Task GetUserOrgInfo(string userId); + Task GetUserOrgInfo(); Task> GetUserRoleIdList(string userId); + Task> GetUserRoleIdList(); + Task> GetUserRoleList(string userId); + Task> GetUserRoleList(); } } \ No newline at end of file diff --git a/Api/Ewide.Core/Manager/UserManager.cs b/Api/Ewide.Core/Manager/UserManager.cs index ee92244..6512364 100644 --- a/Api/Ewide.Core/Manager/UserManager.cs +++ b/Api/Ewide.Core/Manager/UserManager.cs @@ -18,6 +18,7 @@ namespace Ewide.Core private readonly IRepository _sysRoleRep; private readonly IRepository _sysUserRoleRep; private readonly IRepository _sysEmpRep; // 员工表 + private readonly IRepository _sysOrgRep; private readonly IHttpContextAccessor _httpContextAccessor; public string UserId @@ -50,12 +51,14 @@ namespace Ewide.Core IRepository sysRoleRep, IRepository sysUserRoleRep, IRepository sysEmpRep, + IRepository sysOrgRep, IHttpContextAccessor httpContextAccessor) { _sysUserRep = sysUserRep; _sysRoleRep = sysRoleRep; _sysUserRoleRep = sysUserRoleRep; _sysEmpRep = sysEmpRep; + _sysOrgRep = sysOrgRep; _httpContextAccessor = httpContextAccessor; } @@ -63,7 +66,6 @@ namespace Ewide.Core /// 获取用户信息 /// /// - /// /// public async Task CheckUserAsync(string userId) { @@ -71,6 +73,10 @@ namespace Ewide.Core return user ?? throw Oops.Oh(ErrorCode.D1002); } + /// + /// 获取用户信息 + /// + /// public async Task CheckUserAsync() { return await CheckUserAsync(UserId); @@ -87,20 +93,75 @@ namespace Ewide.Core return emp ?? throw Oops.Oh(ErrorCode.D1002); } + /// + /// 获取用户员工信息 + /// + /// public async Task GetUserEmpInfo() { return await GetUserEmpInfo(UserId); } + /// + /// 获取用户部门信息 + /// + /// + /// + public async Task GetUserOrgInfo(string userId) + { + var emp = await GetUserEmpInfo(userId); + var org = await _sysOrgRep.FirstOrDefaultAsync(u => u.Id == emp.OrgId, false); + return org ?? throw Oops.Oh(ErrorCode.D1002); + } + + /// + /// 获取用户部门信息 + /// + /// + public async Task GetUserOrgInfo() + { + return await GetUserOrgInfo(UserId); + } + + /// + /// 获取用户角色Id列表 + /// + /// + /// public async Task> GetUserRoleIdList(string userId) { var roleIds = await _sysUserRoleRep.DetachedEntities.Where(u => u.SysUserId == userId).Select(u => u.SysRoleId).ToListAsync(); return roleIds; } + /// + /// 获取用户角色Id列表 + /// + /// public async Task> GetUserRoleIdList() { return await GetUserRoleIdList(UserId); } + + /// + /// 获取用户角色列表 + /// + /// + /// + public async Task> GetUserRoleList(string userId) + { + var roleIds = await GetUserRoleIdList(userId); + var roles = await _sysRoleRep.DetachedEntities.Where(u => roleIds.Contains(u.Id)).ToListAsync(); + return roles; + } + + /// + /// 获取用户角色列表 + /// + /// + public async Task> GetUserRoleList() + { + return await GetUserRoleList(UserId); + } } } \ No newline at end of file From 16695f98f73866d164784d23d75d6218c09f4146 Mon Sep 17 00:00:00 2001 From: zhangqi <2794379662@qq.com> Date: Tue, 1 Jun 2021 10:27:47 +0800 Subject: [PATCH 3/4] =?UTF-8?q?update:=E5=8C=85=E6=8B=AC=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Service/User/SysUserDataScopeService.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs b/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs index 6028804..db02381 100644 --- a/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs +++ b/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs @@ -75,9 +75,8 @@ namespace Ewide.Core.Service List areaDataScopeIdList = new List(); foreach (var areaNumberCode in areaList) { - areaDataScopeIdList.AddRange(await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode == areaNumberCode).Select(p => p.Id).ToListAsync()); - } - //用户自定义的组织权限 + areaDataScopeIdList.AddRange(await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode.StartsWith(areaNumberCode)).Select(p => p.Id).ToListAsync()); + } //用户自定义的组织权限 var orgIdList = await _sysUserDataScopeRep.DetachedEntities .Where(u => u.SysUserId == userId) .Select(u => u.SysOrgId).ToListAsync(); From 483b15c013e01647cf12f50602e4cc2374596733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?= <188633308@qq.com> Date: Tue, 1 Jun 2021 10:54:07 +0800 Subject: [PATCH 4/4] =?UTF-8?q?update=20=E5=AE=8C=E6=88=90=E7=89=87?= =?UTF-8?q?=E5=8C=BA=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Enum/{ZoneRole.cs => HouseManagerRole.cs} | 17 +- Api/Ewide.Application/Ewide.Application.xml | 19 +- .../HouseMember/HouseMemberService.cs | 4 +- .../HouseSelector/HouseSelectorService.cs | 28 +- .../HouseSafety/HouseZone/HouseZoneService.cs | 67 +++- Api/Ewide.Core/Ewide.Core.xml | 59 +++- Api/Ewide.Core/Extension/PageExtensions.cs | 2 +- Api/Ewide.Core/Service/Org/Dto/OrgTreeNode.cs | 5 + Api/Ewide.Core/Service/Org/SysOrgService.cs | 21 +- .../business/houseSafety/houseZone.js | 4 +- Web/src/pages/business/house/project/form.vue | 69 +++-- Web/src/pages/business/house/zone/form.vue | 221 ++++++++++++++ Web/src/pages/business/house/zone/index.vue | 286 ++++++++++++++++++ Web/src/pages/system/menu/form.vue | 2 +- Web/src/util/format/index.js | 19 ++ Web/src/views/main/_layout/header/index.vue | 4 +- Web/src/views/main/_layout/header/user.js | 4 +- 17 files changed, 756 insertions(+), 75 deletions(-) rename Api/Ewide.Application/Enum/{ZoneRole.cs => HouseManagerRole.cs} (53%) create mode 100644 Web/src/pages/business/house/zone/form.vue create mode 100644 Web/src/pages/business/house/zone/index.vue create mode 100644 Web/src/util/format/index.js diff --git a/Api/Ewide.Application/Enum/ZoneRole.cs b/Api/Ewide.Application/Enum/HouseManagerRole.cs similarity index 53% rename from Api/Ewide.Application/Enum/ZoneRole.cs rename to Api/Ewide.Application/Enum/HouseManagerRole.cs index 5085b8f..bb0909b 100644 --- a/Api/Ewide.Application/Enum/ZoneRole.cs +++ b/Api/Ewide.Application/Enum/HouseManagerRole.cs @@ -6,8 +6,23 @@ using System.Threading.Tasks; namespace Ewide.Application { - public enum ZoneRole + public enum HouseManagerRole { + /// + /// 市住建部门 + /// + CityManager, + + /// + /// 区住建部门 + /// + AreaManager, + + /// + /// 街道管理员 + /// + RoadManager, + /// /// 片区监管员 /// diff --git a/Api/Ewide.Application/Ewide.Application.xml b/Api/Ewide.Application/Ewide.Application.xml index b42b0bd..140f79c 100644 --- a/Api/Ewide.Application/Ewide.Application.xml +++ b/Api/Ewide.Application/Ewide.Application.xml @@ -359,12 +359,27 @@ 单位联系人电话 - + + + 市住建部门 + + + + + 区住建部门 + + + + + 街道管理员 + + + 片区监管员 - + 房屋安全管理员 diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseMember/HouseMemberService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseMember/HouseMemberService.cs index 1dc5c2e..ad44a3e 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseMember/HouseMemberService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseMember/HouseMemberService.cs @@ -265,7 +265,7 @@ WHERE 1=1"; var roleIds = await _sysUserRoleRep.DetachedEntities.Where(p => userIds.Contains(p.SysUserId)).Select(p => p.SysRoleId).ToListAsync(); var _sysRoleRep = Db.GetRepository(); - var isExistZoneManager = await _sysRoleRep.DetachedEntities.AnyAsync(p => roleIds.Contains(p.Id) && p.Code == System.Enum.GetName(ZoneRole.ZoneManager).ToUnderScoreCase()); + var isExistZoneManager = await _sysRoleRep.DetachedEntities.AnyAsync(p => roleIds.Contains(p.Id) && p.Code == System.Enum.GetName(HouseManagerRole.ZoneManager).ToUnderScoreCase()); // 存在片区监管员,返回安全员, 否则返回监管员 if (isExistZoneManager) { @@ -282,7 +282,7 @@ WHERE 1=1"; [NonAction] private async Task> GetRoleRange() { - var codes = System.Enum.GetNames(typeof(ZoneRole)).Select(p => p.ToUnderScoreCase()); + var codes = System.Enum.GetNames(typeof(HouseManagerRole)).Select(p => p.ToUnderScoreCase()); var _sysRoleRep = Db.GetRepository(); var roles = await _sysRoleRep.DetachedEntities.Where(p => codes.Contains(p.Code)).ToListAsync(); diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs index a1d2a8d..70efcb5 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs @@ -55,15 +55,13 @@ LEFT JOIN sys_area_code RA ON RA.AdCode = SUBSTR(CA.AdCode,1,9) LEFT JOIN sys_area_code AA ON AA.AdCode = SUBSTR(CA.AdCode,1,6) LEFT JOIN bs_house_member_relation HM ON HC.Id = HM.HouseCodeId INNER JOIN (SELECT * FROM sys_emp WHERE Id = @UserId) E ON HC.ZoneId = E.OrgId -WHERE 1=1 - AND HM.Id IS NULL - AND HC.Address LIKE @Address - AND HC.HouseCode LIKE @HouseCode"; - return await _dapperRep.QueryPageData(sql, input, param: new +WHERE HM.Id IS NULL"; + return await _dapperRep.QueryPageDataDynamic(sql, input, param: new { - input.UserId, - Address = "%" + input.Address + "%", - HouseCode = "%" + input.HouseCode + "%" + input.UserId + }, filterFields: new[] { + nameof(BsHouseCode.Address) , + nameof(BsHouseCode.CreatedTime) }); } @@ -82,15 +80,13 @@ LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode LEFT JOIN sys_area_code RA ON RA.AdCode = SUBSTR(CA.AdCode,1,9) LEFT JOIN sys_area_code AA ON AA.AdCode = SUBSTR(CA.AdCode,1,6) -INNER JOIN (SELECT * FROM bs_house_member_relation WHERE SysUserId = @UserId) HM ON HC.Id = HM.HouseCodeId -WHERE 1=1 - AND HC.Address LIKE @Address - AND HC.HouseCode LIKE @HouseCode"; - return await _dapperRep.QueryPageData(sql, input, param: new +INNER JOIN (SELECT * FROM bs_house_member_relation WHERE SysUserId = @UserId) HM ON HC.Id = HM.HouseCodeId"; + return await _dapperRep.QueryPageDataDynamic(sql, input, param: new { - input.UserId, - Address = "%" + input.Address + "%", - HouseCode = "%" + input.HouseCode + "%" + input.UserId + }, filterFields: new[] { + nameof(BsHouseCode.Address) , + nameof(BsHouseCode.CreatedTime) }); } diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs index 966738c..88a09a5 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs @@ -1,10 +1,12 @@ using Ewide.Core; +using Ewide.Core.Service; using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using Furion.FriendlyException; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -18,15 +20,22 @@ namespace Ewide.Application.Service [ApiDescriptionSettings(Name = "HouseZone", Order = 180)] public class HouseZoneService : IHouseZoneService, IDynamicApiController, ITransient { + private readonly IUserManager _userManager; private readonly IRepository _sysOrgRep; private readonly IRepository _sysEmpRep; + private readonly ISysOrgService _sysOrgService; + public HouseZoneService( - IRepository sysOrgRep, - IRepository sysEmpRep + IUserManager userManager, + IRepository sysOrgRep, + IRepository sysEmpRep, + ISysOrgService sysOrgService ) { + _userManager = userManager; _sysOrgRep = sysOrgRep; _sysEmpRep = sysEmpRep; + _sysOrgService = sysOrgService; } /// @@ -57,7 +66,7 @@ namespace Ewide.Application.Service /// /// /// - [HttpGet("houseZone/getByUser")] + [HttpGet("/houseZone/getByUser")] public async Task GetZoneByUser([FromQuery][Required(ErrorMessage = "用户Id不能为空")] string userId) { var data = await _sysEmpRep.DetachedEntities.FirstOrDefaultAsync(p => p.Id == userId); @@ -66,5 +75,57 @@ namespace Ewide.Application.Service if(org == null) throw Oops.Oh("用户不在片区中"); return org.Id; } + + [HttpGet("/houseZone/autoIncrement")] + public async Task AutoIncrement([FromQuery] string code) + { + var road = await _sysOrgRep.DetachedEntities.FirstOrDefaultAsync(p => p.AreaCode == code); + if (road == null) throw Oops.Oh("组织机构错误"); + return await AutoIncrement(road); + } + + [NonAction] + public async Task AutoIncrement(SysOrg road) + { + var maxZone = (await _sysOrgRep.DetachedEntities.Where(p => p.Pid == road.Id && p.Type == (int)OrgType.片区).MaxAsync(p => p.Code)) ?? "000"; + return Convert.ToInt32(maxZone[^3..]) + 1; + } + + [HttpPost("/houseZone/add")] + public async Task AddZone(AddOrgInput input) + { + /* + * 区县市限定所属区域/上级机构是否为当前区 + * 街道自动获取所属区域/上级机构 + * 自动生成唯一编码, 街道Code+三位编号 + * + * 机构类型默认为片区 + */ + + var org = await _userManager.GetUserOrgInfo(); + + var areaManager = Enum.GetName(HouseManagerRole.AreaManager).ToUnderScoreCase(); + var roadManager = Enum.GetName(HouseManagerRole.RoadManager).ToUnderScoreCase(); + var roles = await _userManager.GetUserRoleList(); + if (roles.Any(p => p.Code == areaManager)) + { + var road = await _sysOrgRep.DetachedEntities.FirstOrDefaultAsync(p => p.AreaCode == input.AreaCode); + if (!road.Pids.Contains(org.Id)) throw Oops.Oh("组织机构错误"); + + input.Pid = road.Id; + input.Code = road.Code + (await AutoIncrement(road)).ToString().PadLeft(3, '0'); + } + else if (roles.Any(p => p.Code == roadManager)) + { + input.Pid = org.Id; + input.AreaCode = org.AreaCode; + + input.Code = org.Code + (await AutoIncrement(org)).ToString().PadLeft(3, '0'); + } + + input.Type = (int)OrgType.片区; + + await _sysOrgService.AddOrg(input); + } } } diff --git a/Api/Ewide.Core/Ewide.Core.xml b/Api/Ewide.Core/Ewide.Core.xml index c2cc3e0..7d593bf 100644 --- a/Api/Ewide.Core/Ewide.Core.xml +++ b/Api/Ewide.Core/Ewide.Core.xml @@ -2734,12 +2734,17 @@ 用户管理 - + 获取用户信息 - + + + + + 获取用户信息 + @@ -2749,6 +2754,51 @@ + + + 获取用户员工信息 + + + + + + 获取用户部门信息 + + + + + + + 获取用户部门信息 + + + + + + 获取用户角色Id列表 + + + + + + + 获取用户角色Id列表 + + + + + + 获取用户角色列表 + + + + + + + 获取用户角色列表 + + + OAuth配置---此结构方便拓展 @@ -5607,6 +5657,11 @@ 值 + + + 类型 + + 排序,越小优先级越高 diff --git a/Api/Ewide.Core/Extension/PageExtensions.cs b/Api/Ewide.Core/Extension/PageExtensions.cs index 74c9d40..a47f185 100644 --- a/Api/Ewide.Core/Extension/PageExtensions.cs +++ b/Api/Ewide.Core/Extension/PageExtensions.cs @@ -33,7 +33,7 @@ namespace Ewide.Core.Extension var hasSort = type.GetProperty("Sort") != null; var hasCreatedTime = type.GetProperty("CreatedTime") != null; - var defaultField = hasCreatedTime ? "CreatedTime" : hasSort ? "Sort" : hasId ? "Id" : ""; + var defaultField = hasSort ? "Sort" : hasCreatedTime ? "CreatedTime" : hasId ? "Id" : ""; // 排序优先级 创建时间->序号->ID var orderStr = string.IsNullOrEmpty(defaultField) ? "" : defaultField + (descSort ? " Desc" : " Asc"); diff --git a/Api/Ewide.Core/Service/Org/Dto/OrgTreeNode.cs b/Api/Ewide.Core/Service/Org/Dto/OrgTreeNode.cs index 650f34b..279abe9 100644 --- a/Api/Ewide.Core/Service/Org/Dto/OrgTreeNode.cs +++ b/Api/Ewide.Core/Service/Org/Dto/OrgTreeNode.cs @@ -28,6 +28,11 @@ namespace Ewide.Core.Service /// public string Value { get; set; } + /// + /// 类型 + /// + public int Type { get; set; } + /// /// 排序,越小优先级越高 /// diff --git a/Api/Ewide.Core/Service/Org/SysOrgService.cs b/Api/Ewide.Core/Service/Org/SysOrgService.cs index ee7be0e..54052b3 100644 --- a/Api/Ewide.Core/Service/Org/SysOrgService.cs +++ b/Api/Ewide.Core/Service/Org/SysOrgService.cs @@ -125,12 +125,10 @@ namespace Ewide.Core.Service [HttpPost("/sysOrg/add")] public async Task AddOrg(AddOrgInput input) { - if (!string.IsNullOrEmpty(input.Code)) - { - var isExist = await _sysOrgRep.DetachedEntities.AnyAsync(u => u.Code == input.Code); - if (isExist) - throw Oops.Oh(ErrorCode.D2002); - } + var isExist = await _sysOrgRep.DetachedEntities + .AnyAsync(u => (u.Pid == input.Pid && u.Name == input.Name) || (!string.IsNullOrEmpty(input.Code) && u.Code == input.Code)); + if (isExist) + throw Oops.Oh(ErrorCode.D2002); if (!_userManager.SuperAdmin) { @@ -239,12 +237,10 @@ namespace Ewide.Core.Service if (!_userManager.SuperAdmin && (dataScopes.Count < 1 || !dataScopes.Contains(sysOrg.Id))) throw Oops.Oh(ErrorCode.D2003); - if (!string.IsNullOrEmpty(input.Code)) - { - var isExist = await _sysOrgRep.DetachedEntities.AnyAsync(u => u.Code == input.Code && u.Id != sysOrg.Id); - if (isExist) - throw Oops.Oh(ErrorCode.D2002); - } + var isExist = await _sysOrgRep.DetachedEntities + .AnyAsync(u => ((u.Pid == input.Pid && u.Name == input.Name) || (!string.IsNullOrEmpty(input.Code) && u.Code == input.Code)) && u.Id != sysOrg.Id); + if (isExist) + throw Oops.Oh(ErrorCode.D2002); // 如果名称有变化,则修改对应员工的机构相关信息 if (!sysOrg.Name.Equals(input.Name)) @@ -309,6 +305,7 @@ namespace Ewide.Core.Service Id = u.Id, ParentId = u.Pid, Title = u.Name, + Type = u.Type, Value = u.Id.ToString(), Weight = u.Sort }).ToListAsync(); diff --git a/Web/src/common/api/requests/business/houseSafety/houseZone.js b/Web/src/common/api/requests/business/houseSafety/houseZone.js index 9e90e3f..0406739 100644 --- a/Web/src/common/api/requests/business/houseSafety/houseZone.js +++ b/Web/src/common/api/requests/business/houseSafety/houseZone.js @@ -1,3 +1,5 @@ export default { - houseZoneList: '/houseZone/list' + houseZoneList: '/houseZone/list', + houseZoneAutoIncrement: '/houseZone/autoIncrement', + houseZoneAdd: ['/houseZone/add', 'post'] } \ No newline at end of file diff --git a/Web/src/pages/business/house/project/form.vue b/Web/src/pages/business/house/project/form.vue index 1054def..8689ece 100644 --- a/Web/src/pages/business/house/project/form.vue +++ b/Web/src/pages/business/house/project/form.vue @@ -11,25 +11,43 @@
- +
- - 住宅 - 非住宅 + + 住宅 + 非住宅 - + - + + + - + + + - +
@@ -37,6 +55,8 @@ \ No newline at end of file diff --git a/Web/src/pages/business/house/zone/index.vue b/Web/src/pages/business/house/zone/index.vue new file mode 100644 index 0000000..27b4db5 --- /dev/null +++ b/Web/src/pages/business/house/zone/index.vue @@ -0,0 +1,286 @@ + + \ No newline at end of file diff --git a/Web/src/pages/system/menu/form.vue b/Web/src/pages/system/menu/form.vue index 1697326..16b8c6a 100644 --- a/Web/src/pages/system/menu/form.vue +++ b/Web/src/pages/system/menu/form.vue @@ -102,7 +102,7 @@ - + diff --git a/Web/src/util/format/index.js b/Web/src/util/format/index.js new file mode 100644 index 0000000..10e7281 --- /dev/null +++ b/Web/src/util/format/index.js @@ -0,0 +1,19 @@ +export const numberToChinese = (val) => { + const num = parseInt(val) + const changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'] + const unit = ['', '十', '百', '千', '万'] + const getWan = (temp) => { + const strArr = temp.toString().split('').reverse() + let newNum = '' + for (var i = 0; i < strArr.length; i++) { + newNum = (i == 0 && strArr[i] == 0 ? '' : i > 0 && strArr[i] == 0 && strArr[i - 1] == 0 ? '' : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i])) + newNum + } + return newNum + } + const overWan = Math.floor(num / 10000) + let noWan = num % 10000 + if (noWan.toString().length < 4) noWan = '0' + noWan + + const chinanum = overWan ? getWan(overWan) + '万' + getWan(noWan) : getWan(num) + return chinanum +} \ No newline at end of file diff --git a/Web/src/views/main/_layout/header/index.vue b/Web/src/views/main/_layout/header/index.vue index d51553d..06fd340 100644 --- a/Web/src/views/main/_layout/header/index.vue +++ b/Web/src/views/main/_layout/header/index.vue @@ -13,7 +13,6 @@
- @@ -25,6 +24,7 @@ +
@@ -36,7 +36,6 @@
- @@ -48,6 +47,7 @@ +
{ - doLogout() + onOk: async () => { + await doLogout() }, onCancel() { }