氚云前后代码小栗子,新增页面获取当前登录人管理的下级人员
前端代码 // 加载事件 OnLoad: function() { if( !$.SmartForm.ResponseContext.IsCreateMode ) { return; } var that = this; var par = { a: 1 }; var success = function( res ) { if( res.Successful == true ) { var rd = res.ReturnData; if( rd == null || rd.length == 0 ) { $.IShowWarn( "没找到数据!" ); return; } var mx = that.D101303Fe4bca544e60546798cedc16678f7c8f5;//获取子表控件 mx.ClearRows(); //清空子表所有数据 var empList = rd.empList; if( empList == null || empList.length == 0 ) { $.IShowWarn( "没找到数据!" ); return; } for( var i = 0;i < empList.length;i++ ) { var subObjectId = $.IGuid(); var subObject = empList[ i ].ValueTable; mx.AddRow( subObjectId, { "D101303Fe4bca544e60546798cedc16678f7c8f5.F0000003": subObject[ "F0000003" ] });// 添加子表行 } } } var error = function( err ) { $.IShowError( "错误", JSON.stringify( err ) ); } $.SmartForm.PostForm( "GetChildEmp", par, success, error, false ); },
后端代码
protected override void OnSubmit(string actionName, H3.SmartForm.SmartFormPostValue postValue, H3.SmartForm.SubmitSmartFormResponse response) { if(actionName == "GetChildEmp") { if(this.Request.BizObject.Status == H3.DataModel.BizObjectStatus.Draft) { response.ReturnData = new Dictionary<string, object>(); string userid = this.Request.UserContext.UserId; H3.Organization.User user = (H3.Organization.User) this.Engine.Organization.GetUnit(userid); string[] pIds = user.ParentIds; string[] userIds = this.Request.Engine.Organization.GetChildren(pIds[0], H3.Organization.UnitType.User, true, H3.Organization.State.Active); if(userIds == null || userIds.Length == 0) { response.Errors.Add("未找到当前子级人员"); return; } List < H3.Data.Serialization.VirtualObject > virtualList = new List<H3.Data.Serialization.VirtualObject>(); foreach(string id in userIds) { H3.Data.Serialization.VirtualObject vobject = new H3.Data.Serialization.VirtualObject(); //string name = (string) this.Engine.Organization.GetName(id, H3.Organization.NameType.Name); vobject.ValueTable["F0000003"] = id; virtualList.Add(vobject); } response.ReturnData.Add("empList", virtualList); } } else { } base.OnSubmit(actionName, postValue, response); }