using System;
|
namespace Shared.Phone.UserCenter.Member
|
{
|
/// <summary>
|
/// 成员信息管理
|
/// </summary>
|
public class MemberManagementForm : EditorCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 成员的信息
|
/// </summary>
|
private MemberInfoRes memberInfo = null;
|
/// <summary>
|
/// 管理员权限图标控件
|
/// </summary>
|
private MostRightIconControl btnTopIcon = null;
|
/// <summary>
|
/// 权限的翻译名控件
|
/// </summary>
|
private NormalViewControl btnAuthority = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
/// <param name="info">成员信息</param>
|
public void ShowForm(MemberInfoRes info)
|
{
|
this.memberInfo = info;
|
|
//设置标题信息
|
string title = string.IsNullOrEmpty(info.UserName) == true ? info.Account : info.UserName;
|
base.SetTitleText(title);
|
|
//初始化右上角的图标
|
this.InitTopRightIcon();
|
|
//初始化中部控件
|
this.InitMiddleFrame();
|
}
|
|
/// <summary>
|
/// 初始化右上角的图标
|
/// </summary>
|
private void InitTopRightIcon()
|
{
|
if (UserCenterResourse.UserInfo.AuthorityNo != 1)
|
{
|
return;
|
}
|
//管理员权限图标
|
btnTopIcon = new MostRightIconControl(69, 69);
|
if (memberInfo.AccountType == 1)
|
{
|
btnTopIcon.UnSelectedImagePath = "Item/HadAuthority.png";
|
}
|
else
|
{
|
btnTopIcon.UnSelectedImagePath = "Item/NotAuthority.png";
|
}
|
topFrameLayout.AddChidren(btnTopIcon);
|
btnTopIcon.InitControl();
|
btnTopIcon.ButtonClickEvent += (sender, e) =>
|
{
|
string msg = Language.StringByID(R.MyInternationalizationString.uDownSubAccountLevel);
|
if (memberInfo.AccountType != 1)
|
{
|
msg = Language.StringByID(R.MyInternationalizationString.uUpSubAccountLevel);
|
if (msg.Contains("{0}") == true)
|
{
|
msg = string.Format(msg, string.IsNullOrEmpty(memberInfo.UserName) == true ? memberInfo.Account : memberInfo.UserName);
|
}
|
}
|
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
|
{
|
//二次安全验证,如果没有设置有,直接跳过验证
|
HdlCheckLogic.Current.CheckSecondarySecurity(
|
() => { this.UpOrDownSubAccountLevel(); },
|
() => { this.UpOrDownSubAccountLevel(); });
|
});
|
};
|
}
|
|
/// <summary>
|
/// 初始化中部控件
|
/// </summary>
|
private void InitMiddleFrame()
|
{
|
//清空bodyFrame
|
this.ClearBodyFrame();
|
|
//初始化用户图标
|
this.InitMenberIconControl();
|
|
//初始化信息列表
|
this.InitInfoList();
|
}
|
|
/// <summary>
|
/// 初始化用户图标
|
/// </summary>
|
private void InitMenberIconControl()
|
{
|
var frame = new FrameLayout();
|
frame.Height = Application.GetRealHeight(372);
|
frame.BackgroundColor = UserCenterColor.Current.White;
|
bodyFrameLayout.AddChidren(frame);
|
|
//用户图标
|
var btnUserIcon = new PicViewControl(207, 207);
|
btnUserIcon.Y = Application.GetRealHeight(45);
|
btnUserIcon.Gravity = Gravity.CenterHorizontal;
|
btnUserIcon.UnSelectedImagePath = "Center/Admin.png";
|
frame.AddChidren(btnUserIcon);
|
|
//权限
|
btnAuthority = new NormalViewControl(800, 50, true);
|
btnAuthority.TextAlignment = TextAlignment.Center;
|
btnAuthority.TextSize = 12;
|
btnAuthority.Y = btnUserIcon.Bottom + Application.GetRealHeight(23);
|
btnAuthority.Gravity = Gravity.CenterHorizontal;
|
btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor;
|
btnAuthority.TextID = R.MyInternationalizationString.uMember;
|
if (memberInfo.AccountType == 1)
|
{
|
//拥有管理员权限
|
btnAuthority.TextID = R.MyInternationalizationString.uMemberHadActionAuthority;
|
}
|
frame.AddChidren(btnAuthority);
|
}
|
|
#endregion
|
|
#region ■ 初始化信息列表_____________________
|
|
/// <summary>
|
/// 初始化信息列表
|
/// </summary>
|
private void InitInfoList()
|
{
|
//标题:成员权限
|
var btnMenberTile = new DetailTitleControl(800, 60, true);
|
btnMenberTile.X = ControlCommonResourse.XXLeft;
|
btnMenberTile.Y = Application.GetRealHeight(418);
|
btnMenberTile.TextColor = UserCenterColor.Current.TextColor2;
|
btnMenberTile.TextID = R.MyInternationalizationString.MenberAuthority;
|
btnMenberTile.TextSize = 15;
|
bodyFrameLayout.AddChidren(btnMenberTile);
|
|
var frame = new FrameListControl();
|
frame.Height = Application.GetRealHeight(311);
|
frame.BackgroundColor = UserCenterColor.Current.White;
|
frame.Y = Application.GetRealHeight(501);
|
bodyFrameLayout.AddChidren(frame);
|
|
//塞一个空白的进去占空间
|
var rowTemp = new FrameRowControl();
|
rowTemp.UseClickStatu = false;
|
rowTemp.Height = Application.GetRealHeight(23) - frame.rowSpace;
|
frame.AddChidren(rowTemp);
|
|
//添加远程操作行
|
var rowRemote = new FrameRowControl(frame.rowSpace / 2);
|
rowRemote.UseClickStatu = false;
|
frame.AddChidren(rowRemote);
|
this.AddRemoteRow(rowRemote);
|
|
//添加已共享内容行
|
var rowShard = new FrameRowControl(frame.rowSpace / 2);
|
frame.AddChidren(rowShard);
|
this.AddShardContentRow(rowShard);
|
|
//一旦移除该家庭成员,他/她将无法使用该网关下所绑定的设备
|
var btnNote1 = new NormalViewControl(613, 98, true);
|
btnNote1.X = Application.GetRealWidth(246);
|
btnNote1.Y = Application.GetRealHeight(1328);
|
btnNote1.TextSize = 12;
|
btnNote1.TextID = R.MyInternationalizationString.RemoveMenberAndDonotUserBindGatewayDevice;
|
btnNote1.IsMoreLines = true;
|
btnNote1.TextColor = UserCenterColor.Current.TextGrayColor1;
|
btnNote1.TextAlignment = TextAlignment.Center;
|
bodyFrameLayout.AddChidren(btnNote1);
|
|
var btnIcon = new IconViewControl(58);
|
btnIcon.X = Application.GetRealWidth(167);
|
btnIcon.Y = Application.GetRealHeight(1328);
|
btnIcon.UnSelectedImagePath = "Item/Tips.png";
|
bodyFrameLayout.AddChidren(btnIcon);
|
|
//添加移除按钮
|
var btnDelete = new BottomClickButton();
|
btnDelete.TextID = R.MyInternationalizationString.RemoveBotton;
|
btnDelete.BackgroundColor = 0xfff75858;
|
bodyFrameLayout.AddChidren(btnDelete);
|
btnDelete.ButtonClickEvent += (sender, e) =>
|
{
|
//确定要移除该家庭成员吗?
|
string msg = Language.StringByID(R.MyInternationalizationString.uConfirmRemoveMember);
|
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
|
{
|
//删除子账号
|
this.DeleteSubAccount();
|
});
|
};
|
}
|
|
#endregion
|
|
#region ■ 远程操作行_________________________
|
|
/// <summary>
|
/// 添加远程操作行
|
/// </summary>
|
/// <param name="row">Row.</param>
|
private void AddRemoteRow(FrameRowControl row)
|
{
|
//图标
|
var btnIcon = row.AddLeftIcon(81);
|
btnIcon.UnSelectedImagePath = "Item/Remote.png";
|
|
//文字:远程操作
|
var btnName = row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.RemoteManipulation), 500);
|
btnName.TextID = R.MyInternationalizationString.RemoteManipulation;
|
btnName.TextSize = 15;
|
|
//开关
|
var btnSwitch = row.AddMostRightSwitchIcon();
|
btnSwitch.ButtonClickEvent += (sender, e) =>
|
{
|
btnSwitch.IsSelected = !btnSwitch.IsSelected;
|
};
|
//底线
|
row.AddBottomLine();
|
}
|
|
#endregion
|
|
#region ■ 已共享内容行_______________________
|
|
/// <summary>
|
/// 添加已共享内容行
|
/// </summary>
|
/// <param name="row">Row.</param>
|
private void AddShardContentRow(FrameRowControl row)
|
{
|
//图标
|
var btnIcon = row.AddLeftIcon(81);
|
btnIcon.UnSelectedImagePath = "Item/ShardMenu.png";
|
|
//共享
|
var btnName = row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uShared2), 500);
|
btnName.TextID = R.MyInternationalizationString.uShared2;
|
btnName.TextSize = 15;
|
|
//右图标
|
row.AddRightArrow();
|
|
var memberShardInfo = new MemberShardInfoData();
|
row.ButtonClickEvent += (sender, e) =>
|
{
|
var form = new SharedContent.LookSharedListRoomForm();
|
form.AddForm(memberInfo, memberShardInfo);
|
};
|
}
|
|
#endregion
|
|
#region ■ 升级或者降级子账号_________________
|
|
/// <summary>
|
/// 升级或者降级子账号
|
/// </summary>
|
public async void UpOrDownSubAccountLevel()
|
{
|
//开启进度条
|
this.ShowProgressBar();
|
|
var pra = new UpOrDownLevelPra();
|
pra.DistributedMark = memberInfo.DistributedMark;
|
|
bool result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpSubAccount", false, pra);
|
if (result == false)
|
{
|
this.CloseProgressBar();
|
return;
|
}
|
this.CloseProgressBar();
|
|
//变更权限
|
memberInfo.AccountType = memberInfo.AccountType == 1 ? 0 : 1;
|
|
Application.RunOnMainThread(() =>
|
{
|
if (this.Parent == null)
|
{
|
return;
|
}
|
//变更权限图标
|
if (memberInfo.AccountType == 1)
|
{
|
btnTopIcon.UnSelectedImagePath = "Item/HadAuthority.png";
|
}
|
else
|
{
|
btnTopIcon.UnSelectedImagePath = "Item/NotAuthority.png";
|
}
|
//变更权限文字
|
btnAuthority.TextID = memberInfo.AccountType == 1 ? R.MyInternationalizationString.uMemberHadActionAuthority : R.MyInternationalizationString.uMember;
|
|
//打开显示成功的画面
|
if (memberInfo.AccountType == 1)
|
{
|
var form = new SubAccountLevelUpSuccessForm();
|
form.AddForm(memberInfo);
|
}
|
});
|
}
|
|
#endregion
|
|
#region ■ 删除子账号_________________________
|
|
/// <summary>
|
/// 删除子账号
|
/// </summary>
|
private async void DeleteSubAccount()
|
{
|
//开启进度条
|
this.ShowProgressBar();
|
|
var pra = new DeleteSubAccountPra();
|
pra.SubAccount = memberInfo.SubAccountDistributedMark;
|
|
bool result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/DeletedSubAccount", false, pra);
|
//关闭进度条
|
this.CloseProgressBar();
|
|
if (result == false)
|
{
|
return;
|
}
|
|
//移除缓存
|
UserCenterResourse.ListMemberInfo.RemoveAll((obj) =>
|
{
|
if (obj.SubAccountDistributedMark == memberInfo.SubAccountDistributedMark)
|
{
|
return true;
|
}
|
return false;
|
});
|
UserCenterLogic.SaveLocalMemberListInfo();
|
|
//从成员一览画面移除
|
this.LoadFormMethodByName("MemberListForm", "DeleteRowByAccount", memberInfo.Account);
|
//自身关闭
|
this.CloseForm();
|
}
|
|
#endregion
|
|
#region ■ 结构体_____________________________
|
|
/// <summary>
|
/// 升级或者降级子账号的启动参数
|
/// </summary>
|
private class UpOrDownLevelPra : IfacePraCommon
|
{
|
/// <summary>
|
/// 通过《住宅的Guid查询住宅下面的子账号》接口时,返回的DistributedMark字段
|
/// </summary>
|
public string DistributedMark = string.Empty;
|
}
|
|
/// <summary>
|
/// 删除子账号的启动参数
|
/// </summary>
|
private class DeleteSubAccountPra : IfacePraCommon
|
{
|
/// <summary>
|
/// 通过《住宅的Guid查询住宅下面的子账号》接口时,返回的DistributedMark字段
|
/// </summary>
|
public string SubAccount = string.Empty;
|
/// <summary>
|
/// HouseDistributedMark
|
/// </summary>
|
public string HouseDistributedMark = Common.Config.Instance.HomeId;
|
}
|
#endregion
|
}
|
}
|