using System;
|
using Shared;
|
using HDL_ON.Entity;
|
using System.Collections.Generic;
|
using HDL_ON.DAL.Server;
|
using System.Threading;
|
|
namespace HDL_ON.UI
|
{
|
public partial class RoomEditPage
|
{
|
/// <summary>
|
/// 加载事件列表
|
/// </summary>
|
void LoadEventList()
|
{
|
LoadEvent_PictureOptionView();
|
LoadEvent_EditRoomName();
|
LoadEvent_SkinBindFloor();
|
LoadEvent_SkipEditFunctionList();
|
LoadEvent_Option();
|
//LoadEvent_SkipSharedRoomFunctionPage();
|
}
|
|
/// <summary>
|
/// 底部按钮事件
|
/// </summary>
|
void LoadEvent_Option()
|
{
|
btnOption.MouseUpEventHandler = (sender, e) =>
|
{
|
Action action = () =>
|
{
|
var waitPage = new Loading();
|
waitPage.Start();
|
new Thread(() =>
|
{
|
try
|
{
|
var delResult = SpatialInfo.CurrentSpatial.DelRoom(room);
|
if (delResult == StateCode.SUCCESS)
|
{
|
foreach (var f in FunctionList.List.GetDeviceFunctionList())
|
{
|
if (f.roomIds.Contains(room.roomId))
|
{
|
f.roomIds.Remove(room.roomId);
|
}
|
}
|
Application.RunOnMainThread(() =>
|
{
|
//删除事件回调
|
this.deleteAction?.Invoke();
|
this.RemoveFromParent();
|
});
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"添加房间失败msg:{ex.Message}");
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
waitPage.Hide();
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
};
|
new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteRoomTip, action);
|
};
|
}
|
|
|
/// <summary>
|
/// 显示背景图选择选项
|
/// </summary>
|
void LoadEvent_PictureOptionView()
|
{
|
btnRoomBg.MouseUpEventHandler = (sender, e) =>
|
{
|
LoadPictureOptionView();
|
};
|
}
|
|
/// <summary>
|
/// 加载修改房间名称窗口事件
|
/// </summary>
|
void LoadEvent_EditRoomName()
|
{
|
Action<string> callBack = (str) =>
|
{
|
//房间名称不能为空
|
if (string.IsNullOrEmpty(str))
|
{
|
new Tip()
|
{
|
CloseTime = 1,
|
Text = Language.StringByID(StringId.RoomNameCannotBeEmpty),
|
Direction = AMPopTipDirection.None,
|
}.Show(bodyView);
|
return;
|
}
|
btnRoomName.Text = str;
|
room.roomName = str;
|
room.SaveRoomData();
|
};
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
List<string> roomNameList = new List<string>();
|
foreach (var rroom in SpatialInfo.CurrentSpatial.RoomList)
|
{
|
roomNameList.Add(rroom.roomName);
|
}
|
new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.roomName, callBack, StringId.RoomNameCannotBeEmpty, StringId.EidtFailed_RoomAlreadyExists, roomNameList);
|
};
|
btnEditRoomNameIcon.MouseUpEventHandler = eventHandler;
|
roomNameRow.MouseUpEventHandler = eventHandler;
|
btnRoomName.MouseUpEventHandler = eventHandler;
|
}
|
|
/// <summary>
|
/// 跳转绑定楼层界面
|
/// </summary>
|
void LoadEvent_SkinBindFloor()
|
{
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
Action floorsCallBackAction = () =>
|
{
|
btnFloorInfo.Text = room.floorName;
|
room.SaveRoomData();
|
};
|
var residentialManagePage = new RoomBinglingFloorPage(floorsCallBackAction, room);
|
MainPage.BasePageView.AddChidren(residentialManagePage);
|
residentialManagePage.LoadPage();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
btnFloorInfo.MouseUpEventHandler = eventHandler;
|
floorView.MouseUpEventHandler = eventHandler;
|
}
|
|
/// <summary>
|
/// 跳转到编辑房间功能界面
|
/// </summary>
|
void LoadEvent_SkipEditFunctionList()
|
{
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
var residentialManagePage = new RoomEditFunctionPage(room);
|
MainPage.BasePageView.AddChidren(residentialManagePage);
|
residentialManagePage.LoadPage();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
btnFunctionManagementRight.MouseUpEventHandler = eventHandler;
|
functionManagemantView.MouseUpEventHandler = eventHandler;
|
}
|
|
///// <summary>
|
///// 跳转到功能分享界面
|
///// </summary>
|
//void LoadEvent_SkipSharedRoomFunctionPage()
|
//{
|
// if (pageTitleId != StringId.AddRoom)
|
// {
|
// EventHandler<MouseEventArgs> eHandler = (sender, e) =>
|
// {
|
// List<ShareData> sds = new List<ShareData>();
|
// foreach (var f in room.GetRoomFunctions(false))
|
// {
|
// var sd = new ShareData();
|
// sd.ShareName = f.sid;
|
// sd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID;
|
// sd.ShareDataBytes = DAL.System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f));
|
// //sd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark;
|
// sds.Add(sd);
|
// }
|
// var mmp = new MemberFunctionPermissionPage(room, sds);
|
// MainPage.BasePageView.AddChidren(mmp);
|
// mmp.LoadPage(StringId.ChooseSharedFunction);
|
// MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
// };
|
// btnSharedRight.MouseUpEventHandler = eHandler;
|
// sharedView.MouseUpEventHandler = eHandler;
|
// btnSharedTitle.MouseUpEventHandler = eHandler;
|
// }
|
//}
|
/// <summary>
|
/// 加载背景图选择区域事件列表
|
/// </summary>
|
void LoadEvent_PictureOptionViewEventList(FrameLayout baseView)
|
{
|
pictureOptionView.MouseUpEventHandler = (sender, e) =>
|
{
|
baseView.RemoveFromParent();
|
};
|
|
baseView.MouseUpEventHandler = (sender, e) =>
|
{
|
baseView.RemoveFromParent();
|
};
|
btnCancel.MouseUpEventHandler = (sender, e) =>
|
{
|
baseView.RemoveFromParent();
|
};
|
btnTakePicture.MouseDownEventHandler = (sender, e) =>
|
{
|
btnTakePicture.IsSelected = true;
|
};
|
//拍照
|
btnTakePicture.MouseUpEventHandler = (sender, e) =>
|
{
|
btnTakePicture.IsSelected = false;
|
|
var imageName = Guid.NewGuid().ToString();
|
//var imageName = room.sid;
|
CropImage.TakePicture((imagePath) =>
|
{
|
CropImageCallBack(imagePath);
|
|
}, imageName, 16, 9);
|
|
baseView.RemoveFromParent();
|
};
|
//选择照片
|
btnAlbum.MouseDownEventHandler = (sender, e) =>
|
{
|
btnAlbum.IsSelected = true;
|
};
|
|
btnAlbum.MouseUpEventHandler = (sender, e) =>
|
{
|
btnAlbum.IsSelected = false;
|
|
//从相册选择图片裁剪
|
var imageName = Guid.NewGuid().ToString();
|
//var imageName = room.sid;
|
CropImage.SelectPicture((imagePath) =>
|
{
|
CropImageCallBack(imagePath);
|
|
}, imageName, 16, 9);
|
|
baseView.RemoveFromParent();
|
|
};
|
|
//房间默认图库
|
btnDefaultGallery.MouseUpEventHandler = (sender, e) => {
|
pictureOptionView.Parent.RemoveFromParent();
|
Action<string> action = (obj) =>
|
{
|
room.backgroundImage = obj;
|
btnRoomBg.ImagePath = room.backgroundImage;
|
room.SaveRoomData();
|
};
|
|
var galleryPage = new RoomGalleryPage(room.backgroundImage, action);
|
MainPage.BasePageView.AddChidren(galleryPage);
|
galleryPage.LoadPage(true);
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
|
};
|
}
|
|
/// <summary>
|
/// 裁剪完照片回调,统一处理
|
/// </summary>
|
/// <param name="imagePath">裁剪后的真实路径</param>
|
/// <param name="imageName">自定义的图片名称</param>
|
void CropImageCallBack(string selectImagePath)
|
{
|
if (string.IsNullOrEmpty(selectImagePath) == true)
|
{
|
return;
|
}
|
//上传成功到回调
|
Action<string> uploadSuccessAction = (imageUrl) =>
|
{
|
//2020-12-03 需要讲最新的图片路径同步到云端
|
room.backgroundImage = imageUrl;
|
room.SaveRoomData();
|
};
|
//上传图片到云端
|
UploadImage(selectImagePath, btnRoomBg, room, uploadSuccessAction);
|
}
|
|
/// <summary>
|
/// 上传图片方法
|
/// </summary>
|
/// <param name="selectImagePath">裁剪后的图片路径</param>
|
/// <param name="imageView"></param>
|
/// <param name="uploadSuccessAction"></param>
|
void UploadImage(string selectImagePath, ImageView imageView, Room mRoom, Action<string> uploadSuccessAction)
|
{
|
try
|
{
|
//MainPage.Log("SelectPicture 裁剪图片返回路径: " + selectImagePath);
|
//1.读取裁剪后的图片,然后删除
|
var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
|
System.IO.File.Delete(selectImagePath);
|
|
var waitPage = new Loading();
|
bodyView.AddChidren(waitPage);
|
waitPage.Start(Language.StringByID(StringId.PleaseWait));
|
//开始上传
|
new Thread(() =>
|
{
|
try
|
{
|
var newImageName = mRoom.roomName.Trim() + ".png";
|
var uploadImageObj = new UploadImageObj()
|
{
|
prefix = "Room" + Utlis.GetTimestamp(),
|
fileName = newImageName,
|
uid = mRoom.uid,
|
content = imageBytes,
|
};
|
|
var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj);
|
if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(newImageName))
|
{
|
//上传成功
|
Application.RunOnMainThread(() =>
|
{
|
//Utlis.WriteLine("上传成功:" + imageUrl);
|
//1.2如果是自定义图片删除之前的
|
if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("Classification/Room/Roombg"))
|
{
|
//Utlis.WriteLine("删除: " + imageView.ImagePath);
|
System.IO.File.Delete(imageView.ImagePath);
|
}
|
//重命名保存
|
ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes);
|
imageView.ImagePath = null;
|
imageView.ImageBytes = imageBytes;
|
//上传成功
|
Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully));
|
uploadSuccessAction?.Invoke(imageUrl);
|
});
|
}
|
else
|
{
|
//上传失败
|
Application.RunOnMainThread(() =>
|
{
|
//上传失败
|
Utlis.ShowTip(Language.StringByID(StringId.UploadFailed));
|
});
|
}
|
|
}
|
catch (Exception ex)
|
{
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (waitPage != null)
|
{
|
waitPage.RemoveFromParent();
|
waitPage = null;
|
}
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
catch { }
|
}
|
|
}
|
}
|