From ccd914fb81a784f85abbc5ff371c10ece234478f 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: Sun, 30 May 2021 20:28:09 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=AE=8C=E6=88=90=E9=80=89=E6=88=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Application/Entity/BsHouseCode.cs | 2 +- .../Entity/BsHouseMemberRelation.cs | 4 +- Api/Ewide.Application/Ewide.Application.xml | 35 +++ .../HouseCode/Dto/HouseCodeInput.cs | 2 +- .../HouseSelector/Dto/HouseSelectorInput.cs | 16 +- .../HouseSelector/HouseSelectorService.cs | 152 +++++++++- .../HouseSelector/IHouseSelectorService.cs | 5 + .../HouseSafety/HouseZone/HouseZoneService.cs | 35 ++- .../HouseZone/IHouseZoneService.cs | 1 + Api/Ewide.Core/Enum/DataScopeType.cs | 2 + Api/Ewide.Core/Service/Org/ISysOrgService.cs | 1 + Api/Ewide.Core/Service/Org/SysOrgService.cs | 2 +- .../Service/Role/ISysRoleAreaService.cs | 2 +- Web/src/assets/style/app.less | 1 + Web/src/assets/style/lib/disabled.less | 36 +++ Web/src/assets/style/lib/radio.less | 10 +- Web/src/assets/style/main.less | 1 - .../business/{ => houseSafety}/houseCode.js | 0 .../business/{ => houseSafety}/houseMember.js | 0 .../{ => houseSafety}/houseProjectInfo.js | 0 .../business/houseSafety/houseSelector.js | 6 + .../business/{ => houseSafety}/houseZone.js | 0 .../requests/business/houseSafety/index.js | 13 + Web/src/common/api/requests/business/index.js | 10 +- .../pages/business/house/code/form/part.vue | 9 +- Web/src/pages/business/house/info/index.vue | 2 +- Web/src/pages/business/house/member/index.vue | 6 +- .../business/house/member/selector/index.vue | 14 +- .../house/member/selector/selectedList.vue | 286 +++++++++++++++++- .../house/member/selector/selectorList.vue | 40 ++- 30 files changed, 650 insertions(+), 43 deletions(-) create mode 100644 Web/src/assets/style/lib/disabled.less rename Web/src/common/api/requests/business/{ => houseSafety}/houseCode.js (100%) rename Web/src/common/api/requests/business/{ => houseSafety}/houseMember.js (100%) rename Web/src/common/api/requests/business/{ => houseSafety}/houseProjectInfo.js (100%) create mode 100644 Web/src/common/api/requests/business/houseSafety/houseSelector.js rename Web/src/common/api/requests/business/{ => houseSafety}/houseZone.js (100%) create mode 100644 Web/src/common/api/requests/business/houseSafety/index.js diff --git a/Api/Ewide.Application/Entity/BsHouseCode.cs b/Api/Ewide.Application/Entity/BsHouseCode.cs index 8dd47a9..ded5654 100644 --- a/Api/Ewide.Application/Entity/BsHouseCode.cs +++ b/Api/Ewide.Application/Entity/BsHouseCode.cs @@ -2,7 +2,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; -namespace Ewide.Application.Entity +namespace Ewide.Application { [Table("bs_house_code")] [Comment("房屋编码表")] diff --git a/Api/Ewide.Application/Entity/BsHouseMemberRelation.cs b/Api/Ewide.Application/Entity/BsHouseMemberRelation.cs index 7b419f8..98e42e2 100644 --- a/Api/Ewide.Application/Entity/BsHouseMemberRelation.cs +++ b/Api/Ewide.Application/Entity/BsHouseMemberRelation.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Ewide.Application.Entity +namespace Ewide.Application { [Table("bs_house_member_relation")] [Comment("房屋与人员关联表")] @@ -21,6 +21,6 @@ namespace Ewide.Application.Entity [Comment("bs_house_code主键Id")] [MaxLength(36)] [Required] - public string CodeId { get; set; } + public string HouseCodeId { get; set; } } } diff --git a/Api/Ewide.Application/Ewide.Application.xml b/Api/Ewide.Application/Ewide.Application.xml index 5891eef..b42b0bd 100644 --- a/Api/Ewide.Application/Ewide.Application.xml +++ b/Api/Ewide.Application/Ewide.Application.xml @@ -524,10 +524,45 @@ 选房相关 + + + 获取人员允许绑定的房屋编码列表 + + + + + + + 获取人员已经绑定的房屋编码列表 + + + + + + + 从人员选择房屋 + + + + 片区相关 + + + 获取片区列表 + + + + + + + 根据用户Id获取所在片区的Id + + + + diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseCode/Dto/HouseCodeInput.cs b/Api/Ewide.Application/Service/HouseSafety/HouseCode/Dto/HouseCodeInput.cs index 0346656..8017786 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseCode/Dto/HouseCodeInput.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseCode/Dto/HouseCodeInput.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Ewide.Application.Service.HouseCode.Dto +namespace Ewide.Application { public class HouseCodeInput { diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/Dto/HouseSelectorInput.cs b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/Dto/HouseSelectorInput.cs index a9f189b..0001eff 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/Dto/HouseSelectorInput.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/Dto/HouseSelectorInput.cs @@ -7,10 +7,18 @@ using System.Threading.Tasks; namespace Ewide.Application { - public class HouseSelectorInput + public class HouseSelectInput { - [Required(ErrorMessage = "区域编码不可为空")] - [MinLength(9, ErrorMessage = "区域编码长度必须为9位及以上")] - public string AreaCode { get; set; } + [Required(ErrorMessage = "用户Id不能为空")] + public string UserId { get; set; } + + [Required(ErrorMessage = "房屋编码Id不能为空")] + public string[] Ids { get; set; } + } + + public class QueryHouseSelectorInput : QueryHouseCodeInput + { + [Required(ErrorMessage = "用户Id不能为空")] + public string UserId { get; set; } } } diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs index 6e818ce..a1d2a8d 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/HouseSelectorService.cs @@ -1,5 +1,7 @@ -using Ewide.Core; +using Dapper; +using Ewide.Core.Extension; using Furion.DatabaseAccessor; +using Furion.DatabaseAccessor.Extensions; using Furion.DependencyInjection; using Furion.DynamicApiController; using Furion.FriendlyException; @@ -17,5 +19,153 @@ namespace Ewide.Application.Service [ApiDescriptionSettings(Name = "HouseSelector", Order = 180)] public class HouseSelectorService : IHouseSelectorService, IDynamicApiController, ITransient { + private readonly IDapperRepository _dapperRep; + + private readonly IRepository _bsHouseMemberRelationRep; + private readonly IRepository _bsHouseCodeRep; + private readonly IHouseZoneService _houseZoneService; + + public HouseSelectorService( + IDapperRepository dapperRep, + IRepository bsHouseMemberRelationRep, + IRepository bsHouseCodeRep, + IHouseZoneService houseZoneService + ) + { + _dapperRep = dapperRep; + _bsHouseMemberRelationRep = bsHouseMemberRelationRep; + _bsHouseCodeRep = bsHouseCodeRep; + _houseZoneService = houseZoneService; + } + + /// + /// 获取人员允许绑定的房屋编码列表 + /// + /// + /// + [HttpPost("/houseSelector/selectorPage")] + public async Task HouseSelectorList([FromBody] QueryHouseSelectorInput input) + { + var sql = @"SELECT + HC.*,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,CONCAT(Proj.`Name`,'(',Proj.Note,')') FullProjName +FROM bs_house_code HC +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) +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 + { + input.UserId, + Address = "%" + input.Address + "%", + HouseCode = "%" + input.HouseCode + "%" + }); + } + + /// + /// 获取人员已经绑定的房屋编码列表 + /// + /// + /// + [HttpPost("/houseSelector/selectedPage")] + public async Task HouseSelectedList([FromBody] QueryHouseSelectorInput input) + { + var sql = @"SELECT + HC.*,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,CONCAT(Proj.`Name`,'(',Proj.Note,')') FullProjName +FROM bs_house_code HC +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 + { + input.UserId, + Address = "%" + input.Address + "%", + HouseCode = "%" + input.HouseCode + "%" + }); + } + + /// + /// 从人员选择房屋 + /// + /// + /// + [HttpPost("/houseSelector/select")] + [UnitOfWork] + public async Task Select([FromBody] HouseSelectInput input) + { + #region 验证房屋是否在当前用户可选范围内 + + var ids = input.Ids.Distinct().ToList(); + if (ids.Count == 0) throw Oops.Oh("没有选中任何房屋"); + + // 验证当前用户是否安全员 **须补充 + + // 已经被选中的房屋,从ids中剔除 + var houseSelected = await _bsHouseMemberRelationRep.DetachedEntities + .Where(p => ids.Contains(p.HouseCodeId)) + .Select(p => p.HouseCodeId) + .ToListAsync(); + if (houseSelected.Count > 0) + { + houseSelected.ForEach(p => + { + var index = ids.IndexOf(p); + if (index > -1) + { + ids.RemoveAt(index); + } + }); + } + + if (ids.Count == 0) throw Oops.Oh("当前房屋在此之前已经全部被选中,请确认"); + + // 从用户所在片区中过滤房屋 + var zoneId = await _houseZoneService.GetZoneByUser(input.UserId); + var house = await _bsHouseCodeRep.DetachedEntities.Where(p => ids.Contains(p.Id) && p.ZoneId == zoneId).Select(p => p.Id).ToListAsync(); + + if (house.Count == 0) throw Oops.Oh("选中的房屋错误"); + + #endregion + + // 选定房屋 + house.ForEach(p => + { + new BsHouseMemberRelation + { + SysUserId = input.UserId, + HouseCodeId = p + }.Insert(); + }); + } + + [HttpPost("/houseSelector/revoke")] + [UnitOfWork] + public async Task Revoke([FromBody] HouseSelectInput input) + { + var ids = input.Ids.Distinct().ToList(); + if (ids.Count == 0) throw Oops.Oh("没有选中任何房屋"); + + var selected = await _bsHouseMemberRelationRep.Where(p => ids.Contains(p.HouseCodeId) && p.SysUserId == input.UserId).ToListAsync(); + + selected.ForEach(p => + { + p.Delete(); + }); + } + + public async Task SelectMember() + { + + } } } diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/IHouseSelectorService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/IHouseSelectorService.cs index 1b6bd84..df71ac7 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseSelector/IHouseSelectorService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseSelector/IHouseSelectorService.cs @@ -9,5 +9,10 @@ namespace Ewide.Application.Service { public interface IHouseSelectorService { + Task HouseSelectorList([FromQuery] QueryHouseSelectorInput input); + Task HouseSelectedList([FromQuery] QueryHouseSelectorInput input); + Task Select([FromBody] HouseSelectInput input); + Task Revoke([FromBody] HouseSelectInput input); + Task SelectMember(); } } diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs index 968a8ab..966738c 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs @@ -6,6 +6,7 @@ using Furion.FriendlyException; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; @@ -17,13 +18,28 @@ namespace Ewide.Application.Service [ApiDescriptionSettings(Name = "HouseZone", Order = 180)] public class HouseZoneService : IHouseZoneService, IDynamicApiController, ITransient { + private readonly IRepository _sysOrgRep; + private readonly IRepository _sysEmpRep; + public HouseZoneService( + IRepository sysOrgRep, + IRepository sysEmpRep + ) + { + _sysOrgRep = sysOrgRep; + _sysEmpRep = sysEmpRep; + } + + /// + /// 获取片区列表 + /// + /// + /// [HttpGet("/houseZone/list")] public async Task GetHouseZoneList([FromQuery] HouseZoneInput input) { var areaCode = input.AreaCode.Substring(0, 9); - var _sysOrgRep = Db.GetRepository(); var road = await _sysOrgRep.DetachedEntities.FirstOrDefaultAsync(p => p.AreaCode == areaCode); - if (road == null) throw Oops.Oh("街道编码错误"); + if (road == null) throw Oops.Oh("未在组织机构中配置街道"); return await _sysOrgRep.DetachedEntities .Where(p => p.Pid == road.Id) .Where(p => p.Type == (int)OrgType.片区) @@ -35,5 +51,20 @@ namespace Ewide.Application.Service }) .ToListAsync(); } + + /// + /// 根据用户Id获取所在片区的Id + /// + /// + /// + [HttpGet("houseZone/getByUser")] + public async Task GetZoneByUser([FromQuery][Required(ErrorMessage = "用户Id不能为空")] string userId) + { + var data = await _sysEmpRep.DetachedEntities.FirstOrDefaultAsync(p => p.Id == userId); + if(data == null) throw Oops.Oh("用户不在组织机构中"); + var org = await _sysOrgRep.DetachedEntities.FirstOrDefaultAsync(p => p.Id == data.OrgId && p.Type == (int)OrgType.片区); + if(org == null) throw Oops.Oh("用户不在片区中"); + return org.Id; + } } } diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseZone/IHouseZoneService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseZone/IHouseZoneService.cs index 339734c..9c0b138 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseZone/IHouseZoneService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseZone/IHouseZoneService.cs @@ -10,5 +10,6 @@ namespace Ewide.Application.Service public interface IHouseZoneService { Task GetHouseZoneList([FromQuery] HouseZoneInput input); + Task GetZoneByUser([FromQuery] string userId); } } diff --git a/Api/Ewide.Core/Enum/DataScopeType.cs b/Api/Ewide.Core/Enum/DataScopeType.cs index b7c9077..56f475e 100644 --- a/Api/Ewide.Core/Enum/DataScopeType.cs +++ b/Api/Ewide.Core/Enum/DataScopeType.cs @@ -33,11 +33,13 @@ namespace Ewide.Core /// [Description("自定义数据")] DEFINE = 5, + /// /// 本部门所在区域及以下区域 /// [Description("本部门所在区域及以下区域")] AREA_WITH_CHILD = 6, + /// /// 本部门所在区域数据 不包括下面区域 /// diff --git a/Api/Ewide.Core/Service/Org/ISysOrgService.cs b/Api/Ewide.Core/Service/Org/ISysOrgService.cs index a6992ff..e77023c 100644 --- a/Api/Ewide.Core/Service/Org/ISysOrgService.cs +++ b/Api/Ewide.Core/Service/Org/ISysOrgService.cs @@ -9,6 +9,7 @@ namespace Ewide.Core.Service Task AddOrg(AddOrgInput input); Task DeleteOrg(DeleteOrgInput input); Task> GetDataScopeListByDataScopeType(int dataScopeType, string orgId); + List GetDataScopeList(List dataScopes); Task GetOrg([FromQuery] QueryOrgInput input); Task> GetOrgList([FromQuery] OrgInput input); Task GetOrgTree([FromQuery] OrgInput input); diff --git a/Api/Ewide.Core/Service/Org/SysOrgService.cs b/Api/Ewide.Core/Service/Org/SysOrgService.cs index f51b58f..e5b7c29 100644 --- a/Api/Ewide.Core/Service/Org/SysOrgService.cs +++ b/Api/Ewide.Core/Service/Org/SysOrgService.cs @@ -74,7 +74,7 @@ namespace Ewide.Core.Service /// /// /// - private List GetDataScopeList(List dataScopes) + public List GetDataScopeList(List dataScopes) { var dataScopeList = new List(); // 如果是超级管理员则获取所有组织机构,否则只获取其数据范围的机构数据 diff --git a/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs b/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs index 462eb2a..1cedf7f 100644 --- a/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs +++ b/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Ewide.Core.Service.Role +namespace Ewide.Core.Service { public interface ISysRoleAreaService { diff --git a/Web/src/assets/style/app.less b/Web/src/assets/style/app.less index 219f657..f4849cc 100644 --- a/Web/src/assets/style/app.less +++ b/Web/src/assets/style/app.less @@ -36,6 +36,7 @@ @import './lib/authority-view.less'; @import './lib/icon-selector.less'; @import './lib/anchor.less'; +@import './lib/disabled.less'; @import './theme/primary.less'; // @import './lib/font-weight.less'; @import './public.less'; diff --git a/Web/src/assets/style/lib/disabled.less b/Web/src/assets/style/lib/disabled.less new file mode 100644 index 0000000..a1c4449 --- /dev/null +++ b/Web/src/assets/style/lib/disabled.less @@ -0,0 +1,36 @@ +@import (reference) '~@/assets/style/extend.less'; +.ant-btn-primary-disabled, +.ant-btn-primary.disabled, +.ant-btn-primary[disabled], +.ant-btn-primary-disabled:hover, +.ant-btn-primary.disabled:hover, +.ant-btn-primary[disabled]:hover, +.ant-btn-primary-disabled:focus, +.ant-btn-primary.disabled:focus, +.ant-btn-primary[disabled]:focus, +.ant-btn-primary-disabled:active, +.ant-btn-primary.disabled:active, +.ant-btn-primary[disabled]:active, +.ant-btn-primary-disabled.active, +.ant-btn-primary.disabled.active, +.ant-btn-primary[disabled].active { + opacity: .5; + color: @btn-primary-color; + border-color: @btn-primary-bg; + background-color: @btn-primary-bg; + box-shadow: @btn-primary-shadow; + text-shadow: @btn-text-shadow; +} +.ant-radio-button-wrapper-disabled:first-child, +.ant-radio-button-wrapper-disabled:hover { + opacity: .5; + color: @radio-button-color; + background-color: @radio-button-bg; +} +.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked { + opacity: .5; + color: @btn-primary-color; + border-color: @btn-primary-bg; + background-color: @btn-primary-bg; + box-shadow: @btn-primary-shadow; +} diff --git a/Web/src/assets/style/lib/radio.less b/Web/src/assets/style/lib/radio.less index a6e211b..1fb4871 100644 --- a/Web/src/assets/style/lib/radio.less +++ b/Web/src/assets/style/lib/radio.less @@ -2,9 +2,17 @@ .ant-radio-button-wrapper { margin-right: @padding-xs; margin-bottom: @padding-xs; + + border-left: @border-width-base @border-style-base @normal-color; &:not(:first-child) { &::before { - left: 0; + content: none; } } } +.ant-radio-button-wrapper-checked { + &:not(.ant-radio-button-wrapper-disabled), + &:not(.ant-radio-button-wrapper-disabled):hover { + box-shadow: none; + } +} diff --git a/Web/src/assets/style/main.less b/Web/src/assets/style/main.less index 044c5b2..3853d6f 100644 --- a/Web/src/assets/style/main.less +++ b/Web/src/assets/style/main.less @@ -391,7 +391,6 @@ padding: 0 @padding-md 0 @padding-lg; color: @logo-color; - background-color: @nav-background; box-shadow: @logo-box-shadow; img { max-height: 100%; diff --git a/Web/src/common/api/requests/business/houseCode.js b/Web/src/common/api/requests/business/houseSafety/houseCode.js similarity index 100% rename from Web/src/common/api/requests/business/houseCode.js rename to Web/src/common/api/requests/business/houseSafety/houseCode.js diff --git a/Web/src/common/api/requests/business/houseMember.js b/Web/src/common/api/requests/business/houseSafety/houseMember.js similarity index 100% rename from Web/src/common/api/requests/business/houseMember.js rename to Web/src/common/api/requests/business/houseSafety/houseMember.js diff --git a/Web/src/common/api/requests/business/houseProjectInfo.js b/Web/src/common/api/requests/business/houseSafety/houseProjectInfo.js similarity index 100% rename from Web/src/common/api/requests/business/houseProjectInfo.js rename to Web/src/common/api/requests/business/houseSafety/houseProjectInfo.js diff --git a/Web/src/common/api/requests/business/houseSafety/houseSelector.js b/Web/src/common/api/requests/business/houseSafety/houseSelector.js new file mode 100644 index 0000000..4e14a3f --- /dev/null +++ b/Web/src/common/api/requests/business/houseSafety/houseSelector.js @@ -0,0 +1,6 @@ +export default { + houseSelect: ['/houseSelector/select', 'post'], + houseSelectRevoke: ['/houseSelector/revoke', 'post'], + houseSelectorPage: ['/houseSelector/selectorPage', 'post'], + houseSelectedPage: ['/houseSelector/selectedPage', 'post'], +} \ No newline at end of file diff --git a/Web/src/common/api/requests/business/houseZone.js b/Web/src/common/api/requests/business/houseSafety/houseZone.js similarity index 100% rename from Web/src/common/api/requests/business/houseZone.js rename to Web/src/common/api/requests/business/houseSafety/houseZone.js diff --git a/Web/src/common/api/requests/business/houseSafety/index.js b/Web/src/common/api/requests/business/houseSafety/index.js new file mode 100644 index 0000000..172c834 --- /dev/null +++ b/Web/src/common/api/requests/business/houseSafety/index.js @@ -0,0 +1,13 @@ +import houseProjectInfo from './houseProjectInfo' +import houseZone from './houseZone' +import houseCode from './houseCode' +import houseMember from './houseMember' +import houseSelector from './houseSelector' + +export default { + ...houseProjectInfo, + ...houseZone, + ...houseCode, + ...houseMember, + ...houseSelector +} \ No newline at end of file diff --git a/Web/src/common/api/requests/business/index.js b/Web/src/common/api/requests/business/index.js index f7c2f9a..3fef56b 100644 --- a/Web/src/common/api/requests/business/index.js +++ b/Web/src/common/api/requests/business/index.js @@ -1,11 +1,5 @@ -import houseProjectInfo from './houseProjectInfo' -import houseZone from './houseZone' -import houseCode from './houseCode' -import houseMember from './houseMember' +import houseSafety from './houseSafety' export default { - ...houseProjectInfo, - ...houseZone, - ...houseCode, - ...houseMember + ...houseSafety, } \ No newline at end of file diff --git a/Web/src/pages/business/house/code/form/part.vue b/Web/src/pages/business/house/code/form/part.vue index 55488e6..e74f75c 100644 --- a/Web/src/pages/business/house/code/form/part.vue +++ b/Web/src/pages/business/house/code/form/part.vue @@ -502,9 +502,12 @@ export default { } this.loading = true; - await this.getProjects(autoChange); - await this.getZones(autoChange); - this.loading = false; + try { + await this.getProjects(autoChange); + await this.getZones(autoChange); + } finally { + this.loading = false; + } }, async getProjects(autoChange = false) { diff --git a/Web/src/pages/business/house/info/index.vue b/Web/src/pages/business/house/info/index.vue index ecff33a..fea0f4c 100644 --- a/Web/src/pages/business/house/info/index.vue +++ b/Web/src/pages/business/house/info/index.vue @@ -30,7 +30,7 @@ (test)打开表单 diff --git a/Web/src/pages/business/house/member/index.vue b/Web/src/pages/business/house/member/index.vue index a0ff18c..fcc9f44 100644 --- a/Web/src/pages/business/house/member/index.vue +++ b/Web/src/pages/business/house/member/index.vue @@ -78,7 +78,7 @@
\ No newline at end of file diff --git a/Web/src/pages/business/house/member/selector/index.vue b/Web/src/pages/business/house/member/selector/index.vue index 8492d00..e6da0d4 100644 --- a/Web/src/pages/business/house/member/selector/index.vue +++ b/Web/src/pages/business/house/member/selector/index.vue @@ -9,10 +9,10 @@ > - + - + @@ -34,12 +34,14 @@ export default { /** 其他成员属性 */ /* ... */ + userId: '', }; }, methods: { onOpen(param) { this.visible = true; + this.userId = param.userId; }, /** @@ -55,6 +57,14 @@ export default { /** 当前组件的其他方法 */ /* ... */ + onReloadAll() { + if (this.$refs['selector-list']) { + this.$refs['selector-list'].onReloadData(); + } + if (this.$refs['selected-list']) { + this.$refs['selected-list'].onReloadData(); + } + }, }, }; \ No newline at end of file diff --git a/Web/src/pages/business/house/member/selector/selectedList.vue b/Web/src/pages/business/house/member/selector/selectedList.vue index e5e6a79..afd452d 100644 --- a/Web/src/pages/business/house/member/selector/selectedList.vue +++ b/Web/src/pages/business/house/member/selector/selectedList.vue @@ -1,3 +1,285 @@ \ No newline at end of file + + + + + + + + + + + + 全部 + {{item.value}} + + + + + {{item.value}} + + + + + + + + + + + + 撤销 + + + + + + + + + + \ No newline at end of file diff --git a/Web/src/pages/business/house/member/selector/selectorList.vue b/Web/src/pages/business/house/member/selector/selectorList.vue index 5dccbbf..c3f2766 100644 --- a/Web/src/pages/business/house/member/selector/selectorList.vue +++ b/Web/src/pages/business/house/member/selector/selectorList.vue @@ -10,12 +10,12 @@ :auto-load="false" :columns="columns" :load-data="loadData" - :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" + :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: (keys) => selectedRowKeys = keys }" @query="onQuery" @resetQuery="onResetQuery" ref="table" > - + @@ -55,8 +55,13 @@ - - 确认选择 + + 确认选择 @@ -72,17 +77,17 @@