From 48c07e0a371f67b97abc7c2e61d7f23d060324fc Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 28 一月 2021 18:24:53 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into NewFilePath
---
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png | 0
HDL-ON_Android/Assets/Language.ini | 37
HDL-ON_iOS/HDL-ON_iOS.csproj | 51
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs | 39
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png | 0
HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressBar.cs | 139
HDL_ON/HDL_ON.projitems | 49
HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs | 217 +
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png | 0
HDL-ON_Android/Resources/Resource.designer.cs | 3
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandMode.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandMode.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png | 0
HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs | 34
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepMode.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png | 0
HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameControl.cs | 234 +
HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListControl.cs | 211 +
HDL_ON/UI/UI0-Stan/Controls/CompoundControls/SeekBarImageControl.cs | 248 +
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png | 0
HDL_ON/Entity/Function/WeepRobot.cs | 10
HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs | 323 ++
HDL_ON/UI/UI2/.DS_Store | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png | 0
HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DialogTitleMenuControl.cs | 154
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png | 0
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs | 203 +
HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconBigViewControl.cs | 82
HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs | 323 ++
HDL-ON_iOS/Resources/Language.ini | 39
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png | 0
HDL_ON/UI/UI0-Stan/Controls/CompoundControls/NormalSelectControl.cs | 144
HDL_ON/UI/CSS/CSS.cs | 5
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png | 0
HDL_ON/DAL/DriverLayer/Control.cs | 26
HDL_ON/DAL/.DS_Store | 0
HDL_ON/Entity/Function/AirCleaner.cs | 10
HDL_ON/UI/UI0-Stan/Logic/HdlDeviceStatuPushLogic.cs | 63
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemEditorControl.cs | 137
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGear.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png | 0
HDL_ON/UI/UI0-Stan/Controls/NormalControls/PicViewControl.cs | 24
HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs | 880 +++++
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGear.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png | 0
HDL_ON/.DS_Store | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png | 0
HDL_ON/DAL/Server/HttpServerRequest.cs | 2
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png | 0
HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs | 49
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGear.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoMode.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png | 0
HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameLayoutStatuControl.cs | 217 +
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png | 0
HDL_ON/UI/UI0-Stan/Form/HideOptionDirectoryListForm.cs | 85
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png | 0
HDL-ON_Android/HDL-ON_Android.csproj | 47
HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/NormalFrameLayout.cs | 15
HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs | 484 +++
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepMode.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGear.png | 0
HDL_ON/UI/UI0-Stan/Controls/BaseControl/RowLayoutBase.cs | 60
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png | 0
HDL_ON/UI/.DS_Store | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png | 0
HDL_ON/UI/UI0-Stan/Enum/CommonEnum.cs | 115
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGear.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoMode.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Fan.png | 0
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomTimeSelectControl.cs | 136
HDL_ON/Entity/Function/Function.cs | 29
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs | 11
HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameRowControl.cs | 391 ++
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png | 0
HDL_ON/UI/UI0-Stan/Form/HideOptionSearchAllFile.cs | 181 +
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Fan.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png | 0
HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs | 344 ++
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png | 0
HDL_ON/Entity/.DS_Store | 0
HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs | 12
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png | 0
HDL_ON/UI/UI0-Stan/Controls/BaseControl/FrameLayoutBase.cs | 111
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Time.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png | 0
HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconViewControl.cs | 32
HDL_ON/UI/UI0-Stan/Logic/HdlFileLogic.cs | 292 +
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Time.png | 0
HDL_ON/UI/UI0-Stan/Controls/CompoundControls/FanGearSeekBarControl.cs | 70
HDL_ON/UI/UI2/FuntionControlView/.DS_Store | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png | 0
HDL_ON/UI/UI0-Stan/Controls/TextInputControls/TextInputControl.cs | 43
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png | 0
HDL_ON/UI/UI0-Stan/Form/DeviceFunctionCardCommonForm.cs | 296 +
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png | 0
HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs | 96
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomDialogCommon.cs | 124
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGear.png | 0
HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs | 320 ++
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png | 0
HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaFanPage.cs | 277 +
HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameRefreshControl.cs | 235 +
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png | 0
HDL_ON/Entity/FunctionList.cs | 38
HDL_ON/UI/UI0-Stan/Controls/RowLayoutControls/RowLayoutControl.cs | 70
HDL_ON/UI/UI0-Stan/Controls/NormalControls/MostRightIconControl.cs | 78
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png | 0
HDL_ON/UI/UI0-Stan/Controls/BaseControl/ButtonCtrBase.cs | 340 ++
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png | 0
HDL_ON/UI/UI0-Stan/Logic/HdlThreadLogic.cs | 117
HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameListControl.cs | 100
HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DirectionImageControl.cs | 259 +
HDL_ON/UI/UI0-Stan/Form/HideOptionFileContentForm.cs | 91
HDL_ON/Common/R.cs | 143
HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs | 335 ++
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png | 0
163 files changed, 9,310 insertions(+), 20 deletions(-)
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
old mode 100644
new mode 100755
index 98a2494..4e6df03
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -1034,6 +1034,7 @@
378=鍙樺寲鏃堕棿
379=鍙樺寲閫熷害
380=姝ゅ鍔熻兘鏆傛湭寮�鏀撅綖
+381=閲嶆柊鍔犺浇
400=娆㈣繋鍥炲
401=浜岀淮鐮佸け鏁堬紝璇烽噸璇�
402=閲嶈瘯
@@ -1044,6 +1045,42 @@
407=闃呰
408=纭娣诲姞
+1000=瀹ゅ唴婀垮害
+1001=绔ラ攣
+1002=璐熺瀛�
+1003=鏉�鑿�
+1004=鍔犳箍
+1005=婊よ姱澶嶄綅
+1006=鐏厜
+1007=鑷姩妯″紡
+1008=鎵嬪姩妯″紡
+1009=寮哄姴妯″紡
+1010=鐫$湢妯″紡
+1011=瀹氭椂
+1012=閫夋嫨椋庨��
+1013=妗�
+1014=璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
+1015=浣庢。
+1016=涓。
+1017=楂樻。
+1018=瀹氭椂璁剧疆
+1019=灏忔椂
+1020=婊よ姱浣跨敤锛�
+1021=绌烘皵鍑�鍖栧櫒
+1022=褰撳墠椋庨��
+1023=鍙栨秷瀹氭椂
+1024=鎵湴鏈哄櫒浜�
+1025=鍚稿姏璋冭妭
+1026=鍚稿姏1妗�
+1027=鍚稿姏2妗�
+1028=鍚稿姏3妗�
+1029=鍏呯數
+1030=澹伴煶
+1031=闈欓煶
+1032=娓呮壂妯″紡
+1033=鑰楁潗绠$悊
+1034=鍘嗗彶璁板綍
+
5000=闊充箰
5001=缁勫悎
5002=璁剧疆
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png
new file mode 100755
index 0000000..5000333
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png
new file mode 100755
index 0000000..b54bfcc
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png
new file mode 100755
index 0000000..d0ff021
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoMode.png
new file mode 100755
index 0000000..75fe12d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png
new file mode 100755
index 0000000..79a22f9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png
new file mode 100755
index 0000000..ce48e58
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png
new file mode 100755
index 0000000..f5766e9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png
new file mode 100755
index 0000000..42359dd
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png
new file mode 100755
index 0000000..ad3a695
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Fan.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Fan.png
new file mode 100755
index 0000000..d86e7e3
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Fan.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandMode.png
new file mode 100755
index 0000000..4b60248
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png
new file mode 100755
index 0000000..f88f99b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGear.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGear.png
new file mode 100755
index 0000000..3be9831
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGear.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png
new file mode 100755
index 0000000..ab32cf8
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGear.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGear.png
new file mode 100755
index 0000000..5dec4f7
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGear.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png
new file mode 100755
index 0000000..f4c23c4
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGear.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGear.png
new file mode 100755
index 0000000..df4e40b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGear.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png
new file mode 100755
index 0000000..7b77e7a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepMode.png
new file mode 100755
index 0000000..8b816ab
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png
new file mode 100755
index 0000000..b1b0157
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Time.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Time.png
new file mode 100755
index 0000000..34cca34
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/Fan/Time.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png
new file mode 100755
index 0000000..96b1720
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png
new file mode 100755
index 0000000..f47bfdc
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png
new file mode 100755
index 0000000..836bfee
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png
new file mode 100755
index 0000000..202c14a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png
new file mode 100755
index 0000000..3c41f72
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png
new file mode 100755
index 0000000..93fae74
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png
new file mode 100755
index 0000000..060cb86
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png
new file mode 100755
index 0000000..31f1838
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png
new file mode 100755
index 0000000..8b69572
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png
new file mode 100755
index 0000000..543aa27
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png
new file mode 100755
index 0000000..e273ad8
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png
new file mode 100755
index 0000000..65f03ac
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png
new file mode 100755
index 0000000..9475750
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png
new file mode 100755
index 0000000..b47b341
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png
new file mode 100755
index 0000000..6f47cf4
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png
new file mode 100755
index 0000000..c578af9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png
new file mode 100755
index 0000000..22e6a34
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png
new file mode 100755
index 0000000..5d2afa0
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png
new file mode 100755
index 0000000..5aff45a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png
new file mode 100755
index 0000000..ac23684
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png
new file mode 100755
index 0000000..d61139c
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png
new file mode 100755
index 0000000..a01c743
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png
new file mode 100755
index 0000000..f585989
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png
new file mode 100755
index 0000000..a214558
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png
new file mode 100755
index 0000000..eb00f9c
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png
new file mode 100755
index 0000000..669e09e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 6fd6c59..cadddce 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -680,6 +680,53 @@
<AndroidAsset Include="Assets\Phone\LogicIcon\changesinoutdoor.png" />
<AndroidAsset Include="Assets\Phone\PersonalCenter\UserTypebg2.png" />
<AndroidAsset Include="Assets\Phone\LogicIcon\sensor.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\AirCleanerThiinIcon.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobotThinIcon.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\MuteSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\Battery.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\ControlRight.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\AreaMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\AutoMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\FixedPointModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\Charge.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\CleanSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\ControlUp.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\SuctionSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\WallMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\FixedPointMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\ControlLeft.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\AreaModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\ControlDisable.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\ChargeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\Suction.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\Clean.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\AutoModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\ControlDown.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\VoiceSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\Mute.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\WallModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\Voice.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\WeepRobot\ControlEnable.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\SleepModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\Fan.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\LowGear.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\HandModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\Time.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\MidGearSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\AutoMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\AirCleanerOff.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\HandMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\HeightGearSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\ComfortableMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\MidGear.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\SleepMode.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\AirCleanerOn.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\LowGearSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\AutoModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\DialogTitleMenuGroud3.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\HeightGear.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\ComfortableModeSelect.png" />
+ <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\Fan\DialogTitleMenuGroud4.png" />
</ItemGroup>
<ItemGroup>
<AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index 52baaa6..506131b 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -2,6 +2,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -14,7 +15,7 @@
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
public partial class Resource
{
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index b811ebc..c66cced 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -52,7 +52,7 @@
<MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC";-w</MtouchExtraArgs>
<MtouchI18n>cjk</MtouchI18n>
<MtouchLink>SdkOnly</MtouchLink>
- <CodesignProvision>ComHdlOnProDevelopment20210116-2</CodesignProvision>
+ <CodesignProvision>onpro0804</CodesignProvision>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
<DebugType>none</DebugType>
@@ -658,8 +658,53 @@
<BundleResource Include="Resources\Phone\Public\ListCellbg\ListCellbg5.png" />
<BundleResource Include="Resources\Phone\LogicIcon\location.png" />
<BundleResource Include="Resources\Phone\LoginIcon\changesinoutdoor.png" />
- <BundleResource Include="Resources\Phone\PersonalCenter\UserTypebg2.png" />
- <BundleResource Include="Resources\Phone\LogicIcon\sensor.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\AirCleanerThiinIcon.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobotThinIcon.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\SleepModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\Fan.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\LowGear.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\HandModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\Time.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\MidGearSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\AutoMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\AirCleanerOff.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\HandMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\HeightGearSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\ComfortableMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\MidGear.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\SleepMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\AirCleanerOn.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\LowGearSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\AutoModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\DialogTitleMenuGroud3.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\HeightGear.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\ComfortableModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\Fan\DialogTitleMenuGroud4.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\MuteSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\Battery.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\ControlRight.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\AreaMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\AutoMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\FixedPointModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\Charge.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\CleanSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\ControlUp.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\SuctionSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\WallMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\FixedPointMode.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\ControlLeft.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\AreaModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\ControlDisable.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\ChargeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\Suction.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\Clean.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\AutoModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\ControlDown.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\VoiceSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\Mute.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\WallModeSelect.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\Voice.png" />
+ <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\WeepRobot\ControlEnable.png" />
</ItemGroup>
<ItemGroup>
<ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
old mode 100644
new mode 100755
index 00d1fa1..8440e0e
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -1037,6 +1037,7 @@
378=鍙樺寲鏃堕棿
379=鍙樺寲閫熷害
380=姝ゅ鍔熻兘鏆傛湭寮�鏀撅綖
+381=閲嶆柊鍔犺浇
400=娆㈣繋鍥炲
401=浜岀淮鐮佸け鏁堬紝璇烽噸璇�
402=閲嶈瘯
@@ -1050,6 +1051,42 @@
410=浣犲綋鍓嶈繕鏈坊鍔犱换浣曞钩鍙拌澶�
411=鍏朵粬骞冲彴璁惧鍧囩敱绗笁鏂规湇鍔″晢鎻愪緵鏀寔
412=娣诲姞
+
+1000=瀹ゅ唴婀垮害
+1001=绔ラ攣
+1002=璐熺瀛�
+1003=鏉�鑿�
+1004=鍔犳箍
+1005=婊よ姱澶嶄綅
+1006=鐏厜
+1007=鑷姩妯″紡
+1008=鎵嬪姩妯″紡
+1009=寮哄姴妯″紡
+1010=鐫$湢妯″紡
+1011=瀹氭椂
+1012=閫夋嫨椋庨��
+1013=妗�
+1014=璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
+1015=浣庢。
+1016=涓。
+1017=楂樻。
+1018=瀹氭椂璁剧疆
+1019=灏忔椂
+1020=婊よ姱浣跨敤锛�
+1021=绌烘皵鍑�鍖栧櫒
+1022=褰撳墠椋庨��
+1023=鍙栨秷瀹氭椂
+1024=鎵湴鏈哄櫒浜�
+1025=鍚稿姏璋冭妭
+1026=鍚稿姏1妗�
+1027=鍚稿姏2妗�
+1028=鍚稿姏3妗�
+1029=鍏呯數
+1030=澹伴煶
+1031=闈欓煶
+1032=娓呮壂妯″紡
+1033=鑰楁潗绠$悊
+1034=鍘嗗彶璁板綍
5000=闊充箰
5001=缁勫悎
@@ -1226,6 +1263,8 @@
7122=涓嶅湪绾�
+
+
9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
9001=璇蜂娇鐢ㄦ柊鐨勯偖绠辫处鍙风櫥褰旳PP
9002=鐧诲綍鎵嬫満淇敼瀹屾垚
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png
new file mode 100755
index 0000000..5000333
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/AirCleanerThiinIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png
new file mode 100755
index 0000000..b54bfcc
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOff.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png
new file mode 100755
index 0000000..d0ff021
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AirCleanerOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoMode.png
new file mode 100755
index 0000000..75fe12d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png
new file mode 100755
index 0000000..79a22f9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/AutoModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png
new file mode 100755
index 0000000..ce48e58
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png
new file mode 100755
index 0000000..f5766e9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/ComfortableModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png
new file mode 100755
index 0000000..42359dd
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud3.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png
new file mode 100755
index 0000000..ad3a695
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/DialogTitleMenuGroud4.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Fan.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Fan.png
new file mode 100755
index 0000000..d86e7e3
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Fan.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandMode.png
new file mode 100755
index 0000000..4b60248
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png
new file mode 100755
index 0000000..f88f99b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HandModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGear.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGear.png
new file mode 100755
index 0000000..3be9831
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGear.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png
new file mode 100755
index 0000000..ab32cf8
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/HeightGearSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGear.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGear.png
new file mode 100755
index 0000000..5dec4f7
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGear.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png
new file mode 100755
index 0000000..f4c23c4
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/LowGearSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGear.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGear.png
new file mode 100755
index 0000000..df4e40b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGear.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png
new file mode 100755
index 0000000..7b77e7a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/MidGearSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepMode.png
new file mode 100755
index 0000000..8b816ab
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png
new file mode 100755
index 0000000..b1b0157
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/SleepModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Time.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Time.png
new file mode 100755
index 0000000..34cca34
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/Fan/Time.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png
new file mode 100755
index 0000000..96b1720
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png
new file mode 100755
index 0000000..f47bfdc
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png
new file mode 100755
index 0000000..836bfee
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png
new file mode 100755
index 0000000..202c14a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png
new file mode 100755
index 0000000..3c41f72
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Battery.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png
new file mode 100755
index 0000000..93fae74
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Charge.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png
new file mode 100755
index 0000000..060cb86
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ChargeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png
new file mode 100755
index 0000000..31f1838
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Clean.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png
new file mode 100755
index 0000000..8b69572
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/CleanSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png
new file mode 100755
index 0000000..543aa27
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDisable.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png
new file mode 100755
index 0000000..e273ad8
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlDown.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png
new file mode 100755
index 0000000..65f03ac
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlEnable.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png
new file mode 100755
index 0000000..9475750
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlLeft.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png
new file mode 100755
index 0000000..b47b341
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlRight.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png
new file mode 100755
index 0000000..6f47cf4
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/ControlUp.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png
new file mode 100755
index 0000000..c578af9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png
new file mode 100755
index 0000000..22e6a34
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png
new file mode 100755
index 0000000..5d2afa0
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Mute.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png
new file mode 100755
index 0000000..5aff45a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/MuteSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png
new file mode 100755
index 0000000..ac23684
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Suction.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png
new file mode 100755
index 0000000..d61139c
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/SuctionSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png
new file mode 100755
index 0000000..a01c743
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/Voice.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png
new file mode 100755
index 0000000..f585989
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/VoiceSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png
new file mode 100755
index 0000000..a214558
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallMode.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png
new file mode 100755
index 0000000..eb00f9c
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobot/WallModeSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png
new file mode 100755
index 0000000..669e09e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/WeepRobotThinIcon.png
Binary files differ
diff --git a/HDL_ON/.DS_Store b/HDL_ON/.DS_Store
new file mode 100644
index 0000000..dfce005
--- /dev/null
+++ b/HDL_ON/.DS_Store
Binary files differ
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
old mode 100644
new mode 100755
index 280ae05..26caecc
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -17,6 +17,7 @@
public const int Retry = 402;
public const int QRCodeIsInvalid = 401;
public const int WellComBackHome = 400;
+ public const int DoReloadAgain = 381;
public const int FunctionNotOpen = 380;
public const int FadeSpeed = 379;
public const int FadeTime = 378;
@@ -404,8 +405,146 @@
public const int LoginByEmail = 4;
-
-
+ /// <summary>
+ /// 瀹ゅ唴婀垮害
+ /// </summary>
+ public const int IndoorHumidity = 1000;
+ /// <summary>
+ /// 绔ラ攣
+ /// </summary>
+ public const int V_chip = 1001;
+ /// <summary>
+ /// 璐熺瀛�
+ /// </summary>
+ public const int Anion = 1002;
+ /// <summary>
+ /// 鏉�鑿�
+ /// </summary>
+ public const int Sterilization = 1003;
+ /// <summary>
+ /// 鍔犳箍
+ /// </summary>
+ public const int Humidification = 1004;
+ /// <summary>
+ /// 婊よ姱澶嶄綅
+ /// </summary>
+ public const int FilterElementReset = 1005;
+ /// <summary>
+ /// 鐏厜
+ /// </summary>
+ public const int Lighting = 1006;
+ /// <summary>
+ /// 鑷姩妯″紡
+ /// </summary>
+ public const int AutoMode = 1007;
+ /// <summary>
+ /// 鎵嬪姩妯″紡
+ /// </summary>
+ public const int HandMode = 1008;
+ /// <summary>
+ /// 寮哄姴妯″紡
+ /// </summary>
+ public const int StrongMode = 1009;
+ /// <summary>
+ /// 鐫$湢妯″紡
+ /// </summary>
+ public const int SleepMode = 1010;
+ /// <summary>
+ /// 瀹氭椂
+ /// </summary>
+ public const int Timing = 1011;
+ /// <summary>
+ /// 閫夋嫨椋庨��
+ /// </summary>
+ public const int WindSpeedSelection = 1012;
+ /// <summary>
+ /// 妗�
+ /// </summary>
+ public const int Gear = 1013;
+ /// <summary>
+ /// 璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
+ /// </summary>
+ public const int FilterElementResetMsg = 1014;
+ /// <summary>
+ /// 浣庢。
+ /// </summary>
+ public const int LowGear = 1015;
+ /// <summary>
+ /// 涓。
+ /// </summary>
+ public const int MidGear = 1016;
+ /// <summary>
+ /// 楂樻。
+ /// </summary>
+ public const int HeightGear = 1017;
+ /// <summary>
+ /// 瀹氭椂璁剧疆
+ /// </summary>
+ public const int TimingSetting = 1018;
+ /// <summary>
+ /// 灏忔椂
+ /// </summary>
+ public const int Hour1 = 1019;
+ /// <summary>
+ /// 婊よ姱浣跨敤锛�
+ /// </summary>
+ public const int UseOfFilterElement = 1020;
+ /// <summary>
+ /// 绌烘皵鍑�鍖栧櫒
+ /// </summary>
+ public const int AirCleaner = 1021;
+ /// <summary>
+ /// 褰撳墠椋庨��
+ /// </summary>
+ public const int CurrentWindSpeed = 1022;
+ /// <summary>
+ /// 鍙栨秷瀹氭椂
+ /// </summary>
+ public const int CancelTiming = 1023;
+ /// <summary>
+ /// 鎵湴鏈哄櫒浜�
+ /// </summary>
+ public const int WeepRobot = 1024;
+ /// <summary>
+ /// 鍚稿姏璋冭妭
+ /// </summary>
+ public const int SuctionAdjustment = 1025;
+ /// <summary>
+ ///鍚稿姏1妗�
+ /// </summary>
+ public const int SuctionOneGear = 1026;
+ /// <summary>
+ /// 鍚稿姏2妗�
+ /// </summary>
+ public const int SuctionTwoGear = 1027;
+ /// <summary>
+ /// 鍚稿姏3妗�
+ /// </summary>
+ public const int SuctionThreeGear = 1028;
+ /// <summary>
+ /// 鍏呯數
+ /// </summary>
+ public const int Charge = 1029;
+ /// <summary>
+ /// 澹伴煶
+ /// </summary>
+ public const int Voice = 1030;
+ /// <summary>
+ /// 闈欓煶
+ /// </summary>
+ public const int Mute = 1031;
+ /// <summary>
+ /// 娓呮壂妯″紡
+ /// </summary>
+ public const int CleanMode = 1032;
+ /// <summary>
+ /// 鑰楁潗绠$悊
+ /// </summary>
+ public const int ConsumablesManagement = 1033;
+ /// <summary>
+ /// 鍘嗗彶璁板綍
+ /// </summary>
+ public const int HistoryLog = 1034;
public const int a31Music = 5000;
diff --git a/HDL_ON/DAL/.DS_Store b/HDL_ON/DAL/.DS_Store
new file mode 100644
index 0000000..a9cb932
--- /dev/null
+++ b/HDL_ON/DAL/.DS_Store
Binary files differ
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
old mode 100644
new mode 100755
index 84a426e..089f706
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -279,8 +279,9 @@
/// </summary>
/// <param name="commandString"></param>
/// <param name="function"></param>
+ /// <param name="useRemote">鏄惁鐩存帴浣跨敤杩滅▼鍙戦��</param>
/// <returns></returns>
- public void SendWriteCommand(Function function, Dictionary<string, string> commandDictionary)
+ public void SendWriteCommand(Function function, Dictionary<string, string> commandDictionary, bool useRemote = false)
{
function.controlCounter++;
function.refreshTime = DateTime.Now;
@@ -310,7 +311,7 @@
MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}");
//杩滅▼閫氳
- if (Ins.IsRemote)
+ if (Ins.IsRemote || useRemote == true)
{
DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest();
//ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋�
@@ -875,14 +876,27 @@
}
break;
case SPK.ElectricTV:
+ break;
+ case SPK.ElectricTuyaAirCleaner:
+ case SPK.ElectricTuyaFan:
+ case SPK.ElectricTuyaWeepRobot:
+ //璁惧鐘舵�佹帹閫�
+ var myDevice = Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp);
+ if (myDevice != null)
+ {
+ localObj = myDevice;
+ }
break;
default:
break;
}
- HomePage.UpdataFunctionStates(localObj);
- RoomPage.UpdataStates(localObj);
- FunctionPage.UpdataStates(localObj);
- ClassificationPage.UpdataInfo(localObj);
+ if (localObj != null)
+ {
+ HomePage.UpdataFunctionStates(localObj);
+ RoomPage.UpdataStates(localObj);
+ FunctionPage.UpdataStates(localObj);
+ ClassificationPage.UpdataInfo(localObj);
+ }
}
}
catch (Exception ex)
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
old mode 100644
new mode 100755
index dac0006..369d632
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1810,7 +1810,7 @@
{
Dictionary<string, object> d = new Dictionary<string, object>();
d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
- d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId);//DriverLayer.Control.Ins.GatewayId);
+ d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway == null ? "0" : DB_ResidenceData.Instance.HomeGateway.gatewayId);//DriverLayer.Control.Ins.GatewayId);
d.Add("actions", actionObjs);
var requestJson = HttpUtil.GetSignRequestJson(d);
diff --git a/HDL_ON/Entity/.DS_Store b/HDL_ON/Entity/.DS_Store
new file mode 100644
index 0000000..1095c65
--- /dev/null
+++ b/HDL_ON/Entity/.DS_Store
Binary files differ
diff --git a/HDL_ON/Entity/Function/AirCleaner.cs b/HDL_ON/Entity/Function/AirCleaner.cs
new file mode 100755
index 0000000..5ed7559
--- /dev/null
+++ b/HDL_ON/Entity/Function/AirCleaner.cs
@@ -0,0 +1,10 @@
+锘縰sing System;
+namespace HDL_ON.Entity
+{
+ public class AirCleaner : Function
+ {
+ public AirCleaner()
+ {
+ }
+ }
+}
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
old mode 100644
new mode 100755
index bf517fe..81bfa9d
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -649,7 +649,19 @@
/// 褰撳墠鍊�
/// </summary>
public object curValue = new object();
-
+ /// <summary>
+ /// curValue鐨勭炕璇戝��,鏈�鍧忕殑缁撴灉涔熷彧浼氳繑鍥瀞tring.Empty
+ /// </summary>
+ public string realValue
+ {
+ get
+ {
+ var myValue = curValue.ToString();
+ //娌欓洉瀹氫箟鐨刼bject绫诲瀷
+ if (myValue.Contains("{") == true) { return string.Empty; }
+ return myValue;
+ }
+ }
}
/// <summary>
/// 鍔熻兘灞炴�ч敭鍚嶅垪琛�
@@ -878,8 +890,19 @@
/// <summary>
/// 瀹剁數銆侀鎵�
/// </summary>
- public const string ElectricFan = "electrical.fan";
-
+ public const string ElectricFan = "electrical.fan";
+ /// <summary>
+ /// 瀹剁數銆佹秱楦︾┖姘斿噣鍖栧櫒
+ /// </summary>
+ public const string ElectricTuyaAirCleaner = "electrical.Q1RsefNf91tIXyyQ";
+ /// <summary>
+ /// 瀹剁數銆佹秱楦︾數椋庢墖
+ /// </summary>
+ public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
+ /// <summary>
+ /// 瀹剁數銆佹秱楦︽壂鍦版満鍣ㄤ汉
+ /// </summary>
+ public const string ElectricTuyaWeepRobot = "electrical.ai6HtccKFIw3dxo3";
}
diff --git a/HDL_ON/Entity/Function/WeepRobot.cs b/HDL_ON/Entity/Function/WeepRobot.cs
new file mode 100755
index 0000000..1e39a13
--- /dev/null
+++ b/HDL_ON/Entity/Function/WeepRobot.cs
@@ -0,0 +1,10 @@
+锘縰sing System;
+namespace HDL_ON.Entity
+{
+ public class WeepRobot : Function
+ {
+ public WeepRobot()
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
old mode 100644
new mode 100755
index 5898500..a6b3d33
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -67,10 +67,20 @@
{
tVs = new List<TV>();
}
+ if (airCleaners == null)
+ {
+ airCleaners = new List<AirCleaner>();
+ }
+ if (weepRobots == null)
+ {
+ weepRobots = new List<WeepRobot>();
+ }
var list = new List<Function>();
list.AddRange(fans);
list.AddRange(switchSockets);
- list.AddRange(tVs);
+ list.AddRange(tVs);
+ list.AddRange(airCleaners);
+ list.AddRange(weepRobots);
return list;
}
}
@@ -85,7 +95,16 @@
/// <summary>
/// 瀹剁數鍒楄〃
/// </summary>
- public List<SwitchSocket> switchSockets = new List<SwitchSocket>();
+ public List<SwitchSocket> switchSockets = new List<SwitchSocket>();
+ /// <summary>
+ /// 绌烘皵鍑�鍖栧櫒鍒楄〃
+ /// </summary>
+ public List<AirCleaner> airCleaners = new List<AirCleaner>();
+ /// <summary>
+ /// 鎵湴鏈哄櫒浜哄垪琛�
+ /// </summary>
+ public List<WeepRobot> weepRobots = new List<WeepRobot>();
+
#endregion
/// <summary>
/// 鐜浼犳劅鍣ㄥ垪琛�
@@ -189,6 +208,21 @@
var fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString);
List.fans.Add(fan);
deviceFunctionList.Add(fan);
+ break;
+ case SPK.ElectricTuyaAirCleaner:
+ var airCleaner = Newtonsoft.Json.JsonConvert.DeserializeObject<AirCleaner>(functionDataString);
+ List.airCleaners.Add(airCleaner);
+ deviceFunctionList.Add(airCleaner);
+ break;
+ case SPK.ElectricTuyaFan:
+ var tuyaFan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString);
+ List.fans.Add(tuyaFan);
+ deviceFunctionList.Add(tuyaFan);
+ break;
+ case SPK.ElectricTuyaWeepRobot:
+ var tuyaWeepRobot = Newtonsoft.Json.JsonConvert.DeserializeObject<WeepRobot>(functionDataString);
+ List.weepRobots.Add(tuyaWeepRobot);
+ deviceFunctionList.Add(tuyaWeepRobot);
break;
case SPK.SensorSmoke:
case SPK.SensorWater:
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 33b53b8..9a6b1e0 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -278,6 +278,55 @@
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\EmptyClass.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddThirdPartyBrandListpage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\IntegratedBrand.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AirCleaner.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\WeepRobot.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaAirCleanerPage.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaFanPage.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotPage.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Resourse\HdlControlResourse.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\HideOptionDirectoryListForm.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\HideOptionSearchAllFile.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\DeviceFunctionCardCommonForm.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\HideOptionFileContentForm.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\Base\CommonFormBase.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\Base\EditorCommonForm.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Enum\CommonEnum.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlFileLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlThreadLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlDeviceStatuPushLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlMessageLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlFormLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomItemEditorControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomDialogCommon.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomTimeSelectControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomItemSelectControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomClickButton.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\NormalControls\PicViewControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\NormalControls\NormalViewControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\NormalControls\IconViewControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\NormalControls\MostRightIconControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\NormalControls\IconBigViewControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\TextInputControls\TextInputControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\FrameLayoutControls\NormalFrameLayout.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\FrameLayoutControls\FrameRowControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\FrameLayoutControls\FrameLayoutStatuControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\FrameLayoutControls\FrameListControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\MessageControls\ShowMsgControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BaseControl\TextInputBase.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BaseControl\ButtonCtrBase.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BaseControl\FrameLayoutBase.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BaseControl\RowLayoutBase.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\RowLayoutControls\RowLayoutControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalListControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalListRefreshControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalFrameRefreshControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalFrameControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\DialogTitleMenuControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\NormalSelectControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\DirectionImageControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\SeekBarImageControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\FanGearSeekBarControl.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressBar.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="$(MSBuildThisFileDirectory)UI\" />
diff --git a/HDL_ON/UI/.DS_Store b/HDL_ON/UI/.DS_Store
new file mode 100644
index 0000000..fc80acb
--- /dev/null
+++ b/HDL_ON/UI/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/CSS/CSS.cs b/HDL_ON/UI/CSS/CSS.cs
index ff5eff9..665a74c 100644
--- a/HDL_ON/UI/CSS/CSS.cs
+++ b/HDL_ON/UI/CSS/CSS.cs
@@ -121,6 +121,11 @@
{
#region 瀛椾綋澶у皬
/// <summary>
+ /// 鐗圭骇寮鸿皟瀛楀彿
+ /// 26
+ /// </summary>
+ public const int EmphasisFontSize_ExLevel = 26;
+ /// <summary>
/// 涓�绾у己璋冨瓧鍙�
/// 24
/// </summary>
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
old mode 100644
new mode 100755
index 0c58f50..e1641d3
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -93,6 +93,18 @@
MainPage.BasePageView.AddChidren(tvView);
tvView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ break;
+ case SPK.ElectricTuyaAirCleaner:
+ var airCleaner = new TuyaAirCleanerPage();
+ airCleaner.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
+ break;
+ case SPK.ElectricTuyaFan:
+ var tuyaFan = new TuyaFanPage();
+ tuyaFan.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
+ break;
+ case SPK.ElectricTuyaWeepRobot:
+ var weepRobot = new TuyaWeepRobotPage();
+ weepRobot.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
break;
case SPK.MusicStandard:
Music.A31MusicModel.Current = (function as Music.A31MusicModel);//褰撳墠鎾斁鍣�
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/ButtonCtrBase.cs b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/ButtonCtrBase.cs
new file mode 100644
index 0000000..5386392
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/ButtonCtrBase.cs
@@ -0,0 +1,340 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// Botton鐨勬渶鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋鍜岄鑹诧紝鏂囧瓧鍚戝乏闈犻綈,14鍙峰瓧
+ /// </summary>
+ public class ButtonCtrBase : Button
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 璁剧疆鑳藉惁瑙︾偣鍑讳簨浠�
+ /// </summary>
+ private bool m_CanClick = true;
+ /// <summary>
+ /// 璁剧疆鑳藉惁瑙︾偣鍑讳簨浠�
+ /// </summary>
+ public bool CanClick
+ {
+ get { return m_CanClick; }
+ set
+ {
+ if (m_CanClick == value) { return; }
+
+ m_CanClick = value;
+ //鑳藉鐐瑰嚮,鍒欐樉绀烘病鏈夌偣鍑昏繃鐨勭姸鎬�
+ if (m_CanClick == true) { this.SetNotClickStatu(); }
+ //涓嶈兘鐐瑰嚮,鍒欐樉绀哄凡缁忕偣鍑讳簡鐨勭姸鎬�
+ else { this.SetClickStatu(); }
+ }
+ }
+ /// <summary>
+ /// 澹版槑姝ゅ彉閲�,鏃ㄥ湪瀛愮嚎绋嬩篃鑳藉鍘昏幏鍙栦竴涓帶浠剁殑涓婚敭
+ /// </summary>
+ public string MainKey = string.Empty;
+
+ /// <summary>
+ /// 鐐瑰嚮鐨勫潗鏍�
+ /// </summary>
+ private System.Drawing.Point downPoint = new System.Drawing.Point();
+
+ /// <summary>
+ /// 鎺т欢鐨勭偣鍑讳簨浠�(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠�,鍙桟anClick灞炴�ф帶鍒�)
+ /// </summary>
+ public Action<Button, MouseEventArgs> ButtonClickEvent = null;
+ /// <summary>
+ /// 鎺т欢鐨勬寜涓嬩簨浠�(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠�,鍙桟anClick灞炴�ф帶鍒�)
+ /// </summary>
+ public Action<Button, MouseEventArgs> ButtonDownClickEvent = null;
+ /// <summary>
+ /// 鎺т欢瑙﹀彂绉诲姩鐨勪簨浠�(鑷韩鎷ユ湁绠楁硶,褰撶Щ鍔ㄥ灏戝儚绱犲悗,瑙﹀彂浜嬩欢,娉ㄦ剰,璇ヤ簨浠跺彲鑳戒細棰戠箒鐨勮Е鍙�)
+ /// </summary>
+ public Action ButtonHappenMoveEvent = null;
+
+ #endregion
+
+ #region 鈻� 閲嶅啓褰摜鐨勫睘鎬____________________
+
+ /// <summary>
+ /// 閲嶅啓Text灞炴��
+ /// </summary>
+ public new string Text
+ {
+ //鍏堣繖涔堝紕鍏堝惂
+ get { return base.Text == null ? string.Empty : base.Text; }
+ set
+ {
+ base.Text = value == null ? string.Empty : value;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// Botton鐨勬渶鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋鍜岄鑹诧紝鏂囧瓧鍚戝乏闈犻綈,14鍙峰瓧
+ /// </summary>
+ public ButtonCtrBase()
+ {
+#if __IOS__
+ //閲嶅啓淇敼鏂囨湰鍒拌竟妗嗙殑鍐呰竟璺濅负0
+ (this.uiView as MyButton).ContentEdgeInsets = new UIKit.UIEdgeInsets(0, 0, 0, 0);
+#endif
+ //娴嬭瘯锛屽叏浣撴寜閽负14鍙峰瓧
+ this.TextSize = CSS_FontSize.TextFontSize;
+
+ this.TextColor = CSS_Color.TextualColor;
+ this.TextAlignment = TextAlignment.CenterLeft;
+
+ //鐐瑰嚮浜嬩欢
+ this.MouseUpEventHandler += ButtonBase_MouseUpEventHandler;
+ //鎸変笅浜嬩欢
+ this.MouseDownEventHandler += ButtonBase_MouseDownEventHandler;
+ //绉诲姩浜嬩欢
+ this.MouseMoveEventHandler += ButtonBase_MouseMoveEventHandler;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠跺ぇ灏�(涓嶄互骞冲潎鍊艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = Application.GetRealWidth(i_Width);
+ i_Height = Application.GetRealHeight(i_Height);
+ }
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠跺ぇ灏�(涓嶄互骞冲潎鍊艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitSize(int i_Width, bool real = false)
+ {
+ if (real == true)
+ {
+ i_Width = Application.GetRealWidth(i_Width);
+ }
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栧浘鏍囨帶浠跺ぇ灏�(浠ュ钩鍧囧�艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitIconSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = this.GetPictrueRealSize(i_Width);
+ i_Height = this.GetPictrueRealSize(i_Height);
+ }
+
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栧浘鐗囨帶浠跺ぇ灏�
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitPictrueSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = Application.GetRealWidth(i_Width);
+ i_Height = Application.GetRealWidth(i_Height);
+ }
+
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ #endregion
+
+ #region 鈻� 鐐瑰嚮浜嬩欢___________________________
+
+ /// <summary>
+ /// 鐐瑰嚮浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void ButtonBase_MouseUpEventHandler(object sender, MouseEventArgs e)
+ {
+ if (ButtonClickEvent == null)
+ {
+ this.MouseUpEventHandler -= ButtonBase_MouseUpEventHandler;
+ return;
+ }
+ if (CanClick == true)
+ {
+ try
+ {
+ this.ButtonClickEvent(this, e);
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鎸変笅浜嬩欢___________________________
+
+ /// <summary>
+ /// 鎸変笅浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void ButtonBase_MouseDownEventHandler(object sender, MouseEventArgs e)
+ {
+ //璁板綍璧峰綋鍓嶇偣鍑荤殑鍧愭爣
+ downPoint.X = (int)e.X;
+ downPoint.Y = (int)e.Y;
+
+ if (CanClick == false || this.ButtonDownClickEvent == null)
+ {
+ //涓嶈兘鐐瑰嚮
+ return;
+ }
+
+ try
+ {
+ this.ButtonDownClickEvent(this, e);
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 绉诲姩浜嬩欢___________________________
+
+ /// <summary>
+ /// 绉诲姩浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void ButtonBase_MouseMoveEventHandler(object sender, MouseEventArgs e)
+ {
+ if (this.ButtonHappenMoveEvent == null)
+ {
+ this.MouseMoveEventHandler -= ButtonBase_MouseMoveEventHandler;
+ return;
+ }
+ int value = (int)e.X - this.downPoint.X;
+ if (value >= 30 || value <= -30)
+ {
+ //瑙﹀彂绉诲姩浜嬩欢
+ this.ButtonHappenMoveEvent();
+ return;
+ }
+ value = (int)e.Y - this.downPoint.Y;
+ if (value >= 30 || value <= -30)
+ {
+ //瑙﹀彂绉诲姩浜嬩欢
+ this.ButtonHappenMoveEvent();
+ return;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 璁剧疆鐐瑰嚮鐘舵�乢______________________
+
+ /// <summary>
+ /// 璁剧疆鐐瑰嚮鍚庣殑鐘舵��(姝ゆ柟娉曠敱鍚勮嚜鎺т欢杩涜閲嶈浇)
+ /// </summary>
+ public virtual void SetClickStatu()
+ {
+ }
+
+ /// <summary>
+ /// 璁剧疆闈炵偣鍑诲悗鐨勭姸鎬�(姝ゆ柟娉曠敱鍚勮嚜鎺т欢杩涜閲嶈浇)
+ /// </summary>
+ public virtual void SetNotClickStatu()
+ {
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ ButtonClickEvent = null;
+ ButtonDownClickEvent = null;
+
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ /// <summary>
+ /// 鏍规嵁鏂囨湰,璁$畻瀹冨疄闄呯殑瀹藉害
+ /// </summary>
+ /// <returns></returns>
+ public int GetRealWidthByText()
+ {
+ if (string.IsNullOrEmpty(this.Text) == true) { return Application.GetRealWidth(25); }
+
+ return base.GetTextWidth();
+ }
+
+ /// <summary>
+ /// 鏍规嵁鏂囨湰,璁$畻瀹冮渶瑕佺殑鎬昏鏁�
+ /// </summary>
+ /// <returns></returns>
+ public int GetRealRowCountByText()
+ {
+ //鍏堣幏鍙栧畠鐨勭湡瀹炲搴�
+ int realWidth = this.GetRealWidthByText();
+ int row = realWidth / this.Width;
+ if (realWidth % this.Width > 0)
+ {
+ row++;
+ }
+ return row;
+ }
+
+ /// <summary>
+ /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害
+ /// </summary>
+ /// <param name="i_size"></param>
+ /// <returns></returns>
+ public int GetPictrueRealSize(int i_size)
+ {
+ return Application.GetRealWidth(i_size);
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/FrameLayoutBase.cs b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/FrameLayoutBase.cs
new file mode 100755
index 0000000..cca0156
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/FrameLayoutBase.cs
@@ -0,0 +1,111 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// FrameLayout鐨勬渶鍒濆師鍨�
+ /// </summary>
+ public class FrameLayoutBase : FrameLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 璁剧疆鑳藉惁瑙︾偣鍑讳簨浠�
+ /// </summary>
+ public bool CanClick = true;
+ /// <summary>
+ /// 澹版槑姝ゅ彉閲�,鏃ㄥ湪瀛愮嚎绋嬩篃鑳藉鍘昏幏鍙栦竴涓帶浠剁殑涓婚敭
+ /// </summary>
+ public string MainKey = string.Empty;
+ /// <summary>
+ /// 鎺т欢鐨勭偣鍑讳簨浠�(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠�,鍙桟anClick灞炴�ф帶鍒�)
+ /// </summary>
+ public Action<object, MouseEventArgs> ButtonClickEvent = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// FrameLayout鐨勬渶鍒濆師鍨�
+ /// </summary>
+ public FrameLayoutBase()
+ {
+ //鐐瑰嚮浜嬩欢
+ this.MouseUpEventHandler += ButtonBase_MouseUpEventHandler;
+ }
+
+ #endregion
+
+ #region 鈻� 鐐瑰嚮浜嬩欢___________________________
+
+ /// <summary>
+ /// 鐐瑰嚮浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void ButtonBase_MouseUpEventHandler(object sender, MouseEventArgs e)
+ {
+ if (ButtonClickEvent == null)
+ {
+ this.MouseUpEventHandler -= ButtonBase_MouseUpEventHandler;
+ return;
+ }
+ if (CanClick == true)
+ {
+ try
+ {
+ this.ButtonClickEvent(this, e);
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害
+ /// </summary>
+ /// <param name="i_size"></param>
+ /// <returns></returns>
+ public int GetPictrueRealSize(int i_size)
+ {
+ return Application.GetRealWidth(i_size);
+ }
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ ButtonClickEvent = null;
+
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ /// <summary>
+ /// 鈽嗏槅绉婚櫎鍏ㄩ儴鎺т欢鈽嗏槅
+ /// </summary>
+ public override void RemoveAll()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveAll();
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/RowLayoutBase.cs b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/RowLayoutBase.cs
new file mode 100755
index 0000000..ea29b62
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/RowLayoutBase.cs
@@ -0,0 +1,60 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// RowLayout鐨勬渶鍒濆師鍨�
+ /// </summary>
+ public class RowLayoutBase : RowLayout
+ {
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// FrameLayout鐨勬渶鍒濆師鍨�
+ /// </summary>
+ public RowLayoutBase()
+ {
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害
+ /// </summary>
+ /// <param name="i_size"></param>
+ /// <returns></returns>
+ public int GetPictrueRealSize(int i_size)
+ {
+ return Application.GetRealWidth(i_size);
+ }
+
+ /// <summary>
+ /// 鎺т欢绉婚櫎
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ /// <summary>
+ /// 鈽嗏槅绉婚櫎鍏ㄩ儴鎺т欢鈽嗏槅
+ /// </summary>
+ public override void RemoveAll()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveAll();
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
new file mode 100755
index 0000000..29d8059
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
@@ -0,0 +1,344 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 杈撳叆妗嗘帶浠剁殑鏈�鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋棰滆壊锛屾枃瀛楀悜宸﹂潬榻�,14鍙峰瓧
+ /// </summary>
+ public class TextInputBase : EditText
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鑱斿姩搴曠嚎
+ /// </summary>
+ private NormalViewControl btnLineTemp = null;
+ /// <summary>
+ /// 鑱斿姩搴曠嚎(鍏夋爣杩涙潵涔嬪悗,绾跨殑棰滆壊浼氬彉)
+ /// </summary>
+ public NormalViewControl btnLine
+ {
+ set
+ {
+ this.btnLineTemp = value;
+ }
+ }
+ /// <summary>
+ /// 鑱斿姩澶栨
+ /// </summary>
+ private NormalFrameLayout frameBorder = null;
+ /// <summary>
+ /// 鑱斿姩澶栨(鍏夋爣杩涙潵涔嬪悗,澶栨鐨勯鑹蹭細鍙�)
+ /// </summary>
+ public NormalFrameLayout FrameBorder
+ {
+ set
+ {
+ this.frameBorder = value;
+ }
+ }
+
+ /// <summary>
+ /// 杈撳叆缁撴潫鐨勪簨浠�
+ /// </summary>
+ public Action FinishInputEvent = null;
+ /// <summary>
+ /// 鍊兼敼鍙樹簨浠�(鍙桵axByte灞炴�ч檺鍒�)
+ /// </summary>
+ public Action<string> TextChangedEvent = null;
+ /// <summary>
+ /// 鎸囧畾璇ヨ緭鍏ユ鏄惁涓轰笉鍙渷鐣�(榛樿涓篺alse)
+ /// </summary>
+ public bool MustInput = false;
+
+ private int m_MaxByte = -1;
+ /// <summary>
+ /// 鏈�澶ц緭鍏yte闀垮害
+ /// </summary>
+ public int MaxByte
+ {
+ get { return m_MaxByte; }
+ set
+ {
+ m_MaxByte = value;
+ this.TextChangeEventHandler -= this.TxtCode_TextChangedEvent;
+ if (m_MaxByte > 0)
+ {
+ this.TextChangeEventHandler += this.TxtCode_TextChangedEvent;
+ }
+ }
+ }
+
+ private bool m_UseFocusColor = false;
+ /// <summary>
+ /// 鍏夋爣杩涘叆鏂囨湰妗嗘椂,鏄惁璁╁瓧浣撻鑹插彉鏇�(榛樿涓嶄娇鐢�)
+ /// </summary>
+ public bool UseFocusColor
+ {
+ set
+ {
+ m_UseFocusColor = value;
+ if (m_UseFocusColor == true)
+ {
+ //鐏拌壊瀛椾綋
+ this.TextColor = CSS_Color.PromptingColor1;
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 杈撳叆妗嗘帶浠剁殑鏈�鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋棰滆壊锛屾枃瀛楀悜宸﹂潬榻�,14鍙峰瓧
+ /// </summary>
+ public TextInputBase()
+ {
+ //娴嬭瘯锛屽叏浣撹緭鍏ユ涓�14鍙峰瓧
+ this.TextSize = CSS_FontSize.TextFontSize;
+
+ this.PlaceholderTextColor = CSS_Color.PromptingColor1;
+ this.TextColor = CSS_Color.TextualColor;
+ this.TextAlignment = TextAlignment.CenterLeft;
+
+ //鐒︾偣浜嬩欢
+ this.FoucsChanged += this.TxtCode_FoucsChangedEvent;
+ //鎸変笅鍥炶溅閿簨浠�
+ this.EditorEnterAction += this.EditorEnterEvent;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠跺ぇ灏�(涓嶄互骞冲潎鍊艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = Application.GetRealWidth(i_Width);
+ i_Height = Application.GetRealHeight(i_Height);
+ }
+
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠跺ぇ灏�(涓嶄互骞冲潎鍊艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitSize(int i_Width, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = Application.GetRealWidth(i_Width);
+ }
+
+ this.Height = HdlControlResourse.NormalControlHeight;
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠跺ぇ灏�(浠ュ钩鍧囧�艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitAvgSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = this.GetPictrueRealSize(i_Width);
+ i_Height = this.GetPictrueRealSize(i_Height);
+ }
+
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ #endregion
+
+ #region 鈻� 浜嬩欢_______________________________
+
+ /// <summary>
+ /// 鐒︾偣鍙樻洿浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void TxtCode_FoucsChangedEvent(object sender, FocusEventArgs e)
+ {
+ if (e.Focus == false)
+ {
+ if (btnLineTemp != null)
+ {
+ btnLineTemp.BackgroundColor = CSS_Color.MainColor;
+ }
+ if (frameBorder != null)
+ {
+ frameBorder.BorderColor = CSS_Color.MainColor;
+ }
+ if (m_UseFocusColor == true)
+ {
+ //鐏拌壊瀛椾綋
+ this.TextColor = CSS_Color.PromptingColor1;
+ }
+ }
+ else
+ {
+ if (btnLineTemp != null)
+ {
+ btnLineTemp.BackgroundColor = CSS_Color.DividingLineColor;
+ }
+ if (frameBorder != null)
+ {
+ frameBorder.BorderColor = CSS_Color.DividingLineColor;
+ }
+ if (m_UseFocusColor == true)
+ {
+ //姝e父瀛椾綋
+ this.TextColor = CSS_Color.TextualColor;
+ }
+ }
+ }
+
+ /// <summary>
+ /// 杈撳叆瀹屾垚浜嬩欢
+ /// </summary>
+ /// <param name="view"></param>
+ private void EditorEnterEvent(View view)
+ {
+ //妫�娴嬫渶澶ц緭鍑築yte
+ string msg = this.CheckMaxByte();
+ if (msg != null)
+ {
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, msg);
+ return;
+ }
+ this.FinishInputEvent?.Invoke();
+ }
+
+ /// <summary>
+ /// 鍊兼敼鍙樹簨浠�
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="value"></param>
+ private void TxtCode_TextChangedEvent(object sender, string value)
+ {
+ var byteData = Encoding.UTF8.GetBytes(value);
+ var newValue = value;
+
+ //濡傛灉杈撳叆鐨勫��,宸茬粡澶т簬鎸囧畾鐨刡yte鏁�,鍒欐埅鍙�
+ if (byteData.Length > this.m_MaxByte)
+ {
+ //鎴彇鎸囧畾鐨刡yte瀛楄妭
+ newValue = Encoding.UTF8.GetString(byteData, 0, this.m_MaxByte);
+ //鏈�鍚庝竴浣嶄笉瑕�,鍥犱负鎴彇鐨勬渶鍚庝竴浣嶅彲鑳芥槸涔辩爜
+ newValue = newValue.Substring(0, newValue.Length - 1);
+ //鎷兼帴涓婂畠鐨勪笅涓�浣�,鐒跺悗妫�娴�
+ var checkValue = newValue + value[newValue.Length];
+ if (Encoding.UTF8.GetBytes(checkValue).Length <= this.m_MaxByte)
+ {
+ //姝eソ鍖归厤byte鏁�
+ newValue = checkValue;
+ }
+ this.Text = newValue;
+ //灏嗗厜鏍囪嚦浜庢渶鍚�
+#if __Android__
+ this.SetSelectionEnd();
+#endif
+ }
+ this.TextChangedEvent?.Invoke(newValue);
+ }
+
+ #endregion
+
+ #region 鈻� 妫�娴嬮敊璇痏__________________________
+
+ /// <summary>
+ /// 妫�娴嬫纭��,瀛樺湪閿欒鏃�,杩斿洖閿欒鏂囨湰,鏃犻敊璇繑鍥瀗ull
+ /// </summary>
+ /// <returns></returns>
+ public string CheckError()
+ {
+ //鎵ц妫�娴嬮敊璇�
+ string error = this.DoCheckError();
+ if (error != null)
+ {
+ //鐒︾偣鎺у埗
+ this.Foucs = true;
+ return error;
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// 鎵ц妫�娴嬮敊璇�
+ /// </summary>
+ /// <returns></returns>
+ private string DoCheckError()
+ {
+ //妫�娴嬫渶澶ц緭鍑築yte
+ string msg = this.CheckMaxByte();
+ if (msg != null) { return msg; }
+
+ //妫�娴嬪繀椤昏緭鍏�
+ if (this.MustInput == true && this.Text.Trim() == string.Empty)
+ {
+ if (string.IsNullOrEmpty(this.PlaceholderText) == false)
+ {
+ return this.PlaceholderText;
+ }
+ //璇ュ唴瀹逛笉鑳界渷鐣�
+ return "Please Input Content!";
+ }
+
+ return null;
+ }
+
+ /// <summary>
+ /// 妫�娴嬫渶澶ц緭鍏yte
+ /// </summary>
+ /// <returns></returns>
+ private string CheckMaxByte()
+ {
+ return null;
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害
+ /// </summary>
+ /// <param name="i_size"></param>
+ /// <returns></returns>
+ public int GetPictrueRealSize(int i_size)
+ {
+ return Application.GetRealWidth(i_size);
+ }
+
+ /// <summary>
+ /// 鎺т欢绉婚櫎
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ this.FinishInputEvent = null;
+ this.TextChangedEvent = null;
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
new file mode 100755
index 0000000..d1ec836
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
@@ -0,0 +1,39 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓瓨鍦ㄤ簬BodyFrameLayout搴曢儴杩涜鍗曞嚮鐨勬寜閽湬
+ /// </summary>
+ public class BottomClickButton : ButtonCtrBase
+ {
+ /// <summary>
+ /// Y杞村潗鏍�
+ /// </summary>
+ public int Yaxis = 0;
+
+ /// <summary>
+ /// 鍋氭垚涓�涓瓨鍦ㄤ簬BodyFrameLayout搴曢儴杩涜鍗曞嚮鐨勬寜閽�
+ /// </summary>
+ /// <param name="i_width">鏈変簺鐣岄潰寰堢壒娈�,涓嶇粺涓�鎸夐敭瀹藉害,鎵�浠ラ鐣欐鍙傛暟</param>
+ public BottomClickButton(int i_width = 188)
+ {
+ this.Yaxis = Application.GetRealHeight(539);
+
+ //杩欎釜鏄竴鑸綅缃�
+ this.Y = this.Yaxis;
+ this.Width = Application.GetRealWidth(i_width);
+ this.Height = Application.GetRealHeight(44);
+ this.TextAlignment = TextAlignment.Center;
+ this.TextColor = CSS_Color.MainBackgroundColor;
+ this.Gravity = Gravity.CenterHorizontal;
+ this.Radius = (uint)Application.GetRealHeight(44) / 2;
+ this.TextSize = CSS_FontSize.SubheadingFontSize;
+ this.IsBold = true;
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomDialogCommon.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomDialogCommon.cs
new file mode 100755
index 0000000..e1c2277
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomDialogCommon.cs
@@ -0,0 +1,124 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 搴曢儴寮圭獥鐨勫簳灞傚叡閫�
+ /// </summary>
+ public class BottomDialogCommon
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鍙栨秷鎺т欢
+ /// </summary>
+ public NormalViewControl btnCancel = null;
+ /// <summary>
+ /// 纭鎺т欢
+ /// </summary>
+ public NormalViewControl btnConfirm = null;
+ /// <summary>
+ /// 鏍囬
+ /// </summary>
+ public string StrTitle = null;
+ /// <summary>
+ /// 琛岄珮搴�
+ /// </summary>
+ public int RowHeight = Application.GetRealHeight(50);
+ /// <summary>
+ /// 琛屾暟
+ /// </summary>
+ public int RowCount = 0;
+ /// <summary>
+ /// 鐐瑰嚮鑳屾櫙鏃�,鏄惁鍏抽棴寮圭獥
+ /// </summary>
+ public bool ClickBackClose = true;
+ /// <summary>
+ /// 鏁翠釜寮圭獥瀵硅薄
+ /// </summary>
+ private Dialog FrameDialog = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栧簳灞傛帶浠�(杩斿洖鐨勬槸鍥涘懆鏈夊渾瑙掔殑鐧借壊鍖哄煙鎺т欢),姝ゆ柟娉曠敱灏佽鎺т欢搴曞眰璋冪敤,璇峰嬁闅忎究璋冪敤
+ /// </summary>
+ public NormalFrameLayout InitBaseControl()
+ {
+ //鏁翠釜鐏拌壊鐣岄潰
+ this.FrameDialog?.Close();
+ this.FrameDialog = new Dialog();
+
+ var dialogBody = new NormalFrameLayout();
+ FrameDialog.AddChidren(dialogBody);
+ FrameDialog.Show();
+ dialogBody.ButtonClickEvent += (sender, e) =>
+ {
+ if (ClickBackClose == true && this.btnCancel != null)
+ {
+ this.btnCancel.ButtonClickEvent?.Invoke(this.btnCancel, null);
+ }
+ };
+
+ //鐧借壊鑳屾櫙
+ var frameWhiteBack = new NormalFrameLayout();
+ frameWhiteBack.Width = Application.GetRealWidth(343);
+ frameWhiteBack.Height = RowHeight * (RowCount + 1);
+ frameWhiteBack.Radius = (uint)Application.GetRealWidth(12);
+ frameWhiteBack.Gravity = Gravity.CenterHorizontal;
+ frameWhiteBack.Y = dialogBody.Height - RowHeight * (RowCount + 1) - Application.GetRealHeight(20);
+ frameWhiteBack.BackgroundColor = CSS_Color.MainBackgroundColor;
+ dialogBody.AddChidren(frameWhiteBack);
+
+ //鍙栨秷
+ this.btnCancel = new NormalViewControl(90, 48, true);
+ btnCancel.X = HdlControlResourse.XXLeft;
+ btnCancel.Y = Application.GetRealHeight(2);
+ btnCancel.TextColor = CSS_Color.PromptingColor1;
+ btnCancel.TextID = StringId.Cancel;
+ frameWhiteBack.AddChidren(btnCancel);
+
+ //鏍囬
+ var btnTitle = new NormalViewControl(243, 22, true);
+ btnTitle.Y = Application.GetRealHeight(15);
+ btnTitle.TextAlignment = TextAlignment.Center;
+ btnTitle.Gravity = Gravity.CenterHorizontal;
+ btnTitle.IsBold = true;
+ btnTitle.TextSize = CSS_FontSize.SubheadingFontSize;
+ btnTitle.TextColor = CSS_Color.FirstLevelTitleColor;
+ btnTitle.Text = this.StrTitle;
+ frameWhiteBack.AddChidren(btnTitle);
+
+ //纭
+ this.btnConfirm = new NormalViewControl(90, 48, true);
+ btnConfirm.X = frameWhiteBack.Width - Application.GetRealWidth(90) - btnCancel.X;
+ btnConfirm.Y = btnCancel.Y;
+ btnConfirm.TextAlignment = TextAlignment.CenterRight;
+ btnConfirm.TextColor = CSS_Color.MainColor;
+ btnConfirm.TextID = StringId.Confirm;
+ frameWhiteBack.AddChidren(btnConfirm);
+
+ return frameWhiteBack;
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍏抽棴鐣岄潰
+ /// </summary>
+ public virtual void Close()
+ {
+ this.FrameDialog?.Close();
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemEditorControl.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemEditorControl.cs
new file mode 100755
index 0000000..fae40c6
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemEditorControl.cs
@@ -0,0 +1,137 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 搴曢儴椤圭洰缂栬緫鎺т欢
+ /// </summary>
+ public class BottomItemEditorControl : BottomDialogCommon
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 缁撴潫浜嬩欢(0:鐐瑰嚮浜嗗彇娑� 1:鐐瑰嚮浜嗙‘瀹�)
+ /// </summary>
+ public Action<int> FinishEvent = null;
+ /// <summary>
+ /// 鍒楄〃鎺т欢
+ /// </summary>
+ private VerticalListControl listView = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鏈夋爣棰樼殑寮圭獥鍨嬭彍鍗曠紪杈戞帶浠�
+ /// </summary>
+ /// <param name="i_RowCount">鑿滃崟琛屾暟(涓嶅惈鏍囬)</param>
+ /// <param name="i_title">鏍囬</param>
+ /// <param name="clickBackClose">鐐瑰嚮鑳屾櫙鏃�,鏄惁鍏抽棴寮圭獥</param>
+ public BottomItemEditorControl(int i_RowCount, string i_title, bool clickBackClose = true)
+ {
+ //鏈�澶ф樉绀�7涓�
+ base.RowCount = i_RowCount > 7 ? 7 : i_RowCount;
+ base.ClickBackClose = clickBackClose;
+ base.StrTitle = i_title;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ private void InitControl()
+ {
+ //宸茬粡鍒濆鍖�
+ if (base.btnCancel != null) { return; }
+
+ //鍒濆鍖栧簳灞傛帶浠�
+ var frameWhiteBack = base.InitBaseControl();
+ //鍙栨秷
+ base.btnCancel.ButtonClickEvent += (sender, e) =>
+ {
+ base.Close();
+ this.FinishEvent?.Invoke(0);
+ this.FinishEvent = null;
+ };
+
+ //纭
+ base.btnConfirm.ButtonClickEvent += (sender, e) =>
+ {
+ base.Close();
+ this.FinishEvent?.Invoke(1);
+ this.FinishEvent = null;
+ };
+
+ //鍒楄〃鎺т欢
+ this.listView = new VerticalListControl();
+ listView.Y = btnConfirm.Bottom;
+ listView.Height = this.RowCount * this.RowHeight;
+ frameWhiteBack.AddChidren(listView);
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鑿滃崟___________________________
+
+ /// <summary>
+ /// 娣诲姞鑿滃崟琛�
+ /// </summary>
+ /// <param name="i_textView">宸﹁竟鏄剧ず鐨勬枃瀛�</param>
+ /// <param name="i_textValue">鍙宠竟鏄剧ず鐨勫��(</param>
+ /// <param name="clickEvent">鍗曞嚮鑿滃崟鎵ц鐨勪簨浠�(鍙傛暟涓哄彸杈规樉绀哄�肩殑閭d釜鎺т欢)</param>
+ public void AddRowMenu(string i_textView, string i_textValue, Action<NormalViewControl> clickEvent)
+ {
+ //鍏堝垵濮嬪寲鎺т欢
+ this.InitControl();
+
+ //瀹冪殑涓婁竴琛�
+ var rowBefor = this.listView.GetChildren(this.listView.ChildrenCount - 1) as FrameRowControl;
+ if (rowBefor != null)
+ {
+ //鐢诲簳绾�
+ var btnLine = rowBefor.AddBottomLine();
+ btnLine.Width = rowBefor.Width - Application.GetRealWidth(20) * 2;
+ btnLine.Gravity = Gravity.CenterHorizontal;
+ }
+
+ //琛�
+ var rowContr = new FrameRowControl();
+ rowContr.LeftOffset = Application.GetRealWidth(20) - HdlControlResourse.XXLeft;
+ rowContr.RightOffset = - rowContr.LeftOffset;
+ rowContr.Width = this.listView.Width;
+ rowContr.Height = this.RowHeight;
+ this.listView.AddChidren(rowContr);
+ //鏄剧ず鏂囨湰
+ var btnView = rowContr.AddLeftCaption(i_textView, 150);
+ btnView.Width = btnView.GetRealWidthByText();
+ btnView.TextColor = CSS_Color.FirstLevelTitleColor;
+ //娣诲姞鍙崇澶�
+ rowContr.AddRightArrow();
+ //娣诲姞鍙宠竟鐨勬枃鏈�
+ var btnValue = rowContr.AddMostRightView(i_textValue, 150);
+ rowContr.ButtonClickEvent += (sender, e) =>
+ {
+ clickEvent?.Invoke(btnValue);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍏抽棴鐣岄潰
+ /// </summary>
+ public override void Close()
+ {
+ base.Close();
+ this.FinishEvent = null;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
new file mode 100755
index 0000000..aaff1c0
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
@@ -0,0 +1,203 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 搴曢儴椤圭洰閫夋嫨鎺т欢
+ /// </summary>
+ public class BottomItemSelectControl: BottomDialogCommon
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 缁撴潫浜嬩欢,鍙互澶氶��(0:鐐瑰嚮浜嗗彇娑�,绗簩鍙傛暟涓簄ull 1:鐐瑰嚮浜嗙‘瀹�,绗簩鍙傛暟涓洪�夋嫨鐨勭储寮�,浠�0寮�濮�)
+ /// </summary>
+ public Action<int, List<int>> FinishEvent = null;
+ /// <summary>
+ /// 缁撴潫浜嬩欢,鍙兘閫夋嫨涓�涓�(0:鐐瑰嚮浜嗗彇娑�,绗簩鍙傛暟涓簄ull 1:鐐瑰嚮浜嗙‘瀹�,绗簩鍙傛暟涓洪�夋嫨鐨勭储寮�,浠�0寮�濮�)
+ /// </summary>
+ public Action<int, int> FinishOnlyEvent = null;
+ /// <summary>
+ /// 閫夋嫨鐨勭储寮�
+ /// </summary>
+ private List<int> ListSelect = new List<int>();
+ /// <summary>
+ /// 鍒楄〃鎺т欢
+ /// </summary>
+ private VerticalListControl listView = null;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勫浘鏍囨帶浠�
+ /// </summary>
+ private MostRightIconControl btnNowSelectIcon = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鏈夋爣棰樼殑寮圭獥鍨嬭彍鍗曢�夋嫨鎺т欢
+ /// </summary>
+ /// <param name="i_RowCount">鑿滃崟琛屾暟(涓嶅惈鏍囬)</param>
+ /// <param name="i_title">鏍囬</param>
+ /// <param name="clickBackClose">鐐瑰嚮鑳屾櫙鏃�,鏄惁鍏抽棴寮圭獥</param>
+ public BottomItemSelectControl(int i_RowCount, string i_title, bool clickBackClose = true)
+ {
+ //鏈�澶ф樉绀�7涓�
+ base.RowCount = i_RowCount > 7 ? 7 : i_RowCount;
+ base.ClickBackClose = clickBackClose;
+ base.StrTitle = i_title;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ private void InitControl()
+ {
+ //宸茬粡鍒濆鍖�
+ if (base.btnCancel != null) { return; }
+
+ //鍒濆鍖栧簳灞傛帶浠�
+ var frameWhiteBack = base.InitBaseControl();
+ //鍙栨秷
+ base.btnCancel.ButtonClickEvent += (sender, e) =>
+ {
+ base.Close();
+ this.FinishEvent?.Invoke(0, null);
+ this.FinishOnlyEvent?.Invoke(0, 0);
+ this.FinishEvent = null;
+ this.FinishOnlyEvent = null;
+ };
+
+ base.btnConfirm.ButtonClickEvent += (sender, e) =>
+ {
+ //鏈夐�夋嫨鎵嶈兘鐐圭‘璁�
+ if (this.ListSelect.Count > 0)
+ {
+ base.Close();
+ this.FinishEvent?.Invoke(1, this.ListSelect);
+ this.FinishOnlyEvent?.Invoke(1, this.ListSelect[0]);
+ this.FinishEvent = null;
+ this.FinishOnlyEvent = null;
+ }
+ };
+
+ //鍒楄〃鎺т欢
+ this.listView = new VerticalListControl();
+ listView.Y = btnConfirm.Bottom;
+ listView.Height = this.RowCount * this.RowHeight;
+ frameWhiteBack.AddChidren(listView);
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鑿滃崟___________________________
+
+ /// <summary>
+ /// 娣诲姞鑿滃崟琛�
+ /// </summary>
+ /// <param name="i_listText">鏄剧ず鐨勫垪琛ㄦ枃瀛�</param>
+ /// <param name="i_listSelect">榛樿閫夋嫨</param>
+ public void AddRowMenu(List<string> i_listText, List<int> i_listSelect)
+ {
+ foreach (var index in i_listSelect)
+ {
+ if (index >= 0)
+ {
+ //鑸嶅純鎺変竴浜涢潪娉曠殑鏁版嵁
+ this.ListSelect.Add(index);
+ }
+ }
+
+ //鍏堝垵濮嬪寲鎺т欢
+ this.InitControl();
+
+ for (int index = 0; index < i_listText.Count; index++)
+ {
+ //鐢熸垚琛屾帶浠�
+ this.CreatRowControl(i_listText[index], index);
+ }
+ }
+
+ /// <summary>
+ /// 鐢熸垚琛屾帶浠�
+ /// </summary>
+ /// <param name="i_text">鏄剧ず鏂囨湰</param>
+ /// <param name="i_index">绱㈠紩</param>
+ private void CreatRowControl(string i_text, int i_index)
+ {
+ //瀹冪殑涓婁竴琛�
+ var rowBefor = this.listView.GetChildren(this.listView.ChildrenCount - 1) as FrameRowControl;
+ if (rowBefor != null)
+ {
+ //鐢诲簳绾�
+ var btnLine = rowBefor.AddBottomLine();
+ btnLine.Width = rowBefor.Width - Application.GetRealWidth(20) * 2;
+ btnLine.Gravity = Gravity.CenterHorizontal;
+ }
+
+ //琛�
+ var rowContr = new FrameRowControl();
+ rowContr.LeftOffset = Application.GetRealWidth(20) - HdlControlResourse.XXLeft;
+ rowContr.RightOffset = HdlControlResourse.XXLeft - Application.GetRealWidth(12);
+ rowContr.Width = this.listView.Width;
+ rowContr.Height = this.RowHeight;
+ this.listView.AddChidren(rowContr);
+ //鏄剧ず鏂囨湰
+ var btnView = rowContr.AddLeftCaption(i_text, 150);
+ btnView.TextColor = CSS_Color.FirstLevelTitleColor;
+ //閫夋嫨鍥炬爣
+ var btnIcon = rowContr.AddMostRightEmptyIcon(28, 28);
+ btnIcon.MainKey = i_index.ToString();
+ btnIcon.UnSelectedImagePath = "Public/ChooseIcon.png";
+ btnIcon.SelectedImagePath = "Public/ChooseOnIcon.png";
+ if (this.ListSelect.Contains(i_index) == true)
+ {
+ btnIcon.IsSelected = true;
+ this.btnNowSelectIcon = btnIcon;
+ }
+ rowContr.ButtonClickEvent += (sender, e) =>
+ {
+ btnIcon.IsSelected = !btnIcon.IsSelected;
+ if (btnIcon.IsSelected == true)
+ {
+ this.ListSelect.Add(i_index);
+ if (this.FinishOnlyEvent != null)
+ {
+ //濡傛灉閫夋嫨浜嗗彧鑳介�夋嫨涓�涓殑妯″紡,鍒欏彇娑堟帀涓婁竴娆$殑閫夋嫨
+ if (this.btnNowSelectIcon != null)
+ {
+ this.btnNowSelectIcon.IsSelected = false;
+ this.ListSelect.Remove(Convert.ToInt32(this.btnNowSelectIcon.MainKey));
+ }
+ this.btnNowSelectIcon = btnIcon;
+ }
+ }
+ else
+ {
+ this.ListSelect.Remove(i_index);
+ this.btnNowSelectIcon = null;
+ }
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍏抽棴鐣岄潰
+ /// </summary>
+ public override void Close()
+ {
+ base.Close();
+ this.FinishEvent = null;
+ this.FinishOnlyEvent = null;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomTimeSelectControl.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomTimeSelectControl.cs
new file mode 100755
index 0000000..faf33e6
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomTimeSelectControl.cs
@@ -0,0 +1,136 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 搴曢儴鏃堕棿閫夋嫨鎺т欢
+ /// </summary>
+ public class BottomTimeSelectControl : BottomDialogCommon
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 缁撴潫浜嬩欢(0:鐐瑰嚮浜嗗彇娑� 1:鐐瑰嚮浜嗙‘瀹�,绗簩,涓夊弬鏁颁负鏃跺拰鍒�)
+ /// </summary>
+ public Action<int, int, int> FinishEvent = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 搴曢儴鏃堕棿閫夋嫨鎺т欢
+ /// </summary>
+ /// <param name="i_title">鏍囬</param>
+ /// <param name="clickBackClose">鐐瑰嚮鑳屾櫙鏃�,鏄惁鍏抽棴寮圭獥</param>
+ public BottomTimeSelectControl(string i_title = "", bool clickBackClose = true)
+ {
+ base.ClickBackClose = clickBackClose;
+ base.StrTitle = i_title;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ /// <param name="i_hour">榛樿閫夋嫨鏃�</param>
+ /// <param name="i_minute">榛樿閫夋嫨鍒�</param>
+ public void InitControl(int i_hour, int i_minute)
+ {
+ //宸茬粡鍒濆鍖�
+ if (base.btnCancel != null) { return; }
+
+ //鍒濆鍖栧簳灞傛帶浠�
+ var frameWhiteBack = base.InitBaseControl();
+ frameWhiteBack.Height = Application.GetRealHeight(297);
+ frameWhiteBack.Y = frameWhiteBack.Parent.Height - Application.GetRealHeight(297 + 20);
+
+ //閫夋嫨鐨勬椂涓庡垎
+ int selectHour = 0;
+ int selectMinute = 0;
+
+ //鍙栨秷
+ base.btnCancel.ButtonClickEvent += (sender, e) =>
+ {
+ base.Close();
+ this.FinishEvent?.Invoke(0, 0, 0);
+ this.FinishEvent = null;
+ };
+ //纭
+ base.btnConfirm.ButtonClickEvent += (sender, e) =>
+ {
+ //鏈夐�夋嫨浜嗘墠鑳界偣纭
+ if (selectHour != 0 || selectMinute != 0)
+ {
+ base.Close();
+ this.FinishEvent?.Invoke(1, selectHour, selectMinute);
+ this.FinishEvent = null;
+ }
+ };
+
+ //绾�
+ var btnLine = new NormalViewControl(frameWhiteBack.Width, HdlControlResourse.BottomLineHeight, false);
+ btnLine.BackgroundColor = CSS_Color.PromptingColor2;
+ btnLine.Y = btnCancel.Bottom;
+ frameWhiteBack.AddChidren(btnLine);
+
+ //鏃堕棿鎺т欢
+ var pickerView = new UIPickerView();
+ //鏃�
+ var strhour = Language.StringByID(StringId.h);
+ //鍒�
+ var strMinute = Language.StringByID(StringId.m);
+ //XX鏃�
+ var listHour = new List<string> { "00" + strhour };
+ //XX鍒�
+ var listMinute = new List<string> { "00" + strMinute };
+ for (int i = 1; i <= 23; i++)
+ {
+ listHour.Add(i.ToString().PadLeft(2, '0') + strhour);
+ }
+ for (int i = 1; i <= 58; i++)
+ {
+ listMinute.Add(i.ToString().PadLeft(2, '0') + strMinute);
+ }
+ pickerView.Height = frameWhiteBack.Height - btnLine.Bottom;
+ pickerView.Width = frameWhiteBack.Width - Application.GetRealWidth(8) * 2;
+ pickerView.Y = btnLine.Bottom;
+ pickerView.Gravity = Gravity.CenterHorizontal;
+ frameWhiteBack.AddChidren(pickerView);
+ //榛樿绱㈠紩
+ var index1 = listHour.IndexOf(i_hour.ToString().PadLeft(2, '0') + strhour);
+ if (index1 == -1) { index1 = 0; }
+ var index2 = listMinute.IndexOf(i_minute.ToString().PadLeft(2, '0') + strMinute);
+ if (index2 == -1) { index2 = 0; }
+
+ pickerView.setNPicker(listHour, listMinute, null);
+ pickerView.setCurrentItems(index1, index2, 0);
+
+ pickerView.OnSelectChangeEvent = (value1, value2, value3) =>
+ {
+ //鏇存敼绱㈠紩
+ selectHour = Convert.ToInt32(listHour[value1].Substring(0, 2));
+ selectMinute = Convert.ToInt32(listMinute[value2].Substring(0, 2));
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍏抽棴鐣岄潰
+ /// </summary>
+ public override void Close()
+ {
+ base.Close();
+ this.FinishEvent = null;
+ }
+
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DialogTitleMenuControl.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DialogTitleMenuControl.cs
new file mode 100755
index 0000000..1b4a3dc
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DialogTitleMenuControl.cs
@@ -0,0 +1,154 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鏈夋爣棰樼殑寮圭獥鍨嬭彍鍗曢�夋嫨鎺т欢(Y杞存渶濂藉噺鎺�12)
+ /// </summary>
+ public class DialogTitleMenuControl : NormalFrameLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鍒楄〃鎺т欢
+ /// </summary>
+ private VerticalListControl listView = null;
+ /// <summary>
+ /// 鏍囬(鍒濆鍖栦箣鍚庝細缃┖)
+ /// </summary>
+ private string StrTitle = null;
+ /// <summary>
+ /// 琛岄珮搴�
+ /// </summary>
+ private int RowHeight = HdlControlResourse.ListViewRowHeight;
+ /// <summary>
+ /// 琛屾暟
+ /// </summary>
+ private int RowCount = 0;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鏈夋爣棰樼殑寮圭獥鍨嬭彍鍗曢�夋嫨鎺т欢(Y杞存渶濂藉噺鎺�12)
+ /// </summary>
+ /// <param name="i_RowCount">鑿滃崟琛屾暟(涓嶅惈鏍囬)</param>
+ /// <param name="i_title">鏍囬</param>
+ public DialogTitleMenuControl(int i_RowCount, string i_title)
+ {
+ //鏈�澶ф樉绀�5涓�
+ this.RowCount = i_RowCount > 5 ? 5 : i_RowCount;
+ this.StrTitle = i_title;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ private void InitControl()
+ {
+ //宸茬粡鍒濆鍖栬繃,涓嶉渶瑕佸啀娆″垵濮嬪寲
+ if (this.StrTitle == null) { return; }
+
+ this.BackgroundImagePath = "FunctionIcon/Electrical/Fan/DialogTitleMenuGroud" + this.RowCount + ".png";
+
+ //鏍囬琛�
+ var rowTitle = new FrameRowControl();
+ rowTitle.LeftOffset = Application.GetRealWidth(24) - HdlControlResourse.XXLeft;
+ rowTitle.Y = Application.GetRealHeight(8);
+ rowTitle.Width = this.Width;
+ rowTitle.Height = this.RowHeight;
+ this.AddChidren(rowTitle);
+ //鏍囬
+ var btnTitle = rowTitle.AddLeftCaption(this.StrTitle, 100);
+ //浠嶺杞村紑濮�,閾烘弧鏁翠竴琛�
+ btnTitle.Width = rowTitle.Width - btnTitle.X;
+ btnTitle.TextColor = CSS_Color.FirstLevelTitleColor;
+ btnTitle.TextSize = CSS_FontSize.SubheadingFontSize;
+ //绾�
+ var btnLine = rowTitle.AddBottomLine();
+ btnLine.Width = rowTitle.Width - Application.GetRealWidth(24) * 2;
+ btnLine.Gravity = Gravity.CenterHorizontal;
+ btnLine.BackgroundColor = CSS_Color.BackgroundColor;
+
+ this.StrTitle = null;
+
+ //鍒楄〃鎺т欢
+ this.listView = new VerticalListControl();
+ listView.Y = rowTitle.Bottom;
+ listView.Height = this.RowCount * this.RowHeight;
+ this.AddChidren(listView);
+
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鑿滃崟___________________________
+
+ /// <summary>
+ /// 娣诲姞鑿滃崟琛�(瀹冩渶缁堢殑鐖舵帶浠堕渶瑕佹墜鍔ㄥ叧闂�)
+ /// </summary>
+ /// <param name="i_textValue">鏄剧ず鐨勬枃瀛�</param>
+ /// <param name="i_iconPath">鍥剧墖(</param>
+ /// <param name="i_select">鏄惁鏄�夋嫨鐘舵��</param>
+ /// <param name="clickEvent">鍗曞嚮鑿滃崟鎵ц鐨勪簨浠�</param>
+ public void AddRowMenu(string i_textValue, string i_iconPath, bool i_select, Action clickEvent)
+ {
+ //鍏堝垵濮嬪寲鎺т欢
+ this.InitControl();
+
+ uint fontColor = i_select == true ? CSS_Color.MainColor : CSS_Color.FirstLevelTitleColor;
+ //鐢熸垚琛屾帶浠�
+ var frameRow = this.CreatRowControl(i_iconPath, i_textValue, fontColor);
+ frameRow.ButtonClickEvent += (sender, e) =>
+ {
+ //璋冪敤鍥炶皟鍑芥暟
+ clickEvent?.Invoke();
+ clickEvent = null;
+ };
+ }
+
+ /// <summary>
+ /// 鐢熸垚琛屾帶浠�
+ /// </summary>
+ /// <param name="i_iconPath">鍥炬爣</param>
+ /// <param name="i_text">鏄剧ず鐨勬枃瀛�</param>
+ /// <param name="i_fontColor">瀛椾綋棰滆壊</param>
+ /// <returns></returns>
+ private FrameRowControl CreatRowControl(string i_iconPath, string i_text, uint i_fontColor)
+ {
+ //瀹冪殑涓婁竴琛�
+ var rowBefor = this.listView.GetChildren(this.listView.ChildrenCount - 1) as FrameRowControl;
+ if (rowBefor != null)
+ {
+ //鐢诲簳绾�
+ var btnLine = rowBefor.AddBottomLine();
+ btnLine.Width = rowBefor.Width - Application.GetRealWidth(24) * 2;
+ btnLine.Gravity = Gravity.CenterHorizontal;
+ btnLine.BackgroundColor = CSS_Color.BackgroundColor;
+ }
+
+ //琛�
+ var rowContr = new FrameRowControl();
+ rowContr.LeftOffset = Application.GetRealWidth(24) - HdlControlResourse.XXLeft;
+ rowContr.Width = this.Width;
+ rowContr.Height = this.RowHeight;
+ this.listView.AddChidren(rowContr);
+ //鍥炬爣
+ rowContr.AddLeftIcon(24, i_iconPath);
+ //鏄剧ず鏂囨湰
+ var btnView = rowContr.AddLeftCaption(i_text, 92);
+ //浠嶺杞村紑濮�,閾烘弧鏁翠竴琛�
+ btnView.Width = rowContr.Width - btnView.X;
+ btnView.TextColor = i_fontColor;
+
+ return rowContr;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DirectionImageControl.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DirectionImageControl.cs
new file mode 100755
index 0000000..739bc8c
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/DirectionImageControl.cs
@@ -0,0 +1,259 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鎺у埗涓婁笅宸﹀彸鍋滄鐨勫浘鍍忔帶浠�
+ /// </summary>
+ public class DirectionImageControl : NormalFrameLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鎺у埗浜嬩欢(涓嶆敮鎸丒nable鍜孌isable,閮藉綊涓篗id)
+ /// </summary>
+ public Action<DirectionEnum> ControlEvent = null;
+ /// <summary>
+ /// 鏄惁浣跨敤鐐瑰嚮鐗规晥,涓�鏃﹁缃负true,鍒欑偣鍑讳箣鍚�,浼氳嚜鍔ㄨ繕鍘熷洖Enable鐘舵��
+ /// </summary>
+ public bool UseClickStau = false;
+ /// <summary>
+ /// 鑳藉惁鎺у埗鏂瑰悜
+ /// </summary>
+ private bool CanDirection = false;
+ /// <summary>
+ /// 鍚勫浘鐗囪矾寰� 0:鍙互鎺у埗 1:涓嶅彲浠ユ帶鍒� 2:涓� 3:涓� 4:宸� 5:鍙�
+ /// </summary>
+ private List<string> listIconPath = new List<string>();
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖�
+ /// </summary>
+ /// <param name="i_enablePath">鍙互鎺у埗鐨勮儗鏅浘</param>
+ /// <param name="i_disablePath">涓嶅彲浠ユ帶鍒剁殑鑳屾櫙鍥�</param>
+ /// <param name="i_upPath">鐐瑰嚮鍚戜笂鐨勮儗鏅浘</param>
+ /// <param name="i_downPath">鐐瑰嚮鍚戜笅鐨勮儗鏅浘</param>
+ /// <param name="i_leftPath">鐐瑰嚮鍚戝乏鐨勮儗鏅浘</param>
+ /// <param name="i_rightPath">鐐瑰嚮鍚戝彸鐨勮儗鏅浘</param>
+ public void InitControl(string i_enablePath, string i_disablePath, string i_upPath, string i_downPath,
+ string i_leftPath, string i_rightPath)
+ {
+ this.listIconPath.Add(i_enablePath);
+ this.listIconPath.Add(i_disablePath);
+ this.listIconPath.Add(i_upPath);
+ this.listIconPath.Add(i_downPath);
+ this.listIconPath.Add(i_leftPath);
+ this.listIconPath.Add(i_rightPath);
+
+ this.BackgroundImagePath = i_disablePath;
+ this.CanDirection = false;
+ //鍒濆鍖栨寜閽�
+ this.IntiButtion();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨寜閽�
+ /// </summary>
+ private void IntiButtion()
+ {
+ //姝d腑闂寸殑鎸夐挳
+ var btnMid = new PicViewControl(70, 70);
+ btnMid.Gravity = Gravity.Center;
+ this.AddChidren(btnMid);
+ btnMid.ButtonClickEvent += (sender, e) =>
+ {
+ //鍒ゆ柇鑳藉惁鐐瑰嚮
+ if (this.CanClick == false) { return; }
+ //寮�鍚瓑寰呯嚎绋�(涓嶅厑璁哥媯鐐�)
+ this.StartWaitThread();
+
+ this.ControlEvent?.Invoke(DirectionEnum.Mid);
+ };
+
+ //涓婃寜閽�
+ var btnUp = new PicViewControl(52, 52);
+ this.AddChidren(btnUp);
+ btnUp.X = (this.Width - btnUp.Width) / 2;
+ btnUp.ButtonClickEvent += (sender, e) =>
+ {
+ //鏂瑰悜鐐瑰嚮
+ this.DirectionClickEvent(DirectionEnum.Up);
+ };
+ btnUp.ButtonDownClickEvent += (sender, e) =>
+ {
+ //鎸夐敭鎸変笅
+ this.DirectionDownClickEvent(DirectionEnum.Up);
+ };
+
+ //涓嬫寜閽�
+ var btnDown = new PicViewControl(btnUp.Width, btnUp.Height, false);
+ btnDown.X = btnUp.X;
+ this.AddChidren(btnDown);
+ btnDown.Y = this.Height - btnDown.Height;
+ btnDown.ButtonClickEvent += (sender, e) =>
+ {
+ //鏂瑰悜鐐瑰嚮
+ this.DirectionClickEvent(DirectionEnum.Down);
+ };
+ btnDown.ButtonDownClickEvent += (sender, e) =>
+ {
+ //鎸夐敭鎸変笅
+ this.DirectionDownClickEvent(DirectionEnum.Down);
+ };
+
+ //宸︽寜閽�
+ var btnLeft = new PicViewControl(btnUp.Width, btnUp.Height, false);
+ this.AddChidren(btnLeft);
+ btnLeft.Y = (this.Height - btnLeft.Height) / 2;
+ btnLeft.ButtonClickEvent += (sender, e) =>
+ {
+ //鏂瑰悜鐐瑰嚮
+ this.DirectionClickEvent(DirectionEnum.Left);
+ };
+ btnLeft.ButtonDownClickEvent += (sender, e) =>
+ {
+ //鎸夐敭鎸変笅
+ this.DirectionDownClickEvent(DirectionEnum.Left);
+ };
+
+ //鍙虫寜閽�
+ var btnRight = new PicViewControl(btnUp.Width, btnUp.Height, false);
+ btnRight.Y = btnLeft.Y;
+ this.AddChidren(btnRight);
+ btnRight.X = this.Width - btnRight.Width;
+ btnRight.ButtonClickEvent += (sender, e) =>
+ {
+ //鏂瑰悜鐐瑰嚮
+ this.DirectionClickEvent(DirectionEnum.Right);
+ };
+ btnRight.ButtonDownClickEvent += (sender, e) =>
+ {
+ //鎸夐敭鎸変笅
+ this.DirectionDownClickEvent(DirectionEnum.Right);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 澶栭儴璁剧疆鍥剧墖_______________________
+
+ /// <summary>
+ /// 璁剧疆鍥剧墖鏄剧ず
+ /// </summary>
+ /// <param name="direction">鏂瑰悜鏋氫妇(涓嶆敮鎸丮id)</param>
+ public void SetDirectionImage(DirectionEnum direction)
+ {
+ if (direction == DirectionEnum.Mid)
+ {
+ //涓嶆敮鎸丮id
+ return;
+ }
+ if (direction == DirectionEnum.Disable)
+ {
+ //涓嶈兘鎺у埗鏂瑰悜
+ this.CanDirection = false;
+ }
+ else if (direction == DirectionEnum.Enable)
+ {
+ //鑳藉鎺у埗鏂瑰悜
+ this.CanDirection = true;
+ }
+
+ string iconPath = this.listIconPath[((int)direction) - 1];
+ if (this.BackgroundImagePath != iconPath)
+ {
+ this.BackgroundImagePath = iconPath;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鏂瑰悜鐐瑰嚮___________________________
+
+ /// <summary>
+ /// 鏂瑰悜鐐瑰嚮
+ /// </summary>
+ /// <param name="direction"></param>
+ private void DirectionClickEvent(DirectionEnum direction)
+ {
+ //鍒ゆ柇鑳藉惁鐐瑰嚮
+ if (this.CanClick == false || this.CanDirection == false)
+ {
+ return;
+ }
+
+ //濡傛灉浣跨敤鐗规晥鐨勮瘽
+ if (this.UseClickStau == true)
+ {
+ //鍒囨崲鍥剧墖
+ this.SetDirectionImage(direction);
+ //寮�鍚瓑寰呯嚎绋�(涓嶅厑璁哥媯鐐�)
+ this.StartWaitThread();
+ }
+ else
+ {
+ //鍒囨崲鍥剧墖
+ this.SetDirectionImage(DirectionEnum.Enable);
+ }
+ this.ControlEvent?.Invoke(direction);
+ }
+
+ /// <summary>
+ /// 鏂瑰悜鎸夐敭鎸変笅浜嬩欢
+ /// </summary>
+ /// <param name="direction"></param>
+ private void DirectionDownClickEvent(DirectionEnum direction)
+ {
+ //濡傛灉涓嶄娇鐢ㄧ壒鏁堢殑璇�
+ if (this.CanClick == false || this.CanDirection == false || this.UseClickStau == true)
+ {
+ return;
+ }
+ //鍒囨崲鍥剧墖
+ this.SetDirectionImage(direction);
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 寮�鍚瓑寰呯嚎绋�(涓嶅厑璁哥媯鐐�)
+ /// </summary>
+ private void StartWaitThread()
+ {
+ this.CanClick = false;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ System.Threading.Thread.Sleep(300);
+ this.CanClick = true;
+
+ //濡傛灉涓嶄娇鐢ㄧ壒鏁堢殑璇�
+ if (this.UseClickStau == false)
+ {
+ return;
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍥剧墖杩樺師
+ if (this.BackgroundImagePath != this.listIconPath[0])
+ {
+ this.BackgroundImagePath = this.listIconPath[0];
+ }
+
+ }, ShowErrorMode.NO);
+
+ }, ShowErrorMode.NO);
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/FanGearSeekBarControl.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/FanGearSeekBarControl.cs
new file mode 100755
index 0000000..483447b
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/FanGearSeekBarControl.cs
@@ -0,0 +1,70 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 椋庢墖妗d綅杩涘害鏉℃帶浠�
+ /// </summary>
+ public class FanGearSeekBarControl : SeekBarImageControl
+ {
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 椋庢墖妗d綅杩涘害鏉℃帶浠�
+ /// </summary>
+ /// <param name="i_width">瀹藉害,闈炵湡瀹炲��,瀹為檯瀹藉害浼氬姞涓婂乏鍙抽棿璺�</param>
+ public FanGearSeekBarControl(int i_width) : base(i_width)
+ {
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ /// <param name="i_maxGear">鏈�澶ф。浣�</param>
+ public void InitControl(int i_maxGear)
+ {
+ //妗d綅鏂囧瓧鎺т欢鐨勫搴�
+ int contrWidth = Application.GetRealWidth(8);
+ //妗d綅鏂囧瓧涔嬮棿鐨勯棿璺�(闇�瑕佸噺鍘诲乏鍙充袱杈圭殑闂磋窛)
+ int contrSpace = (this.Width - this.SeekBarPadding * 2 - contrWidth * i_maxGear) / (i_maxGear - 1);
+ //鍒濆X杞翠笌婊戝姩鏉′竴鑷�
+ int XX = this.X + this.SeekBarPadding;
+ //鐢熸垚妗d綅鎺т欢
+ for (int i = 1; i <= i_maxGear; i++)
+ {
+ //妗d綅鎺т欢
+ var btnGear = new NormalViewControl(contrWidth, Application.GetRealHeight(18), false);
+ btnGear.X = XX;
+ btnGear.Y = this.Bottom;
+ btnGear.Text = i.ToString();
+ btnGear.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnGear.TextColor = CSS_Color.PromptingColor1;
+ this.Parent.AddChidren(btnGear);
+ //X杞村線鍙虫帹绉�
+ if (i == i_maxGear)
+ {
+ //鏈�鍚庝竴涓椂,鍙埌瀹冪殑鍙宠竟
+ XX = btnGear.Right;
+ }
+ else
+ {
+ XX = btnGear.Right + contrSpace;
+ }
+ }
+ //鏈�鍚庡啀鎵撲笂涓�涓�愭。銆戝瓧
+ var btnGearView = new NormalViewControl(60, 18, true);
+ btnGearView.X = XX + Application.GetRealWidth(4);
+ btnGearView.Y = this.Bottom;
+ btnGearView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnGearView.TextColor = CSS_Color.PromptingColor1;
+ btnGearView.Text = "锛�" + Language.StringByID(StringId.Gear) + "锛�";
+ this.Parent.AddChidren(btnGearView);
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/NormalSelectControl.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/NormalSelectControl.cs
new file mode 100755
index 0000000..0bea533
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/NormalSelectControl.cs
@@ -0,0 +1,144 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓畝鍗曠殑閫夋嫨鎺т欢
+ /// </summary>
+ public class NormalSelectControl : FrameRowControl
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鏄剧ず鏂囨湰
+ /// </summary>
+ private string textValue = string.Empty;
+ /// <summary>
+ /// 涓嬮儴鏄剧ず鏂囨湰
+ /// </summary>
+ private string textBottomValue = null;
+ /// <summary>
+ /// 鏂囨湰鎺т欢
+ /// </summary>
+ private NormalViewControl btnText = null;
+ /// <summary>
+ /// 閫夋嫨鎺т欢
+ /// </summary>
+ private MostRightIconControl btnSelect = null;
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ private StatuMode Statu = StatuMode.UnSelect;
+ /// <summary>
+ /// 鏄惁澶勪簬閫夋嫨鐘舵��
+ /// </summary>
+ public bool IsSelected
+ {
+ get { return Statu == StatuMode.Select; }
+ set
+ {
+ if (value == false)
+ {
+ this.SetUnselectStatu();
+ }
+ else
+ {
+ this.SetSelectStatu();
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓畝鍗曠殑閫夋嫨鎺т欢
+ /// </summary>
+ /// <param name="i_text">鏄剧ず鏂囨湰</param>
+ /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(銆愬垪琛ㄦ帶浠剁殑rowSpace/2銆戝嵆鍙�,涓嶆噦榛樿涓�0鍗冲彲)</param>
+ public NormalSelectControl(string i_text, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+ {
+ this.textValue = i_text;
+ }
+
+ /// <summary>
+ /// 鍋氭垚涓�涓畝鍗曠殑閫夋嫨鎺т欢
+ /// </summary>
+ /// <param name="i_topText">涓婇儴鏄剧ず鏂囨湰</param>
+ /// <param name="i_bottomText">涓嬮儴鏄剧ず鏂囨湰</param>
+ /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(銆愬垪琛ㄦ帶浠剁殑rowSpace/2銆戝嵆鍙�,涓嶆噦榛樿涓�0鍗冲彲)</param>
+ public NormalSelectControl(string i_topText, string i_bottomText, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+ {
+ this.textValue = i_topText;
+ this.textBottomValue = i_bottomText;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栧唴閮ㄦ帶浠�
+ /// </summary>
+ /// <param name="iconParh">宸︿晶鍥炬爣</param>
+ public void InitControl(string iconParh = "")
+ {
+ //鍥剧墖
+ if (iconParh != "")
+ {
+ var btnIcon = this.AddLeftIcon(28);
+ btnIcon.UnSelectedImagePath = iconParh;
+ }
+ if (this.textBottomValue == null)
+ {
+ //鏄剧ず鏂囨湰
+ btnText = this.AddLeftCaption(this.textValue, 208);
+ btnText.TextColor = CSS_Color.FirstLevelTitleColor;
+ }
+ else
+ {
+ //鏄剧ず鏂囨湰
+ btnText = this.AddTopView(this.textValue, 208);
+ this.AddBottomView(this.textBottomValue, 208);
+ }
+ //閫夋嫨鎺т欢
+ btnSelect = this.AddMostRightEmptyIcon(21, 21);
+ btnSelect.Visible = false;
+ btnSelect.UnSelectedImagePath = "Public/ChooseOnIcon.png";
+ }
+
+ #endregion
+
+ #region 鈻� 閫夋嫨鐘舵�乢__________________________
+
+ /// <summary>
+ /// 璁惧畾閫夋嫨鐘舵��
+ /// </summary>
+ private void SetSelectStatu()
+ {
+ if (Statu == StatuMode.Select)
+ {
+ return;
+ }
+ btnSelect.Visible = true;
+ //鐘舵�佸彉鏇�
+ Statu = StatuMode.Select ;
+ }
+
+ /// <summary>
+ /// 璁剧疆闈為�夋嫨鐘舵��
+ /// </summary>
+ private void SetUnselectStatu()
+ {
+ if (Statu == StatuMode.UnSelect)
+ {
+ return;
+ }
+ btnSelect.Visible = false;
+ //鐘舵�佸彉鏇�
+ Statu = StatuMode.UnSelect;
+ }
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressBar.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressBar.cs
new file mode 100755
index 0000000..179c36d
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressBar.cs
@@ -0,0 +1,139 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 杩涘害鏉�(鍦嗗舰)
+ /// </summary>
+ public class ProgressBar
+ {
+ /// <summary>
+ /// 鏈�澶у��
+ /// </summary>
+ private static decimal Max = 100;
+ /// <summary>
+ /// 褰撳墠鍊�
+ /// </summary>
+ private static decimal m_value = 0;
+ /// <summary>
+ /// 闄勫姞鏂囨湰
+ /// </summary>
+ private static string appendText = string.Empty;
+ /// <summary>
+ /// 杞湀鐨勬帶浠�
+ /// </summary>
+ private static Loading waitPage = null;
+
+ /// <summary>
+ /// 鏄剧ず杩涘害鏉�
+ /// </summary>
+ /// <param name="text">鍒濆鏂囨湰</param>
+ public static void Show(string text = "")
+ {
+ m_value = 0;
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ if (waitPage == null)
+ {
+ //鍙栧綋鍓嶆渶椤跺眰鐨勭晫闈�
+ var frame = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1) as FrameLayout;
+ if (frame != null)
+ {
+ //鍔犺浇Loading鏁堟灉
+ waitPage = new Loading();
+ frame.AddChidren(waitPage);
+ waitPage.Start(text);
+ }
+ }
+ }, ShowErrorMode.NO);
+ }
+
+ /// <summary>
+ /// 闅愯棌杩涘害鏉�
+ /// </summary>
+ public static void Close()
+ {
+ m_value = 0;
+ Max = 0;
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ if (waitPage != null)
+ {
+ waitPage.RemoveFromParent();
+ waitPage = null;
+ }
+ }, ShowErrorMode.NO);
+ }
+
+ /// <summary>
+ /// 杩涘害鍊艰瀹�(鏁板瓧)
+ /// </summary>
+ /// <param name="value">Value.</param>
+ public static void SetValue(decimal value)
+ {
+ m_value += value;
+ int value2 = (int)((m_value / Max) * 100);
+ if (value2 > 100)
+ {
+ value2 = 100;
+ }
+
+ SetValue(value2.ToString() + "%");
+ }
+
+ /// <summary>
+ /// 杩涘害鍊艰瀹�
+ /// </summary>
+ /// <param name="value">Value.</param>
+ /// <param name="text">闄勫姞鍊�</param>
+ public static void SetValue(decimal value, string text)
+ {
+ m_value += value;
+ int value2 = (int)((m_value / Max) * 100);
+ if (value2 > 100)
+ {
+ value2 = 100;
+ }
+
+ SetValue(value2.ToString() + "% " + text);
+ }
+
+ /// <summary>
+ /// 杩涘害鍊艰瀹�(鏂囨湰)
+ /// </summary>
+ /// <param name="text">Text.</param>
+ public static void SetValue(string text)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ waitPage.Text = text + appendText;
+ }, ShowErrorMode.NO);
+ }
+
+ /// <summary>
+ /// 璁惧畾杩涘害鍊兼渶澶х殑鍊硷紙鍒嗘瘝锛�
+ /// </summary>
+ /// <param name="maxValue">璁惧畾杩涘害鍊兼渶澶х殑鍊硷紙鍒嗘瘝锛�</param>
+ public static void SetMaxValue(decimal maxValue)
+ {
+ Max = maxValue;
+ }
+
+ /// <summary>
+ /// 鍦ㄨ繘搴︽潯閲岄潰闄勫姞鑷畾涔夋枃鏈�
+ /// </summary>
+ /// <param name="i_text"></param>
+ public static void SetAppendText(string i_text)
+ {
+ appendText = i_text;
+ if (appendText != string.Empty)
+ {
+ //澶氬姞涓�涓┖鏍�
+ appendText = " " + appendText;
+ }
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/SeekBarImageControl.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/SeekBarImageControl.cs
new file mode 100755
index 0000000..86a6b7a
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/SeekBarImageControl.cs
@@ -0,0 +1,248 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 宸﹀彸婊戝姩鐨勮繘搴︽潯鎺т欢
+ /// </summary>
+ public class SeekBarImageControl : DiyImageSeekBar
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 杩涘害鍊兼敼鍙�,濡傛灉瑕佽缃垵濮嬭繘搴﹀��,姝ゅ彉閲忚鍦ㄨ缃垵濮嬭繘搴﹀�间箣鍓嶈繘琛岃缃�(绗竴涓弬鏁�0:婊戝姩鐨勬椂鍊�,1:鎵嬫寚寮硅捣鐨勬椂鍊�)
+ /// </summary>
+ public Action<int, int> ProgressChangedEvent = null;
+ /// <summary>
+ /// 杩涘害鏉″彲鐢ㄦ椂鐨勮儗鏅壊
+ /// </summary>
+ private uint ProgressBarEnableColor = 0;
+ /// <summary>
+ /// 杩涘害鏉′笉鍙敤鏃剁殑鑳屾櫙鑹�(榛樿鐏拌壊)
+ /// </summary>
+ public uint ProgressBarUnEnableColor = 0xffe8e8e8;
+ /// <summary>
+ /// 褰撳墠鍙敤鐘舵��
+ /// </summary>
+ private bool nowEnable = true;
+ /// <summary>
+ /// 鎺т欢鑳藉惁浣跨敤
+ /// </summary>
+ public new bool Enable
+ {
+ set
+ {
+ //鐘舵�佹病鏈夋敼鍙�
+ if (nowEnable == value) { return; }
+ nowEnable = value;
+
+ this.IsClickable = value;
+ if (value == true)
+ {
+ //鍘熸潵鐨勯鑹�
+ base.ProgressBarColor = ProgressBarEnableColor;
+ }
+ else
+ {
+ //鐏拌壊
+ base.ProgressBarColor = ProgressBarUnEnableColor;
+ }
+ }
+ }
+
+ /// <summary>
+ /// 杩涘害鏉¢鑹�
+ /// </summary>
+ public new uint ProgressBarColor
+ {
+ set
+ {
+ ProgressBarEnableColor = value;
+ base.ProgressBarColor = value;
+ }
+ }
+
+ private int m_SeekBarPadding = Application.GetRealWidth(20);
+ /// <summary>
+ /// 杩涘害鏉′笌宸﹀彸涓よ竟鐨勮竟妗嗙殑杈硅窛(閲嶅啓搴曞眰灞炴��)
+ /// </summary>
+ public new int SeekBarPadding
+ {
+ set
+ {
+ m_SeekBarPadding = value;
+ base.SeekBarPadding = value;
+ }
+ get
+ {
+ return m_SeekBarPadding;
+ }
+ }
+
+ private int m_MaxValue = 0;
+ /// <summary>
+ /// 杩涘害鏉℃渶澶у��(閲嶅啓搴曞眰灞炴��)
+ /// </summary>
+ public new int MaxValue
+ {
+ set
+ {
+ m_MaxValue = value;
+ base.MaxValue = value;
+ }
+ }
+
+ private int m_MinValue = 0;
+ /// <summary>
+ /// 杩涘害鏉℃渶灏忓��(閲嶅啓搴曞眰灞炴��)
+ /// </summary>
+ public new int MinValue
+ {
+ set
+ {
+ m_MinValue = value;
+ base.MinValue = value;
+ }
+ }
+ /// <summary>
+ /// 涓婃柟鏄剧ず鐨勬枃鏈�
+ /// </summary>
+ private Button btnTopView = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 宸﹀彸婊戝姩鐨勮繘搴︽潯鎺т欢(楂樺害涓�54 宸﹀彸闂磋窛涓�20)
+ /// </summary>
+ /// <param name="i_width">瀹藉害,闈炵湡瀹炲��,瀹為檯瀹藉害浼氬姞涓婂乏鍙抽棿璺�</param>
+ public SeekBarImageControl(int i_width)
+ {
+ this.Width = Application.GetRealWidth(i_width) + Application.GetRealWidth(20) * 2;
+ this.Height = Application.GetRealHeight(54);
+ //鍦嗙悆鐨勯珮搴�
+ this.ThumbImageHeight = Application.GetRealHeight(54);
+ this.ThumbImagePath = "Public/ThumbImage.png";
+ //杩涘害鏉$殑楂樺害搴�
+ this.SeekBarViewHeight = Application.GetRealHeight(8);
+ //涓婃柟鏄惁鏄剧ず鏂囨湰
+ this.IsProgressTextShow = false;
+ this.Gravity = Gravity.CenterHorizontal;
+ //杩涘害鏉¢鑹�
+ this.ProgressBarColor = CSS_Color.MainColor;
+ //宸﹀彸杈硅窛(鏈�濂戒笉瑕佹敼杩欎釜鏁板��,涓�鏃︽敼浜�,鍙兘浼氬共鎵板埌鍏朵粬鐣岄潰)
+ this.SeekBarPadding = Application.GetRealWidth(20);
+
+ //杩涘害鏉″�兼敼鍙樹簨浠�
+ this.OnProgressChangedEvent += this.MyProgressChangedEvent;
+ //鎵嬫寚寮硅捣浜嬩欢
+ this.OnStopTrackingTouchEvent += this.MyStopTrackingTouchEvent;
+ }
+
+ #endregion
+
+ #region 鈻� 浜嬩欢_______________________________
+
+ /// <summary>
+ /// 杩涘害鏉″�兼敼鍙樹簨浠�
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="value"></param>
+ private void MyProgressChangedEvent(object sender, int value)
+ {
+ if (this.ProgressChangedEvent == null)
+ {
+ this.OnProgressChangedEvent -= this.MyProgressChangedEvent;
+ return;
+ }
+
+ this.ProgressChangedEvent(0, value);
+ }
+
+ /// <summary>
+ /// 鎵嬫寚寮硅捣浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="value"></param>
+ private void MyStopTrackingTouchEvent(object sender, int value)
+ {
+ if (this.ProgressChangedEvent == null)
+ {
+ this.OnStopTrackingTouchEvent -= this.MyStopTrackingTouchEvent;
+ return;
+ }
+ //寮硅捣浜嬩欢涓嶉渶瑕佸垽鏂椂闂�
+ this.ProgressChangedEvent(1, value);
+ }
+
+ #endregion
+
+ #region 鈻� 鑷畾涔変笂鏂规樉绀烘枃鏈琠________________
+
+ /// <summary>
+ /// 鍦ㄤ笂鏂规樉绀鸿嚜瀹氫箟鏂囨湰
+ /// </summary>
+ /// <param name="i_width">瀹藉害(鐪熷疄鍊�)</param>
+ /// <param name="textSize">鏂囧瓧澶у皬</param>
+ /// <param name="textColor">鏂囧瓧棰滆壊</param>
+ public void ShowCustomTextView(int i_width, int textSize, uint textColor)
+ {
+ if (this.btnTopView != null) { return; }
+
+ int contrHeight = Application.GetRealHeight(24);
+ this.btnTopView = new Button();
+ btnTopView.Width = i_width;
+ btnTopView.Height = contrHeight;
+ btnTopView.TextColor = textColor;
+ btnTopView.TextSize = textSize;
+ btnTopView.TextAlignment = TextAlignment.Center;
+ btnTopView.Y = this.Y - contrHeight + Application.GetRealHeight(20);
+ //鍒濆鍖栨椂,X杞村彲浠ヤ笉鐢ㄧ悊浼�
+
+ this.Parent.AddChidren(btnTopView);
+ }
+
+ /// <summary>
+ /// 璁剧疆鑷畾涔夋枃鏈俊鎭�
+ /// </summary>
+ /// <param name="i_text"></param>
+ public void SetCustomText(string i_text)
+ {
+ if (this.btnTopView == null) { return; }
+
+ this.btnTopView.Text = i_text;
+ //婊戞潯鏈�宸﹁竟鐨勮窛绂�
+ int XX = this.X + this.m_SeekBarPadding;
+ //褰撳墠婊戞潯鎵�鍦ㄧ殑澶ц嚧鐧惧垎姣�
+ int tempValue = this.Progress - this.m_MinValue;
+ if (tempValue < 0) { tempValue = 0; }
+ decimal persent = (decimal)tempValue / (this.m_MaxValue - this.m_MinValue);
+ //褰撳墠婊戞潯鎵�鍦ㄧ殑澶ц嚧浣嶇疆
+ XX += (int)((this.Width - this.m_SeekBarPadding * 2) * persent);
+ //鍥犱负瑕佸眳涓�,鎵�浠ュ噺鎺夎嚜瀹氫箟鎺т欢鐨勫搴︾殑涓�鑸�
+ XX = XX - this.btnTopView.Width / 2;
+
+ this.btnTopView.X = XX;
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ this.ProgressChangedEvent = null;
+ base.RemoveFromParent();
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameLayoutStatuControl.cs b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameLayoutStatuControl.cs
new file mode 100755
index 0000000..73cbd27
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameLayoutStatuControl.cs
@@ -0,0 +1,217 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓偣鍑诲悗鑳藉鏄剧ず鐐瑰嚮鐘舵�佺殑鎺т欢(鍩哄眰鎺т欢)
+ /// </summary>
+ public class FrameLayoutStatuControl : FrameLayoutBase
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鐘舵�佽缃殑浜嬩欢(浼氶噸杞藉簳灞傛晥鏋�)
+ /// </summary>
+ public Action<bool> SelectStatuEvent;
+ /// <summary>
+ /// 瀛愭帶浠禮杞村亸绉婚噺(鍏遍�氬畾涔夎�屽凡)
+ /// </summary>
+ public int chidrenYaxis = 0;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓偣鍑诲悗鑳藉鏄剧ず鐐瑰嚮鐘舵�佺殑鎺т欢
+ /// </summary>
+ /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(銆愬垪琛ㄦ帶浠剁殑rowSpace/2銆戝嵆鍙�,涓嶆噦榛樿涓�0鍗冲彲)</param>
+ public FrameLayoutStatuControl(int i_ChidrenYaxis = 0)
+ {
+ this.chidrenYaxis = i_ChidrenYaxis;
+
+ //缃┖搴曞眰鐨勪簨浠�
+ this.MouseUpEventHandler = null;
+ this.MouseUpEventHandler += ChildrenUpEvent;
+ }
+
+ #endregion
+
+ #region 鈻� 缁戝畾浜嬩欢___________________________
+
+ /// <summary>
+ /// 鍙樻洿瀛愭帶浠剁殑缁戝畾妯″紡
+ /// </summary>
+ /// <param name="view">瀛愭帶浠�</param>
+ /// <param name="chidrenBindMode">鍙樻洿鐨勭粦瀹氭ā寮�</param>
+ public void ChangedChidrenBindMode(View view, ChidrenBindMode chidrenBindMode)
+ {
+ if (view is ButtonCtrBase)
+ {
+ //瀛愭帶浠剁Щ闄や簨浠�
+ ButtonCtrBase button = (ButtonCtrBase)view;
+ button.ButtonClickEvent -= ChildrenUpEvent;
+
+ this.BindChidrenEvent(view, chidrenBindMode);
+ }
+ else if (view is ImageView)
+ {
+ view.MouseUpEventHandler -= ChildrenUpEvent;
+
+ this.BindChidrenEvent(view, chidrenBindMode);
+ }
+ else if (view is ViewGroup)
+ {
+ ViewGroup groupContr = (ViewGroup)view;
+ for (int i = 0; i < groupContr.ChildrenCount; i++)
+ {
+ var myView = groupContr.GetChildren(i);
+ if (myView == null)
+ {
+ break;
+ }
+ if (myView is ButtonCtrBase)
+ {
+ //瀛愭帶浠剁Щ闄や簨浠�
+ ButtonCtrBase button = (ButtonCtrBase)myView;
+ button.ButtonClickEvent -= ChildrenUpEvent;
+ }
+ }
+ //鑷韩绉婚櫎浜嬩欢
+ groupContr.MouseUpEventHandler -= ChildrenUpEvent;
+
+ this.BindChidrenEvent(view, chidrenBindMode);
+ }
+ }
+
+ /// <summary>
+ /// 缁戝畾瀛愭帶浠朵簨浠�(濡傛灉鏄鍚堟帶浠�,鍦ㄥ垵濮嬪寲瀹屾垚鍚�,璋冪敤ChangedChidrenBindMode)
+ /// </summary>
+ /// <param name="view"></param>
+ /// <param name="chidrenBindMode"></param>
+ private void BindChidrenEvent(View view, ChidrenBindMode chidrenBindMode)
+ {
+ if (chidrenBindMode == ChidrenBindMode.NotBind)
+ {
+ return;
+ }
+ if (view is ButtonCtrBase)
+ {
+ //涓哄瓙鎺т欢娣诲姞浜嬩欢
+ ButtonCtrBase button = (ButtonCtrBase)view;
+ button.ButtonClickEvent -= ChildrenUpEvent;
+ button.ButtonClickEvent += ChildrenUpEvent;
+ }
+ else if (view is ImageView)
+ {
+ //鑷韩涔熸坊鍔犱簨浠�
+ view.MouseUpEventHandler -= ChildrenUpEvent;
+ view.MouseUpEventHandler += ChildrenUpEvent;
+ }
+ else if (view is ViewGroup)
+ {
+ //涓哄瓙鎺т欢娣诲姞浜嬩欢
+ ViewGroup groupContr = (ViewGroup)view;
+ for (int i = 0; i < groupContr.ChildrenCount; i++)
+ {
+ var myView = groupContr.GetChildren(i);
+ if (myView == null)
+ {
+ break;
+ }
+ if (myView is ButtonCtrBase)
+ {
+ //涓哄瓙鎺т欢娣诲姞浜嬩欢
+ ButtonCtrBase button = (ButtonCtrBase)myView;
+ button.ButtonClickEvent -= ChildrenUpEvent;
+ button.ButtonClickEvent += ChildrenUpEvent;
+ }
+ }
+ //鑷韩涔熸坊鍔犱簨浠�
+ groupContr.MouseUpEventHandler -= ChildrenUpEvent;
+ groupContr.MouseUpEventHandler += ChildrenUpEvent;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞瀛愭帶浠禵________________________
+
+ /// <summary>
+ /// 娣诲姞瀛愭帶浠�
+ /// </summary>
+ /// <param name="view">瀛愭帶浠�</param>
+ /// <param name="chidrenBindMode">缁戝畾妯″紡</param>
+ public void AddChidren(View view, ChidrenBindMode chidrenBindMode = ChidrenBindMode.BindEvent)
+ {
+ base.AddChidren(view);
+
+ //缁戝畾瀛愭帶浠朵簨浠�
+ this.BindChidrenEvent(view, chidrenBindMode);
+ }
+
+ /// <summary>
+ /// 娣诲姞瀛愭帶浠�
+ /// </summary>
+ /// <param name="view"></param>
+ public override void AddChidren(View view)
+ {
+ this.AddChidren(view, ChidrenBindMode.NotBind);
+ }
+
+ #endregion
+
+ #region 鈻� 鎺т欢浜嬩欢___________________________
+
+ /// <summary>
+ /// 鐐瑰嚮鏉惧紑浜嬩欢
+ /// </summary>
+ /// <param name="sender">Sender.</param>
+ /// <param name="e">E.</param>
+ private void ChildrenUpEvent(object sender, MouseEventArgs e)
+ {
+ if (this.CanClick == false)
+ {
+ //涓嶅厑璁哥偣鍑�
+ return;
+ }
+ try
+ {
+ //璋冪敤濮旀墭
+ ButtonClickEvent?.Invoke(sender, e);
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 绉婚櫎搴曞眰鎺т欢鑷韩鐨勫崟鍑讳簨浠�
+ /// </summary>
+ public void RemoveBaseClickEvent()
+ {
+ this.MouseUpEventHandler -= ChildrenUpEvent;
+ }
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ this.SelectStatuEvent = null;
+
+ base.RemoveFromParent();
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameListControl.cs b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameListControl.cs
new file mode 100755
index 0000000..e3fd6f1
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameListControl.cs
@@ -0,0 +1,100 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笌VerticalListControl鍚屼竴鎬ц川,浣嗘槸瀹冩槸FrameLayout,瀹冧細鏀瑰彉楂樺害)
+ /// </summary>
+ public class FrameListControl : FrameLayoutBase
+ {
+ /// <summary>
+ /// 琛屼箣闂寸殑闂磋窛
+ /// </summary>
+ public int rowSpace = 0;
+
+ /// <summary>
+ /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笌VerticalListControl鍚屼竴鎬ц川,浣嗘槸瀹冩槸FrameLayout,瀹冧細鏀瑰彉楂樺害)
+ /// </summary>
+ /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
+ public FrameListControl(int i_rowSpace = 0)
+ {
+ rowSpace = Application.GetRealHeight(i_rowSpace);
+ }
+
+ /// <summary>
+ /// 娣诲姞瀛愭帶浠�
+ /// </summary>
+ /// <param name="view"></param>
+ public override void AddChidren(View view)
+ {
+ if (view is FrameRowControl || view is RowLayoutControl)
+ {
+ //FrameRowLayout鎺т欢鐨勬椂鍊�,鐩存帴鎵╁ぇ瀹冪殑楂樺害
+ var intBottom = this.GetLocationMostLastViewBottom();
+ if (intBottom != -1)
+ {
+ view.Y = intBottom;
+ }
+ base.AddChidren(view);
+ if (rowSpace > 0)
+ {
+ view.Height += rowSpace;
+ }
+ }
+ else
+ {
+ //闈濬rameRowLayout鎺т欢鐨勬椂鍊�,璁$畻鐨勬槸鍧愭爣
+ var intBottom = this.GetLocationMostLastViewBottom();
+ if (intBottom != -1)
+ {
+ view.Y = intBottom + rowSpace;
+ }
+ base.AddChidren(view);
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣鐪熷疄楂樺害
+ /// </summary>
+ /// <param name="bottomSpace">搴曢儴楂樺害(闈炵湡瀹炲��)</param>
+ public void AdjustRealHeight(int bottomSpace = 0)
+ {
+ int bottomHeight = -1;
+
+ for (int i = 0; i < this.ChildrenCount; i++)
+ {
+ var child = this.GetChildren(i);
+ if (child.Bottom > bottomHeight)
+ {
+ bottomHeight = child.Bottom;
+ }
+ }
+ if (bottomHeight != -1)
+ {
+ this.Height = bottomHeight + bottomSpace;
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ /// </summary>
+ /// <returns></returns>
+ private int GetLocationMostLastViewBottom()
+ {
+ int bottomHeight = -1;
+
+ for (int i = 0; i < this.ChildrenCount; i++)
+ {
+ var child = this.GetChildren(i);
+ if (child.Bottom > bottomHeight)
+ {
+ bottomHeight = child.Bottom;
+ }
+ }
+ return bottomHeight;
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameRowControl.cs b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameRowControl.cs
new file mode 100755
index 0000000..d88f1c0
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/FrameRowControl.cs
@@ -0,0 +1,391 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓猂owLayout鍨嬬殑FrameLayout
+ /// </summary>
+ public class FrameRowControl : FrameLayoutStatuControl
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 姝ゆ帶浠剁殑璇嗗埆涓婚敭(鑷畾涔夎缃殑)
+ /// </summary>
+ public string MainKeys = string.Empty;
+ /// <summary>
+ /// 宸﹀亸绉婚噺,鍙拡瀵瑰唴缃帶浠舵湁鏁�(杩欐槸涓�涓湡瀹炲��,榛樿涓嶅亸绉汇�傛鏁颁负鍚戝彸鍋忕Щ,璐熸暟涓哄悜宸﹀亸绉�)
+ /// </summary>
+ public int LeftOffset = 0;
+ /// <summary>
+ /// 鍙冲亸绉婚噺,鍙拡瀵瑰唴缃帶浠舵湁鏁�(杩欐槸涓�涓湡瀹炲��,榛樿涓嶅亸绉汇�傛鏁颁负鍚戝彸鍋忕Щ,璐熸暟涓哄悜宸﹀亸绉�)
+ /// </summary>
+ public int RightOffset = 0;
+ /// <summary>
+ /// 宸﹁竟鍥炬爣鎺т欢鐨勫ぇ灏�
+ /// </summary>
+ private int leftIconSize = 0;
+ /// <summary>
+ /// 鍙宠竟鍥炬爣鎺т欢鐨勫ぇ灏�
+ /// </summary>
+ private int rightIconSize = 0;
+ /// <summary>
+ /// 搴曠嚎鎺т欢
+ /// </summary>
+ private NormalViewControl btnBottomLine = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓猂owLayout鍨嬬殑FrameLayout
+ /// </summary>
+ /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(銆愬垪琛ㄦ帶浠剁殑rowSpace/2銆戝嵆鍙�,涓嶆噦榛樿涓�0鍗冲彲)</param>
+ public FrameRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+ {
+ this.Height = HdlControlResourse.ListViewRowHeight;
+ this.Width = Application.CurrentWidth;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞搴曠嚎___________________________
+
+ /// <summary>
+ /// <para>娣诲姞搴曠嚎(濡傛灉宸﹁竟鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞搴曠嚎)</para>
+ /// <para>瀹冪殑闀垮害涓猴細褰撳墠鎺т欢瀹藉害-宸﹀彸鍥哄畾闂磋窛-宸﹁竟鍥剧墖瀹藉害(濡傛灉鏈�)-鍙宠竟鐨勫亸绉婚噺</para>
+ /// </summary>
+ public virtual NormalViewControl AddBottomLine()
+ {
+ if (this.btnBottomLine != null)
+ {
+ //宸茬粡娣诲姞浜嗗簳绾�
+ return btnBottomLine;
+ }
+ int lineWidth = this.Width - HdlControlResourse.XXLeft * 2 - LeftOffset - RightOffset;
+ int XX = HdlControlResourse.XXLeft + LeftOffset;
+ if (leftIconSize > 0)
+ {
+ lineWidth = lineWidth - leftIconSize - Application.GetRealWidth(12);
+ XX = XX + leftIconSize + Application.GetRealWidth(12);
+ }
+ this.btnBottomLine = new NormalViewControl(lineWidth, HdlControlResourse.BottomLineHeight, false);
+ btnBottomLine.X = XX;
+ btnBottomLine.Y = this.Height - HdlControlResourse.BottomLineHeight;
+ btnBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+ base.AddChidren(btnBottomLine);
+
+ return btnBottomLine;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞宸﹁竟Caption____________________
+
+ /// <summary>
+ /// 娣诲姞宸﹁竟Caption(濡傛灉鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞Caption)
+ /// </summary>
+ /// <param name="i_caption">鍐呭</param>
+ /// <param name="i_width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ /// <returns></returns>
+ public NormalViewControl AddLeftCaption(string i_caption, int i_width, bool real = true)
+ {
+ if (real == true)
+ {
+ i_width = Application.GetRealWidth(i_width);
+ }
+ var contr = this.AddLeftCaption(i_caption, i_width, this.Height, false);
+ this.AddChidren(contr, ChidrenBindMode.BindEvent);
+ if (chidrenYaxis != 0)
+ {
+ contr.Y += chidrenYaxis;
+ }
+
+ return contr;
+ }
+
+ /// <summary>
+ /// 娣诲姞宸﹁竟Caption,姝ゆ柟娉曚笉浼氫富鍔ㄦ坊鍔犲埌鐖舵帶浠朵腑(濡傛灉鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞Caption)
+ /// </summary>
+ /// <param name="i_caption">鍐呭</param>
+ /// <param name="i_width">瀹藉害</param>
+ /// <param name="i_height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ /// <returns></returns>
+ public NormalViewControl AddLeftCaption(string i_caption, int i_width, int i_height, bool real = true)
+ {
+ int XX = HdlControlResourse.XXLeft + LeftOffset;
+ if (this.leftIconSize > 0)
+ {
+ XX += this.leftIconSize + Application.GetRealWidth(12);
+ }
+ var btnCaption = new NormalViewControl(i_width, i_height, real);
+ btnCaption.X = XX;
+
+ btnCaption.Text = i_caption;
+
+ return btnCaption;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞宸﹁竟杈撳叆妗哶____________________
+
+ /// <summary>
+ /// 娣诲姞宸﹁竟杈撳叆妗�(濡傛灉鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞杈撳叆妗�)
+ /// </summary>
+ /// <param name="i_txtValue">鍒濆鍐呭</param>
+ /// <param name="i_width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ /// <returns></returns>
+ public TextInputControl AddLeftInput(string i_txtValue, int i_width, bool real = true)
+ {
+ if (real == true)
+ {
+ i_width = Application.GetRealWidth(i_width);
+ }
+ int XX = HdlControlResourse.XXLeft + LeftOffset;
+ if (this.leftIconSize > 0)
+ {
+ XX += this.leftIconSize + Application.GetRealWidth(12);
+ }
+ var contr = new TextInputControl(i_width, this.Height, false);
+ contr.Text = i_txtValue;
+ contr.X = XX;
+
+ this.AddChidren(contr, ChidrenBindMode.NotBind);
+ if (chidrenYaxis != 0)
+ {
+ contr.Y += chidrenYaxis;
+ }
+
+ return contr;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞宸﹁竟鍥炬爣_______________________
+
+ /// <summary>
+ /// 娣诲姞宸﹁竟鍥炬爣
+ /// </summary>
+ /// <param name="i_Iconsize">鍥炬爣澶у皬</param>
+ /// <param name="i_IconPath">鍥炬爣鍦板潃</param>
+ /// <returns></returns>
+ public IconViewControl AddLeftIcon(int i_Iconsize, string i_IconPath = null)
+ {
+ var btnIcon = new IconViewControl(i_Iconsize);
+ btnIcon.X = HdlControlResourse.XXLeft + LeftOffset;
+ btnIcon.Gravity = Gravity.CenterVertical;
+ if (i_IconPath != null)
+ {
+ btnIcon.UnSelectedImagePath = i_IconPath;
+ }
+ this.AddChidren(btnIcon, ChidrenBindMode.BindEvent);
+ if (chidrenYaxis != 0)
+ {
+ btnIcon.Y += chidrenYaxis;
+ }
+
+ this.leftIconSize = btnIcon.IconSize;
+ return btnIcon;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鍚戝彸鐨勫浘鏍嘷____________________
+
+ /// <summary>
+ /// 娣诲姞鍚戝彸鐨勫浘鏍�
+ /// </summary>
+ public IconViewControl AddRightArrow()
+ {
+ var btnRight = new IconViewControl(20);
+ btnRight.Gravity = Gravity.CenterVertical;
+ btnRight.X =this.Width - btnRight.IconSize - HdlControlResourse.XXLeft + RightOffset;
+ btnRight.UnSelectedImagePath = "Public/Right.png";
+ this.AddChidren(btnRight, ChidrenBindMode.BindEvent);
+
+ if (chidrenYaxis != 0)
+ {
+ btnRight.Y += chidrenYaxis;
+ }
+
+ this.rightIconSize = btnRight.Width;
+
+ return btnRight;
+ }
+
+ /// <summary>
+ /// 娣诲姞鏈�鍙宠竟鐨勭┖鐧藉浘鐗囨帶浠�
+ /// </summary>
+ /// <param name="i_width">鎺т欢绌哄害(闈炵湡瀹炲��)</param>
+ /// <param name="i_height">鎺т欢楂樺害(闈炵湡瀹炲��)</param>
+ /// <returns></returns>
+ public MostRightIconControl AddMostRightEmptyIcon(int i_width, int i_height)
+ {
+ //杩欐槸涓�涓鍚堟帶浠�
+ var btnContr = new MostRightIconControl(i_width, i_height);
+ btnContr.Height = this.Height;
+ int XX = this.Width - this.GetPictrueRealSize(i_width) - HdlControlResourse.XXLeft;
+ btnContr.X = XX - (btnContr.Width - this.GetPictrueRealSize(i_width)) / 2;
+
+ this.AddChidren(btnContr, ChidrenBindMode.NotBind);
+ btnContr.InitControl();
+ //澶嶅悎鎺т欢闇�瑕佺壒娈婂鐞�
+ this.ChangedChidrenBindMode(btnContr, ChidrenBindMode.BindEvent);
+ if (RightOffset != 0)
+ {
+ btnContr.X += RightOffset;
+ }
+
+ this.rightIconSize = this.GetPictrueRealSize(i_width);
+ if (chidrenYaxis != 0)
+ {
+ btnContr.btnIcon.Y += chidrenYaxis;
+ }
+
+ return btnContr;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鍙宠竟鐨勫紑鍏冲浘鏍嘷________________
+
+ /// <summary>
+ /// 娣诲姞鍙宠竟鐨勫紑鍏冲浘鏍�
+ /// </summary>
+ /// <returns></returns>
+ public MostRightIconControl AddMostRightSwitchIcon()
+ {
+ var btnSwitch = this.AddMostRightEmptyIcon(36, 36);
+ this.ChangedChidrenBindMode(btnSwitch, ChidrenBindMode.NotBind);
+ btnSwitch.UnSelectedImagePath = "Public/Switch_2.png";
+ btnSwitch.SelectedImagePath = "Public/SwitchOn_2.png";
+
+ return btnSwitch;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鏈�鍙崇殑鏄剧ず鏂囨湰_________________
+
+ /// <summary>
+ /// 娣诲姞鏈�鍙崇殑鏄剧ず鏂囨湰(濡傛灉鍙宠竟鏈夊浘鏍囩殑璇�,鍏堟坊鍔犲浘鏍囧悗,鍐嶆坊鍔犺繖涓枃鏈�)
+ /// </summary>
+ /// <param name="i_text"></param>
+ /// <param name="i_width"></param>
+ /// <param name="real"></param>
+ /// <returns></returns>
+ public NormalViewControl AddMostRightView(string i_text, int i_width, bool real = true)
+ {
+ if (real == true)
+ {
+ i_width = Application.GetRealWidth(i_width);
+ }
+ var btnContr = AddMostRightView(i_text, i_width, this.Height, false);
+ this.AddChidren(btnContr, ChidrenBindMode.BindEvent);
+ if (chidrenYaxis != 0)
+ {
+ btnContr.Y += chidrenYaxis;
+ }
+
+ return btnContr;
+ }
+
+ /// <summary>
+ /// 娣诲姞鏈�鍙崇殑鏄剧ず鏂囨湰,姝ゆ柟娉曚笉浼氫富鍔ㄦ坊鍔犲埌鐖舵帶浠朵腑(濡傛灉鍙宠竟鏈夊浘鏍囩殑璇�,鍏堟坊鍔犲浘鏍囧悗,鍐嶆坊鍔犺繖涓枃鏈�)
+ /// </summary>
+ /// <param name="i_caption">鍐呭</param>
+ /// <param name="i_width">瀹藉害</param>
+ /// <param name="i_height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ /// <returns></returns>
+ public NormalViewControl AddMostRightView(string i_text, int i_width, int i_height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_width = Application.GetRealWidth(i_width);
+ i_height = Application.GetRealHeight(i_height);
+ }
+ var btnContr = new NormalViewControl(i_width, i_height, false);
+ if (rightIconSize != 0)
+ {
+ //琛岀殑瀹藉害鍑忓幓鏈�鍙宠竟闂磋窛,鍐嶅姞涓婂亸绉婚噺,鍐嶅噺鍘绘渶鍙宠竟鐨勫浘鐗囧搴�,鍐嶅噺鍘诲浘鐗囦笌鏂囧瓧鐨勯棿璺�,鏈�鍚庡噺鍘昏嚜韬殑瀹藉害
+ btnContr.X = this.Width - HdlControlResourse.XXLeft + RightOffset - rightIconSize - Application.GetRealWidth(12) - i_width;
+ }
+ else
+ {
+ //琛岀殑瀹藉害鍑忓幓鏈�鍙宠竟闂磋窛,鍐嶅姞涓婂亸绉婚噺,鏈�鍚庡噺鍘昏嚜韬殑瀹藉害
+ btnContr.X = this.Width - HdlControlResourse.XXLeft + RightOffset - i_width;
+ }
+ btnContr.Height = i_height;
+ btnContr.TextAlignment = TextAlignment.CenterRight;
+ btnContr.TextColor = CSS_Color.PromptingColor1;
+ btnContr.Text = i_text;
+ btnContr.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+
+ return btnContr;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞涓婇儴鐨勬樉绀烘枃鏈琠________________
+
+ /// <summary>
+ /// 娣诲姞涓婇儴鐨勬樉绀烘枃鏈�(濡傛灉鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞鏂囨湰)
+ /// </summary>
+ /// <param name="i_caption">鍐呭</param>
+ /// <param name="i_width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ /// <returns></returns>
+ public NormalViewControl AddTopView(string i_caption, int i_width, bool real = true)
+ {
+ if (real == true)
+ {
+ i_width = Application.GetRealWidth(i_width);
+ }
+ var contr = this.AddLeftCaption(i_caption, i_width, Application.GetRealHeight(21), false);
+ contr.TextSize = CSS_FontSize.SubheadingFontSize;
+ //褰撴寚瀹氬疄闄呭潗鏍囨椂,杩欓噷闇�瑕佺殑鍋忕Щ閲忎负2鍊�
+ contr.Y = Application.GetRealHeight(4) + this.chidrenYaxis * 2;
+ this.AddChidren(contr, ChidrenBindMode.BindEvent);
+
+ return contr;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞涓嬮儴鐨勬樉绀烘枃鏈琠________________
+
+ /// <summary>
+ /// 娣诲姞涓嬮儴鐨勬樉绀烘枃鏈�(濡傛灉鏈夊浘鏍囷紝鍒欏厛娣诲姞鍥炬爣锛屽啀娣诲姞鏂囨湰)
+ /// </summary>
+ /// <param name="i_caption">鍐呭</param>
+ /// <param name="i_width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ /// <returns></returns>
+ public NormalViewControl AddBottomView(string i_caption, int i_width, bool real = true)
+ {
+ if (real == true)
+ {
+ i_width = Application.GetRealWidth(i_width);
+ }
+ var contr = this.AddLeftCaption(i_caption, i_width, Application.GetRealHeight(17), false);
+ //褰撴寚瀹氬疄闄呭潗鏍囨椂,杩欓噷闇�瑕佺殑鍋忕Щ閲忎负2鍊�
+ contr.Y = Application.GetRealHeight(25) + this.chidrenYaxis * 2;
+ contr.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ contr.TextColor = CSS_Color.PromptingColor1;
+ this.AddChidren(contr, ChidrenBindMode.BindEvent);
+
+ return contr;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/NormalFrameLayout.cs b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/NormalFrameLayout.cs
new file mode 100755
index 0000000..579459a
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/FrameLayoutControls/NormalFrameLayout.cs
@@ -0,0 +1,15 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鏅�氱殑FrameLayout
+ /// </summary>
+ public class NormalFrameLayout : FrameLayoutBase
+ {
+ //鐩墠娌℃湁浠�涔堢壒娈婄殑鍔熻兘
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameControl.cs b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameControl.cs
new file mode 100755
index 0000000..d0cea75
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameControl.cs
@@ -0,0 +1,234 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓噷闈㈠彧瑁匜rameLayout鐨勫垪琛ㄥ瀷鎺т欢(瀹冧笉浼氳皟鏁撮珮搴�,鏈夋甯�)
+ /// </summary>
+ public class VerticalFrameControl : VerticalScrolViewLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 琛屼箣闂寸殑闂磋窛
+ /// </summary>
+ public int rowSpace = 0;
+ /// <summary>
+ /// 妗屽竷鎺т欢
+ /// </summary>
+ private NormalFrameLayout m_frameTable = null;
+ /// <summary>
+ /// 妗屽竷鎺т欢(杩欎釜涓滆タ涓嶈兘鍒狅紝鍥犱负鏈変簺鐣岄潰闇�瑕佷粬鐨勬甯�)
+ /// </summary>
+ public NormalFrameLayout frameTable
+ {
+ get
+ {
+ if (m_frameTable == null) { this.InitFrameTable(); }
+ return m_frameTable;
+ }
+ }
+
+ /// <summary>
+ /// 涓�涓复鏃剁殑涓滆タ
+ /// </summary>
+ private FrameLayout frameBackTemp = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笉浼氳皟鏁撮珮搴�)
+ /// </summary>
+ /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
+ public VerticalFrameControl(int i_rowSpace = 0)
+ {
+ rowSpace = Application.GetRealHeight(i_rowSpace);
+#if __IOS__
+ //鑷姩鍋忕Щ鍙栨秷
+ if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+ {
+ (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never;
+ }
+#endif
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨甯冩帶浠�
+ /// </summary>
+ private void InitFrameTable()
+ {
+ if (this.m_frameTable != null && this.m_frameTable.Parent != null)
+ {
+ return;
+ }
+ this.m_frameTable = new NormalFrameLayout();
+ this.m_frameTable.Width = this.Width;
+ this.m_frameTable.Height = this.Height;
+ base.AddChidren(this.m_frameTable);
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞瀛愭帶浠禵________________________
+
+ /// <summary>
+ /// 娣诲姞Frame瀛愭帶浠�(娉ㄦ剰,瀹冩槸寰�涓嬪姞鎺т欢,鍙細鏀瑰彉鍧愭爣,妗屽竷澶у皬浼氬鍔�)
+ /// </summary>
+ /// <param name="view"></param>
+ public override void AddChidren(View view)
+ {
+ //鍒濆鍖栨甯冩帶浠�
+ this.InitFrameTable();
+
+ //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ int value = this.GetLocationMostLastViewBottom(this.frameTable);
+ if (value != -1)
+ {
+ view.Y = value + rowSpace;
+ }
+ this.frameTable.AddChidren(view);
+ //璋冩暣妗屽竷楂樺害
+ if (this.frameTable.Height < view.Bottom)
+ {
+ this.frameTable.Height = view.Bottom;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 璋冩暣瀛怓rameLayout鐨勯珮搴�(鍙墿澶�,涓嶇缉灏�)
+ /// </summary>
+ /// <param name="frame"></param>
+ /// <param name="buttomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param>
+ public void AdjustChidrenFrameHeight(FrameLayout frame, int buttomSpace)
+ {
+ //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ int value = this.GetLocationMostLastViewBottom(frame);
+ if (value != -1)
+ {
+ //璋冩暣妗屽竷楂樺害
+ if (frame.Height < value + buttomSpace)
+ {
+ frame.Height = value + buttomSpace;
+ }
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣瀛怓rameLayout鐨勭湡瀹為珮搴�
+ /// </summary>
+ /// <param name="frame"></param>
+ /// <param name="minHeight">鏈�灏忛珮搴�</param>
+ public void AdjustChidrenFrameRealHeight(FrameLayout frame, int minHeight = -1)
+ {
+ //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ int value = this.GetLocationMostLastViewBottom(frame);
+ if (minHeight != -1 && value < minHeight)
+ {
+ //娌℃湁瓒呰繃鏈�灏忛珮搴�
+ return;
+ }
+ if (value != -1)
+ {
+ //璋冩暣妗屽竷楂樺害
+ frame.Height = value;
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣妗屽竷楂樺害
+ /// </summary>
+ public void AdjustTableHeight()
+ {
+ //2020.05.25杩藉姞
+ if (this.frameBackTemp != null && this.frameBackTemp.Parent != null)
+ {
+ this.frameBackTemp.RemoveFromParent();
+ }
+
+ //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ int value = this.GetLocationMostLastViewBottom(this.frameTable);
+ if (value != -1)
+ {
+ //璋冩暣妗屽竷楂樺害
+ this.frameTable.Height = value;
+ }
+ else
+ {
+ //杩樺師涓哄師鏉ョ殑楂樺害
+ this.RecoverTableHeight();
+ }
+ }
+
+ /// <summary>
+ /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害
+ /// </summary>
+ /// <param name="correctionsValue">
+ /// <para>Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</para>
+ /// <para>涓�鑸负姝f暟,濡傛灉涓鸿礋鏁颁唬琛╞odyFramelayout瓒呭嚭浜嗛《閮�</para>
+ /// </param>
+ public void AdjustRealHeightByBottomButton(int correctionsValue = 0)
+ {
+ //璋冩暣妗屽竷楂樺害 2020.05.25杩藉姞
+ this.AdjustTableHeight();
+
+ var btnTemp = new BottomClickButton();
+ if (btnTemp.Yaxis >= this.frameTable.Height + correctionsValue)
+ {
+ //娌℃湁瓒呰繃
+ return;
+ }
+ //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳
+ int oldRowSpace = this.rowSpace;
+ this.rowSpace = 0;
+
+ this.frameBackTemp = new FrameLayout();
+ frameBackTemp.Height = HdlControlResourse.BodyFrameHeight - btnTemp.Yaxis + Application.GetRealHeight(8);
+ this.AddChidren(frameBackTemp);
+
+ this.rowSpace = oldRowSpace;
+ }
+
+ /// <summary>
+ /// 杩樺師妗屽竷楂樺害
+ /// </summary>
+ public void RecoverTableHeight()
+ {
+ if (this.m_frameTable != null)
+ {
+ m_frameTable.Height = this.Height;
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ /// </summary>
+ /// <returns></returns>
+ private int GetLocationMostLastViewBottom(FrameLayout frame)
+ {
+ int bottomHeight = -1;
+
+ if (frame == null) { return bottomHeight; }
+
+ for (int i = 0; i < frame.ChildrenCount; i++)
+ {
+ var child = frame.GetChildren(i);
+ if (child.Bottom > bottomHeight)
+ {
+ bottomHeight = child.Bottom;
+ }
+ }
+ return bottomHeight;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameRefreshControl.cs b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameRefreshControl.cs
new file mode 100755
index 0000000..dd2e337
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalFrameRefreshControl.cs
@@ -0,0 +1,235 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓噷闈㈠彧瑁匜rameLayout鐨勫垪琛ㄥ瀷鎺т欢,鏈夊埛鏂板姛鑳�(鏈夋甯�,瀹冧笉浼氳皟鏁撮珮搴�)
+ /// </summary>
+ public class VerticalFrameRefreshControl : VerticalRefreshLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 琛屼箣闂寸殑闂磋窛
+ /// </summary>
+ public int rowSpace = 0;
+ /// <summary>
+ /// 妗屽竷鎺т欢
+ /// </summary>
+ private NormalFrameLayout m_frameTable = null;
+ /// <summary>
+ /// 妗屽竷鎺т欢
+ /// </summary>
+ public NormalFrameLayout frameTable
+ {
+ get
+ {
+ if (m_frameTable == null) { this.InitFrameTable(); }
+ return m_frameTable;
+ }
+ }
+
+ /// <summary>
+ /// 涓�涓复鏃剁殑涓滆タ
+ /// </summary>
+ private FrameLayout frameBackTemp = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout,鏈夊埛鏂板姛鑳�(瀹冧笉浼氳皟鏁撮珮搴�)
+ /// </summary>
+ /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
+ public VerticalFrameRefreshControl(int i_rowSpace = 0)
+ {
+ rowSpace = Application.GetRealHeight(i_rowSpace);
+ this.VerticalScrollBarEnabled = false;
+#if __IOS__
+ //鑷姩鍋忕Щ鍙栨秷
+ if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+ {
+ (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never;
+ }
+#endif
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨甯冩帶浠�
+ /// </summary>
+ private void InitFrameTable()
+ {
+ if (this.m_frameTable != null && this.m_frameTable.Parent != null)
+ {
+ return;
+ }
+ this.m_frameTable = new NormalFrameLayout();
+ this.m_frameTable.Width = this.Width;
+ this.m_frameTable.Height = this.Height;
+ base.AddChidren(this.m_frameTable);
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞瀛愭帶浠禵________________________
+
+ /// <summary>
+ /// 娣诲姞瀛愭帶浠�(娉ㄦ剰,瀹冩槸寰�涓嬪姞鎺т欢,姝ゆ柟娉曟槸鍙敼鍙榊杞�)
+ /// </summary>
+ /// <param name="view"></param>
+ public override void AddChidren(View view)
+ {
+ //鍒濆鍖栨甯冩帶浠�
+ this.InitFrameTable();
+
+ int value = this.GetLocationMostLastViewBottom(this.frameTable);
+ if (value != -1)
+ {
+ view.Y = value + rowSpace;
+ }
+ this.frameTable.AddChidren(view);
+ //璋冩暣妗屽竷楂樺害
+ if (this.frameTable.Height < view.Bottom)
+ {
+ this.frameTable.Height = view.Bottom;
+ }
+ }
+
+ /// <summary>
+ /// 娣诲姞瀛愭帶浠�(娉ㄦ剰,瀹冩槸寰�涓嬪姞鎺т欢,姝ゆ柟娉曟槸鏀瑰彉楂樺害)
+ /// </summary>
+ /// <param name="view"></param>
+ public void AddChidren2(View view)
+ {
+ //鍒濆鍖栨甯冩帶浠�
+ this.InitFrameTable();
+
+ //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ int value = this.GetLocationMostLastViewBottom(this.frameTable);
+ if (value != -1)
+ {
+ view.Y = value;
+ }
+ this.frameTable.AddChidren(view);
+ if (rowSpace > 0)
+ {
+ view.Height += rowSpace;
+ }
+ //璋冩暣妗屽竷楂樺害
+ if (this.frameTable.Height < view.Bottom)
+ {
+ this.frameTable.Height = view.Bottom;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 璋冩暣瀛怓rameLayout鐨勯珮搴�
+ /// </summary>
+ /// <param name="frame"></param>
+ /// <param name="buttomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param>
+ public void AdjustChidrenFrameHeight(FrameLayout frame, int buttomSpace)
+ {
+ //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ int value = this.GetLocationMostLastViewBottom(frame);
+ if (value != -1)
+ {
+ //璋冩暣妗屽竷楂樺害
+ frame.Height = value + buttomSpace;
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣妗屽竷楂樺害
+ /// </summary>
+ /// <param name="buttomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param>
+ public void AdjustTableHeight(int buttomSpace = 0)
+ {
+ //2020.05.25杩藉姞
+ if (this.frameBackTemp != null && this.frameBackTemp.Parent != null)
+ {
+ this.frameBackTemp.RemoveFromParent();
+ }
+
+ //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ int value = this.GetLocationMostLastViewBottom(this.frameTable);
+ if (value != -1)
+ {
+ //璋冩暣妗屽竷楂樺害
+ this.frameTable.Height = value + buttomSpace;
+ }
+ else
+ {
+ //杩樺師涓哄師鏉ョ殑楂樺害
+ this.RecoverTableHeight();
+ }
+ }
+
+ /// <summary>
+ /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害
+ /// </summary>
+ /// <param name="correctionsValue">Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</param>
+ public void AdjustRealHeightByBottomButton(int correctionsValue = 0)
+ {
+ //璋冩暣妗屽竷楂樺害 2020.05.25杩藉姞
+ this.AdjustTableHeight();
+
+ var btnTemp = new BottomClickButton();
+ if (btnTemp.Yaxis >= this.frameTable.Height + correctionsValue)
+ {
+ //娌℃湁瓒呰繃
+ return;
+ }
+ //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳
+ int oldRowSpace = this.rowSpace;
+ this.rowSpace = 0;
+
+ this.frameBackTemp = new FrameLayout();
+ frameBackTemp.Height = HdlControlResourse.BodyFrameHeight - btnTemp.Yaxis + Application.GetRealHeight(8);
+ this.AddChidren(frameBackTemp);
+
+ this.rowSpace = oldRowSpace;
+ }
+
+ /// <summary>
+ /// 杩樺師妗屽竷楂樺害
+ /// </summary>
+ public void RecoverTableHeight()
+ {
+ if (this.m_frameTable != null)
+ {
+ m_frameTable.Height = this.Height;
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+ /// </summary>
+ /// <returns></returns>
+ private int GetLocationMostLastViewBottom(FrameLayout frame)
+ {
+ int bottomHeight = -1;
+
+ if (frame == null) { return bottomHeight; }
+
+ for (int i = 0; i < frame.ChildrenCount; i++)
+ {
+ var child = frame.GetChildren(i);
+ if (child.Bottom > bottomHeight)
+ {
+ bottomHeight = child.Bottom;
+ }
+ }
+ return bottomHeight;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListControl.cs b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListControl.cs
new file mode 100755
index 0000000..e210cc8
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListControl.cs
@@ -0,0 +1,211 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓笂涓嬪彲浠ユ粦鍔ㄧ殑鍒楄〃鎺т欢(瀹冧細璋冩暣楂樺害,鏃犳甯�)
+ /// </summary>
+ public class VerticalListControl : VerticalScrolViewLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 琛屼箣闂寸殑闂磋窛
+ /// </summary>
+ public int rowSpace = 0;
+ /// <summary>
+ /// 鏈�澶ч珮搴�
+ /// </summary>
+ private int maxHeight = -1;
+ /// <summary>
+ /// 涓�涓病浠�涔堢敤鐨勪笢瑗�
+ /// </summary>
+ private FrameLayout frameBackTemp = null;
+ /// <summary>
+ /// 鑷畾涔夌殑鑾峰彇瀛愭帶浠朵釜鏁�
+ /// </summary>
+ public new int ChildrenCount
+ {
+ get
+ {
+ int count = base.ChildrenCount;
+ if (frameBackTemp != null && frameBackTemp.Parent != null)
+ {
+ count--;
+ }
+ return count < 0 ? 0 : count;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓笂涓嬪彲浠ユ粦鍔ㄧ殑鍒楄〃鎺т欢(瀹冧細璋冩暣楂樺害,鏃犳甯�)
+ /// </summary>
+ /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
+ public VerticalListControl(int i_rowSpace = 0)
+ {
+ this.rowSpace = Application.GetRealHeight(i_rowSpace);
+#if __IOS__
+ //鑷姩鍋忕Щ鍙栨秷
+ if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+ {
+ (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never;
+ }
+#endif
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞瀛愭帶浠禵________________________
+
+ /// <summary>
+ /// 娣诲姞瀛愭帶浠�(FrameRowControl,RowLayoutControl浼氭敼鍙橀珮搴�)
+ /// </summary>
+ /// <param name="view"></param>
+ public override void AddChidren(View view)
+ {
+ base.AddChidren(view);
+ if (view is FrameRowControl || view is RowLayoutControl)
+ {
+ if (rowSpace > 0)
+ {
+ view.Height += rowSpace;
+ }
+ }
+ if (maxHeight == -1)
+ {
+ maxHeight = this.Height;
+ }
+ }
+ #endregion
+
+ #region 鈻� 璋冩暣鐪熷疄楂樺害_______________________
+
+ /// <summary>
+ /// 杩樺師楂樺害
+ /// </summary>
+ public void RecoverHeight()
+ {
+ if (this.maxHeight != -1)
+ {
+ this.Height = this.maxHeight;
+#if __IOS__
+ this.ReLocation();
+#endif
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺т欢鐪熷疄楂樺害(鍙拡瀵硅鎺т欢閮芥槸鐩稿悓楂樺害鐨�,楂樺害鍙細鍑忓皯,涓嶄細澧炲姞)
+ /// </summary>
+ /// <param name="bottomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param>
+ /// <param name="addSpace">褰撶湡瀹為珮搴﹁秴杩囧師鏈夐珮搴︽椂,鏄惁娣诲姞绌虹櫧</param>
+ public void AdjustRealHeight(int bottomSpace, bool addSpace = true)
+ {
+ //鎬讳箣,鍏堥噸缃嚦鏈�澶�
+ this.RecoverHeight();
+
+ int count = this.ChildrenCount;
+ if (count <= 0)
+ {
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = null;
+ return;
+ }
+
+ //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+ var realHeight = count * this.GetChildren(0).Height + bottomSpace;
+ if (realHeight < this.Height)
+ {
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = null;
+ //缂╁皬鎺т欢楂樺害
+ this.Height = realHeight;
+#if __IOS__
+ this.ReLocation();
+#endif
+ }
+ else if (addSpace == true && bottomSpace > 0 && realHeight > this.maxHeight)
+ {
+ frameBackTemp?.RemoveFromParent();
+
+ frameBackTemp = new FrameLayout();
+ frameBackTemp.Height = bottomSpace;
+ this.AddChidren(frameBackTemp);
+ }
+ }
+
+ /// <summary>
+ /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害
+ /// </summary>
+ /// <param name="bottomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�,濡傛灉鍒楄〃鎺т欢鐪熷疄楂樺害娌℃湁瓒呰繃鏃�,浣跨敤姝ゅ��)</param>
+ /// <param name="correctionsValue">Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</param>
+ public void AdjustRealHeightByBottomButton(int bottomSpace, int correctionsValue = 0)
+ {
+ if (this.ChildrenCount == 0)
+ {
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = null;
+ if (maxHeight != -1)
+ {
+ //杩樺師涓烘渶澶ч珮搴�
+ this.Height = maxHeight;
+#if __IOS__
+ this.ReLocation();
+#endif
+ }
+ return;
+ }
+ var realHeight = this.ChildrenCount * this.GetChildren(0).Height + this.Y + correctionsValue;
+ var btnTemp = new BottomClickButton();
+ if (btnTemp.Yaxis >= realHeight)
+ {
+ //娌℃湁瓒呰繃
+ this.AdjustRealHeight(bottomSpace);
+ return;
+ }
+ //瓒呰繃鏃�,閲嶇疆鑷虫渶澶�
+ this.RecoverHeight();
+
+ //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = new FrameLayout();
+ frameBackTemp.Height = HdlControlResourse.BodyFrameHeight - btnTemp.Yaxis + bottomSpace;
+ this.AddChidren(frameBackTemp);
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鎺т欢绉婚櫎
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ /// <summary>
+ /// 鈽嗏槅绉婚櫎鍏ㄩ儴鎺т欢鈽嗏槅
+ /// </summary>
+ public override void RemoveAll()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveAll();
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs
new file mode 100755
index 0000000..0e3320e
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs
@@ -0,0 +1,217 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓笂涓嬪彲浠ユ粦鍔ㄧ殑鍒楄〃鎺т欢,鏈夊埛鏂板姛鑳�(瀹冧細璋冩暣楂樺害,鏃犳甯�)
+ /// </summary>
+ public class VerticalListRefreshControl : VerticalRefreshLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 琛屼箣闂寸殑闂磋窛
+ /// </summary>
+ public int rowSpace = 0;
+ /// <summary>
+ /// 鏈�澶ч珮搴�
+ /// </summary>
+ private int maxHeight = -1;
+ /// <summary>
+ /// 涓�涓病浠�涔堢敤鐨勪笢瑗�
+ /// </summary>
+ private FrameLayout frameBackTemp = null;
+ /// <summary>
+ /// 鑷畾涔夌殑鑾峰彇瀛愭帶浠朵釜鏁�
+ /// </summary>
+ public new int ChildrenCount
+ {
+ get
+ {
+ int count = base.ChildrenCount;
+ if (frameBackTemp != null && frameBackTemp.Parent != null)
+ {
+ count--;
+ }
+ return count < 0 ? 0 : count;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓笂涓嬪彲浠ユ粦鍔ㄧ殑鍒楄〃鎺т欢,鏈夊埛鏂板姛鑳�(瀹冧細璋冩暣楂樺害,鏃犳甯�)
+ /// </summary>
+ /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
+ public VerticalListRefreshControl(int i_rowSpace = 0)
+ {
+ this.rowSpace = Application.GetRealHeight(i_rowSpace);
+ this.VerticalScrollBarEnabled = false;
+#if __IOS__
+ //鑷姩鍋忕Щ鍙栨秷
+ if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+ {
+ (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never;
+ }
+#endif
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞瀛愭帶浠禵________________________
+
+ /// <summary>
+ /// 娣诲姞瀛愭帶浠�(FrameRowControl,RowLayoutControl浼氭敼鍙橀珮搴�)
+ /// </summary>
+ /// <param name="view"></param>
+ public override void AddChidren(View view)
+ {
+ base.AddChidren(view);
+ if (view is FrameRowControl || view is RowLayoutControl)
+ {
+ if (rowSpace > 0)
+ {
+ view.Height += rowSpace;
+ }
+ }
+ if (maxHeight == -1)
+ {
+ maxHeight = this.Height;
+ }
+ }
+ #endregion
+
+ #region 鈻� 璋冩暣鐪熷疄楂樺害_______________________
+
+ /// <summary>
+ /// 杩樺師楂樺害
+ /// </summary>
+ public void RecoverHeight()
+ {
+ if (this.maxHeight != -1)
+ {
+ this.Height = this.maxHeight;
+#if __IOS__
+ this.ReLocation();
+#endif
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺т欢鐪熷疄楂樺害(鍙拡瀵硅鎺т欢閮芥槸鐩稿悓楂樺害鐨�,楂樺害鍙細鍑忓皯,涓嶄細澧炲姞)
+ /// </summary>
+ /// <param name="bottomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param>
+ /// <param name="addSpace">褰撶湡瀹為珮搴﹁秴杩囧師鏈夐珮搴︽椂,鏄惁娣诲姞绌虹櫧</param>
+ public void AdjustRealHeight(int bottomSpace, bool addSpace = true)
+ {
+ int count = this.ChildrenCount;
+ if (count <= 0)
+ {
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = null;
+ if (maxHeight != -1)
+ {
+ //杩樺師涓烘渶澶ч珮搴�
+ this.Height = maxHeight;
+#if __IOS__
+ this.ReLocation();
+#endif
+ }
+ return;
+ }
+
+ //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+ var realHeight = count * this.GetChildren(0).Height + bottomSpace;
+ if (realHeight < this.Height)
+ {
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = null;
+ //缂╁皬鎺т欢楂樺害
+ this.Height = realHeight;
+#if __IOS__
+ this.ReLocation();
+#endif
+ }
+ else if (addSpace == true && bottomSpace > 0 && realHeight > this.maxHeight)
+ {
+ frameBackTemp?.RemoveFromParent();
+
+ frameBackTemp = new FrameLayout();
+ frameBackTemp.Height = bottomSpace;
+ this.AddChidren(frameBackTemp);
+ }
+ }
+
+ /// <summary>
+ /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害
+ /// </summary>
+ /// <param name="bottomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�,濡傛灉鍒楄〃鎺т欢鐪熷疄楂樺害娌℃湁瓒呰繃鏃�,浣跨敤姝ゅ��)</param>
+ /// <param name="correctionsValue">Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</param>
+ public void AdjustRealHeightByBottomButton(int bottomSpace, int correctionsValue = 0)
+ {
+ if (this.ChildrenCount == 0)
+ {
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = null;
+ if (maxHeight != -1)
+ {
+ //杩樺師涓烘渶澶ч珮搴�
+ this.Height = maxHeight;
+#if __IOS__
+ this.ReLocation();
+#endif
+ }
+ return;
+ }
+ var realHeight = this.ChildrenCount * this.GetChildren(0).Height + this.Y + correctionsValue;
+ var btnTemp = new BottomClickButton();
+ if (btnTemp.Yaxis >= realHeight)
+ {
+ //娌℃湁瓒呰繃
+ this.AdjustRealHeight(bottomSpace);
+ return;
+ }
+ //瓒呰繃鏃�,閲嶇疆鑷虫渶澶�
+ this.RecoverHeight();
+
+ //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = new FrameLayout();
+ frameBackTemp.Height = HdlControlResourse.BodyFrameHeight - btnTemp.Yaxis + bottomSpace;
+ this.AddChidren(frameBackTemp);
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鎺т欢绉婚櫎
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ /// <summary>
+ /// 鈽嗏槅绉婚櫎鍏ㄩ儴鎺т欢鈽嗏槅
+ /// </summary>
+ public override void RemoveAll()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveAll();
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs b/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
new file mode 100755
index 0000000..521bfb9
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
@@ -0,0 +1,335 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鏄剧ず涓�涓俊鎭(璇蜂娇鐢℉dlMessageLogic璋冪敤)
+ /// </summary>
+ public class ShowMsgControl
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鐐瑰嚮纭鐨勪簨浠�
+ /// </summary>
+ public Action ConfirmClickEvent = null;
+ /// <summary>
+ /// 鐐瑰嚮鍙栨秷鐨勪簨浠�
+ /// </summary>
+ public Action CancelClickEvent = null;
+ /// <summary>
+ /// 淇℃伅绫诲瀷
+ /// </summary>
+ private ShowMsgType msgType = ShowMsgType.Confirm;
+ /// <summary>
+ /// 娑堟伅
+ /// </summary>
+ private string msgText = string.Empty;
+ /// <summary>
+ /// 纭鎸夐挳鐨勬枃鏈�
+ /// </summary>
+ private string buttonOkText = null;
+ /// <summary>
+ /// 鍙栨秷鎸夐挳鐨勬枃鏈�
+ /// </summary>
+ private string buttonCancelText = null;
+ /// <summary>
+ /// 鎻愮ず鎺т欢
+ /// </summary>
+ private Tip myTip = null;
+ /// <summary>
+ /// 绛夊緟鏃堕棿
+ /// </summary>
+ private int WaitTime = -1;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鏄剧ず涓�涓渶瑕佺‘璁ょ殑淇℃伅妗�
+ /// </summary>
+ /// <param name="i_msgType">淇℃伅绫诲瀷</param>
+ /// <param name="i_msg">淇℃伅</param>
+ /// <param name="i_buttonOkText">纭鎸夐挳鐨勬枃鏈�</param>
+ /// <param name="i_buttonCancelText">鍙栨秷鎸夐挳鐨勬枃鏈�</param>
+ /// <param name="i_waitTime">绛夊緟鏃堕棿,鍗曚綅涓虹,璁剧疆纭鎸夐挳鍦ㄥ闀挎椂闂村悗鎵嶈兘澶熺偣鍑�</param>
+ public ShowMsgControl(ShowMsgType i_msgType, string i_msg, string i_buttonOkText = null, string i_buttonCancelText = null, int i_waitTime = -1)
+ {
+ //纭鎸夐挳鏂囨湰
+ this.buttonOkText = i_buttonOkText == null ? Language.StringByID(StringId.Confirm) : i_buttonOkText;
+ this.buttonCancelText = i_buttonCancelText == null ? Language.StringByID(StringId.Cancel) : i_buttonCancelText;
+ this.msgType = i_msgType;
+ this.msgText = i_msg;
+ this.WaitTime = i_waitTime;
+
+ if (i_msgType == ShowMsgType.Tip)
+ {
+ myTip = new Tip();
+ myTip.Direction = AMPopTipDirection.None;
+ myTip.CloseTime = 2;
+ myTip.Text = i_msg;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず娑堟伅___________________________
+
+ /// <summary>
+ /// 鏄剧ず
+ /// </summary>
+ public void Show()
+ {
+ try
+ {
+ if (myTip != null)
+ {
+ myTip.Show(MainPage.BasePageView);
+ myTip = null;
+ return;
+ }
+ //鍒濆鍖栨帶浠�
+ this.InitMsgControl();
+ }
+ catch { }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖栨帶浠禵________________________
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ private void InitMsgControl()
+ {
+ var dialogForm = new Dialog();
+ dialogForm.BackgroundColor = CSS_Color.DialogTransparentColor1;
+ //涓绘帶浠�
+ var frameMain = new NormalFrameLayout();
+ dialogForm.AddChidren(frameMain);
+ dialogForm.Show();
+
+ //璁$畻鐢�
+ var btnTemp = new ButtonCtrBase();
+ btnTemp.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnTemp.Text = msgText.Replace("\r\n", string.Empty);
+ //鑾峰彇杩欎釜鏄剧ず鐨勫唴瀹圭殑楂樺害
+ int rowCount = btnTemp.GetRealRowCountByText();
+ int contentHeight = rowCount * Application.GetRealHeight(18);
+ if (rowCount <= 2)
+ {
+ //瀹冩湁涓�涓渶灏忛珮搴�
+ contentHeight = Application.GetRealHeight(51);
+ }
+
+ //杩欎釜鍖哄煙鐨勯珮搴︽瘮渚嬩负锛氭樉绀哄唴瀹瑰埌涓婇儴鐨勮窛绂�(50)+鏄剧ず鍐呭鐨勯珮搴�+鏄剧ず鍐呭鍒板簳閮ㄧ殑璺濈(70)
+
+ //涓棿鍖哄煙
+ var frameCenter = new NormalFrameLayout();
+ frameCenter.Gravity = Gravity.Center;
+ frameCenter.Width = Application.GetRealWidth(270);
+ frameCenter.Height = Application.GetRealHeight(50) + contentHeight + Application.GetRealHeight(70);
+ frameCenter.BackgroundColor = CSS_Color.MainBackgroundColor;
+ frameCenter.BorderColor = 0x00000000;
+ frameCenter.BorderWidth = 0;
+ frameCenter.Radius = (uint)Application.GetMinRealAverage(10);
+ frameMain.AddChidren(frameCenter);
+
+ //鏍囬
+ var btnTitle = new NormalViewControl(frameCenter.Width, Application.GetRealHeight(22), false);
+ btnTitle.Y = Application.GetRealHeight(20);
+ btnTitle.TextColor = CSS_Color.MainColor;
+ btnTitle.TextSize = CSS_FontSize.SubheadingFontSize;
+ btnTitle.TextAlignment = TextAlignment.Center;
+ btnTitle.IsBold = true;
+ btnTitle.Text = Language.StringByID(StringId.Tip);
+ frameCenter.AddChidren(btnTitle);
+ //鎻愮ず鍐呭鎸夐挳
+ var btnMsg = new NormalViewControl(Application.GetRealWidth(258), contentHeight, false);
+ btnMsg.Y = btnTitle.Bottom + Application.GetRealHeight(8);
+ btnMsg.Gravity = Gravity.CenterHorizontal;
+ btnMsg.TextAlignment = TextAlignment.Center;
+ btnMsg.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnMsg.Text = msgText;
+ btnMsg.IsMoreLines = true;
+ frameCenter.AddChidren(btnMsg);
+
+ if (msgType == ShowMsgType.Confirm)
+ {
+ //鍒濆鍖栫‘璁ょ被鍨嬬殑搴曢儴鎸夐挳
+ this.InitBottomConfirmButton(dialogForm, frameCenter);
+ }
+ else
+ {
+ //鍒濆鍖栨櫘閫氱被鍨嬬殑搴曢儴鎸夐挳
+ this.InitBottomNormalButton(dialogForm, frameCenter);
+ }
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫‘璁ょ被鍨嬬殑搴曢儴鎸夐挳
+ /// </summary>
+ /// <param name="frameCenter"></param>
+ private void InitBottomConfirmButton(Dialog dialogForm, NormalFrameLayout frameCenter)
+ {
+ //鍙栨秷
+ var btnCancel = new NormalViewControl(frameCenter.Width / 2, Application.GetRealHeight(43), false);
+ btnCancel.Gravity = Gravity.BottomLeft;
+ btnCancel.TextAlignment = TextAlignment.Center;
+ btnCancel.TextSize = CSS_FontSize.SubheadingFontSize;
+ btnCancel.Text = this.buttonCancelText;
+ //btnCancel.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), HDLUtils.RectCornerBottomLeft);
+ frameCenter.AddChidren(btnCancel);
+ btnCancel.ButtonClickEvent += (sender, e) =>
+ {
+ //鍏抽棴鐣岄潰
+ dialogForm.Close();
+ //鍥炶皟鍑芥暟
+ this.CancelClickEvent?.Invoke();
+ this.ConfirmClickEvent = null;
+ this.CancelClickEvent = null;
+ };
+ //绾�
+ var btnLine = new NormalViewControl(frameCenter.Width / 2, HdlControlResourse.BottomLineHeight, false);
+ btnLine.Y = btnCancel.Y - HdlControlResourse.BottomLineHeight;
+ btnLine.BackgroundColor = CSS_Color.DividingLineColor;
+ frameCenter.AddChidren(btnLine);
+
+ //纭
+ var btnConfirm = new NormalViewControl(frameCenter.Width - btnCancel.Width, Application.GetRealHeight(45), false);
+ btnConfirm.X = btnCancel.Right;
+ btnConfirm.Y = btnLine.Y;
+ btnConfirm.TextAlignment = TextAlignment.Center;
+ btnConfirm.TextSize = CSS_FontSize.SubheadingFontSize;
+ btnConfirm.TextColor = CSS_Color.MainBackgroundColor;
+ btnConfirm.BackgroundColor = CSS_Color.MainColor;
+ btnConfirm.Text = this.buttonOkText;
+ frameCenter.AddChidren(btnConfirm);
+ btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), HDLUtils.RectCornerBottomRight);
+ btnConfirm.ButtonClickEvent += (sender, e) =>
+ {
+ //鍏抽棴鐣岄潰
+ dialogForm.Close();
+ //鍥炶皟鍑芥暟
+ this.ConfirmClickEvent?.Invoke();
+ this.ConfirmClickEvent = null;
+ this.CancelClickEvent = null;
+ };
+
+ //寮�鍚瓑寰呮椂闂�
+ this.StartWaitTime(btnConfirm);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨櫘閫氱被鍨嬬殑搴曢儴鎸夐挳
+ /// </summary>
+ /// <param name="dialogForm"></param>
+ /// <param name="frameCenter"></param>
+ private void InitBottomNormalButton(Dialog dialogForm, NormalFrameLayout frameCenter)
+ {
+ //纭
+ var btnConfirm = new NormalViewControl(frameCenter.Width, Application.GetRealHeight(45), false);
+ btnConfirm.Gravity = Gravity.BottomCenter;
+ btnConfirm.TextAlignment = TextAlignment.Center;
+ btnConfirm.TextSize = CSS_FontSize.SubheadingFontSize;
+ btnConfirm.TextColor = CSS_Color.MainBackgroundColor;
+ btnConfirm.BackgroundColor = CSS_Color.MainColor;
+ btnConfirm.Text = this.buttonOkText;
+ frameCenter.AddChidren(btnConfirm);
+ btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
+ btnConfirm.ButtonClickEvent += (sender, e) =>
+ {
+ //鍏抽棴鐣岄潰
+ dialogForm.Close();
+ //鍥炶皟鍑芥暟
+ this.ConfirmClickEvent?.Invoke();
+ this.ConfirmClickEvent = null;
+ this.CancelClickEvent = null;
+ };
+
+ //寮�鍚瓑寰呮椂闂�
+ this.StartWaitTime(btnConfirm);
+ }
+
+ #endregion
+
+ #region 鈻� 寮�鍚瓑寰呮椂闂確______________________
+
+ /// <summary>
+ /// 寮�鍚瓑寰呮椂闂�(姝ゅ嚱鏁板彧鐢ㄤ簬瀹夊崜)
+ /// </summary>
+ /// <param name="btnConfirm">纭鎸夐挳</param>
+ private void StartWaitTime(NormalViewControl btnConfirm)
+ {
+ if (this.WaitTime <= 0)
+ {
+ return;
+ }
+
+ btnConfirm.CanClick = false;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //鏄剧ず鍓╀綑绛夊緟鏃堕棿
+ while (btnConfirm.Parent != null && this.WaitTime >= 0)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ btnConfirm.Text = this.buttonOkText + "(" + this.WaitTime + ")";
+
+ }, ShowErrorMode.NO);
+ System.Threading.Thread.Sleep(1000);
+ this.WaitTime--;
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍙互鐐瑰嚮
+ btnConfirm.Text = this.buttonOkText;
+ btnConfirm.CanClick = true;
+
+ }, ShowErrorMode.NO);
+ });
+ }
+
+ /// <summary>
+ /// 寮�鍚瓑寰呮椂闂�
+ /// </summary>
+ /// <param name="btnConfirm">纭鎸夐挳</param>
+ private void StartWaitTime(ButtonCtrBase btnConfirm)
+ {
+ if (this.WaitTime <= 0)
+ {
+ return;
+ }
+ //涓嶈兘鐐瑰嚮
+ btnConfirm.CanClick = false;
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //鏄剧ず鍓╀綑绛夊緟鏃堕棿
+ while (btnConfirm.Parent != null && this.WaitTime >= 0)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ btnConfirm.Text = this.buttonOkText + "(" + this.WaitTime + ")";
+ }, ShowErrorMode.NO);
+ System.Threading.Thread.Sleep(1000);
+ this.WaitTime--;
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍙互鐐瑰嚮
+ btnConfirm.Text = this.buttonOkText;
+ btnConfirm.CanClick = true;
+
+ }, ShowErrorMode.NO);
+ });
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconBigViewControl.cs b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconBigViewControl.cs
new file mode 100755
index 0000000..27b34a8
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconBigViewControl.cs
@@ -0,0 +1,82 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓姞澶х偣鍑诲尯鍩熺殑鍥炬爣鎺т欢
+ /// </summary>
+ public class IconBigViewControl : FrameLayoutStatuControl
+ {
+ /// <summary>
+ /// 鍥炬爣鎺т欢(杩笉寰楀繁锛岃繖涓笢瑗垮紑鏀惧嚭鍘�)
+ /// </summary>
+ public ButtonCtrBase btnIcon = null;
+ /// <summary>
+ /// UnSelectedImagePath
+ /// </summary>
+ public string UnSelectedImagePath
+ {
+ get { return btnIcon.UnSelectedImagePath; }
+ set { btnIcon.UnSelectedImagePath = value; }
+ }
+ /// <summary>
+ /// SelectedImagePath
+ /// </summary>
+ public string SelectedImagePath
+ {
+ get { return btnIcon.SelectedImagePath; }
+ set { btnIcon.SelectedImagePath = value; }
+ }
+ /// <summary>
+ /// IsSelected
+ /// </summary>
+ public bool IsSelected
+ {
+ get { return btnIcon.IsSelected; }
+ set { btnIcon.IsSelected = value; }
+ }
+
+ /// <summary>
+ /// X杞寸殑鐪熷疄鍋忕Щ閲�(璇风‘淇濆凡缁忚皟鐢↖nitControl鍒濆鍖栧嚱鏁�,鐢ㄦ硶:钃濇箹涓婄殑X杞�,鍑忔帀杩欎釜鍊煎嵆鍙�)
+ /// </summary>
+ public int XOffset
+ {
+ get { return (this.Width - btnIcon.Width) / 2; }
+ }
+
+ /// <summary>
+ /// Y杞寸殑鐪熷疄鍋忕Щ閲�(璇风‘淇濆凡缁忚皟鐢↖nitControl鍒濆鍖栧嚱鏁�,鐢ㄦ硶:钃濇箹涓婄殑Y杞�,鍑忔帀杩欎釜鍊煎嵆鍙�)
+ /// </summary>
+ public int YOffset
+ {
+ get { return (this.Height - btnIcon.Height) / 2; }
+ }
+
+ /// <summary>
+ /// 鍋氭垚涓�涓姞澶х偣鍑诲尯鍩熺殑鍥炬爣鎺т欢
+ /// </summary>
+ /// <param name="i_width">鎺т欢绌哄害</param>
+ /// <param name="i_height">鎺т欢楂樺害</param>
+ public IconBigViewControl(int i_width, int i_height)
+ {
+ this.Width = this.GetPictrueRealSize(38);
+ this.Height = this.GetPictrueRealSize(38);
+
+ this.btnIcon = new ButtonCtrBase();
+ btnIcon.Width = this.GetPictrueRealSize(i_width);
+ btnIcon.Height = this.GetPictrueRealSize(i_height);
+ btnIcon.Gravity = Gravity.Center;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖�
+ /// </summary>
+ public void InitControl()
+ {
+ this.AddChidren(btnIcon, ChidrenBindMode.BindEvent);
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconViewControl.cs b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconViewControl.cs
new file mode 100755
index 0000000..f5effe6
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/IconViewControl.cs
@@ -0,0 +1,32 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓樉绀哄浘鏍囩殑鎺т欢(闇�瑕佹墜鍔ㄥ紑鍚偣鍑荤姸鎬�)
+ /// </summary>
+ public class IconViewControl : ButtonCtrBase
+ {
+ /// <summary>
+ /// 鍥炬爣澶у皬
+ /// </summary>
+ public int IconSize = 0;
+ /// <summary>
+ /// 鍋氭垚涓�涓樉绀哄浘鏍囩殑鎺т欢(闇�瑕佹墜鍔ㄥ紑鍚偣鍑荤姸鎬�)
+ /// </summary>
+ /// <param name="size">澶у皬</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public IconViewControl(int size, bool real = true)
+ {
+ this.InitIconSize(size, size, real);
+ this.IconSize = size;
+ if (real == true)
+ {
+ this.IconSize = this.GetPictrueRealSize(size);
+ }
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/MostRightIconControl.cs b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/MostRightIconControl.cs
new file mode 100755
index 0000000..d6bbe29
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/MostRightIconControl.cs
@@ -0,0 +1,78 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚鏀惧湪鐢婚潰鍙宠竟鐨勭殑鍥炬爣鎺т欢(娉ㄦ剰,瀹冧笉鑳界敤鏉ュ仛銆愬悜鍙炽�戠殑鍥炬爣)
+ /// </summary>
+ public class MostRightIconControl : FrameLayoutStatuControl
+ {
+ /// <summary>
+ /// 鍥炬爣鎺т欢(杩笉寰楀繁锛岃繖涓笢瑗垮紑鏀惧嚭鍘�)
+ /// </summary>
+ public ButtonCtrBase btnIcon = null;
+ /// <summary>
+ /// UnSelectedImagePath
+ /// </summary>
+ public string UnSelectedImagePath
+ {
+ get { return btnIcon.UnSelectedImagePath; }
+ set { btnIcon.UnSelectedImagePath = value; }
+ }
+ /// <summary>
+ /// SelectedImagePath
+ /// </summary>
+ public string SelectedImagePath
+ {
+ get { return btnIcon.SelectedImagePath; }
+ set { btnIcon.SelectedImagePath = value; }
+ }
+ /// <summary>
+ /// IsSelected
+ /// </summary>
+ public bool IsSelected
+ {
+ get { return btnIcon.IsSelected; }
+ set { btnIcon.IsSelected = value; }
+ }
+
+ /// <summary>
+ /// X杞寸殑鐪熷疄鍋忕Щ閲�(璇风‘淇濆凡缁忚皟鐢↖nitControl鍒濆鍖栧嚱鏁�,鐢ㄦ硶:钃濇箹涓婄殑X杞�,鍑忔帀杩欎釜鍊煎嵆鍙�)
+ /// </summary>
+ public int XOffset
+ {
+ get { return (this.Width - btnIcon.Width) / 2; }
+ }
+
+ /// <summary>
+ /// 鍋氭垚鏀惧湪鐢婚潰鍙宠竟鐨勭殑鍥炬爣鎺т欢(娉ㄦ剰,瀹冧笉鑳界敤鏉ュ仛銆愬悜鍙炽�戠殑鍥炬爣)
+ /// </summary>
+ /// <param name="i_width">鎺т欢绌哄害</param>
+ /// <param name="i_height">鎺т欢楂樺害</param>
+ public MostRightIconControl(int i_width, int i_height)
+ {
+ this.Width = this.GetPictrueRealSize(38);
+ this.Height = HdlControlResourse.ListViewRowHeight;
+ this.Gravity = Gravity.CenterVertical;
+
+ int XX = Application.CurrentWidth - this.GetPictrueRealSize(i_width) - HdlControlResourse.XXLeft;
+ this.X = XX - this.GetPictrueRealSize((38 - i_width) / 2);
+
+ this.btnIcon = new ButtonCtrBase();
+ btnIcon.Width = this.GetPictrueRealSize(i_width);
+ btnIcon.Height = this.GetPictrueRealSize(i_height);
+ btnIcon.Gravity = Gravity.Center;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖�
+ /// </summary>
+ public void InitControl()
+ {
+ this.AddChidren(btnIcon, ChidrenBindMode.BindEvent);
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
new file mode 100755
index 0000000..7ebb328
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
@@ -0,0 +1,34 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 骞冲嚒鏅�氱殑鎺т欢,鍩烘湰鍙槸鐢ㄦ潵鏄剧ず鉁�
+ /// </summary>
+ public class NormalViewControl : ButtonCtrBase
+ {
+ /// <summary>
+ /// 骞冲嚒鏅�氱殑鎺т欢,鍩烘湰鍙槸鐢ㄦ潵鏄剧ず(姝e父鏂囨湰瀛椾綋棰滆壊,鏂囧瓧鍚戝乏闈犻綈)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public NormalViewControl(int i_Width, int i_Height, bool real)
+ {
+ this.InitSize(i_Width, i_Height, real);
+ }
+
+ /// <summary>
+ /// 骞冲嚒鏅�氱殑鎺т欢,鍩烘湰鍙槸鐢ㄦ潵鏄剧ず(姝e父鏂囨湰瀛椾綋棰滆壊,鏂囧瓧鍚戝乏闈犻綈),楂樺害涓烘爣鍑嗛珮搴�
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public NormalViewControl(int i_Width, bool real)
+ {
+ this.InitSize(i_Width, real);
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/PicViewControl.cs b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/PicViewControl.cs
new file mode 100755
index 0000000..7a902e3
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/PicViewControl.cs
@@ -0,0 +1,24 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓樉绀哄浘鐗囩殑鏅�氭帶浠垛湬
+ /// </summary>
+ public class PicViewControl : ButtonCtrBase
+ {
+ /// <summary>
+ /// 鍋氭垚涓�涓樉绀哄浘鐗囩殑鏅�氭帶浠�
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public PicViewControl(int i_Width, int i_Height, bool real = true)
+ {
+ this.InitPictrueSize(i_Width, i_Height, real);
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/RowLayoutControls/RowLayoutControl.cs b/HDL_ON/UI/UI0-Stan/Controls/RowLayoutControls/RowLayoutControl.cs
new file mode 100755
index 0000000..2e60642
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/RowLayoutControls/RowLayoutControl.cs
@@ -0,0 +1,70 @@
+锘縰sing Shared;
+using HDL_ON.UI.CSS;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓偣鍑昏兘澶熸樉绀洪�変腑鐘舵�佽儗鏅壊鐨凴owLayout(鎷ユ湁妗屽竷)
+ /// </summary>
+ public class RowLayoutControl : RowLayoutBase
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 妗屽竷鎺т欢
+ /// </summary>
+ private FrameRowControl m_frameTable = null;
+ /// <summary>
+ /// 妗屽竷鎺т欢
+ /// </summary>
+ public FrameRowControl frameTable
+ {
+ get
+ {
+ if (m_frameTable == null) { this.InitFrameTableControl(); }
+ return m_frameTable;
+ }
+ }
+ /// <summary>
+ /// 姝ゆ帶浠剁殑璇嗗埆涓婚敭(鑷畾涔夎缃殑)
+ /// </summary>
+ public string MainKeys = string.Empty;
+ /// <summary>
+ /// 瀛愭帶浠禮杞村亸绉婚噺(鍏遍�氬畾涔夎�屽凡,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)
+ /// </summary>
+ public int chidrenYaxis = 0;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓偣鍑昏兘澶熸樉绀洪�変腑鐘舵�佽儗鏅壊鐨凴owLayout(鎷ユ湁妗屽竷)
+ /// </summary>
+ /// <param name="ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(銆愬垪琛ㄦ帶浠剁殑rowSpace/2銆戝嵆鍙�,涓嶆噦榛樿涓�0鍗冲彲)</param>
+ public RowLayoutControl(int i_ChidrenYaxis = 0)
+ {
+ this.LineColor = CSS_Color.viewTranslucence;
+ this.SubViewWidth = Application.GetRealWidth(64);
+
+ this.chidrenYaxis = i_ChidrenYaxis;
+ this.Height = HdlControlResourse.ListViewRowHeight;
+ this.Width = Application.CurrentWidth;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨甯冩帶浠�
+ /// </summary>
+ private void InitFrameTableControl()
+ {
+ this.m_frameTable = new FrameRowControl(chidrenYaxis);
+ this.m_frameTable.Height = this.Height;
+ base.AddChidren(frameTable);
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/TextInputControls/TextInputControl.cs b/HDL_ON/UI/UI0-Stan/Controls/TextInputControls/TextInputControl.cs
new file mode 100755
index 0000000..ec3605d
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/TextInputControls/TextInputControl.cs
@@ -0,0 +1,43 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鍋氭垚涓�涓緭鍏ユ鎺т欢
+ /// </summary>
+ public class TextInputControl : TextInputBase
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍋氭垚涓�涓緭鍏ユ鎺т欢(姝e父鏂囨湰瀛椾綋棰滆壊)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public TextInputControl(int i_Width, int i_Height, bool real = false)
+ {
+ this.InitSize(i_Width, i_Height, real);
+ }
+
+ /// <summary>
+ /// 鍋氭垚涓�涓緭鍏ユ鎺т欢(姝e父鏂囨湰瀛椾綋棰滆壊),楂樺害涓烘爣鍑嗛珮搴�
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public TextInputControl(int i_Width, bool real = false)
+ {
+ this.InitSize(i_Width, real);
+ }
+
+ #endregion
+
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Enum/CommonEnum.cs b/HDL_ON/UI/UI0-Stan/Enum/CommonEnum.cs
new file mode 100755
index 0000000..ed47b7e
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Enum/CommonEnum.cs
@@ -0,0 +1,115 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 淇℃伅鏄剧ず鐨勭被鍨�
+ /// </summary>
+ public enum ShowMsgType
+ {
+ /// <summary>
+ /// 鏅�氭彁绀虹被鍨�
+ /// </summary>
+ Normal = 1,
+ /// <summary>
+ /// 纭绫诲瀷
+ /// </summary>
+ Confirm = 2,
+ /// <summary>
+ /// 閿欒绫诲瀷
+ /// </summary>
+ Error = 3,
+ /// <summary>
+ /// Tip绫诲瀷
+ /// </summary>
+ Tip = 4,
+ /// <summary>
+ /// 鎻愰啋绫诲瀷
+ /// </summary>
+ Remind = 5
+ }
+
+ /// <summary>
+ /// 鏄剧ず閿欒妯″紡
+ /// </summary>
+ public enum ShowErrorMode
+ {
+ /// <summary>
+ /// 涓嶆樉绀洪敊璇�
+ /// </summary>
+ NO = 0,
+ /// <summary>
+ /// 鏄剧ず閿欒
+ /// </summary>
+ YES = 1,
+ }
+
+ /// <summary>
+ /// 鐘舵�佹帶浠舵坊鍔犲瓙鎺т欢浜嬩欢鐨勭粦瀹氭ā寮�
+ /// </summary>
+ public enum ChidrenBindMode
+ {
+ /// <summary>
+ /// 缁戝畾寮硅捣浜嬩欢,浣嗚鎺т欢鍗曞嚮鍚庯紝涓嶆樉绀洪�夋嫨鐘舵��
+ /// </summary>
+ BindEvent = 1,
+ /// <summary>
+ /// 涓嶇粦瀹氫簨浠讹紝涔熶笉鏄剧ず閫夋嫨鐘舵��
+ /// </summary>
+ NotBind = 2
+ }
+
+ /// <summary>
+ /// 鐘舵�佹ā寮�
+ /// </summary>
+ public enum StatuMode
+ {
+ /// <summary>
+ /// 閫夋嫨鐘舵��
+ /// </summary>
+ Select = 1,
+ /// <summary>
+ /// 闈為�夋嫨鐘舵��
+ /// </summary>
+ UnSelect = 0,
+ /// <summary>
+ /// 姝e父鐘舵��(涔熸病浠�涔堢壒娈婂惈涔夛紝灏辨槸姝e父鍛�)
+ /// </summary>
+ Normal = 2,
+ /// <summary>
+ /// 鍗曞嚮鐘舵��
+ /// </summary>
+ ClickStatu = 3
+ }
+
+ /// <summary>
+ /// 鏄剧ず閲嶆柊鍔犺浇妯″紡
+ /// </summary>
+ public enum ShowReLoadMode
+ {
+ /// <summary>
+ /// 涓嶆樉绀洪噸鏂板姞杞�
+ /// </summary>
+ NO = 0,
+ /// <summary>
+ /// 鏄剧ず閲嶆柊鍔犺浇
+ /// </summary>
+ YES = 1,
+ }
+
+ /// <summary>
+ /// 鏂瑰悜鏋氫妇
+ /// </summary>
+ public enum DirectionEnum
+ {
+ Mid = 0,
+ Enable = 1,
+ Disable = 2,
+ Up = 3,
+ Down = 4,
+ Left = 5,
+ Right = 6
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs b/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
new file mode 100755
index 0000000..86e2b4e
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
@@ -0,0 +1,323 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鐣岄潰鏈�鍩哄眰鐨勫簳灞傚叡閫�
+ /// </summary>
+ public class CommonFormBase : FrameLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鐢婚潰鐨処D(鑷姩缂栧彿,鍞竴涓婚敭,鍜屽悇椤甸潰骞舵棤浠讳綍閫昏緫鍏崇郴,浣嗘槸瀹冪殑鐢ㄥ澶х潃鍛�)
+ /// </summary>
+ public string FormID = string.Empty;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栫晫闈㈡鏋�
+ /// </summary>
+ public virtual void InitForm()
+ {
+ //灏嗗綋鍓嶇殑鐢婚潰淇濆瓨鍒板唴瀛樺綋涓�
+ HdlFormLogic.Current.AddActionForm(this);
+ }
+
+ /// <summary>
+ /// 鎵цShowForm()鏂规硶
+ /// </summary>
+ /// <param name="parameter">鍚姩鍙傛暟</param>
+ public virtual void LoadShowFormMethod(params object[] parameter)
+ {
+ this.LoadFormMethodByName(this, "ShowForm", parameter);
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鐣岄潰___________________________
+
+ /// <summary>
+ /// 娣诲姞鐢婚潰,鍚姩鍙傛暟鐢辨寚瀹氱敾闈㈢殑ShowForm鍑芥暟鎵�鎸囧畾
+ /// </summary>
+ /// <param name="parameter">鍚姩鍙傛暟锛氬弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾</param>
+ public virtual void AddForm(params object[] parameter)
+ {
+ return;
+ }
+
+ /// <summary>
+ /// 娣诲姞鎸囧畾鐢婚潰锛屽苟绉婚櫎褰撳墠鐢婚潰锛屽惎鍔ㄥ弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾
+ /// </summary>
+ /// <param name="form">鐩爣鐣岄潰</param>
+ /// <param name="parameter">鍚姩鍙傛暟锛氬弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾</param>
+ public void AddFormAndCloseNowForm(CommonFormBase form, params object[] parameter)
+ {
+ //绉婚櫎褰撳墠鐢婚潰
+ this.CloseForm();
+ //娣诲姞鐢婚潰
+ form.AddForm(parameter);
+ }
+
+ #endregion
+
+ #region 鈻� 鍏抽棴鐣岄潰___________________________
+
+ /// <summary>
+ /// 鐢婚潰鍏抽棴涔嬪墠(搴曞眰鍙樻洿,涓嶈兘閲嶈浇CloseForm鏂规硶浜�)
+ /// </summary>
+ public virtual void CloseFormBefore()
+ {
+ }
+
+ /// <summary>
+ /// 鐢婚潰鍏抽棴涔嬪悗(鏂板)
+ /// </summary>
+ public virtual void CloseFormAfter()
+ {
+ }
+
+ /// <summary>
+ /// 鐢婚潰鍏抽棴
+ /// </summary>
+ public void CloseForm()
+ {
+ try
+ {
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+
+ //鐢婚潰鍏抽棴涔嬪墠
+ this.CloseFormBefore();
+
+ //璋冪敤鐨勬槸Base鐨勭Щ闄ゆ帶浠跺嚱鏁�
+ //鑰屼笉鏄皟鐢╰his鐨勭Щ闄ゆ帶浠跺嚱
+ base.RemoveFromParent();
+
+ //浠庡垪琛ㄤ腑绉婚櫎(闃叉鐢婚潰浜岄噸娣诲姞)
+ HdlFormLogic.Current.RemoveActionForm(this);
+
+ //鐢婚潰鍏抽棴涔嬪悗
+ this.CloseFormAfter();
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鐢婚潰鍏抽棴(鍦ㄧ敾闈㈤噷闈紝璇蜂笉瑕佽皟鐢ㄦ鏂规硶锛岃浣跨敤CloseForm()鏂规硶)
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ //鐢婚潰鍙虫粦鏃讹紝鍏抽棴鐢婚潰锛岃皟鐢ㄨ嚜瀹氫箟鐨凜loseForm()鏂规硶
+ this.CloseForm();
+ }
+
+ #endregion
+
+ #region 鈻� 鍦嗗舰杩涘害鏉________________________
+
+ /// <summary>
+ /// 杩涘害鏉″惎鍔�
+ /// </summary>
+ /// <param name="text">鍒濆鏂囨湰</param>
+ public void ShowProgressBar(string text = "")
+ {
+ if (this.FormID != HdlFormLogic.Current.NowActionFormID)
+ {
+ return;
+ }
+ ProgressBar.Show(text);
+ }
+
+ /// <summary>
+ /// 璁剧疆杩涘害鏉$殑淇℃伅鍊�(浼氳嚜鍔ㄨ绠楃櫨鍒嗘瘮,鍊肩疮鍔犳ā寮�)
+ /// </summary>
+ /// <param name="value">鍊�</param>
+ public void SetProgressValue(decimal value)
+ {
+ ProgressBar.SetValue(value);
+ }
+
+ /// <summary>
+ /// 璁剧疆杩涘害鏉$殑淇℃伅鍊�
+ /// </summary>
+ /// <param name="value">鍊�</param>
+ public void SetProgressValue(string value)
+ {
+ ProgressBar.SetValue(value);
+ }
+
+ /// <summary>
+ /// 璁剧疆杩涘害鏉$殑淇℃伅鍊�
+ /// </summary>
+ /// <param name="value">鍊�</param>
+ public void SetProgressMax(decimal value)
+ {
+ if (value == 0)
+ {
+ value = 100;
+ }
+ ProgressBar.SetMaxValue(value);
+ }
+
+ /// <summary>
+ /// 鍏抽棴杩涘害鏉�
+ /// </summary>
+ /// <param name="mode">鏄惁鏄剧ず閲嶆柊鍔犺浇鐨勭晫闈�</param>
+ public void CloseProgressBar(ShowReLoadMode mode = ShowReLoadMode.NO)
+ {
+ ProgressBar.Close();
+ if (mode == ShowReLoadMode.YES)
+ {
+ //鏄剧ず閲嶆柊鍔犺浇鐨勭晫闈�(涓昏鏄敤鍦ㄧ晫闈㈠姞杞介敊璇椂锛屽啀娆″姞杞�)
+ this.ShowReLoadView();
+ }
+ }
+
+ /// <summary>
+ /// 鏄剧ず閲嶆柊鍔犺浇鐨勭晫闈�(涓昏鏄敤鍦ㄧ晫闈㈠姞杞介敊璇椂锛屽啀娆″姞杞�)
+ /// </summary>
+ public virtual void ShowReLoadView()
+ {
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸殑鏂规硶_________________________
+
+ /// <summary>
+ /// 鏄剧ず淇℃伅妗�
+ /// </summary>
+ /// <param name="msgType">淇℃伅绫诲瀷</param>
+ /// <param name="msg">淇℃伅</param>
+ /// <param name="action">鍗曞嚮纭鍚庢墽琛岀殑鍥炶皟鍑芥暟</param>
+ /// <param name="buttonText">鎸夐挳鐨勬枃鏈�</param>
+ /// <param name="i_waitTime">绛夊緟鏃堕棿,鍗曚綅涓虹,璁剧疆纭鎸夐挳鍦ㄥ闀挎椂闂村悗鎵嶈兘澶熺偣鍑�</param>
+ public void ShowMassage(ShowMsgType msgType, string msg, Action action = null, string buttonText = null, int i_waitTime = -1)
+ {
+ HdlMessageLogic.Current.ShowMassage(msgType, msg, action, buttonText, i_waitTime);
+ }
+
+ /// <summary>
+ /// 鍒ゆ柇褰撳墠姝e湪娲诲姩鐨勭晫闈㈡槸鍚︽槸褰撳墠杩欎釜鐣岄潰
+ /// </summary>
+ /// <returns></returns>
+ public bool NowFormIsAction()
+ {
+ return HdlFormLogic.Current.NowActionFormID == this.FormID;
+ }
+
+ /// <summary>
+ /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害
+ /// </summary>
+ /// <param name="i_size"></param>
+ /// <returns></returns>
+ public int GetPictrueRealSize(int i_size)
+ {
+ return Application.GetRealWidth(i_size);
+ }
+
+ #endregion
+
+ #region 鈻� 鍙嶅皠鏂规硶___________________________
+
+
+ /// <summary>
+ /// 鎵ц鎸囧畾鐢婚潰鐨勬柟娉�
+ /// </summary>
+ /// <param name="formName">鎸囧畾鐢婚潰鐨勮嫳鏂囧悕</param>
+ /// <param name="method">鎸囧畾瑕佸姞杞界殑鏂规硶鍚�</param>
+ /// <param name="parameter">鍚姩鍙傛暟</param>
+ public object LoadFormMethodByName(string formName, string method, params object[] parameter)
+ {
+ var form = HdlFormLogic.Current.GetFormByName(formName);
+ if (form == null)
+ {
+ return null;
+ }
+ return this.LoadFormMethodByName(form, method, parameter);
+ }
+
+ /// <summary>
+ /// 鎵ц鎸囧畾鐢婚潰鐨勬柟娉�(娉ㄦ剰锛氳繖涓槸涓撻棬璋冪敤寮傛锛屽苟涓旂瓑寰呭紓姝ュ畬鎴愮殑楂樼鎶�鍑芥暟,涓嶈皟鐢ㄥ紓姝ョ殑鎯呭喌锛屽埆浣跨敤姝ゅ嚱鏁�)
+ /// </summary>
+ /// <param name="formName">鎸囧畾鐢婚潰鐨勮嫳鏂囧悕</param>
+ /// <param name="method">鎸囧畾瑕佸姞杞界殑鏂规硶鍚�</param>
+ /// <param name="parameter">鍚姩鍙傛暟</param>
+ public async Task<object> LoadFormMethodByNameAsync(string formName, string method, params object[] parameter)
+ {
+ var form = HdlFormLogic.Current.GetFormByName(formName);
+ if (form == null)
+ {
+ return null;
+ }
+ var task = this.LoadFormMethodByName(form, method, parameter) as Task;
+ await task;
+
+ var result = task.GetType().GetProperty("Result").GetValue(task, null);
+ return result;
+ }
+
+ /// <summary>
+ /// 鎵ц鎸囧畾鐢婚潰鐨勬柟娉�
+ /// </summary>
+ /// <param name="form">鎸囧畾鐢婚潰鐨勮嫳鏂囧悕</param>
+ /// <param name="method">鎸囧畾瑕佸姞杞界殑鏂规硶鍚�</param>
+ /// <param name="parameter">鍚姩鍙傛暟</param>
+ public object LoadFormMethodByName(CommonFormBase form, string method, params object[] parameter)
+ {
+ try
+ {
+ if (form == null)
+ {
+ return null;
+ }
+ var myMethod = form.GetType().GetMethod(method);
+ return myMethod.Invoke(form, parameter);
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ return null;
+ }
+ }
+
+ /// <summary>
+ /// 浣跨敤鍙嶅皠鏂规硶锛屾墦寮�鎸囧畾鐨勭敾闈�(鍙敮鎸佺户鎵夸簬UserCenterCommonForm鐨勭敾闈�)
+ /// </summary>
+ /// <param name="fullName">鐢婚潰鐨勫懡鍚嶇┖闂�+鐢婚潰鐨勮嫳鏂囧悕</param>
+ /// <param name="parameter">鍚姩鍙傛暟</param>
+ public void LoadFormByFullName(string fullName, params object[] parameter)
+ {
+ System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
+ var form = (CommonFormBase)assembly.CreateInstance(fullName);
+ form.AddForm(parameter);
+ }
+
+ #endregion
+
+ #region 鈻� 璁惧鐘舵�佹洿鏂版帹閫乢__________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佹洿鏂版帹閫�
+ /// </summary>
+ /// <param name="i_LocalDevice">鏈湴璁惧瀵硅薄</param>
+ public virtual void DeviceStatuPush(Entity.Function i_LocalDevice)
+ {
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
new file mode 100755
index 0000000..0f0e916
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
@@ -0,0 +1,320 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 涓汉涓績鐨勫叡閫氬熀灞傜敾闈紝缁ф壙浜庢鍏遍�氱殑鐢婚潰锛岃浣跨敤AddForm()鍑芥暟瀹炵幇娣诲姞鐢婚潰
+ /// 鐒跺悗鍦ㄥ悇鑷殑鐢婚潰涓紝瀹炵幇涓�涓猄howForm()鐨勫嚱鏁�(鍙傛暟鐢辨坊鍔犵敾闈㈡椂锛屼娇鐢ㄧ殑鍑芥暟鐨勫弬鏁版寚瀹�)
+ /// </summary>
+ public class EditorCommonForm : CommonFormBase
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 杩斿洖鎸夐敭鐨勭偣鍑讳簨浠�(濡傛灉瀹炵幇姝や簨浠�,鍒欏簳灞傜殑浜嬩欢灏嗕笉浼氬啀瑙﹀彂)
+ /// </summary>
+ public Action BackButtonClickEvent = null;
+ /// <summary>
+ /// TopMenuFrameLayout
+ /// </summary>
+ public NormalFrameLayout topMenuFrameLayout = null;
+ /// <summary>
+ /// TopFrameLayout
+ /// </summary>
+ public NormalFrameLayout topFrameLayout = null;
+ /// <summary>
+ /// bodyFrameLayout
+ /// </summary>
+ public NormalFrameLayout bodyFrameLayout = null;
+ /// <summary>
+ /// 缂撳瓨鍚姩鍙傛暟
+ /// </summary>
+ private object[] m_parameter = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栫晫闈㈡鏋�
+ /// </summary>
+ public override void InitForm()
+ {
+ base.InitForm();
+
+ //鍒濆鍖栧ご閮ㄦ帶浠�
+ this.InitTopFrameLayout();
+
+ //鍒濆鍖栦腑閮ㄦ帶浠�
+ this.InitBodyFrameLayout();
+ }
+
+ /// <summary>
+ /// 鎵цShowForm()鏂规硶
+ /// </summary>
+ /// <param name="parameter">鍚姩鍙傛暟</param>
+ public override void LoadShowFormMethod(params object[] parameter)
+ {
+ this.m_parameter = parameter;
+ base.LoadShowFormMethod(parameter);
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖栫晫闈________________________
+
+ #region 鈻� Top________________________________
+
+ /// <summary>
+ /// 鍒濆鍖栧ご閮ㄦ帶浠�
+ /// </summary>
+ public void InitTopFrameLayout()
+ {
+ if (topFrameLayout != null)
+ {
+ return;
+ }
+
+ //TopMenuFrameLayout鍋氭垚
+ topMenuFrameLayout = new NormalFrameLayout();
+ topMenuFrameLayout.Height = HdlControlResourse.TopMenuFrameHeight;
+ topMenuFrameLayout.BackgroundColor = UI.CSS.CSS_Color.TopViewColor;
+ topMenuFrameLayout.Name = "topMenuFrameLayout";
+ this.AddChidren(topMenuFrameLayout);
+
+ //TopFrameLayout鍋氭垚
+ topFrameLayout = new NormalFrameLayout();
+ topFrameLayout.Height = HdlControlResourse.TopFrameHeight;
+ topFrameLayout.BackgroundColor = UI.CSS.CSS_Color.TopViewColor;
+ topFrameLayout.Y = topMenuFrameLayout.Bottom;
+ topFrameLayout.Name = "topFrameLayout";
+ this.AddChidren(topFrameLayout);
+
+ //杩斿洖閿�
+ var btnBack = new PicViewControl(40, 28);
+ btnBack.X = Application.GetRealWidth(10);
+ btnBack.Y = Application.GetRealHeight(9);
+ btnBack.UnSelectedImagePath = "Public/BackIcon.png";
+ topFrameLayout.AddChidren(btnBack);
+ topFrameLayout.AddTag("btnBack", btnBack);
+ //涓�涓姞澶ц繑鍥炴寜閿偣鍑诲尯鍩熺殑涓滆タ
+ var frameBtnBack = new NormalFrameLayout();
+ frameBtnBack.Width = Application.GetRealWidth(100);
+ topFrameLayout.AddChidren(frameBtnBack);
+ topFrameLayout.AddTag("frameBtnBack", frameBtnBack);
+ frameBtnBack.ButtonClickEvent += (sender, e) =>
+ {
+ if (this.BackButtonClickEvent != null)
+ {
+ //濡傛灉瀹炵幇姝や簨浠�,鍒欏簳灞傜殑浜嬩欢灏嗕笉浼氬啀瑙﹀彂
+ this.BackButtonClickEvent();
+ return;
+ }
+ //鐢婚潰鍏抽棴
+ this.CloseForm();
+ };
+
+ //鏍囬
+ var btnTilte = new NormalViewControl(270, 25, true);
+ btnTilte.Gravity = Gravity.CenterHorizontal;
+ btnTilte.Y = Application.GetRealHeight(10);
+ btnTilte.TextAlignment = TextAlignment.Center;
+ btnTilte.TextSize = UI.CSS.CSS_FontSize.HeadlineFontSize;
+ btnTilte.TextColor = UI.CSS.CSS_Color.FirstLevelTitleColor;
+ topFrameLayout.AddChidren(btnTilte);
+ topFrameLayout.AddTag("txtTitle", btnTilte);
+ }
+
+ #endregion
+
+ #region 鈻� Middle_____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄦ帶浠�
+ /// </summary>
+ public void InitBodyFrameLayout()
+ {
+ if (bodyFrameLayout != null)
+ {
+ return;
+ }
+ bodyFrameLayout = new NormalFrameLayout();
+ bodyFrameLayout.Height = HdlControlResourse.BodyFrameHeight;
+ bodyFrameLayout.Y = topFrameLayout.Bottom;
+ bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.BackgroundColor;
+ bodyFrameLayout.Name = "bodyFrameLayout";
+ this.AddChidren(bodyFrameLayout);
+ }
+
+ #endregion
+
+ #endregion
+
+ #region 鈻� 娣诲姞鐣岄潰___________________________
+
+ /// <summary>
+ /// 娣诲姞鐢婚潰,鍚姩鍙傛暟鐢辨寚瀹氱敾闈㈢殑ShowForm鍑芥暟鎵�鎸囧畾
+ /// </summary>
+ /// <param name="parameter">鍚姩鍙傛暟锛氬弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾</param>
+ public override void AddForm(params object[] parameter)
+ {
+ base.AddForm(parameter);
+
+ MainPage.BasePageView.AddChidren(this);
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+ //鍒濆鍖栫晫闈㈡鏋�
+ this.InitForm();
+
+ //鎵цShowForm()鏂规硶
+ this.LoadShowFormMethod(parameter);
+ }
+
+ #endregion
+
+ #region 鈻� 鍏抽棴鐣岄潰___________________________
+
+ /// <summary>
+ /// 鐢婚潰鍏抽棴
+ /// </summary>
+ public override void CloseFormBefore()
+ {
+ base.CloseFormBefore();
+
+ this.BackButtonClickEvent = null;
+
+ this.m_parameter = null;
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず閲嶆柊鍔犺浇_______________________
+
+ /// <summary>
+ /// 鏄剧ず閲嶆柊鍔犺浇鐨勭晫闈�(涓昏鏄敤鍦ㄧ晫闈㈠姞杞介敊璇椂锛屽啀娆″姞杞�)
+ /// </summary>
+ public override void ShowReLoadView()
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ if (bodyFrameLayout == null || bodyFrameLayout.Parent == null)
+ {
+ return;
+ }
+ bodyFrameLayout.RemoveAll();
+ //鍒囨崲涓洪噸鏂板姞杞芥ā寮忔椂鐨勪簨浠�
+ this.ReLoadModelEventMethod();
+
+ var frame = new NormalFrameLayout();
+ bodyFrameLayout.AddChidren(frame);
+
+ //閲嶆柊鍔犺浇
+ var btnReLoad = new BottomClickButton();
+ btnReLoad.Gravity = Gravity.Center;
+ btnReLoad.TextID = StringId.DoReloadAgain;
+ frame.AddChidren(btnReLoad);
+ btnReLoad.ButtonClickEvent += (sender, e) =>
+ {
+ //娓呴櫎鍏ㄩ儴鎺т欢
+ this.ClearBodyFrame();
+
+ //鎵цShowForm()鏂规硶瀹炵幇閲嶆柊鍔犺浇
+ this.LoadShowFormMethod(this.m_parameter);
+ };
+
+ //娓呴櫎topFrameLayout鐨勯潪榛樿鐨勬帶浠�
+ var list = new List<View>();
+ for (int i = 0; i < topFrameLayout.ChildrenCount; i++)
+ {
+ var view = topFrameLayout.GetChildren(i);
+ if (view.Name == "btnBack" || view.Name == "txtTitle")
+ {
+ //杩欓噷鏄粯璁ょ殑搴曞眰鎺т欢
+ continue;
+ }
+ list.Add(view);
+ }
+ foreach (var view in list)
+ {
+ view?.RemoveFromParent();
+ }
+ });
+ }
+
+ /// <summary>
+ /// 鍒囨崲涓恒�愰噸鏂板姞杞芥ā寮忋�戞椂鐨勪簨浠跺嚱鏁�,鏃ㄥ湪鍏抽棴鎵�鏈夌嚎绋嬩俊鎭�
+ /// </summary>
+ public virtual void ReLoadModelEventMethod()
+ {
+ }
+
+ #endregion
+
+ #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+ /// <summary>
+ /// <para>鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�</para>
+ /// <para>閲嶅啓鐨勬椂鍊欒繑鍥炲�艰杩斿洖1(杩斿洖鍊兼槸缁欏簳灞備娇鐢ㄧ殑)</para>
+ /// </summary>
+ public virtual int FormActionAgainEvent()
+ {
+ return -1;
+ }
+
+ #endregion
+
+ #region 鈻� 娓呯┖BodyFrame______________________
+
+ /// <summary>
+ /// 娓呯┖BodyFrame
+ /// </summary>
+ public void ClearBodyFrame()
+ {
+ if (this.Parent == null)
+ {
+ return;
+ }
+ if (bodyFrameLayout == null || bodyFrameLayout.Parent == null)
+ {
+ return;
+ }
+ bodyFrameLayout.RemoveAll();
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸殑鏂规硶_________________________
+
+ /// <summary>
+ /// 璁剧疆鏍囬淇℃伅
+ /// </summary>
+ /// <param name="title">Title.</param>
+ public void SetTitleText(string title)
+ {
+ //璁剧疆澶撮儴淇℃伅
+ var btntitle = (Button)topFrameLayout.GetTagByKey("txtTitle");
+ btntitle.Text = title;
+ }
+
+ /// <summary>
+ /// 绉婚櫎杩斿洖閿�
+ /// </summary>
+ public void RemoveBackButton()
+ {
+ //绉婚櫎杩斿洖閿�
+ var back = (NormalViewControl)topFrameLayout.GetTagByKey("btnBack");
+ topFrameLayout.RemoveTag("btnBack");
+ back?.RemoveFromParent();
+
+ var back2 = (NormalFrameLayout)topFrameLayout.GetTagByKey("frameBtnBack");
+ topFrameLayout.RemoveTag("frameBtnBack");
+ back2?.RemoveFromParent();
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Form/DeviceFunctionCardCommonForm.cs b/HDL_ON/UI/UI0-Stan/Form/DeviceFunctionCardCommonForm.cs
new file mode 100755
index 0000000..a09506a
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Form/DeviceFunctionCardCommonForm.cs
@@ -0,0 +1,296 @@
+锘縰sing HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 璁惧鍔熻兘鍗$墖鐨勫簳灞傜晫闈�
+ /// </summary>
+ public class DeviceFunctionCardCommonForm : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 褰撳墠鍥炶矾瀵硅薄
+ /// </summary>
+ public Function device = null;
+ /// <summary>
+ /// 鍙充笂瑙掗厤缃粨鏉熺殑浜嬩欢
+ /// </summary>
+ public Action SettionFinishEvent = null;
+ /// <summary>
+ /// 宸﹀彸鏁翠釜缈婚〉鐨勬帶浠�
+ /// </summary>
+ private PageLayout pageLayout = null;
+ /// <summary>
+ /// 璁惧鍚嶅瓧鎺т欢(鍒锋柊鐢ㄥ埌)
+ /// </summary>
+ public NormalViewControl btnDeviceName = null;
+ /// <summary>
+ /// 鎴块棿鍚嶅瓧鎺т欢(鍒锋柊鐢ㄥ埌)
+ /// </summary>
+ public NormalViewControl btnRoomName = null;
+ /// <summary>
+ /// 搴曢儴蹇嵎鎸夐挳1
+ /// </summary>
+ private NormalViewControl btnBottomOne = null;
+ /// <summary>
+ /// 搴曢儴蹇嵎鎸夐挳2
+ /// </summary>
+ private NormalViewControl btnBottomTwo = null;
+ /// <summary>
+ /// 绗竴绱㈠紩鐨勭櫧鑹插尯鍩熺殑妗屽竷鎺т欢
+ /// </summary>
+ public NormalFrameLayout FrameWhiteCentet1 = null;
+ /// <summary>
+ /// 绗簩绱㈠紩鐨勭櫧鑹插尯鍩熺殑妗屽竷鎺т欢(璇峰厛璋冪敤AddSecondPage鍑芥暟瀹屾垚娣诲姞)
+ /// </summary>
+ public NormalFrameLayout FrameWhiteCentet2 = null;
+
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ /// <param name="i_device">璁惧瀵硅薄</param>
+ /// <param name="btnHigherCollection">涓婁竴绾х晫闈㈢殑鏀惰棌鎺т欢(鍘熸潵on鐨勬鏋跺お鍧�)</param>
+ /// <param name="btnHigherDeviceName">涓婁竴绾х晫闈㈢殑璁惧鍚嶅瓧鎺т欢(鍘熸潵on鐨勬鏋跺お鍧�)</param>
+ /// <param name="btnHigherRoom">涓婁竴绾х晫闈㈢殑鎴块棿鍚嶅瓧鎺т欢(鍘熸潵on鐨勬鏋跺お鍧�)</param>
+ public void ShowForm(Function i_device, Button btnHigherCollection, Button btnHigherDeviceName, Button btnHigherRoom)
+ {
+ this.device = i_device;
+
+ //娣诲姞澶撮儴銆愯缃�戝浘鏍�
+ this.AddTopSettingIcon(btnHigherDeviceName, btnHigherRoom);
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame(btnHigherCollection);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ /// <param name="btnHigherCollection">涓婁竴绾х晫闈㈢殑鏀惰棌鎺т欢</param>
+ private void InitMiddleFrame(Button btnHigherCollection)
+ {
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
+
+ //宸﹀彸鏁翠釜缈婚〉鐨勬帶浠�
+ this.pageLayout = new PageLayout();
+ pageLayout.IsShowPoint = false;
+ pageLayout.ScrollEnabled = false;
+ bodyFrameLayout.AddChidren(pageLayout);
+ pageLayout.PageChange += (sender, index) =>
+ {
+ //璁剧疆搴曢儴涓や釜鎸夐挳鐨勭姸鎬�
+ this.SetBottomTwoButtonStatu();
+ };
+
+ //鍒濆鍖栫涓�涓储寮曠殑妗屽竷
+ this.InitFrameWhiteContent1(btnHigherCollection);
+ //鍒濆鍖栫櫧鑹插唴瀹�(闇�瑕佽嚜涓诲疄鐜�)
+ this.InitFrameWhiteContent();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫涓�涓储寮曠殑妗屽竷
+ /// </summary>
+ /// <param name="btnHigherCollection">涓婁竴绾х晫闈㈢殑鏀惰棌鎺т欢</param>
+ private void InitFrameWhiteContent1(Button btnHigherCollection)
+ {
+ //绗竴涓储寮曟甯冩槸蹇呭畾瀛樺湪鐨�
+ var frameTable1 = new FrameLayout();
+ frameTable1.Width = pageLayout.Width;
+ frameTable1.Height = pageLayout.Height;
+ pageLayout.AddChidren(frameTable1);
+ //绗竴涓储寮曠殑鐧借壊妗屽竷
+ this.FrameWhiteCentet1 = new NormalFrameLayout();
+ FrameWhiteCentet1.Gravity = Gravity.CenterHorizontal;
+ FrameWhiteCentet1.Y = Application.GetRealHeight(22);
+ FrameWhiteCentet1.Width = Application.GetRealWidth(327);
+ FrameWhiteCentet1.Height = Application.GetRealHeight(526);
+ FrameWhiteCentet1.BackgroundImagePath = "Public/Fragmentbg.png";
+ frameTable1.AddChidren(FrameWhiteCentet1);
+ //璁惧鍚嶅瓧
+ this.btnDeviceName = new NormalViewControl(270, 37, true);
+ btnDeviceName.X = Application.GetRealWidth(16);
+ btnDeviceName.Y = Application.GetRealHeight(18);
+ btnDeviceName.TextColor = CSS_Color.FirstLevelTitleColor;
+ btnDeviceName.TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel;
+ btnDeviceName.Text = device.name;
+ btnDeviceName.Width = btnDeviceName.GetRealWidthByText();
+ FrameWhiteCentet1.AddChidren(btnDeviceName);
+ //鎴块棿鍚嶅瓧
+ this.btnRoomName = new NormalViewControl(270, 21, true);
+ btnRoomName.X = Application.GetRealWidth(16);
+ btnRoomName.Y = btnDeviceName.Bottom;
+ btnRoomName.TextColor = CSS_Color.PromptingColor1;
+ btnRoomName.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnRoomName.Text = device.GetRoomListName();
+ btnRoomName.Width = btnRoomName.GetRealWidthByText();
+ FrameWhiteCentet1.AddChidren(btnRoomName);
+ //鎴愬憳娌℃湁鏀惰棌鍔熻兘
+ if (DB_ResidenceData.Instance.CurrentRegion.IsOthreShare == false)
+ {
+ var btnCollection = new IconViewControl(40);
+ btnCollection.X = Application.GetRealWidth(273);
+ btnCollection.Y = Application.GetRealHeight(16);
+ btnCollection.SelectedImagePath = "Collection/CollectionIcon.png";
+ btnCollection.UnSelectedImagePath = "Collection/CollectionGrayIcon.png";
+ btnCollection.IsSelected = device.collect;
+ FrameWhiteCentet1.AddChidren(btnCollection);
+ btnCollection.ButtonClickEvent += (sender, e) =>
+ {
+ btnCollection.IsSelected = !btnCollection.IsSelected;
+ device.collect = btnCollection.IsSelected;
+ btnHigherCollection.IsSelected = device.collect;
+
+ device.CollectFunction();
+ };
+ }
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫浜屼釜绱㈠紩鐨勬甯�
+ /// </summary>
+ private void InitFrameWhiteContent2()
+ {
+ this.pageLayout.ScrollEnabled = true;
+ //绗竴涓储寮曟甯冩槸蹇呭畾瀛樺湪鐨�
+ var frameTable2 = new FrameLayout();
+ frameTable2.Width = pageLayout.Width;
+ frameTable2.Height = pageLayout.Height;
+ pageLayout.AddChidren(frameTable2);
+ //绗竴涓储寮曠殑鐧借壊妗屽竷
+ this.FrameWhiteCentet2 = new NormalFrameLayout();
+ FrameWhiteCentet2.Gravity = Gravity.CenterHorizontal;
+ FrameWhiteCentet2.Y = Application.GetRealHeight(22);
+ FrameWhiteCentet2.Width = Application.GetRealWidth(327);
+ FrameWhiteCentet2.Height = Application.GetRealHeight(526);
+ FrameWhiteCentet2.BackgroundImagePath = "Public/Fragmentbg.png";
+ frameTable2.AddChidren(FrameWhiteCentet2);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫櫧鑹插唴瀹�(闇�瑕佽嚜涓诲疄鐜�)
+ /// </summary>
+ public virtual void InitFrameWhiteContent()
+ {
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞绗簩绱㈠紩椤礯____________________
+
+ /// <summary>
+ /// 娣诲姞绗簩绱㈠紩椤�
+ /// </summary>
+ public void AddSecondPage()
+ {
+ //鍒濆鍖栫浜屼釜绱㈠紩鐨勬甯�
+ this.InitFrameWhiteContent2();
+
+ //搴曢儴娣诲姞涓や釜鎸夐挳
+ this.btnBottomOne = new NormalViewControl(14, 6, true);
+ btnBottomOne.X = Application.GetRealWidth(170);
+ btnBottomOne.Y = FrameWhiteCentet1.Bottom + Application.GetRealHeight(30);
+ btnBottomOne.BackgroundColor = CSS_Color.MainColor;
+ btnBottomOne.Radius = (uint)Application.GetRealHeight(6) / 2;
+ bodyFrameLayout.AddChidren(btnBottomOne);
+ btnBottomOne.ButtonClickEvent += (sender, e) =>
+ {
+ this.pageLayout.PageIndex = 0;
+ //璁剧疆搴曢儴涓や釜鎸夐挳鐨勭姸鎬�
+ this.SetBottomTwoButtonStatu();
+ };
+ this.btnBottomTwo = new NormalViewControl(14, 6, true);
+ btnBottomTwo.X = btnBottomOne.Right + Application.GetRealWidth(8);
+ btnBottomTwo.Y = btnBottomOne.Y;
+ btnBottomTwo.BackgroundColor = 0xffadc7f7;
+ btnBottomTwo.Radius = (uint)Application.GetRealHeight(6) / 2;
+ bodyFrameLayout.AddChidren(btnBottomTwo);
+ btnBottomTwo.ButtonClickEvent += (sender, e) =>
+ {
+ this.pageLayout.PageIndex = 1;
+ //璁剧疆搴曢儴涓や釜鎸夐挳鐨勭姸鎬�
+ this.SetBottomTwoButtonStatu();
+ };
+ }
+
+ /// <summary>
+ /// 璁剧疆搴曢儴涓や釜鎸夐挳鐨勭姸鎬�
+ /// </summary>
+ private void SetBottomTwoButtonStatu()
+ {
+ if (this.btnBottomTwo == null) { return; }
+
+ if (this.pageLayout.PageIndex == 1)
+ {
+ this.btnBottomOne.BackgroundColor = 0xffadc7f7;
+ this.btnBottomTwo.BackgroundColor = CSS_Color.MainColor;
+ }
+ else
+ {
+ this.btnBottomOne.BackgroundColor = CSS_Color.MainColor;
+ this.btnBottomTwo.BackgroundColor = 0xffadc7f7;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 娣诲姞澶撮儴銆愯缃�戠殑鍥炬爣
+ /// </summary>
+ /// <param name="btnHigherCollection">涓婁竴绾х晫闈㈢殑鏀惰棌鎺т欢(鍘熸潵on鐨勬鏋跺お鍧�)</param>
+ /// <param name="btnHigherDeviceName">涓婁竴绾х晫闈㈢殑璁惧鍚嶅瓧鎺т欢(鍘熸潵on鐨勬鏋跺お鍧�)</param>
+ private void AddTopSettingIcon(Button btnHigherDeviceName, Button btnHigherRoom)
+ {
+ //濡傛灉鏄垚鍛樻病鏈夊姛鑳�
+ if (DB_ResidenceData.Instance.CurrentRegion.IsOthreShare == true)
+ {
+ return;
+ }
+ //璁剧疆鍥炬爣
+ var btnSetting = new PicViewControl(28, 28);
+ btnSetting.X = Application.GetRealWidth(337);
+ btnSetting.Y = Application.GetRealHeight(9);
+ btnSetting.UnSelectedImagePath = "Public/FuncInfoSetIcon.png";
+ topFrameLayout.AddChidren(btnSetting);
+
+ btnSetting.ButtonClickEvent += (sender, e) =>
+ {
+ var infoView = new UI.FunctionBaseInfoSetPage(this.device, () =>
+ {
+ //鍒锋柊鏄剧ず
+ btnHigherDeviceName.Text = this.device.name;
+ btnHigherRoom.Text = this.device.GetRoomListName();
+
+ //浠庢柊璁$畻瀹藉害
+ this.btnDeviceName.Text = btnHigherDeviceName.Text;
+ this.btnDeviceName.Width = this.btnDeviceName.GetRealWidthByText();
+
+ this.btnRoomName.Text = btnHigherRoom.Text;
+ this.btnRoomName.Width = this.btnRoomName.GetRealWidthByText();
+
+ //鍥炶皟浜嬩欢
+ this.SettionFinishEvent?.Invoke();
+ });
+ MainPage.BasePageView.AddChidren(infoView);
+ infoView.LoadPage();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Form/HideOptionDirectoryListForm.cs b/HDL_ON/UI/UI0-Stan/Form/HideOptionDirectoryListForm.cs
new file mode 100755
index 0000000..6c22b1f
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Form/HideOptionDirectoryListForm.cs
@@ -0,0 +1,85 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鏈湴缂撳瓨鏂囦欢澶瑰垪琛ㄧ殑鐣岄潰
+ /// </summary>
+ public class HideOptionDirectoryListForm : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ public void ShowForm()
+ {
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText("鏂囦欢澶瑰垪琛�");
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ var listView = new VerticalListControl(8);
+ listView.BackgroundColor = 0xffffffff;
+ listView.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listView);
+
+ //鏌ョ湅鍏ㄩ儴鏂囦欢
+ var row2 = new FrameRowControl(listView.rowSpace / 2);
+ listView.AddChidren(row2);
+ row2.AddLeftCaption("鏌ョ湅鍏ㄩ儴鏂囦欢", 278);
+ row2.AddRightArrow();
+
+ row2.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new HideOptionSearchAllFile();
+ form.AddForm(Shared.IO.FileUtils.RootPath);
+ };
+
+ listView.AdjustRealHeight(Application.GetRealHeight(8));
+ }
+
+ private void AddRowControl(VerticalListControl listView, string directory, string directoryValue, bool addLine)
+ {
+ if (System.IO.Directory.Exists(directoryValue) == false)
+ {
+ return;
+ }
+ var row1 = new FrameRowControl(listView.rowSpace / 2);
+ listView.AddChidren(row1);
+ row1.AddLeftCaption(directory, 278);
+ row1.AddRightArrow();
+ if (addLine == true)
+ {
+ row1.AddBottomLine();
+ }
+
+ row1.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new HideOptionSearchAllFile();
+ form.AddForm(directoryValue);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Form/HideOptionFileContentForm.cs b/HDL_ON/UI/UI0-Stan/Form/HideOptionFileContentForm.cs
new file mode 100755
index 0000000..24a238b
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Form/HideOptionFileContentForm.cs
@@ -0,0 +1,91 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鏂囦欢鍐呭
+ /// </summary>
+ public class HideOptionFileContentForm : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ public void ShowForm(string i_file)
+ {
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText("鏂囦欢鍐呭");
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame(i_file);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame(string i_file)
+ {
+ if (i_file == string.Empty) { return; }
+
+ this.ClearBodyFrame();
+
+ if (i_file.EndsWith(".png") == true || i_file.EndsWith(".jpg") == true || i_file.EndsWith(".JPG") == true)
+ {
+ var btnPic = new ImageView();
+ btnPic.Y = Application.GetRealHeight(21);
+ btnPic.Width = this.GetPictrueRealSize(308);
+ btnPic.Height = this.GetPictrueRealSize(154);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ btnPic.Radius= (uint)Application.GetRealHeight(6);
+ btnPic.ImageBytes = Shared.IO.FileUtils.ReadFile(i_file);
+ bodyFrameLayout.AddChidren(btnPic);
+ }
+ else
+ {
+ string textValue = System.Text.Encoding.UTF8.GetString(Shared.IO.FileUtils.ReadFile(i_file)).Trim();
+ this.SetTextContent(textValue);
+ }
+ }
+
+ /// <summary>
+ /// 鑷畾涔夎缃樉绀虹殑鏂囨湰
+ /// </summary>
+ /// <param name="i_text"></param>
+ public void SetTextContent(string textValue)
+ {
+ if (textValue.StartsWith("{") == true)
+ {
+ textValue = "{\r\n" + textValue.Substring(1);
+ }
+ if (textValue.EndsWith("}") == true)
+ {
+ textValue = textValue.Substring(0, textValue.Length - 1) + "\r\n}";
+ }
+
+ var btnText = new EditTextView();
+ btnText.Width = bodyFrameLayout.Width;
+ btnText.Height = bodyFrameLayout.Height;
+ btnText.TextAlignment = TextAlignment.TopLeft;
+ btnText.TextColor = UI.CSS.CSS_Color.MainColor;
+ btnText.Text = textValue;
+#if __Android__
+ btnText.Foucs = false;
+#endif
+ bodyFrameLayout.AddChidren(btnText);
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Form/HideOptionSearchAllFile.cs b/HDL_ON/UI/UI0-Stan/Form/HideOptionSearchAllFile.cs
new file mode 100755
index 0000000..32fe362
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Form/HideOptionSearchAllFile.cs
@@ -0,0 +1,181 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鏌ョ湅鍏ㄩ儴鏂囦欢
+ /// </summary>
+ public class HideOptionSearchAllFile : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ private string nowDirectory = string.Empty;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ public void ShowForm(string directory)
+ {
+ this.nowDirectory = directory;
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText("鏂囦欢鍒楄〃");
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame(nowDirectory);
+
+ this.BackButtonClickEvent = () =>
+ {
+ string rootPath = Shared.IO.FileUtils.RootPath.Trim('/');
+ if (this.nowDirectory.Trim('/') == rootPath)
+ {
+ this.CloseForm();
+ return;
+ }
+ string[] Arry = this.nowDirectory.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
+ string nextDir = string.Empty;
+ for (int i = 0; i < Arry.Length - 1; i++)
+ {
+ nextDir += Arry[i] + "/";
+ }
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame(nextDir);
+ };
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame(string directory)
+ {
+ this.nowDirectory = directory;
+ this.ClearBodyFrame();
+
+ var listDirectory = new List<string>();
+ var listAllFile = new List<string>();
+
+ //string rootPath = Shared.IO.FileUtils.RootPath.Trim('/');
+ //if (this.nowDirectory.Trim('/') == rootPath)
+ //{
+ // //鏍圭洰褰曞彧瑕佷袱涓氨鍙互浜�
+ // listDirectory.Add(Common.Config.Instance.Guid);
+ // listDirectory.Add(Application.Skin != null ? Application.Skin : "Phone");
+ //}
+ //else
+ {
+ var files = System.IO.Directory.GetDirectories(directory);
+ foreach (var file in files)
+ {
+ string[] arry = file.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
+ listDirectory.Add(arry[arry.Length - 1]);
+ }
+ listDirectory.Sort();
+
+ listAllFile = HdlFileLogic.Current.GetFileFromDirectory(directory.TrimEnd('/'));
+ listAllFile.Sort();
+ }
+
+ var listView = new VerticalListControl(8);
+ listView.BackgroundColor = 0xffffffff;
+ listView.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listView);
+
+ if (listDirectory.Count > 0)
+ {
+ var row1 = new RowLayoutControl(listView.rowSpace / 2);
+ listView.AddChidren(row1);
+ row1.frameTable.AddLeftCaption("銆愭枃浠跺す鍒楄〃銆�", 278);
+
+ for (int i = 0; i < listDirectory.Count; i++)
+ {
+ this.AddDirectoryRowControl(listView, listDirectory[i], directory, i != listDirectory.Count - 1);
+ }
+ }
+
+ if (listAllFile.Count > 0)
+ {
+ var row1 = new RowLayoutControl(listView.rowSpace / 2);
+ listView.AddChidren(row1);
+ row1.frameTable.AddLeftCaption("銆愭枃浠跺垪琛ㄣ��", 278);
+ for (int i = 0; i < listAllFile.Count; i++)
+ {
+ this.AddFileRowControl(listView, listAllFile[i], directory, i != listAllFile.Count - 1);
+ }
+ }
+ listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(17));
+
+ var btnButon = new BottomClickButton();
+ btnButon.Text = "鍒犻櫎鏂囦欢澶�";
+ bodyFrameLayout.AddChidren(btnButon);
+ btnButon.ButtonClickEvent += (sender, e) =>
+ {
+ this.ShowMassage(ShowMsgType.Confirm, "鏄惁娓呴櫎璇ユ枃浠跺す", () =>
+ {
+ try
+ {
+ System.IO.Directory.Delete(directory, true);
+ this.CloseForm();
+ }
+ catch (Exception ex)
+ {
+ this.ShowMassage(ShowMsgType.Error, "娓呴櫎缂撳瓨鏂囦欢澶瑰紓甯�");
+ }
+ });
+ };
+ }
+
+ private void AddDirectoryRowControl(VerticalListControl listView, string directoryName, string directory, bool addLine)
+ {
+ string dirNewName = directoryName;
+
+ var row1 = new RowLayoutControl(listView.rowSpace / 2);
+ listView.AddChidren(row1);
+ var btnName = row1.frameTable.AddLeftCaption(dirNewName, 278);
+ btnName.IsMoreLines = true;
+ if (addLine == true)
+ {
+ row1.frameTable.AddBottomLine();
+ }
+ row1.frameTable.AddRightArrow();
+
+ row1.frameTable.ButtonClickEvent += (sender, e) =>
+ {
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame(System.IO.Path.Combine(directory, directoryName));
+ };
+ }
+
+ private void AddFileRowControl(VerticalListControl listView, string fileName, string directory, bool addLine)
+ {
+ string fileNewName = fileName;
+
+ var row1 = new RowLayoutControl(listView.rowSpace / 2);
+ listView.AddChidren(row1);
+ var btnName = row1.frameTable.AddLeftCaption(fileNewName, 278);
+ btnName.IsMoreLines = true;
+ if (addLine == true)
+ {
+ row1.frameTable.AddBottomLine();
+ }
+ row1.frameTable.AddRightArrow();
+
+ row1.frameTable.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new HideOptionFileContentForm();
+ form.AddForm(System.IO.Path.Combine(directory, fileName));
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlDeviceStatuPushLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlDeviceStatuPushLogic.cs
new file mode 100755
index 0000000..dfc9099
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlDeviceStatuPushLogic.cs
@@ -0,0 +1,63 @@
+锘縰sing HDL_ON.Entity;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 璁惧鐘舵�佹帹閫侀�昏緫(缁ф壙浜嶦ditorFormBase鐨勭晫闈笓鐢�)
+ /// </summary>
+ public class HdlDeviceStatuPushLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佹帹閫侀�昏緫(缁ф壙浜嶦ditorFormBase鐨勭晫闈笓鐢�)
+ /// </summary>
+ private static HdlDeviceStatuPushLogic m_Current = null;
+ /// <summary>
+ /// 璁惧鐘舵�佹帹閫侀�昏緫(缁ф壙浜嶦ditorFormBase鐨勭晫闈笓鐢�)
+ /// </summary>
+ public static HdlDeviceStatuPushLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlDeviceStatuPushLogic();
+ }
+ return m_Current;
+ }
+ }
+ #endregion
+
+ #region 鈻� 鐘舵�佹洿鏂癬__________________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佹洿鏂�
+ /// </summary>
+ /// <param name="updateData">浜戠鎺ㄩ�佺殑鏇存柊鏁版嵁</param>
+ public Function UpdateDeviceStatu(AlinkControlData updateData)
+ {
+ var localDevice = FunctionList.List.electricals.Find((obj) => obj.sid == updateData.sid);
+ if (localDevice != null)
+ {
+ foreach (var attr in updateData.status)
+ {
+ var localAttr = localDevice.attributes.Find((obj) => obj.key == attr.key);
+ if (localAttr != null)
+ {
+ //鏇存敼灞炴�у��
+ localAttr.curValue = attr.value;
+ }
+ }
+ //鍏ㄩ儴鐣岄潰鎺ㄩ��
+ HdlFormLogic.Current.DeviceStatuPush(localDevice);
+ }
+ return localDevice;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlFileLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlFileLogic.cs
new file mode 100755
index 0000000..9854c01
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlFileLogic.cs
@@ -0,0 +1,292 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鏂囦欢鎿嶄綔鐨勯�昏緫
+ /// </summary>
+ public class HdlFileLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鏂囦欢鎿嶄綔鐨勯�昏緫
+ /// </summary>
+ private static HdlFileLogic m_Current = null;
+ /// <summary>
+ /// 鏂囦欢鎿嶄綔鐨勯�昏緫
+ /// </summary>
+ public static HdlFileLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlFileLogic();
+ }
+ return m_Current;
+ }
+ }
+ #endregion
+
+ #region 鈻� 鏂囦欢淇濆瓨鍜岃鍙朹____________________
+
+ /// <summary>
+ /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+ /// </summary>
+ /// <param name="fullName">鍏ㄨ矾寰�</param>
+ /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
+ public void SaveFileContent(string fullName, object obj)
+ {
+ var data = JsonConvert.SerializeObject(obj);
+ this.SaveTextToFile(fullName, data);
+ }
+
+ /// <summary>
+ /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+ /// </summary>
+ /// <param name="fullName">鍏ㄨ矾寰�</param>
+ /// <param name="textValue">鏂囨湰</param>
+ public void SaveTextToFile(string fullName, string textValue)
+ {
+ var byteData = Encoding.UTF8.GetBytes(textValue);
+ this.SaveByteToFile(fullName, byteData);
+ }
+
+ /// <summary>
+ /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+ /// </summary>
+ /// <param name="fullName">鍏ㄨ矾寰�</param>
+ /// <param name="byteData">byte鏁版嵁</param>
+ public void SaveByteToFile(string fullName, byte[] byteData)
+ {
+ if (byteData == null) { return; }
+ //鍐欏叆鍐呭
+ System.IO.FileStream fileStream = null;
+ try
+ {
+ fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
+ fileStream.Write(byteData, 0, byteData.Length);
+ fileStream.Flush();
+ }
+ catch { }
+ finally
+ {
+ fileStream?.Close();
+ }
+ }
+
+ /// <summary>
+ /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�(鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull,鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+ /// </summary>
+ /// <param name="fullName">鍏ㄨ矾寰�</param>
+ /// <returns></returns>
+ public string ReadFileTextContent(string fullName)
+ {
+ //璇诲彇鏂囦欢
+ var varByte = this.ReadFileByteContent(fullName);
+ if (varByte == null)
+ {
+ return null;
+ }
+ return Encoding.UTF8.GetString(varByte);
+ }
+
+ /// <summary>
+ /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�,鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull
+ /// </summary>
+ /// <param name="fullName">鍏ㄨ矾寰�</param>
+ /// <returns></returns>
+ public byte[] ReadFileByteContent(string fullName)
+ {
+ if (System.IO.File.Exists(fullName) == false)
+ {
+ return null;
+ }
+ System.IO.FileStream fileStream = null;
+ try
+ {
+ fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
+ byte[] array = new byte[fileStream.Length];
+ fileStream.Read(array, 0, array.Length);
+ return array;
+ }
+ catch
+ {
+ return null;
+ }
+ finally
+ {
+ fileStream?.Close();
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鏂囦欢澶规搷浣滃嚱鏁癬____________________
+
+ /// <summary>
+ /// 鍒涘缓涓�涓枃浠跺す
+ /// </summary>
+ /// <param name="fullDirectory">闇�瑕佸垱寤虹殑鏂囦欢澶瑰叏璺緞</param>
+ /// <param name="clear">濡傛灉鏂囦欢澶瑰瓨鍦紝鏄惁闇�瑕佹竻绌烘枃浠跺す</param>
+ public void CreateDirectory(string fullDirectory, bool clear = false)
+ {
+ if (System.IO.Directory.Exists(fullDirectory) == false)
+ {
+ try
+ {
+ System.IO.Directory.CreateDirectory(fullDirectory);
+ }
+ catch { }
+ }
+ else if (clear == true)
+ {
+ //濡傛灉瀛樺湪锛屽垯娓呯┖鍏ㄩ儴鏂囦欢
+ var files = System.IO.Directory.GetFiles(fullDirectory);
+ foreach (var file in files)
+ {
+ this.DeleteFile(file);
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鏂囦欢澶�
+ /// </summary>
+ /// <param name="fullDirectory">鏂囦欢澶瑰叏璺緞</param>
+ public void DeleteDirectory(string fullDirectory)
+ {
+ if (System.IO.Directory.Exists(fullDirectory) == true)
+ {
+ try { System.IO.Directory.Delete(fullDirectory, true); }
+ catch { }
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎸囧畾鏂囦欢澶归噷闈㈢殑鍏ㄩ儴鏂囦欢
+ /// </summary>
+ /// <param name="directory">鏂囦欢璺緞锛堝叏鍚嶏級</param>
+ /// <param name="onlyFileName">鍗曠函鍙槸鑾峰彇鏂囦欢鍚嶅瓧,濡傛灉涓篺alse鏃�,灏嗚繑鍥炴枃浠剁殑鍏ㄨ矾寰�</param>
+ /// <returns></returns>
+ public List<string> GetFileFromDirectory(string directory, bool onlyFileName = true)
+ {
+ if (System.IO.Directory.Exists(directory) == false)
+ {
+ return new List<string>();
+ }
+
+ var list = new List<string>();
+ try
+ {
+ //2020.07.10鐨勬椂鍊�,鍑虹幇杩囪幏鍙栧け璐ュ紓甯� 鎻愮ず:write fault on path
+ var files = System.IO.Directory.GetFiles(directory);
+ foreach (var file in files)
+ {
+ string fileName = file;
+ if (onlyFileName == true)
+ {
+ fileName = fileName.Substring(directory.Length + 1);
+ }
+ list.Add(fileName);
+ }
+ }
+ catch {}
+
+ return list;
+ }
+
+ /// <summary>
+ /// 灏嗘寚瀹氭枃浠跺す閲岄潰鐨勫叏閮ㄦ枃浠跺鍒跺埌鎸囧畾鐨勬枃浠跺す鍐�
+ /// </summary>
+ /// <param name="fullDirectory">澶嶅埗鍘熸枃浠跺す鍏ㄨ矾寰�</param>
+ /// <param name="targetDirectory">鐩爣鏂囦欢澶瑰叏璺緞</param>
+ public void CopyDirectoryFileToDirectory(string fullDirectory, string targetDirectory)
+ {
+ if (System.IO.Directory.Exists(targetDirectory) == false)
+ {
+ //鍒涘缓鐩爣鏂囦欢澶�
+ this.CreateDirectory(targetDirectory, false);
+ }
+
+ var listFile = this.GetFileFromDirectory(fullDirectory);
+ foreach (var file in listFile)
+ {
+ string oldFile = System.IO.Path.Combine(fullDirectory, file);
+ string newFile = System.IO.Path.Combine(targetDirectory, file);
+ //澶嶅埗鏂囦欢
+ this.CopyFile(oldFile, newFile);
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鏂囦欢鎿嶄綔鍑芥暟_______________________
+
+ /// <summary>
+ /// 鍒犻櫎鏂囦欢
+ /// </summary>
+ /// <param name="fullName">鏂囦欢鍏ㄥ悕</param>
+ /// <returns></returns>
+ public bool DeleteFile(string fullName)
+ {
+ if (System.IO.File.Exists(fullName) == true)
+ {
+ try
+ {
+ System.IO.File.Delete(fullName);
+ return true;
+ }
+ catch { return false; }
+ }
+ return true;
+ }
+
+ /// <summary>
+ /// 绉诲姩鏂囦欢
+ /// </summary>
+ /// <param name="oldFile">鍘熸枃浠�</param>
+ /// <param name="newFile">鐩爣鏂囦欢</param>
+ public void MoveFile(string oldFile, string newFile)
+ {
+ if (System.IO.File.Exists(oldFile) == true)
+ {
+ //濡傛灉鐩爣鏂囦欢瀛樺湪,鍒欏垏鎹负澶嶅埗鏂囦欢
+ if (System.IO.File.Exists(newFile) == true)
+ {
+ this.CopyFile(oldFile, newFile);
+ return;
+ }
+ try
+ {
+ System.IO.File.Move(oldFile, newFile);
+ }
+ catch { }
+ }
+ }
+
+ /// <summary>
+ /// 绉诲姩鏂囦欢
+ /// </summary>
+ /// <param name="oldFile">鍘熸枃浠�</param>
+ /// <param name="newFile">鐩爣鏂囦欢</param>
+ public void CopyFile(string oldFile, string newFile)
+ {
+ if (System.IO.File.Exists(oldFile) == true)
+ {
+ try
+ {
+ System.IO.File.Copy(oldFile, newFile, true);
+ }
+ catch { }
+ }
+ }
+
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs
new file mode 100755
index 0000000..dd40fac
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs
@@ -0,0 +1,323 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鐣岄潰鐩稿叧鐨勯�昏緫
+ /// </summary>
+ public class HdlFormLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鐣岄潰鐩稿叧鐨勯�昏緫
+ /// </summary>
+ private static HdlFormLogic m_Current;
+ /// <summary>
+ /// 鐣岄潰鐩稿叧鐨勯�昏緫
+ /// </summary>
+ public static HdlFormLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlFormLogic();
+ }
+ return m_Current;
+ }
+ }
+
+ /// <summary>
+ /// <para>褰撳墠宸茬粡鎵撳紑浜嗙殑鐢婚潰(缁ф壙浜嶶serCenterCommonForm鎵嶈兘浣跨敤)銆�</para>
+ /// <para>鐢婚潰鎵撳紑鏃讹紝浼氳嚜鍔ㄨ拷鍑伙紝鐢婚潰鍏抽棴鏃讹紝鑷姩绉婚櫎銆�</para>
+ /// <para>鏂版坊鍔犵殑鐣岄潰浼氭斁鍦ㄥ墠闈�</para>
+ /// </summary>
+ private List<CommonFormBase> ListActionForm = new List<CommonFormBase>();
+ /// <summary>
+ /// 褰撳墠姝e湪鎿嶄綔鐨勭敾闈D(娌′汉浼氭噦瀹冧负浣曡瀛樺湪)
+ /// </summary>
+ public string NowActionFormID
+ {
+ get
+ {
+ return ListActionForm.Count > 0 ? ListActionForm[0].FormID : string.Empty;
+ }
+ }
+ /// <summary>
+ /// 鏄剧ず鐩戣鍐呭瓨鐨勬帶浠�
+ /// </summary>
+ private NormalViewControl btnMemory = null;
+
+ #endregion
+
+ #region 鈻� 娣诲姞鐣岄潰鐩稿叧_______________________
+
+ /// <summary>
+ /// 妫�娴嬭兘鍚︽坊鍔犵敾闈�
+ /// </summary>
+ /// <returns>true:鍙互杩藉姞 false:涓嶅彲杩藉姞</returns>
+ /// <param name="form">Form</param>
+ public bool CheckCanAddForm(CommonFormBase form)
+ {
+ //鑾峰彇鐢婚潰鑻辨枃鍚嶅瓧
+ string formId = GetFormID(form);
+
+ //鏆傛椂杩欐牱寮勭湅鐪嬶紝濡傛灉閲嶅锛屽垯鍏抽棴鎺夊師鏉ョ殑鐣岄潰
+ var formTemp = this.GetFormByName(formId);
+ formTemp?.CloseForm();
+
+ return true;
+ }
+
+ /// <summary>
+ /// 鎶婃墦寮�鐨勭敾闈㈡坊鍔犲埌鍐呭瓨涓�
+ /// </summary>
+ /// <param name="form">Form.</param>
+ public void AddActionForm(CommonFormBase form)
+ {
+ //鑾峰彇鐢婚潰鑻辨枃鍚嶅瓧
+ string formId = GetFormID(form);
+
+ //鍐呭瓨娣诲姞
+ form.FormID = formId;
+ this.ListActionForm.Insert(0, form);
+ }
+
+ /// <summary>
+ /// 浠庡垪琛ㄤ腑绉婚櫎鐢婚潰
+ /// </summary>
+ /// <param name="i_closeForm">鍏抽棴鐨勭晫闈�</param>
+ public void RemoveActionForm(CommonFormBase i_closeForm)
+ {
+ //鑾峰彇鐢婚潰ID
+ string formId = GetFormID(i_closeForm);
+ var removeForm = this.GetFormByName(formId);
+ if (removeForm == null)
+ {
+ return;
+ }
+ //绉婚櫎鐢婚潰
+ this.ListActionForm.Remove(removeForm);
+
+ var actionForm = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1);
+ if (actionForm == null)
+ {
+ return;
+ }
+ //鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊�
+ if ((i_closeForm is EditorCommonForm) && (actionForm is EditorCommonForm))
+ {
+ //鎺ヤ笅鏉ユ縺娲荤殑鐣岄潰
+ try
+ {
+ var Myform = actionForm as EditorCommonForm;
+ //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
+ Myform.FormActionAgainEvent();
+ }
+ catch { }
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鐢婚潰ID
+ /// </summary>
+ /// <returns>The form name.</returns>
+ /// <param name="form">Form.</param>
+ private string GetFormID(CommonFormBase form)
+ {
+ if (form.FormID != string.Empty)
+ {
+ return form.FormID;
+ }
+ //灏嗗懡鍚嶇┖闂村幓鎺�
+ string[] Arry = form.ToString().Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries);
+ string formName = Arry[Arry.Length - 1].Trim();
+ return formName;
+ }
+
+ #endregion
+
+ #region 鈻� 璁惧鐘舵�佹洿鏂版帹閫乢__________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佹洿鏂版帹閫�
+ /// </summary>
+ /// <param name="i_LocalDevice">鏈湴璁惧瀵硅薄</param>
+ public void DeviceStatuPush(Entity.Function i_LocalDevice)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ for (int i = 0; i < this.ListActionForm.Count; i++)
+ {
+ this.ListActionForm[i]?.DeviceStatuPush(i_LocalDevice);
+ }
+ }, ShowErrorMode.NO);
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鑾峰彇褰撳墠姝e湪婵�娲荤殑鐣岄潰
+ /// </summary>
+ /// <returns></returns>
+ public CommonFormBase GetNowActionForm()
+ {
+ return MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1) as CommonFormBase;
+ }
+
+ /// <summary>
+ /// 鏍规嵁鍚嶅瓧鑾峰彇鎸囧畾宸茬粡鎵撳紑浜嗙殑鐣岄潰
+ /// </summary>
+ /// <param name="i_formName"></param>
+ /// <returns></returns>
+ public CommonFormBase GetFormByName(string i_formName)
+ {
+ for (int i = 0; i < this.ListActionForm.Count; i++)
+ {
+ if (this.ListActionForm[i].FormID == i_formName)
+ {
+ return this.ListActionForm[i];
+ }
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// 鍏抽棴鎸囧畾鐨勭敾闈�
+ /// </summary>
+ /// <param name="formName">鎸囧畾瑕佸叧闂殑鐢婚潰鑻辨枃鍚嶅瓧</param>
+ public void CloseFormByFormName(string formName)
+ {
+ var form = this.GetFormByName(formName);
+ //鍏抽棴鎸囧畾鐢婚潰
+ form?.CloseForm();
+ }
+
+ /// <summary>
+ /// 鍒ゆ柇鎸囧畾鐨勭晫闈㈡槸鍚︽墦寮�
+ /// </summary>
+ /// <param name="formId"></param>
+ /// <returns></returns>
+ public bool IsFormOpen(string formId)
+ {
+ var form = this.GetNowActionForm();
+
+ return form != null ? form.FormID == formId : false;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍏ㄩ儴宸茬粡鎵撳紑浜嗙殑鐣岄潰
+ /// </summary>
+ /// <returns></returns>
+ public List<CommonFormBase> GetAllOpenForm()
+ {
+ var list = new List<CommonFormBase>();
+ try
+ {
+ for (int i = 0; i < this.ListActionForm.Count; i++)
+ {
+ list.Add(this.ListActionForm[i]);
+ }
+ return list;
+ }
+ catch { return list; }
+ }
+
+#if __Android__
+ /// <summary>
+ /// 鏄剧ず鐩戝惉鍐呭瓨鐨勭晫闈�
+ /// </summary>
+ public void ShowMemoryListenView(int div)
+ {
+ this.btnMemory = new NormalViewControl(Application.MainPage.Width, HdlControlResourse.TopMenuFrameHeight, false);
+ btnMemory.TextAlignment = TextAlignment.Center;
+ btnMemory.BackgroundColor = 0xffffb9b9;
+ btnMemory.TextSize = 10;
+ btnMemory.IsMoreLines = true;
+ Application.MainPage.AddChidren(btnMemory);
+ if (div == 2)
+ {
+ btnMemory.Y = Application.MainPage.Height - this.btnMemory.Height;
+ btnMemory.BringToFront();
+ btnMemory.Animate = Animate.DownToUp;
+ }
+ else
+ {
+ btnMemory.BringToFront();
+ btnMemory.Animate = Animate.UpToDown;
+ }
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ int count = 0;
+ while (this.btnMemory != null)
+ {
+ System.Threading.Thread.Sleep(1000);
+ count++;
+ if (count < 2) { continue; }
+ count = 0;
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ var obj = Application.Activity.GetSystemService(Android.Content.Context.ActivityService);
+ var activityManager = (Android.App.ActivityManager)obj;
+ var memoryInfos = activityManager.GetProcessMemoryInfo(new int[] { Android.OS.Process.MyPid() });
+
+ if (memoryInfos.Length > 0)
+ {
+ string text = "PrivateDirty:" + (memoryInfos[0].TotalPrivateDirty) + "KB";
+ text += " Pss:" + (memoryInfos[0].TotalPss) + "KB\r\n";
+ text += "PrivateDirty:" + (memoryInfos[0].TotalPrivateDirty / 1024) + "MB";
+ text += " Pss:" + (memoryInfos[0].TotalPss / 1024) + "MB";
+ if (btnMemory != null)
+ {
+ btnMemory.Text = text;
+ }
+ }
+ else
+ {
+ if (btnMemory != null)
+ {
+ btnMemory.Text = "鑾峰彇鍐呭瓨寮傚父";
+ }
+ }
+
+ obj = null;
+ activityManager = null;
+ memoryInfos = null;
+ });
+ }
+ });
+ }
+
+ /// <summary>
+ /// 鍏抽棴鐩戝惉鍐呭瓨鐨勭晫闈�
+ /// </summary>
+ public void CloseMemoryListenView()
+ {
+ if (this.btnMemory != null)
+ {
+ this.btnMemory.RemoveFromParent();
+ this.btnMemory = null;
+ }
+ }
+
+ /// <summary>
+ /// 鐩戞祴鏄惁鏄湪鐩戝惉
+ /// </summary>
+ /// <returns></returns>
+ public bool CheckIsListeningMemory()
+ {
+ return this.btnMemory != null;
+ }
+#endif
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
new file mode 100755
index 0000000..4931fd3
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
@@ -0,0 +1,96 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 娑堟伅鐨勯�昏緫
+ /// </summary>
+ public class HdlMessageLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 娑堟伅鐨勯�昏緫
+ /// </summary>
+ private static HdlMessageLogic m_Current = null;
+ /// <summary>
+ /// 娑堟伅鐨勯�昏緫
+ /// </summary>
+ public static HdlMessageLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlMessageLogic();;
+ }
+ return m_Current;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸殑鏂规硶_________________________
+
+ /// <summary>
+ /// 鏄剧ず淇℃伅妗�
+ /// </summary>
+ /// <param name="msgType">淇℃伅绫诲瀷</param>
+ /// <param name="msg">淇℃伅</param>
+ /// <param name="action">鍗曞嚮纭鍚庢墽琛岀殑鍥炶皟鍑芥暟</param>
+ /// <param name="buttonText">鎸夐挳鐨勬枃鏈�</param>
+ /// <param name="i_waitTime">绛夊緟鏃堕棿,鍗曚綅涓虹,璁剧疆纭鎸夐挳鍦ㄥ闀挎椂闂村悗鎵嶈兘澶熺偣鍑�</param>
+ public void ShowMassage(ShowMsgType msgType, string msg, Action action = null, string buttonText = null, int i_waitTime = -1)
+ {
+ //绌哄璞℃椂锛屼笉鏄剧ず
+ if (string.IsNullOrEmpty(msg))
+ {
+ return;
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ var alert = new ShowMsgControl(msgType, msg, buttonText, null, i_waitTime);
+ if (action != null)
+ {
+ alert.ConfirmClickEvent += () =>
+ {
+ try
+ {
+ //鍥炶皟鍑芥暟
+ action?.Invoke();
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ action = null;
+ };
+ }
+ alert.Show();
+ });
+ }
+
+ /// <summary>
+ /// 鏄剧ずApp绋嬪簭鍑虹幇浜嗚嚧鍛介敊璇�
+ /// </summary>
+ /// <param name="ex"></param>
+ public void ShowAppProgramIsError(Exception ex)
+ {
+ this.ShowMassage(ShowMsgType.Error, "System Error!", () =>
+ {
+ string msg = ex.Message + "\r\n";
+ msg += ex.StackTrace;
+
+ var form = new HideOptionFileContentForm();
+ form.AddForm(string.Empty);
+ form.SetTextContent(msg);
+
+ }, "View Log");
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlThreadLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlThreadLogic.cs
new file mode 100755
index 0000000..c410fe0
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlThreadLogic.cs
@@ -0,0 +1,117 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 绾跨▼閫昏緫(鍒涘缓杩欎釜涓滆タ,鏄负浜哃og鍑哄姏)
+ /// </summary>
+ public class HdlThreadLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 绾跨▼閫昏緫(鍒涘缓杩欎釜涓滆タ,鏄负浜哃og鍑哄姏)
+ /// </summary>
+ private static HdlThreadLogic m_Current = null;
+ /// <summary>
+ /// 绾跨▼閫昏緫(鍒涘缓杩欎釜涓滆タ,鏄负浜哃og鍑哄姏)
+ /// </summary>
+ public static HdlThreadLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlThreadLogic();
+ }
+ return m_Current;
+ }
+ }
+ #endregion
+
+ #region 鈻� 绾跨▼鎵ц___________________________
+
+ /// <summary>
+ /// 瀛愮嚎绋嬫墽琛�(鍒涘缓杩欎釜涓滆タ,鏄负浜哃og鍑哄姏)
+ /// </summary>
+ public void RunThread(Action action, ShowErrorMode mode = ShowErrorMode.YES)
+ {
+ new System.Threading.Thread(() =>
+ {
+ try
+ {
+ action.Invoke();
+ action = null;
+ }
+ catch (Exception ex)
+ {
+ if (mode == ShowErrorMode.YES)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ });
+ }
+ }
+ })
+ { IsBackground = true }.Start();
+ }
+
+ /// <summary>
+ /// 鎵ц杩愯瀛愮嚎绋嬮噷闈㈢殑涓荤嚎绋�(鍒涘缓杩欎釜涓滆タ,鏄负浜哃og鍑哄姏)
+ /// </summary>
+ public void RunMainInThread(Action action, ShowErrorMode mode = ShowErrorMode.YES)
+ {
+ new System.Threading.Thread(() =>
+ {
+ Application.RunOnMainThread(() =>
+ {
+ try
+ {
+ action.Invoke();
+ action = null;
+ }
+ catch (Exception ex)
+ {
+ if (mode == ShowErrorMode.YES)
+ {
+ //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ }
+ });
+
+ })
+ { IsBackground = true }.Start();
+ }
+
+ /// <summary>
+ /// 鎵ц杩愯浜庝富绾跨▼(鍒涘缓杩欎釜涓滆タ,鏄负浜哃og鍑哄姏)
+ /// </summary>
+ public void RunMain(Action action, ShowErrorMode mode = ShowErrorMode.YES)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ try
+ {
+ action.Invoke();
+ action = null;
+ }
+ catch (Exception ex)
+ {
+ if (mode == ShowErrorMode.YES)
+ {
+ //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+ HdlMessageLogic.Current.ShowAppProgramIsError(ex);
+ }
+ }
+ });
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs b/HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs
new file mode 100755
index 0000000..0efd68c
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Resourse/HdlControlResourse.cs
@@ -0,0 +1,49 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// 鎺т欢绫荤殑Resourse
+ /// </summary>
+ public class HdlControlResourse
+ {
+ /// <summary>
+ /// 鐢婚潰TopFrameLayout鏈�涓婇潰鑿滃崟鐨勯珮搴�(楂樺害锛�20)
+ /// </summary>
+ public static int TopMenuFrameHeight = Application.GetRealHeight(20);
+ /// <summary>
+ /// 鐢婚潰TopFrameLayout鐨勯珮搴�(楂樺害锛�44)
+ /// </summary>
+ public static int TopFrameHeight = Application.GetRealHeight(44);
+ /// <summary>
+ /// 鐢婚潰BodyFrameLayout鐨勯珮搴�(涓嶈兘鐩存帴鎸囧畾鏁板��,涓嶇劧鏈夊彲鑳戒細鍑虹幇璇樊,瀵艰嚧鏃犳硶閾烘弧)
+ /// </summary>
+ public static int BodyFrameHeight
+ {
+ get { return MainPage.BasePageView.Height - TopMenuFrameHeight - TopFrameHeight; }
+ }
+ /// <summary>
+ /// X杞村乏杈圭殑鍋忕Щ閲�(16)
+ /// </summary>
+ public static int XXLeft = Application.GetRealWidth(16);
+ /// <summary>
+ /// VerticalScrolViewLayout鎺т欢涓�琛岀殑楂樺害(鍙拡瀵规爣鍑嗗瀷鍒楄〃寮忕敾闈�)
+ /// </summary>
+ public static int ListViewRowHeight = Application.GetRealHeight(44);
+ /// <summary>
+ /// 涓�鑸樉绀烘枃瀛楃殑鎺т欢鐨勯珮搴�
+ /// </summary>
+ public static int NormalControlHeight = Application.GetRealHeight(21);
+ /// <summary>
+ /// 搴曢儴鎸夐挳涓嶸erticalScrolViewLayout鎺т欢搴曢儴鐨勯棿璺�
+ /// </summary>
+ public static int BottomButtonAndListViewSpace = Application.GetRealHeight(10);
+ /// <summary>
+ /// 搴曠嚎楂樺害(鐩存帴鎸囧畾涓嶉渶瑕佸啀娆¤绠楃殑鐪熷疄鍊�)
+ /// </summary>
+ public static int BottomLineHeight = 1;
+ }
+}
diff --git a/HDL_ON/UI/UI2/.DS_Store b/HDL_ON/UI/UI2/.DS_Store
new file mode 100644
index 0000000..032f4a0
--- /dev/null
+++ b/HDL_ON/UI/UI2/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
old mode 100644
new mode 100755
index 6473187..e3020d9
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -159,11 +159,18 @@
case SPK.ElectricSocket:
btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png";
break;
- case SPK.ElectricFan:
+ case SPK.ElectricFan:
+ case SPK.ElectricTuyaFan:
btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png";
break;
case SPK.ElectricTV:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
+ btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
+ break;
+ case SPK.ElectricTuyaAirCleaner:
+ btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/AirCleanerThiinIcon.png";
+ break;
+ case SPK.ElectricTuyaWeepRobot:
+ btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobotThinIcon.png";
break;
}
btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
diff --git a/HDL_ON/UI/UI2/FuntionControlView/.DS_Store b/HDL_ON/UI/UI2/FuntionControlView/.DS_Store
new file mode 100644
index 0000000..04f2c28
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
new file mode 100755
index 0000000..ae89578
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
@@ -0,0 +1,880 @@
+锘縰sing Shared;
+using HDL_ON.Stan;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HDL_ON.UI.CSS;
+using HDL_ON.Entity;
+using HDL_ON.DriverLayer;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娑傞甫绌烘皵鍑�鍖栧櫒鐨勬帶鍒剁晫闈�
+ /// </summary>
+ public class TuyaAirCleanerPage : DeviceFunctionCardCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鍥剧墖鎺т欢
+ /// </summary>
+ private PicViewControl btnPictrue = null;
+ /// <summary>
+ /// 婊よ姱浣跨敤鐜囨帶浠�
+ /// </summary>
+ private NormalViewControl btnUsePersent = null;
+ /// <summary>
+ /// 娓╁害
+ /// </summary>
+ private NormalViewControl btnTemperature = null;
+ /// <summary>
+ /// 婀垮害
+ /// </summary>
+ private NormalViewControl btnHumidity = null;
+ /// <summary>
+ /// PM2.5
+ /// </summary>
+ private NormalViewControl btnPm25 = null;
+ /// <summary>
+ /// 寮�鍏虫帶浠�
+ /// </summary>
+ private IconViewControl btnSwitch = null;
+ /// <summary>
+ /// 妯″紡鎺т欢
+ /// </summary>
+ private IconViewControl btnMode = null;
+ /// <summary>
+ /// 妯″紡鐨勬樉绀烘枃鏈帶浠�
+ /// </summary>
+ private NormalViewControl btnModeView = null;
+ /// <summary>
+ /// 椋庨�熸帶浠�
+ /// </summary>
+ private IconViewControl btnFan = null;
+ /// <summary>
+ /// 椋庨�熺殑鏄剧ず鏂囨湰鎺т欢
+ /// </summary>
+ private NormalViewControl btnFanView = null;
+ /// <summary>
+ /// 瀹氭椂鎺т欢
+ /// </summary>
+ private IconViewControl btnTime = null;
+ /// <summary>
+ /// 瀹氭椂鐨勬樉绀烘枃鏈帶浠�
+ /// </summary>
+ private NormalViewControl btnTimeView = null;
+ /// <summary>
+ /// 绔ラ攣寮�鍏虫帶浠�
+ /// </summary>
+ private MostRightIconControl btnLockSwitch = null;
+ /// <summary>
+ /// 璐熺瀛愬紑鍏虫帶浠�
+ /// </summary>
+ private MostRightIconControl btnAnionSwitch = null;
+ /// <summary>
+ /// 婊よ姱澶嶄綅寮�鍏虫帶浠�
+ /// </summary>
+ private MostRightIconControl btnResetSwitch = null;
+ /// <summary>
+ /// 绌烘皵璐ㄩ噺鏁版嵁
+ /// </summary>
+ private AirCleanerData airCleanerData = new AirCleanerData();
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+ /// </summary>
+ public override void InitFrameWhiteContent()
+ {
+ base.SetTitleText(Language.StringByID(StringId.AirCleaner));
+
+ //娣诲姞绗簩绱㈠紩椤�
+ this.AddSecondPage();
+ //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ this.InitFrameWhiteContent1();
+ //鍒濆鍖栫浜屼釜绱㈠紩椤电殑鍐呭
+ this.InitFrameWhiteContent2();
+
+ //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ this.RefreshNowDeviceStatuMemory(this.device);
+ //鍒锋柊鐣岄潰鐘舵��
+ this.RefreshFormStatu();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ /// </summary>
+ private void InitFrameWhiteContent1()
+ {
+ //鍥剧墖鎺т欢
+ this.btnPictrue = new PicViewControl(94, 130);
+ btnPictrue.Y = Application.GetRealHeight(90);
+ btnPictrue.Gravity = Gravity.CenterHorizontal;
+ btnPictrue.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/AirCleanerOff.png";
+ btnPictrue.SelectedImagePath = "FunctionIcon/Electrical/Fan/AirCleanerOn.png";
+ FrameWhiteCentet1.AddChidren(btnPictrue);
+ btnPictrue.ButtonClickEvent += (sender, e) =>
+ {
+ //鍙戦�佸紑鍏冲懡浠�
+ this.SendSwitchComand();
+ };
+
+ //婊よ姱浣跨敤
+ this.btnUsePersent = new NormalViewControl(FrameWhiteCentet1.Width, Application.GetRealHeight(20), false);
+ btnUsePersent.TextAlignment = TextAlignment.Center;
+ btnUsePersent.Y = btnPictrue.Bottom + Application.GetRealHeight(16);
+ btnUsePersent.TextColor = CSS.CSS_Color.MainColor;
+ FrameWhiteCentet1.AddChidren(btnUsePersent);
+ //娓╁害
+ this.btnTemperature = new NormalViewControl(106, 28, true);
+ btnTemperature.Y = btnUsePersent.Bottom + Application.GetRealHeight(23);
+ btnTemperature.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
+ btnTemperature.TextAlignment = TextAlignment.Center;
+ btnTemperature.Text = "22鈩�";
+ FrameWhiteCentet1.AddChidren(btnTemperature);
+ //瀹ゅ唴娓╁害
+ var btnTemperatureView = new NormalViewControl(btnTemperature.Width, Application.GetRealHeight(14), false);
+ btnTemperatureView.Y = btnTemperature.Bottom + Application.GetRealHeight(4);
+ btnTemperatureView.TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel;
+ btnTemperatureView.TextAlignment = TextAlignment.Center;
+ btnTemperatureView.TextID = StringId.IndoorTemp;
+ FrameWhiteCentet1.AddChidren(btnTemperatureView);
+ //涓�鏉$珫绾�
+ var btnLine1 = new NormalViewControl(1, Application.GetRealHeight(19), false);
+ btnLine1.X = btnTemperature.Right;
+ btnLine1.Y = btnTemperature.Y + (btnTemperature.Height - Application.GetRealHeight(19)) / 2;
+ btnLine1.BackgroundColor = CSS.CSS_Color.TextualColor;
+ FrameWhiteCentet1.AddChidren(btnLine1);
+
+ //PM2.5
+ this.btnPm25 = new NormalViewControl(106, 28, true);
+ btnPm25.Y = btnTemperature.Y;
+ btnPm25.X = btnLine1.Right;
+ btnPm25.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
+ btnPm25.TextAlignment = TextAlignment.Center;
+ btnPm25.Text = "0";
+ FrameWhiteCentet1.AddChidren(btnPm25);
+ //PM2.5
+ var btnPm25View = new NormalViewControl(btnPm25.Width, Application.GetRealHeight(14), false);
+ btnPm25View.X = btnPm25.X;
+ btnPm25View.Y = btnTemperatureView.Y;
+ btnPm25View.TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel;
+ btnPm25View.TextAlignment = TextAlignment.Center;
+ btnPm25View.Text = "PM2.5";
+ FrameWhiteCentet1.AddChidren(btnPm25View);
+
+ //涓�鏉$珫绾�
+ var btnLine2 = new NormalViewControl(1, btnLine1.Height, false);
+ btnLine2.X = btnPm25.Right;
+ btnLine2.Y = btnLine1.Y;
+ btnLine2.BackgroundColor = CSS_Color.TextualColor;
+ FrameWhiteCentet1.AddChidren(btnLine2);
+
+ //婀垮害
+ this.btnHumidity = new NormalViewControl(114, 28, true);
+ btnHumidity.Y = btnTemperature.Y;
+ btnHumidity.X = btnLine2.Right;
+ btnHumidity.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
+ btnHumidity.TextAlignment = TextAlignment.Center;
+ btnHumidity.Text = "50%";
+ FrameWhiteCentet1.AddChidren(btnHumidity);
+ //瀹ゅ唴婀垮害
+ var btnHumidityView = new NormalViewControl(btnHumidity.Width, Application.GetRealHeight(14), false);
+ btnHumidityView.X = btnHumidity.X;
+ btnHumidityView.Y = btnTemperatureView.Y;
+ btnHumidityView.TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel;
+ btnHumidityView.TextAlignment = TextAlignment.Center;
+ btnHumidityView.TextID = StringId.IndoorHumidity;
+ FrameWhiteCentet1.AddChidren(btnHumidityView);
+
+ //2021.01.26 鐩墠涓嶇敤娓╁害鍜屾箍搴�
+ btnTemperature.RemoveFromParent();
+ btnTemperatureView.RemoveFromParent();
+ btnLine1.RemoveFromParent();
+ btnLine2.RemoveFromParent();
+ btnHumidity.RemoveFromParent();
+ btnHumidityView.RemoveFromParent();
+
+ //椋庨�熷浘鏍�
+ this.btnFan = new IconViewControl(38);
+ btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/Fan.png";
+ btnFan.X = Application.GetRealWidth(40);
+ btnFan.Y = btnPm25View.Bottom + Application.GetRealHeight(40);
+ FrameWhiteCentet1.AddChidren(btnFan);
+ btnFan.ButtonClickEvent += (sender, e) =>
+ {
+ //鏄剧ず椋庨�熺晫闈�
+ this.ShowFanSpeedView();
+ };
+ this.btnFanView = new NormalViewControl(80, 18, true);
+ btnFanView.Y = btnFan.Bottom + Application.GetRealHeight(10);
+ btnFanView.X = btnFan.X - (Application.GetRealWidth(80) - btnFan.Width) / 2;
+ btnFanView.TextAlignment = TextAlignment.Center;
+ btnFanView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnFanView.Text = Language.StringByID(StringId.FanSpeed);
+ FrameWhiteCentet1.AddChidren(btnFanView);
+
+ //瀹氭椂鍥炬爣
+ this.btnTime = new IconViewControl(38);
+ btnTime.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/Time.png";
+ btnTime.Y = btnFan.Y;
+ btnTime.Gravity = Gravity.CenterHorizontal;
+ FrameWhiteCentet1.AddChidren(btnTime);
+ btnTime.ButtonClickEvent += (sender, e) =>
+ {
+ //鏄剧ず瀹氭椂鐣岄潰
+ this.ShowTimingSelectView();
+ };
+ this.btnTimeView = new NormalViewControl(80, 18, true);
+ btnTimeView.Y = btnFanView.Y;
+ btnTimeView.X = btnTime.X - (Application.GetRealWidth(80) - btnTime.Width) / 2;
+ btnTimeView.TextAlignment = TextAlignment.Center;
+ btnTimeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ FrameWhiteCentet1.AddChidren(btnTimeView);
+
+ //妯″紡鍥炬爣
+ this.btnMode = new IconViewControl(38);
+ btnMode.Y = btnFan.Y;
+ btnMode.X = btnTime.Right + Application.GetRealWidth(66);
+ FrameWhiteCentet1.AddChidren(btnMode);
+ btnMode.ButtonClickEvent += (sender, e) =>
+ {
+ //鏄剧ず妯″紡鐣岄潰
+ this.ShowModeSelectView();
+ };
+ this.btnModeView = new NormalViewControl(80, 18, true);
+ btnModeView.Y = btnFanView.Y;
+ btnModeView.X = btnMode.X - (Application.GetRealWidth(80) - btnMode.Width) / 2;
+ btnModeView.TextAlignment = TextAlignment.Center;
+ btnModeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ FrameWhiteCentet1.AddChidren(btnModeView);
+
+ //寮�鍏冲浘鏍�
+ this.btnSwitch = new IconViewControl(40);
+ btnSwitch.Gravity = Gravity.CenterHorizontal;
+ btnSwitch.Y = btnMode.Bottom + Application.GetRealHeight(61);
+ btnSwitch.UnSelectedImagePath = "Public/PowerClose.png";
+ btnSwitch.SelectedImagePath = "Public/PowerOpen.png";
+ FrameWhiteCentet1.AddChidren(btnSwitch);
+ btnSwitch.ButtonClickEvent += (sender, e) =>
+ {
+ //鍙戦�佸紑鍏冲懡浠�
+ this.SendSwitchComand();
+ };
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫浜屼釜绱㈠紩椤电殑鍐呭
+ /// </summary>
+ private void InitFrameWhiteContent2()
+ {
+ //寮�鍏�
+ var btnTitleName = new NormalViewControl(270, 37, true);
+ btnTitleName.X = Application.GetRealWidth(16);
+ btnTitleName.Y = Application.GetRealHeight(18);
+ btnTitleName.TextColor = CSS_Color.FirstLevelTitleColor;
+ btnTitleName.TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel;
+ btnTitleName.TextID = StringId.OnOff;
+ FrameWhiteCentet2.AddChidren(btnTitleName);
+
+ //绔ラ攣
+ var rowLock = new FrameRowControl();
+ rowLock.Height = Application.GetRealHeight(50);
+ rowLock.Width = FrameWhiteCentet2.Width;
+ rowLock.Y = Application.GetRealHeight(75);
+ FrameWhiteCentet2.AddChidren(rowLock);
+ rowLock.AddLeftCaption(Language.StringByID(StringId.V_chip), 200);
+ rowLock.AddBottomLine();
+ this.btnLockSwitch = rowLock.AddMostRightSwitchIcon();
+ btnLockSwitch.IsSelected = this.airCleanerData.Lock;
+ btnLockSwitch.ButtonClickEvent += (sender, e) =>
+ {
+ if (this.btnSwitch.IsSelected == false)
+ {
+ //杩樻病鏈夋墦寮�寮�鍏�
+ return;
+ }
+ //鍙戦�佷娇鑳藉懡浠�
+ this.SendEnableComand(btnLockSwitch, "lock", btnLockSwitch.IsSelected == true ? "false" : "true");
+ };
+
+ //璐熺瀛�
+ var rowAnion = new FrameRowControl();
+ rowAnion.Height = Application.GetRealHeight(50);
+ rowAnion.Width = FrameWhiteCentet2.Width;
+ rowAnion.Y = rowLock.Bottom;
+ FrameWhiteCentet2.AddChidren(rowAnion);
+ rowAnion.AddLeftCaption(Language.StringByID(StringId.Anion), 200);
+ rowAnion.AddBottomLine();
+ this.btnAnionSwitch = rowAnion.AddMostRightSwitchIcon();
+ btnAnionSwitch.IsSelected = this.airCleanerData.Anion;
+ btnAnionSwitch.ButtonClickEvent += (sender, e) =>
+ {
+ if (this.btnSwitch.IsSelected == false)
+ {
+ //杩樻病鏈夋墦寮�寮�鍏�
+ return;
+ }
+ //鍙戦�佷娇鑳藉懡浠�
+ this.SendEnableComand(btnAnionSwitch, "anion", btnAnionSwitch.IsSelected == true ? "false" : "true");
+ };
+
+ //婊よ姱澶嶄綅
+ var rowReset = new FrameRowControl();
+ rowReset.Height = Application.GetRealHeight(50);
+ rowReset.Width = FrameWhiteCentet2.Width;
+ rowReset.Y = rowAnion.Bottom;
+ FrameWhiteCentet2.AddChidren(rowReset);
+ rowReset.AddLeftCaption(Language.StringByID(StringId.FilterElementReset), 200);
+ rowReset.AddBottomLine();
+ this.btnResetSwitch = rowReset.AddMostRightSwitchIcon();
+ btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
+ btnResetSwitch.ButtonClickEvent += (sender, e) =>
+ {
+ if (this.btnSwitch.IsSelected == false)
+ {
+ //杩樻病鏈夋墦寮�寮�鍏�
+ return;
+ }
+ //璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
+ string msg = Language.StringByID(StringId.FilterElementResetMsg).Replace("{0}", "\r\n");
+ this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+ {
+ //鍙戦�佷娇鑳藉懡浠�
+ this.SendEnableComand(btnResetSwitch, "filter_reset", btnResetSwitch.IsSelected == true ? "false" : "true");
+ });
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず椋庨�熺晫闈______________________
+
+ /// <summary>
+ /// 鏄剧ず椋庨�熺晫闈�
+ /// </summary>
+ private void ShowFanSpeedView()
+ {
+ //鏁翠釜鐏拌壊鐣岄潰
+ var frameBack = new Dialog();
+
+ var dialogBody = new NormalFrameLayout();
+ frameBack.AddChidren(dialogBody);
+ dialogBody.ButtonClickEvent = (sender, e) =>
+ {
+ frameBack.Close();
+ };
+ frameBack.Show();
+
+ //鑿滃崟鎺т欢(閫夋嫨椋庨��)
+ var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.WindSpeedSelection));
+ menuContr.X = Application.GetRealWidth(5);
+ menuContr.Y = Application.GetRealHeight(240);
+ menuContr.Width = Application.GetRealWidth(160);
+ menuContr.Height = Application.GetRealHeight(200);
+ dialogBody.AddChidren(menuContr);
+
+ //浣庢。
+ var iconPath = this.airCleanerData.Gear == "1" ? "FunctionIcon/Electrical/Fan/LowGearSelect.png" : "FunctionIcon/Electrical/Fan/LowGear.png";
+ menuContr.AddRowMenu(Language.StringByID(StringId.LowGear), iconPath, this.airCleanerData.Gear == "1", () =>
+ {
+ frameBack.Close();
+ //鍙戦�侀閫熷懡浠�
+ this.SendFanSpeedComand("1");
+ });
+
+ //涓。
+ iconPath = this.airCleanerData.Gear == "2" ? "FunctionIcon/Electrical/Fan/MidGearSelect.png" : "FunctionIcon/Electrical/Fan/MidGear.png";
+ menuContr.AddRowMenu(Language.StringByID(StringId.MidGear), iconPath, this.airCleanerData.Gear == "2", () =>
+ {
+ frameBack.Close();
+ //鍙戦�侀閫熷懡浠�
+ this.SendFanSpeedComand("2");
+ });
+
+ //楂樻。
+ iconPath = this.airCleanerData.Gear == "3" ? "FunctionIcon/Electrical/Fan/HeightGearSelect.png" : "FunctionIcon/Electrical/Fan/HeightGear.png";
+ menuContr.AddRowMenu(Language.StringByID(StringId.HeightGear), iconPath, this.airCleanerData.Gear == "3", () =>
+ {
+ frameBack.Close();
+ //鍙戦�侀閫熷懡浠�
+ this.SendFanSpeedComand("3");
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず瀹氭椂鐣岄潰_______________________
+
+ /// <summary>
+ /// 鏄剧ず瀹氭椂鐣岄潰
+ /// </summary>
+ private void ShowTimingSelectView()
+ {
+ var listText = new List<string>();
+ listText.Add(Language.StringByID(StringId.CancelTiming));
+ listText.Add("1" + Language.StringByID(StringId.Hour1));
+ listText.Add("2" + Language.StringByID(StringId.Hour1));
+ listText.Add("4" + Language.StringByID(StringId.Hour1));
+ listText.Add("8" + Language.StringByID(StringId.Hour1));
+
+ //榛樿閫夋嫨
+ int defultIndex = this.airCleanerData.Timing == string.Empty ? -1 : Convert.ToInt32(this.airCleanerData.Timing);
+ if (defultIndex == 0) { defultIndex = -1; }
+
+ var contr = new BottomItemSelectControl(5, Language.StringByID(StringId.TimingSetting));
+ contr.AddRowMenu(listText, new List<int> { defultIndex });
+ contr.FinishOnlyEvent += (div, selectIndex) =>
+ {
+ if (div == 1)
+ {
+ if (selectIndex == 0)
+ {
+ //鍙戦�佸畾鏃跺懡浠�
+ this.SendTimingComand("cancel");
+ }
+ else
+ {
+ //鍙戦�佸畾鏃跺懡浠�
+ this.SendTimingComand(selectIndex.ToString());
+ }
+
+ }
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず妯″紡鐣岄潰_______________________
+
+ /// <summary>
+ /// 鏄剧ず妯″紡鐣岄潰
+ /// </summary>
+ private void ShowModeSelectView()
+ {
+ //鏁翠釜鐏拌壊鐣岄潰
+ var frameBack = new Dialog();
+
+ var dialogBody = new NormalFrameLayout();
+ frameBack.AddChidren(dialogBody);
+ dialogBody.ButtonClickEvent = (sender, e) =>
+ {
+ frameBack.Close();
+ };
+ frameBack.Show();
+
+ //鑿滃崟鎺т欢
+ var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.ChooseMode));
+ menuContr.X = Application.GetRealWidth(210);
+ menuContr.Y = Application.GetRealHeight(197);
+ menuContr.Width = Application.GetRealWidth(160);
+ menuContr.Height = Application.GetRealHeight(243);
+ dialogBody.AddChidren(menuContr);
+
+ //鑷姩妯″紡
+ var iconPath = this.airCleanerData.Mode == "auto" ? "FunctionIcon/Electrical/Fan/AutoModeSelect.png" : "FunctionIcon/Electrical/Fan/AutoMode.png";
+ menuContr.AddRowMenu(Language.StringByID(StringId.AutoMode), iconPath, this.airCleanerData.Mode == "auto", () =>
+ {
+ frameBack.Close();
+ //鍙戦�佹ā寮忓懡浠�
+ this.SendModeComand("auto");
+ });
+
+ //鎵嬪姩妯″紡
+ iconPath = this.airCleanerData.Mode == "manual" ? "FunctionIcon/Electrical/Fan/HandModeSelect.png" : "FunctionIcon/Electrical/Fan/HandMode.png";
+ menuContr.AddRowMenu(Language.StringByID(StringId.HandMode), iconPath, this.airCleanerData.Mode == "manual", () =>
+ {
+ frameBack.Close();
+ //鍙戦�佹ā寮忓懡浠�
+ this.SendModeComand("manual");
+ });
+
+ //寮哄姴妯″紡
+ iconPath = this.airCleanerData.Mode == "strong" ? "FunctionIcon/Electrical/Fan/ComfortableModeSelect.png" : "FunctionIcon/Electrical/Fan/ComfortableMode.png";
+ menuContr.AddRowMenu(Language.StringByID(StringId.StrongMode), iconPath, this.airCleanerData.Mode == "strong", () =>
+ {
+ frameBack.Close();
+ //鍙戦�佹ā寮忓懡浠�
+ this.SendModeComand("strong");
+ });
+
+ //鐫$湢妯″紡
+ iconPath = this.airCleanerData.Mode == "sleep" ? "FunctionIcon/Electrical/Fan/SleepModeSelect.png" : "FunctionIcon/Electrical/Fan/SleepMode.png";
+ menuContr.AddRowMenu(Language.StringByID(StringId.SleepMode), iconPath, this.airCleanerData.Mode == "sleep", () =>
+ {
+ frameBack.Close();
+ //鍙戦�佹ā寮忓懡浠�
+ this.SendModeComand("sleep");
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佸弽棣�
+ /// </summary>
+ /// <param name="i_LocalDevice"></param>
+ public override void DeviceStatuPush(Function i_LocalDevice)
+ {
+ //涓嶆槸鍚屼竴涓笢瑗�
+ if (this.device.sid != i_LocalDevice.sid) { return; }
+
+ //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ this.RefreshNowDeviceStatuMemory(i_LocalDevice);
+ //鍒锋柊鐣岄潰鐘舵��
+ this.RefreshFormStatu();
+ }
+
+ #endregion
+
+ #region 鈻� 鍙戦�佸悇绉嶅懡浠______________________
+
+ /// <summary>
+ /// 鍙戦�佹ā寮忓懡浠�
+ /// </summary>
+ /// <param name="value">auto:鑷姩 sleep:鐫$湢 manual:鎵嬪姩 strong:寮虹儓</param>
+ private void SendModeComand(string value)
+ {
+ this.btnMode.CanClick = false;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ var dic = new Dictionary<string, string>();
+ dic.Add("mode", value);
+ Control.Ins.SendWriteCommand(this.device, dic, true);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.btnMode.CanClick = true;
+ });
+ });
+ }
+
+ /// <summary>
+ /// 鍙戦�佸畾鏃跺懡浠�
+ /// </summary>
+ /// <param name="value">canel:鍙栨秷 1:1灏忔椂 2:2灏忔椂 3:4灏忔椂 4:8灏忔椂</param>
+ private void SendTimingComand(string value)
+ {
+ this.btnTime.CanClick = false;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ var dic = new Dictionary<string, string>();
+ dic.Add("countdown", value);
+ Control.Ins.SendWriteCommand(this.device, dic, true);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.btnTime.CanClick = true;
+ });
+ });
+ }
+
+ /// <summary>
+ /// 鍙戦�侀閫熷懡浠�
+ /// </summary>
+ /// <param name="value">1:浣庢。 2:涓。 3:楂樻。</param>
+ private void SendFanSpeedComand(string value)
+ {
+ this.btnFan.CanClick = false;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ var dic = new Dictionary<string, string>();
+ dic.Add("speed", value);
+ Control.Ins.SendWriteCommand(this.device, dic, true);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.btnFan.CanClick = true;
+ });
+ });
+ }
+
+ /// <summary>
+ /// 鍙戦�佸紑鍏冲懡浠�
+ /// </summary>
+ private void SendSwitchComand()
+ {
+ this.btnPictrue.CanClick = false;
+ this.btnSwitch.CanClick = false;
+
+ //鍏朵粬涓変釜鎸夐挳鐨勭偣鍑讳篃瑕佹帶鍒�
+ this.btnFan.CanClick = this.btnSwitch.IsSelected;
+ this.btnMode.CanClick = this.btnSwitch.IsSelected;
+ this.btnTime.CanClick = this.btnSwitch.IsSelected;
+
+ string statu = this.btnSwitch.IsSelected == true ? "off" : "on";
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ var dic = new Dictionary<string, string>();
+ dic.Add(FunctionAttributeKey.OnOff, statu);
+ Control.Ins.SendWriteCommand(this.device, dic, true);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.btnPictrue.CanClick = true;
+ this.btnSwitch.CanClick = true;
+ });
+ });
+ }
+
+ /// <summary>
+ /// 鍙戦�佷娇鑳藉懡浠�
+ /// </summary>
+ private void SendEnableComand(MostRightIconControl btnSwitch, string sendKey, string value)
+ {
+ btnSwitch.CanClick = false;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ var dic = new Dictionary<string, string>();
+ dic.Add(sendKey, value);
+ Control.Ins.SendWriteCommand(this.device, dic, true);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ btnSwitch.CanClick = true;
+ });
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________
+
+ /// <summary>
+ /// 鍒锋柊鐣岄潰鐘舵��
+ /// </summary>
+ private void RefreshFormStatu()
+ {
+ //=======妯″紡=======
+ //寮哄姴妯″紡
+ if (this.airCleanerData.Mode == "strong")
+ {
+ if (this.btnModeView.TextID != StringId.StrongMode)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/ComfortableModeSelect.png";
+ this.btnModeView.TextID = StringId.StrongMode;
+ }
+ }
+ //鐫$湢妯″紡
+ else if (this.airCleanerData.Mode == "sleep")
+ {
+ if (this.btnModeView.TextID != StringId.SleepMode)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/SleepModeSelect.png";
+ this.btnModeView.TextID = StringId.SleepMode;
+ }
+ }
+ //鎵嬪姩妯″紡
+ else if (this.airCleanerData.Mode == "manual")
+ {
+ if (this.btnModeView.TextID != StringId.HandMode)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/HandModeSelect.png";
+ this.btnModeView.TextID = StringId.HandMode;
+ }
+ }
+ //鑷姩妯″紡
+ else
+ {
+ if (this.btnModeView.TextID != StringId.AutoMode)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/AutoModeSelect.png";
+ this.btnModeView.TextID = StringId.AutoMode;
+ }
+ }
+
+ //寮�鍏�
+ if (this.btnSwitch.IsSelected != this.airCleanerData.Open)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnSwitch.IsSelected = this.airCleanerData.Open;
+ this.btnPictrue.IsSelected = this.airCleanerData.Open;
+ //鍏朵粬涓変釜鎸夐挳鐨勭偣鍑讳篃瑕佹帶鍒�
+ this.btnFan.CanClick = this.airCleanerData.Open;
+ this.btnMode.CanClick = this.airCleanerData.Open;
+ this.btnTime.CanClick = this.airCleanerData.Open;
+ }
+
+ //=====椋庨��=====
+ //楂樻。
+ if (airCleanerData.Gear == "3")
+ {
+ if (this.btnFanView.TextID != StringId.HeightGear)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/HeightGearSelect.png";
+ this.btnFanView.TextID = StringId.HeightGear;
+ }
+ }
+ //涓。
+ else if (airCleanerData.Gear == "2")
+ {
+ if (this.btnFanView.TextID != StringId.MidGear)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/MidGearSelect.png";
+ this.btnFanView.TextID = StringId.MidGear;
+ }
+ }
+ //浣庢。
+ else
+ {
+ if (this.btnFanView.TextID != StringId.LowGear)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/LowGearSelect.png";
+ this.btnFanView.TextID = StringId.LowGear;
+ }
+ }
+
+ //瀹氭椂
+ if (airCleanerData.Timing == "1")
+ {
+ btnTimeView.Text = "1" + Language.StringByID(StringId.Hour1);
+ }
+ else if (airCleanerData.Timing == "2")
+ {
+ btnTimeView.Text = "2" + Language.StringByID(StringId.Hour1);
+ }
+ else if (airCleanerData.Timing == "3")
+ {
+ btnTimeView.Text = "4" + Language.StringByID(StringId.Hour1);
+ }
+ else if (airCleanerData.Timing == "4")
+ {
+ btnTimeView.Text = "8" + Language.StringByID(StringId.Hour1);
+ }
+ else
+ {
+ btnTimeView.Text = Language.StringByID(StringId.Timing);
+ }
+
+ //婊よ姱浣跨敤
+ this.btnUsePersent.Text = Language.StringByID(StringId.UseOfFilterElement) + airCleanerData.FilterPersent + "%";
+ //PM2.5
+ this.btnPm25.Text = airCleanerData.PM25Value.ToString();
+ //绔ラ攣
+ if (this.btnLockSwitch.IsSelected != this.airCleanerData.Lock)
+ {
+ this.btnLockSwitch.IsSelected = this.airCleanerData.Lock;
+ }
+ //璐熺瀛�
+ if (this.btnAnionSwitch.IsSelected != this.airCleanerData.Anion)
+ {
+ this.btnAnionSwitch.IsSelected = this.airCleanerData.Anion;
+ }
+ //婊よ姱澶嶄綅
+ if (this.btnResetSwitch.IsSelected != this.airCleanerData.FilterReset)
+ {
+ this.btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ /// </summary>
+ private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
+ {
+ foreach (var data in i_LocalDevice.attributes)
+ {
+ //妯″紡
+ if (data.key == "mode") { this.airCleanerData.Mode = data.realValue; }
+ //椋庨�熸。浣�
+ else if (data.key == "speed") { this.airCleanerData.Gear = data.realValue; }
+ //寮�鍏�
+ else if (data.key == "on_off") { this.airCleanerData.Open = data.realValue.ToLower() == "on"; }
+ //绔ラ攣
+ else if (data.key == "lock") { this.airCleanerData.Lock = data.realValue.ToLower() == "true"; }
+ //婊よ姱澶嶄綅
+ else if (data.key == "filter_reset") { this.airCleanerData.FilterReset = data.realValue.ToLower() == "true"; }
+ //璐熺瀛�
+ else if (data.key == "anion") { this.airCleanerData.Anion = data.realValue.ToLower() == "true"; }
+ //瀹氭椂
+ else if (data.key == "countdown")
+ {
+ this.airCleanerData.Timing = data.realValue;
+ if (this.airCleanerData.Timing == "cancel")
+ {
+ this.airCleanerData.Timing = "0";
+ }
+ }
+ //绌烘皵璐ㄩ噺
+ else if (data.key == "pm25")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.airCleanerData.PM25Value = Convert.ToInt32(value);
+ }
+ }
+ //婊よ姱浣跨敤鐜�
+ else if (data.key == "filter")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.airCleanerData.FilterPersent = Convert.ToInt32(value);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 缁撴瀯浣揰____________________________
+
+ /// <summary>
+ /// 绌烘皵鍑�鍖栧櫒鐨勬暟鎹�
+ /// </summary>
+ private class AirCleanerData
+ {
+ /// <summary>
+ /// 鏄惁鎵撳紑
+ /// </summary>
+ public bool Open = true;
+ /// <summary>
+ /// 妗d綅 1:浣庢。 2:涓。 3:楂樻。
+ /// </summary>
+ public string Gear = "0";
+ /// <summary>
+ /// auto:鑷姩 sleep:鐫$湢 manual:鎵嬪姩 strong:寮虹儓
+ /// </summary>
+ public string Mode = string.Empty;
+ /// <summary>
+ /// cancel:鍙栨秷 1:1灏忔椂 2:2灏忔椂 3:4灏忔椂 4:8灏忔椂
+ /// </summary>
+ public string Timing = "0";
+ /// <summary>
+ /// 绔ラ攣
+ /// </summary>
+ public bool Lock = false;
+ /// <summary>
+ /// 婊よ姱澶嶄綅
+ /// </summary>
+ public bool FilterReset = false;
+ /// <summary>
+ /// 璐熺瀛�
+ /// </summary>
+ public bool Anion = false;
+ /// <summary>
+ /// PM2.5鐨勫��
+ /// </summary>
+ public int PM25Value = 0;
+ /// <summary>
+ /// 婊よ姱浣跨敤鐜� 0-100
+ /// </summary>
+ public int FilterPersent = 0;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaFanPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaFanPage.cs
new file mode 100755
index 0000000..46a6942
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaFanPage.cs
@@ -0,0 +1,277 @@
+锘縰sing Shared;
+using HDL_ON.Stan;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HDL_ON.UI.CSS;
+using HDL_ON.Entity;
+using HDL_ON.DriverLayer;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娑傞甫椋庢墖鐨勬帶鍒剁晫闈�
+ /// </summary>
+ public class TuyaFanPage : DeviceFunctionCardCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 褰撳墠妗d綅鎺т欢
+ /// </summary>
+ private NormalViewControl btnNowGear = null;
+ /// <summary>
+ /// 婊戝姩鏉℃帶浠�
+ /// </summary>
+ private SeekBarImageControl seekBarContr = null;
+ /// <summary>
+ /// 寮�鍏虫帶浠�
+ /// </summary>
+ private IconViewControl btnSwitch = null;
+ /// <summary>
+ /// 椋庢墖鏁版嵁
+ /// </summary>
+ private FanData fanData = new FanData();
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+ /// </summary>
+ public override void InitFrameWhiteContent()
+ {
+ base.SetTitleText(Language.StringByID(StringId.Fan));
+
+ //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ this.RefreshNowDeviceStatuMemory(this.device);
+ //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ this.InitFrameWhiteContent1();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ /// </summary>
+ private void InitFrameWhiteContent1()
+ {
+ //褰撳墠椋庨��
+ var btnNowSpeed = new NormalViewControl(FrameWhiteCentet1.Width, Application.GetRealHeight(21), false);
+ btnNowSpeed.Y = Application.GetRealHeight(164);
+ btnNowSpeed.TextAlignment = TextAlignment.Center;
+ btnNowSpeed.TextID = StringId.CurrentWindSpeed;
+ FrameWhiteCentet1.AddChidren(btnNowSpeed);
+
+ //褰撳墠妗d綅鍊�
+ this.btnNowGear = new NormalViewControl(200, 38, true);
+ btnNowGear.TextAlignment = TextAlignment.Center;
+ btnNowGear.TextSize = CSS_FontSize.EmphasisFontSize_ExLevel;
+ btnNowGear.Gravity = Gravity.CenterHorizontal;
+ btnNowGear.Y = btnNowSpeed.Bottom + Application.GetRealHeight(8);
+ FrameWhiteCentet1.AddChidren(btnNowGear);
+
+ //婊戝姩鏉�
+ this.seekBarContr = new SeekBarImageControl(215);
+ seekBarContr.Enable = false;
+ seekBarContr.Gravity = Gravity.CenterHorizontal;
+ seekBarContr.Y = btnNowGear.Bottom + Application.GetRealHeight(30);
+ seekBarContr.MinValue = 1;
+ seekBarContr.MaxValue = 15;
+ FrameWhiteCentet1.AddChidren(seekBarContr);
+
+ //寮�鍏冲浘鏍�
+ this.btnSwitch = new IconViewControl(40);
+ btnSwitch.Gravity = Gravity.CenterHorizontal;
+ btnSwitch.Y = Application.GetRealHeight(468);
+ btnSwitch.UnSelectedImagePath = "Public/PowerClose.png";
+ btnSwitch.SelectedImagePath = "Public/PowerOpen.png";
+ FrameWhiteCentet1.AddChidren(btnSwitch);
+ btnSwitch.ButtonClickEvent += (sender, e) =>
+ {
+ //鍙戦�佸紑鍏冲懡浠�
+ this.SendSwitchComand();
+ };
+
+ //鍒锋柊鐣岄潰鐘舵��
+ this.RefreshFormStatu(false);
+
+ int oldProgressValue = fanData.SpeedLevel;
+ int nowProgressValue = fanData.SpeedLevel;
+ //妗�
+ var strView = Language.StringByID(StringId.Gear);
+ seekBarContr.ProgressChangedEvent += (div, value) =>
+ {
+ nowProgressValue = value;
+ this.btnNowGear.Text = value + strView;
+ //婊戝姩涓�
+ if (div == 0) { this.fanData.IsProgressing = true; }
+ //婊戝姩缁撴潫
+ else
+ {
+ this.fanData.IsProgressing = false;
+ this.fanData.ProgressEndTime = DateTime.Now;
+ }
+ };
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ while (this.Parent != null)
+ {
+ if (nowProgressValue != oldProgressValue)
+ {
+ //鍙戦�侀閫熷懡浠�
+ this.SendSpeedComand(nowProgressValue);
+ oldProgressValue = nowProgressValue;
+ }
+ System.Threading.Thread.Sleep(1000);
+ }
+ //鐣岄潰鍏抽棴鏃�
+ if (nowProgressValue != oldProgressValue)
+ {
+ //鍙戦�侀閫熷懡浠�
+ this.SendSpeedComand(nowProgressValue);
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佸弽棣�
+ /// </summary>
+ /// <param name="i_LocalDevice"></param>
+ public override void DeviceStatuPush(Function i_LocalDevice)
+ {
+ //涓嶆槸鍚屼竴涓笢瑗�
+ if (this.device.sid != i_LocalDevice.sid) { return; }
+
+ //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ this.RefreshNowDeviceStatuMemory(i_LocalDevice);
+ //鍒锋柊鐣岄潰鐘舵��
+ this.RefreshFormStatu(true);
+ }
+
+ #endregion
+
+ #region 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________
+
+ /// <summary>
+ /// 鍒锋柊鐣岄潰鐘舵��
+ /// </summary>
+ private void RefreshFormStatu(bool checkTime)
+ {
+ //寮�鍏�
+ if (this.btnSwitch.IsSelected != this.fanData.Open)
+ {
+ //鐩稿悓涓嶅彉鏇�
+ this.btnSwitch.IsSelected = this.fanData.Open;
+ this.seekBarContr.Enable = this.fanData.Open;
+ }
+ //濡傛灉鏄仠姝㈡粦鍔ㄧ殑鎯呭喌
+ if (this.fanData.IsProgressing == false)
+ {
+ if (checkTime == true && (DateTime.Now - this.fanData.ProgressEndTime).TotalSeconds <= 2)
+ {
+ //2绉掍箣鍐呬笉鍙樻洿婊戝姩鏉$殑鍊�(涓轰簡涓嶈瀹冩潵鍥炶烦鍔�)
+ return;
+ }
+ if (this.seekBarContr.Progress != this.fanData.SpeedLevel)
+ {
+ //鍙樻洿杩涘害鏉$殑鍊�
+ this.seekBarContr.Progress = this.fanData.SpeedLevel;
+ this.btnNowGear.Text = this.fanData.SpeedLevel + Language.StringByID(StringId.Gear);
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍙戦�佸悇绉嶅懡浠______________________
+
+ /// <summary>
+ /// 鍙戦�佸紑鍏冲懡浠�
+ /// </summary>
+ private void SendSwitchComand()
+ {
+ this.btnSwitch.CanClick = false;
+
+ string statu = this.btnSwitch.IsSelected == true ? "off" : "on";
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ var dic = new Dictionary<string, string>();
+ dic.Add(FunctionAttributeKey.OnOff, statu);
+ Control.Ins.SendWriteCommand(this.device, dic, true);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.btnSwitch.CanClick = true;
+ });
+ });
+ }
+
+ /// <summary>
+ /// 鍙戦�侀閫熷懡浠�
+ /// </summary>
+ private void SendSpeedComand(int value)
+ {
+ var dic = new Dictionary<string, string>();
+ dic.Add("fan_speed_percent", value.ToString());
+ Control.Ins.SendWriteCommand(this.device, dic, true);
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ /// </summary>
+ private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
+ {
+ foreach (var data in i_LocalDevice.attributes)
+ {
+ //寮�鍏�
+ if (data.key == "on_off") { this.fanData.Open = data.realValue == "on"; }
+ //椋庨�熸。浣�
+ else if (data.key == "fan_speed_percent")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.fanData.SpeedLevel = Convert.ToInt32(value);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 缁撴瀯浣揰____________________________
+
+ /// <summary>
+ /// 椋庢墖鐨勬暟鎹�
+ /// </summary>
+ private class FanData
+ {
+ /// <summary>
+ /// 鏄惁鎵撳紑
+ /// </summary>
+ public bool Open = true;
+ /// <summary>
+ /// 椋庨�熸。浣�(1-15)
+ /// </summary>
+ public int SpeedLevel = 1;
+ /// <summary>
+ /// 鏄惁姝e湪婊戝姩涓�
+ /// </summary>
+ public bool IsProgressing = false;
+ /// <summary>
+ /// 婊戝姩缁撴潫鐨勬椂闂�
+ /// </summary>
+ public DateTime ProgressEndTime = DateTime.Now;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
new file mode 100755
index 0000000..4ebf58c
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
@@ -0,0 +1,484 @@
+锘縰sing Shared;
+using HDL_ON.Stan;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HDL_ON.UI.CSS;
+using HDL_ON.Entity;
+using HDL_ON.DriverLayer;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娑傞甫鎵湴鏈哄櫒浜虹殑鎺у埗鐣岄潰
+ /// </summary>
+ public class TuyaWeepRobotPage : DeviceFunctionCardCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鐢垫睜鍥炬爣
+ /// </summary>
+ private IconViewControl btnBatteryIcon = null;
+ /// <summary>
+ /// 鐢垫睜鐧惧垎姣旀帶浠�
+ /// </summary>
+ private NormalViewControl btnBatteryView = null;
+ /// <summary>
+ /// 鍚稿姏璋冭妭鍥炬爣
+ /// </summary>
+ private IconViewControl btnSuctionIcon = null;
+ /// <summary>
+ /// 鍚稿姏璋冭妭鏂囨湰鎺т欢
+ /// </summary>
+ private NormalViewControl btnSuctionView = null;
+ /// <summary>
+ /// 鍏呯數鍥炬爣
+ /// </summary>
+ private IconViewControl btnChargeIcon = null;
+ /// <summary>
+ /// 澹伴煶鍥炬爣
+ /// </summary>
+ private IconViewControl btnVoiceIcon = null;
+ /// <summary>
+ /// 澹伴煶鏂囨湰鎺т欢
+ /// </summary>
+ private NormalViewControl btnVoiceView = null;
+ /// <summary>
+ /// 娓呮壂妯″紡鍥炬爣
+ /// </summary>
+ private IconViewControl btnModeIcon = null;
+ /// <summary>
+ /// 娓呮壂妯″紡鏂囨湰鎺т欢
+ /// </summary>
+ private NormalViewControl btnModeView = null;
+ /// <summary>
+ /// 鍥惧儚鎺у埗鎺т欢
+ /// </summary>
+ private DirectionImageControl ImageControl = null;
+ /// <summary>
+ /// 鎵湴鏈哄櫒浜烘暟鎹�
+ /// </summary>
+ private WeepRobotData weepRobotData = new WeepRobotData();
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+ /// </summary>
+ public override void InitFrameWhiteContent()
+ {
+ base.SetTitleText(Language.StringByID(StringId.WeepRobot));
+
+ //娣诲姞绗簩绱㈠紩椤�
+ this.AddSecondPage();
+ //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ this.InitFrameWhiteContent1();
+ //鍒濆鍖栫浜屼釜绱㈠紩椤电殑鍐呭
+ this.InitFrameWhiteContent2();
+
+ //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ this.RefreshNowDeviceStatuMemory(this.device);
+ //鍒锋柊鐣岄潰鐘舵��
+ this.RefreshFormStatu();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ /// </summary>
+ private void InitFrameWhiteContent1()
+ {
+ //鐢垫睜鍥炬爣
+ this.btnBatteryIcon = new IconViewControl(24);
+ btnBatteryIcon.X = base.btnRoomName.Right + Application.GetRealWidth(24);
+ btnBatteryIcon.Y = base.btnRoomName.Y - (btnBatteryIcon.IconSize - base.btnRoomName.Height) / 2;
+ btnBatteryIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Battery.png";
+ FrameWhiteCentet1.AddChidren(btnBatteryIcon);
+ //鐢垫睜鐧惧垎姣�
+ this.btnBatteryView = new NormalViewControl(30, 16, true);
+ btnBatteryView.X = btnBatteryIcon.Right + Application.GetRealWidth(4);
+ btnBatteryView.Y = btnBatteryIcon.Y + (btnBatteryIcon.Height - Application.GetRealHeight(16)) / 2;
+ btnBatteryView.Text = this.weepRobotData.ElectricityLeft + "%";
+ btnBatteryView.TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel;
+ btnBatteryView.TextColor = CSS_Color.PromptingColor1;
+ FrameWhiteCentet1.AddChidren(btnBatteryView);
+ //閰嶇疆鍙樻洿浜嬩欢
+ base.SettionFinishEvent += () =>
+ {
+ btnBatteryIcon.X = base.btnRoomName.Right + Application.GetRealWidth(24);
+ btnBatteryView.X = btnBatteryIcon.Right + Application.GetRealWidth(4);
+ };
+
+ //鍒濆鍖栦腑闂寸殑閭d釜鍥惧儚鎺у埗鎺т欢
+ this.ImageControl = new DirectionImageControl();
+ ImageControl.Y = Application.GetRealHeight(108);
+ ImageControl.Width = Application.GetRealWidth(198);
+ ImageControl.Height = Application.GetRealWidth(198);
+ ImageControl.Gravity = Gravity.CenterHorizontal;
+ FrameWhiteCentet1.AddChidren(ImageControl);
+ //鍒濆鍖栨帶浠�
+ ImageControl.InitControl("FunctionIcon/Electrical/WeepRobot/ControlEnable.png", "FunctionIcon/Electrical/WeepRobot/ControlDisable.png",
+ "FunctionIcon/Electrical/WeepRobot/ControlUp.png", "FunctionIcon/Electrical/WeepRobot/ControlDown.png",
+ "FunctionIcon/Electrical/WeepRobot/ControlLeft.png", "FunctionIcon/Electrical/WeepRobot/ControlRight.png");
+ //鎺у埗浜嬩欢(涓嶆敮鎸丒nable鍜孌isable,閮藉綊涓篗id)
+ ImageControl.ControlEvent += (select) =>
+ {
+
+ };
+
+ //鍚稿姏璋冭妭
+ this.btnSuctionIcon = new IconViewControl(28);
+ btnSuctionIcon.Y = ImageControl.Bottom + Application.GetRealHeight(64);
+ btnSuctionIcon.X = Application.GetRealWidth(33);
+ btnSuctionIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Suction.png";
+ btnSuctionIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png";
+ FrameWhiteCentet1.AddChidren(btnSuctionIcon);
+ btnSuctionIcon.ButtonClickEvent += (sender, e) =>
+ {
+ };
+ this.btnSuctionView = new NormalViewControl(80, 54, true);
+ btnSuctionView.Y = btnSuctionIcon.Bottom + Application.GetRealHeight(10);
+ btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2;
+ btnSuctionView.TextAlignment = TextAlignment.TopCenter;
+ btnSuctionView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnSuctionView.Text = Language.StringByID(StringId.SuctionAdjustment);
+ btnSuctionView.IsMoreLines = true;
+ FrameWhiteCentet1.AddChidren(btnSuctionView);
+
+ //鍏呯數鍥炬爣
+ this.btnChargeIcon = new IconViewControl(28);
+ btnChargeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Charge.png";
+ btnChargeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/ChargeSelect.png";
+ btnChargeIcon.Y = btnSuctionIcon.Y;
+ btnChargeIcon.X = btnSuctionIcon.Right + Application.GetRealWidth(50);
+ FrameWhiteCentet1.AddChidren(btnChargeIcon);
+ btnChargeIcon.ButtonClickEvent += (sender, e) =>
+ {
+ };
+ var btnChargeView = new NormalViewControl(80, 18, true);
+ btnChargeView.Y = btnSuctionView.Y;
+ btnChargeView.X = btnChargeIcon.X - (Application.GetRealWidth(80) - btnChargeIcon.Width) / 2;
+ btnChargeView.TextAlignment = TextAlignment.TopCenter;
+ btnChargeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnChargeView.TextID = StringId.Charge;
+ FrameWhiteCentet1.AddChidren(btnChargeView);
+
+ //澹伴煶鍥炬爣
+ this.btnVoiceIcon = new IconViewControl(28);
+ btnVoiceIcon.Y = btnSuctionIcon.Y;
+ btnVoiceIcon.X = btnChargeIcon.Right + Application.GetRealWidth(50);
+ btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png";
+ btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png";
+ FrameWhiteCentet1.AddChidren(btnVoiceIcon);
+ btnVoiceIcon.ButtonClickEvent += (sender, e) =>
+ {
+ };
+ this.btnVoiceView = new NormalViewControl(80, 18, true);
+ btnVoiceView.Y = btnSuctionView.Y;
+ btnVoiceView.X = btnVoiceIcon.X - (Application.GetRealWidth(80) - btnVoiceIcon.Width) / 2;
+ btnVoiceView.TextAlignment = TextAlignment.TopCenter;
+ btnVoiceView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnVoiceView.TextID = StringId.Mute;
+ FrameWhiteCentet1.AddChidren(btnVoiceView);
+
+ //娓呮壂妯″紡鍥炬爣
+ this.btnModeIcon = new IconViewControl(28);
+ btnModeIcon.Y = btnSuctionIcon.Y;
+ btnModeIcon.X = btnVoiceIcon.Right + Application.GetRealWidth(50);
+ btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Clean.png";
+ FrameWhiteCentet1.AddChidren(btnModeIcon);
+ btnModeIcon.ButtonClickEvent += (sender, e) =>
+ {
+ };
+ this.btnModeView = new NormalViewControl(80, 54, true);
+ btnModeView.Y = btnSuctionView.Y;
+ btnModeView.X = btnModeIcon.X - (Application.GetRealWidth(80) - btnModeIcon.Width) / 2;
+ btnModeView.TextAlignment = TextAlignment.TopCenter;
+ btnModeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+ btnModeView.TextID = StringId.CleanMode;
+ btnModeView.IsMoreLines = true;
+ FrameWhiteCentet1.AddChidren(btnModeView);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫浜屼釜绱㈠紩椤电殑鍐呭
+ /// </summary>
+ private void InitFrameWhiteContent2()
+ {
+ //鎵湴鏈哄櫒浜�
+ var btnTitleName = new NormalViewControl(270, 37, true);
+ btnTitleName.X = Application.GetRealWidth(16);
+ btnTitleName.Y = Application.GetRealHeight(18);
+ btnTitleName.TextColor = CSS_Color.FirstLevelTitleColor;
+ btnTitleName.TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel;
+ btnTitleName.TextID = StringId.WeepRobot;
+ FrameWhiteCentet2.AddChidren(btnTitleName);
+
+ //鑰楁潗绠$悊
+ var rowManment = new FrameRowControl();
+ rowManment.Height = Application.GetRealHeight(50);
+ rowManment.Width = FrameWhiteCentet2.Width;
+ rowManment.Y = Application.GetRealHeight(75);
+ FrameWhiteCentet2.AddChidren(rowManment);
+ rowManment.AddLeftCaption(Language.StringByID(StringId.ConsumablesManagement), 200);
+ rowManment.AddBottomLine();
+ rowManment.AddRightArrow();
+ rowManment.ButtonClickEvent += (sender, e) =>
+ {
+ };
+
+ //鍘嗗彶璁板綍
+ var rowHistory = new FrameRowControl();
+ rowHistory.Height = Application.GetRealHeight(50);
+ rowHistory.Width = FrameWhiteCentet2.Width;
+ rowHistory.Y = rowManment.Bottom;
+ FrameWhiteCentet2.AddChidren(rowHistory);
+ rowHistory.AddLeftCaption(Language.StringByID(StringId.HistoryLog), 200);
+ rowHistory.AddBottomLine();
+ rowHistory.AddRightArrow();
+ rowHistory.ButtonClickEvent += (sender, e) =>
+ {
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佸弽棣�
+ /// </summary>
+ /// <param name="i_LocalDevice"></param>
+ public override void DeviceStatuPush(Function i_LocalDevice)
+ {
+ //涓嶆槸鍚屼竴涓笢瑗�
+ if (this.device.sid != i_LocalDevice.sid) { return; }
+
+ //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ this.RefreshNowDeviceStatuMemory(i_LocalDevice);
+ //鍒锋柊鐣岄潰鐘舵��
+ this.RefreshFormStatu();
+ }
+
+ #endregion
+
+ #region 鈻� 鍙戦�佸悇绉嶅懡浠______________________
+
+ /// <summary>
+ /// 鍙戦�佸紑鍏冲懡浠�
+ /// </summary>
+ private void SendSwitchComand()
+ {
+ //this.btnSwitch.CanClick = false;
+
+ //string statu = this.btnSwitch.IsSelected == true ? "off" : "on";
+ //HdlThreadLogic.Current.RunThread(() =>
+ //{
+ // var dic = new Dictionary<string, string>();
+ // dic.Add(FunctionAttributeKey.OnOff, statu);
+ // Control.Ins.SendWriteCommand(this.device, dic, true);
+ // HdlThreadLogic.Current.RunMain(() =>
+ // {
+ // this.btnSwitch.CanClick = true;
+ // });
+ //});
+ }
+
+ #endregion
+
+ #region 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________
+
+ /// <summary>
+ /// 鍒锋柊鐣岄潰鐘舵��
+ /// </summary>
+ private void RefreshFormStatu()
+ {
+ //闈欓煶(瀹冩湁鍥涗釜鍥炬爣)
+ if (this.weepRobotData.VoiceSwitch == true)
+ {
+ //闇�瑕佸垏鎹㈠浘鏍�
+ if (this.btnVoiceIcon.UnSelectedImagePath != "FunctionIcon/Electrical/WeepRobot/Mute.png")
+ {
+ this.btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Mute.png";
+ this.btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/MuteSelect.png";
+ }
+ }
+ else
+ {
+ //闇�瑕佸垏鎹㈠浘鏍�
+ if (this.btnVoiceIcon.UnSelectedImagePath != "FunctionIcon/Electrical/WeepRobot/Voice.png")
+ {
+ this.btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png";
+ this.btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png";
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+ /// </summary>
+ private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
+ {
+ foreach (var data in i_LocalDevice.attributes)
+ {
+ //寮�鍏�
+ if (data.key == "on_off") { this.weepRobotData.Open = data.realValue.ToLower() == "on"; }
+ //瀵绘壘鏈哄櫒
+ else if (data.key == "seek") { this.weepRobotData.SearchRobot = data.realValue.ToLower() == "true"; }
+ //杈瑰埛閲嶇疆
+ else if (data.key == "reset_edge_brush") { this.weepRobotData.ResetEdgeBrush = data.realValue.ToLower() == "true"; }
+ //婊氬埛閲嶇疆
+ else if (data.key == "reset_roll_brush") { this.weepRobotData.ResetRollBrush = data.realValue.ToLower() == "true"; }
+ //婊ょ綉閲嶇疆
+ else if (data.key == "reset_filter") { this.weepRobotData.ResetFilter = data.realValue.ToLower() == "true"; }
+ //鍚稿姏閫夋嫨
+ else if (data.key == "suction") { this.weepRobotData.Suction = data.realValue; }
+ //宸ヤ綔妯″紡
+ else if (data.key == "mode") { this.weepRobotData.Mode = data.realValue; }
+ //娓呮壂鏂瑰悜
+ else if (data.key == "direction_control") { this.weepRobotData.DirectionControl = data.realValue; }
+ //澹伴煶寮�鍏�
+ else if (data.key == "voice_switch") { this.weepRobotData.VoiceSwitch = data.realValue.ToLower() == "true"; }
+ //娓呮壂闈㈢Н
+ else if (data.key == "clean_area")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.weepRobotData.CleanArea = Convert.ToInt32(value);
+ }
+ }
+ //娓呮壂璁板綍
+ else if (data.key == "clean_record") { this.weepRobotData.CleanRecord = data.realValue; }
+ //杈瑰埛瀵垮懡
+ else if (data.key == "edge_brush")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.weepRobotData.EdgeBrush = Convert.ToInt32(value);
+ }
+ }
+ //婊氬埛瀵垮懡
+ else if (data.key == "roll_brush")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.weepRobotData.RollBrush = Convert.ToInt32(value);
+ }
+ }
+ //婊ょ綉瀵垮懡
+ else if (data.key == "filter")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.weepRobotData.Filter = Convert.ToInt32(value);
+ }
+ }
+ //娓呮壂鏃堕棿
+ else if (data.key == "clean_time")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.weepRobotData.CleanTime = Convert.ToInt32(value);
+ }
+ }
+ //鍓╀綑鐢甸噺
+ else if (data.key == "electricity_left")
+ {
+ var value = data.realValue;
+ if (value != string.Empty)
+ {
+ this.weepRobotData.ElectricityLeft = Convert.ToInt32(value);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 缁撴瀯浣揰____________________________
+
+ /// <summary>
+ /// 鎵湴鏈哄櫒浜虹殑鏁版嵁
+ /// </summary>
+ private class WeepRobotData
+ {
+ /// <summary>
+ /// 鏄惁鎵撳紑
+ /// </summary>
+ public bool Open = true;
+ /// <summary>
+ /// 瀵绘壘鏈哄櫒
+ /// </summary>
+ public bool SearchRobot = false;
+ /// <summary>
+ /// 杈瑰埛閲嶇疆
+ /// </summary>
+ public bool ResetEdgeBrush = false;
+ /// <summary>
+ /// 婊氬埛閲嶇疆
+ /// </summary>
+ public bool ResetRollBrush = false;
+ /// <summary>
+ /// 婊ょ綉閲嶇疆
+ /// </summary>
+ public bool ResetFilter = false;
+ /// <summary>
+ /// 鍚稿姏閫夋嫨(strong:涓�妗� normal:浜屾尅 quiet:涓夋尅)
+ /// </summary>
+ public string Suction = string.Empty;
+ /// <summary>
+ /// 宸ヤ綔妯″紡(random:鑷姩娓呮壂 smart:瀹氱偣娓呮壂 wall_follow:娌垮娓呮壂 spiral:鍖哄煙娓呮壂 chargego:鍏呯數)
+ /// </summary>
+ public string Mode = string.Empty;
+ /// <summary>
+ /// 娓呮壂鏂瑰悜(forward:鍚戝墠 backward:鍚戝悗 turn_left:鍚戝乏 turn_right:鍚戝彸 stop:鍋滄)
+ /// </summary>
+ public string DirectionControl = string.Empty;
+ /// <summary>
+ /// 闈欓煶
+ /// </summary>
+ public bool VoiceSwitch = false;
+ /// <summary>
+ /// 娓呮壂闈㈢Н
+ /// </summary>
+ public int CleanArea = 0;
+ /// <summary>
+ /// 娓呮壂璁板綍(鐩墠閮芥槸绌虹殑)
+ /// </summary>
+ public string CleanRecord = string.Empty;
+ /// <summary>
+ /// 杈瑰埛瀵垮懡(鐧惧垎姣�)
+ /// </summary>
+ public int EdgeBrush = 0;
+ /// <summary>
+ /// 婊氬埛瀵垮懡(鐧惧垎姣�)
+ /// </summary>
+ public int RollBrush = 0;
+ /// <summary>
+ /// 婊ょ綉瀵垮懡(鐧惧垎姣�)
+ /// </summary>
+ public int Filter = 0;
+ /// <summary>
+ /// 娓呮壂鏃堕棿(0-432000)
+ /// </summary>
+ public int CleanTime = 0;
+ /// <summary>
+ /// 鍓╀綑鐢甸噺(鐧惧垎姣�)
+ /// </summary>
+ public int ElectricityLeft = 0;
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0