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 { /// /// 加载事件列表 /// void LoadEventList() { LoadEvent_PictureOptionView(); LoadEvent_EditRoomName(); LoadEvent_SkinBindFloor(); LoadEvent_SkipEditFunctionList(); LoadEvent_Option(); //LoadEvent_SkipSharedRoomFunctionPage(); } /// /// 底部按钮事件 /// 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(); waitPage.RemoveFromParent(); }); } }) { IsBackground = true }.Start(); }; new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteRoomTip, action); }; } /// /// 显示背景图选择选项 /// void LoadEvent_PictureOptionView() { btnRoomBg.MouseUpEventHandler = (sender, e) => { LoadPictureOptionView(); }; } /// /// 加载修改房间名称窗口事件 /// void LoadEvent_EditRoomName() { Action 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.UpdataRoomInfo(); }; EventHandler eventHandler = (sender, e) => { List roomNameList = new List(); 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; } /// /// 跳转绑定楼层界面 /// void LoadEvent_SkinBindFloor() { EventHandler eventHandler = (sender, e) => { Action floorsCallBackAction = () => { btnFloorInfo.Text = room.floorName; room.UpdataRoomInfo(); }; 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; } /// /// 跳转到编辑房间功能界面 /// void LoadEvent_SkipEditFunctionList() { EventHandler 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; } ///// ///// 跳转到功能分享界面 ///// //void LoadEvent_SkipSharedRoomFunctionPage() //{ // if (pageTitleId != StringId.AddRoom) // { // EventHandler eHandler = (sender, e) => // { // List sds = new List(); // 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; // } //} /// /// 加载背景图选择区域事件列表 /// 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 action = (obj) => { room.backgroundImage = obj; btnRoomBg.ImageBytes = null;//解决有ImageBytes不加载ImagePath btnRoomBg.ImagePath = room.backgroundImage; room.UpdataRoomInfo(); modifyImageAction?.Invoke(); }; var galleryPage = new RoomGalleryPage(room.backgroundImage, action); MainPage.BasePageView.AddChidren(galleryPage); galleryPage.LoadPage(true); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; } /// /// 裁剪完照片回调,统一处理 /// /// 裁剪后的真实路径 /// 自定义的图片名称 void CropImageCallBack(string selectImagePath) { if (string.IsNullOrEmpty(selectImagePath) == true) { return; } //上传成功到回调 Action uploadSuccessAction = (imageUrl) => { //2020-12-03 需要讲最新的图片路径同步到云端 room.backgroundImage = imageUrl; room.UpdataRoomInfo(); modifyImageAction?.Invoke(); }; //上传图片到云端 UploadImage(selectImagePath, btnRoomBg, room, uploadSuccessAction); } /// /// 上传图片方法 /// /// 裁剪后的图片路径 /// /// void UploadImage(string selectImagePath, ImageView imageView, Room mRoom, Action 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 { } } } }