wei
2020-12-11 82423359112f65458fd9a80418da0bda5e9364d9
Merge remote-tracking branch 'origin/WJC' into NewFilePath
11个文件已添加
31个文件已修改
761 ■■■■ 已修改文件
.vs/HDL_APP_Project/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/functionicon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/link.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/scene.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/selectTheFun.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/selectTheScene.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/selectTheTime.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/link.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheFun.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheScene.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheTime.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/NewAPI.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/DB_ResidenceData.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/FunctionList.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs 281 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.png

HDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.png

HDL-ON_Android/Assets/Phone/LogicIcon/functionicon.png

HDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.png

HDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.png

HDL-ON_Android/Assets/Phone/LogicIcon/link.png
HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.png

HDL-ON_Android/Assets/Phone/LogicIcon/scene.png

HDL-ON_Android/Assets/Phone/LogicIcon/selectTheFun.png
HDL-ON_Android/Assets/Phone/LogicIcon/selectTheScene.png
HDL-ON_Android/Assets/Phone/LogicIcon/selectTheTime.png
HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.png

HDL-ON_Android/HDL-ON_Android.csproj
@@ -647,6 +647,10 @@
    <AndroidAsset Include="Assets\Phone\LogicIcon\point.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\ selected+.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\selected-.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\link.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheFun.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheScene.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheTime.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
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
    {
        
HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png

HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png

HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png

HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png

HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png

HDL-ON_iOS/Resources/Phone/LogicIcon/link.png
HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png

HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png

HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheFun.png
HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheScene.png
HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheTime.png
HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png

HDL_ON/DAL/Server/NewAPI.cs
@@ -316,7 +316,7 @@
        /// </summary>
        public const string Api_Post_GetDevcieInfoList = "/home-wisdom/app/device/info";
        /// <summary>
        /// 刷新设备状态
        /// 刷新设备状
        /// </summary>
        public const string Api_Post_RefreshDeviceStatus = "/home-wisdom/app/device/status/refresh";
        /// <summary>
HDL_ON/Entity/DB_ResidenceData.cs
@@ -254,6 +254,7 @@
        /// <summary>
        /// 房间列表
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public List<Room> Rooms = SpatialInfo.CurrentSpatial.RoomList;
        #region 功能数据
HDL_ON/Entity/FunctionList.cs
@@ -193,7 +193,7 @@
        /// </summary>
        public List<Function> GetAllDeviceFunctionList()
        {
            //if (deviceFunctionList == null)
            if (deviceFunctionList == null || deviceFunctionList.Count == 0)
            {
                deviceFunctionList = new List<Function>();
                deviceFunctionList.AddRange(aCs);
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -23,7 +23,7 @@
             {
                 RemoveFromParent();
             };
            if (string.IsNullOrEmpty(Logic.currlogic.sid))
            if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
            {
                topView.topNameBtn.TextID = StringId.newAutomation;
                topView.setBtn.Visible = false;
@@ -128,20 +128,16 @@
            viewLayout.AddChidren(cyclicTitle.FLayoutView());
            cyclicTitle.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                FrameLayout fLayout = new FrameLayout
                {
                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                };
                this.AddChidren(fLayout);
                DateMethod(fLayout, cyclicTitle.btnText);
                DateMethod(cyclicTitle.btnText);
            };
            #endregion
            #region  执行推送 发送通知
            /////上下间隔12像素
            //viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) });
            ///上下间隔12像素
            viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) });
            /////执行推送iew
            //LogicView.LogicTypeTitleView push = new LogicView.LogicTypeTitleView();
            //push.frameLayout.Height = Application.GetRealHeight(50);
@@ -169,7 +165,7 @@
            this.AddChidren(saveView.FLayoutView());
            saveView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                if (string.IsNullOrEmpty(Logic.currlogic.sid))
                if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
                {
                    List<string> list = new List<string>();
                    foreach (var logic in Logic.LogicList)
@@ -188,7 +184,8 @@
                            LogicMethod.RemoveAllView();
                            MainView.MainShow();
                        }
                        else {
                        else
                        {
                            new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                        }
@@ -204,7 +201,8 @@
                        LogicMethod.RemoveAllView();
                        MainView.MainShow();
                    }
                    else {
                    else
                    {
                        new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                    }
                }
@@ -216,11 +214,14 @@
        /// <summary>
        /// 循环方式(每天,每月。。)
        /// </summary>
        /// <param name="fLayout">弹框主控件</param>
        /// <param name="button">显示文本</param>
        public void DateMethod(FrameLayout fLayout, Button button)
        public void DateMethod(Button button)
        {
            FrameLayout fLayout = new FrameLayout
            {
                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
            };
            this.AddChidren(fLayout);
            LogicView.DateView dateView = new LogicView.DateView();
            dateView.btnTitle.TextID = StringId.cyclic;
            dateView.FLayoutView(fLayout, 4);
@@ -232,7 +233,7 @@
            //定义一个局部变量记录选中文本状态
            string weekName = "";
            //定义一个局部Btn用来记录选中Btn;
            var selecetdBtn = new Button() { Text=""};
            var selecetdBtn = new Button() { Text = "" };
            for (int i = 0; i < 4; i++)
            {
                LogicView.SelectTypeView dateTypeView = new LogicView.SelectTypeView();
@@ -326,12 +327,6 @@
            //确定保存
            dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) =>
            {
                if (selecetdBtn.Text == Language.StringByID(StringId.monthly)|| selecetdBtn.Text == Language.StringByID(StringId.weekly)) {
                    //提示:还未选
                    return;
                }
                if (selecetdBtn.Text == Language.StringByID(StringId.performA))
                {
                    //执行一次
@@ -342,6 +337,11 @@
                    //每天
                    Logic.currlogic.cycle.type = "day";
                }
                else
                {
                    //提示:还未选
                    return;
                }
                //选中保存之后显示文本
                button.Text = selecetdBtn.Text;
@@ -356,125 +356,35 @@
        /// <param name="button">显示文本</param>
        public void WeekMethod(FrameLayout fLayout, Button button)
        {
            LogicView.DateView weekView = new LogicView.DateView();
            weekView.btnTitle.TextID = StringId.cyclic;
            weekView.FLayoutView(fLayout, 7);
            weekView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
            {
                weekView.frameLayout.RemoveFromParent();
            List<string> weekStr = new List<string> {
             Language.StringByID(StringId.monday),
             Language.StringByID(StringId.tuesday),
             Language.StringByID(StringId.wednesday),
             Language.StringByID(StringId.thursday),
             Language.StringByID(StringId.friday),
             Language.StringByID(StringId.saturday),
             Language.StringByID(StringId.sunday),
            };
            //定义一个局部weekList列表用来记录选中数据;
            List<string> weekList = new List<string>();
            List<string> weekStateList = new List<string>();
            weekStateList.Clear();
            if (Logic.currlogic.cycle.type == "week")
            {
                var list = GetWeekString(Logic.currlogic.cycle.value, "int");
                //加载之前保存的数据
                weekList.AddRange(Logic.currlogic.cycle.value);
                weekStateList.AddRange(list);
            }
            //定义一个局部变量记录选中文本状态
            string weekName = "";
            for (int i = 0; i < 7; i++)
            {
                LogicView.SelectTypeView weekTypeView = new LogicView.SelectTypeView();
                weekTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
                weekTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                weekTypeView.btnIcon.Visible = false;
                weekTypeView.btnText.X = Application.GetRealWidth(20);
                weekTypeView.btnLine.X = Application.GetRealWidth(20);
                weekTypeView.btnLine.Width = Application.GetRealWidth(303);
                weekTypeView.btnNextIcon.X = Application.GetRealWidth(303);
                weekTypeView.btnNextIcon.Width = Application.GetMinRealAverage(28);
                weekTypeView.btnNextIcon.Height = Application.GetMinRealAverage(28);
                weekTypeView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
                weekTypeView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
                weekView.frameLayout.AddChidren(weekTypeView.FLayoutView());
                weekTypeView.btnClick.Tag = i;//标记索引
                switch (i)
                {
                    case 0:
                        {
                            weekName = Language.StringByID(StringId.monday);
                        }
                        break;
                    case 1:
                        {
                            weekName = Language.StringByID(StringId.tuesday);
                        }
                        break;
                    case 2:
                        {
                            weekName = Language.StringByID(StringId.wednesday);
                        }
                        break;
                    case 3:
                        {
                            weekName = Language.StringByID(StringId.thursday);
                        }
                        break;
                    case 4:
                        {
                            weekName = Language.StringByID(StringId.friday);
                        }
                        break;
                    case 5:
                        {
                            weekName = Language.StringByID(StringId.saturday);
                        }
                        break;
                    case 6:
                        {
                            weekName = Language.StringByID(StringId.sunday);
                        }
                        break;
            PublicInterface weekView = new PublicInterface();
            weekView.MultiSelectShow(fLayout, weekStr, Language.StringByID(StringId.cyclic), weekStateList
               , (list) =>
               {
                   var statelist = GetWeekString(list, "str");
                   Logic.currlogic.cycle.type = "week";
                   Logic.currlogic.cycle.value = statelist;
                   button.Text = MainView.GetWeekString(statelist);
                }
                weekTypeView.btnText.Text = weekName;
                if (weekList.Contains(i.ToString()))
                {
                    //显示之前的选中状态
                    weekTypeView.btnNextIcon.IsSelected = true;
                }
                //星期的点击事件
                weekTypeView.btnClick.MouseUpEventHandler += (sender, e) =>
                {
                    string clickIndex = weekTypeView.btnClick.Tag.ToString();
                    weekTypeView.btnClick.IsSelected = !weekTypeView.btnClick.IsSelected;
                    if (weekTypeView.btnClick.IsSelected)
                    {
                        weekTypeView.btnNextIcon.IsSelected = true;
                        if (!weekList.Contains(clickIndex))
                        {
                            //添加选中数据
                            weekList.Add(clickIndex);
                        }
                    }
                    else
                    {
                        weekTypeView.btnNextIcon.IsSelected = false;
                        if (weekList.Contains(clickIndex))
                        {
                            //移除选中数据
                            weekList.Remove(clickIndex);
                        }
                    }
                };
            }
            //确定点击事件
            weekView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (weekList.Count == 0)
                {
                    //提示:还没选中执行周期
                    return;
                }
                Logic.currlogic.cycle.type = "week";
                Logic.currlogic.cycle.value = weekList;
                button.Text = MainView.GetWeekString(weekList);
                fLayout.RemoveFromParent();
            };
               });
        }
        /// <summary>
        /// 每月
@@ -556,7 +466,8 @@
                    }
                };
                if (monList.Contains(i.ToString())) {
                if (monList.Contains(i.ToString()))
                {
                    monTextBtn.IsSelected = true;
                }
            }
@@ -581,6 +492,8 @@
        /// <param name="button">显示文本</param>
        public void AndOrMethod(FrameLayout fLayout, Button button)
        {
            LogicView.DateView meetTheConditionView = new LogicView.DateView();
            meetTheConditionView.btnTitle.TextID = StringId.meetTheCondition;
            meetTheConditionView.FLayoutView(fLayout, 2);
@@ -600,8 +513,8 @@
            andConditionViews.btnLine.X = Application.GetRealWidth(20);
            andConditionViews.btnLine.Width = Application.GetRealWidth(303);
            andConditionViews.btnNextIcon.X = Application.GetRealWidth(303);
            andConditionViews.btnNextIcon.Width = Application.GetMinRealAverage(28);
            andConditionViews.btnNextIcon.Height = Application.GetMinRealAverage(28);
            andConditionViews.btnNextIcon.Width = Application.GetRealWidth(28);
            andConditionViews.btnNextIcon.Height = Application.GetRealWidth(28);
            andConditionViews.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
            andConditionViews.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
            meetTheConditionView.frameLayout.AddChidren(andConditionViews.FLayoutView());
@@ -616,8 +529,8 @@
            orConditionView.btnLine.X = Application.GetRealWidth(20);
            orConditionView.btnLine.Width = Application.GetRealWidth(303);
            orConditionView.btnNextIcon.X = Application.GetRealWidth(303);
            orConditionView.btnNextIcon.Width = Application.GetMinRealAverage(28);
            orConditionView.btnNextIcon.Height = Application.GetMinRealAverage(28);
            orConditionView.btnNextIcon.Width = Application.GetRealWidth(28);
            orConditionView.btnNextIcon.Height = Application.GetRealWidth(28);
            orConditionView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
            orConditionView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
            meetTheConditionView.frameLayout.AddChidren(orConditionView.FLayoutView());
@@ -666,7 +579,97 @@
            };
        }
        /// <summary>
        /// 星期周期转换值的方法
        /// </summary>
        /// <param name="list"></param>
        /// <param name="str_or_int"></param>
        /// <returns></returns>
        public List<string> GetWeekString(List<string> list, string str_or_int)
        {
            string weekTextName = "";
            List<string> stateList = new List<string>();
            for (int i = 0; i < list.Count; i++)
            {
                var s = list[i];
                if (str_or_int == "int")
                {
                    switch (s)
                    {
                        case "1":
                            {
                                weekTextName = Language.StringByID(StringId.monday);
                            }
                            break;
                        case "2":
                            {
                                weekTextName = Language.StringByID(StringId.tuesday);
                            }
                            break;
                        case "3":
                            {
                                weekTextName = Language.StringByID(StringId.wednesday);
                            }
                            break;
                        case "4":
                            {
                                weekTextName = Language.StringByID(StringId.thursday);
                            }
                            break;
                        case "5":
                            {
                                weekTextName = Language.StringByID(StringId.friday);
                            }
                            break;
                        case "6":
                            {
                                weekTextName = Language.StringByID(StringId.saturday);
                            }
                            break;
                        case "0":
                            {
                                weekTextName = Language.StringByID(StringId.sunday);
                            }
                            break;
                    }
                }
                else
                {
                    if (Language.StringByID(StringId.monday) == s)
                    {
                        weekTextName = "1";
                    }
                    else if (Language.StringByID(StringId.tuesday) == s)
                    {
                        weekTextName = "2";
                    }
                    else if (Language.StringByID(StringId.wednesday) == s)
                    {
                        weekTextName = "3";
                    }
                    else if (Language.StringByID(StringId.thursday) == s)
                    {
                        weekTextName = "4";
                    }
                    else if (Language.StringByID(StringId.friday) == s)
                    {
                        weekTextName = "5";
                    }
                    else if (Language.StringByID(StringId.saturday) == s)
                    {
                        weekTextName = "6";
                    }
                    else if (Language.StringByID(StringId.sunday) == s)
                    {
                        weekTextName = "0";
                    }
                }
                stateList.Add(weekTextName);
            }
            return stateList;
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -94,7 +94,7 @@
                    bghFrameLyout.AddChidren(areaBgh);
                    bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * roomList.Count);
                    areaBgh.Height = Application.GetRealHeight(44 * roomList.Count);
                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count+1}.png";
                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count}.png";
                }
                #endregion
@@ -135,6 +135,15 @@
            funAllAreaView.btnIcon1.MouseUpEventHandler += roomClick;
            //功能点击事件
            EventHandler<MouseEventArgs> funClick = (sender3, e3) =>{
                //获取最终显示列表
                var functionList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
                //获取设备列表的类型(例如:灯光类,窗帘类。。。)
                var deviceTypeList = LogicMethod.GetDeviceTypeList(functionList);
                if (deviceTypeList.Count==0) {
                    //没有类型直接返回去;
                    return;
                }
                #region 区域弹框界面
                FrameLayout fLayout = new FrameLayout
                {
@@ -171,10 +180,7 @@
                    Height = Application.GetRealHeight(44 * 5),
                };
                //获取最终显示列表
                var functionList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
                //获取设备列表的类型(例如:灯光类,窗帘类。。。)
                var deviceTypeList = LogicMethod.GetDeviceTypeList(functionList);
                if (deviceTypeList.Count > 5)
@@ -188,7 +194,7 @@
                    bghFrameLyout.AddChidren(areaBgh);
                    bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * deviceTypeList.Count);
                    areaBgh.Height = Application.GetRealHeight(44 * deviceTypeList.Count);
                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count+1}.png";
                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count}.png";
                }
                #endregion
@@ -213,7 +219,7 @@
                        funAllAreaView.btnText2.Text = areaView.btnClick.Tag.ToString();
                        ///获取单个类型(例如:灯光类。。)设备FunctionType列表
                        var typeFunctionList = LogicMethod.GetDeviceTypeFunctionList(areaView.btnClick.Tag.ToString());
                        ///获取单个类型(例如:灯光类。。)显示设备列表
                        ///获取单个灯光类型(例如:灯光1,灯光2。。)显示设备列表
                        var lists = LogicMethod.GetShowDeviceList(typeFunctionList, functionList);
                        DeviceListView(vv, lists);
                    };
HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -27,7 +27,7 @@
        /// <summary>
        /// 逻辑名称
        /// </summary>
        public string name = "逻辑一";
        public string name = "自动化";
        /// <summary>
        /// 逻辑条件关系(与and:,或:or)
        /// </summary>
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -4,7 +4,7 @@
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class LogicMethod
    {
        /// <summary>
@@ -77,7 +77,7 @@
                long m = (long)((dt - startTime).TotalMilliseconds / 10);
                string sTimeSpan = byteArrayToHexString(int2ByteArray(getTimeStamp()));
                logicId = sOidBeginsWith + sTimeSpan;
@@ -92,10 +92,10 @@
                    string s = Logic.LogicList[i].sid.Substring(20, 4);
                    int iThisSceneId = Convert.ToInt16(s, 16);
                    if (iThisSceneId > maxId)
                        maxId = iThisSceneId ;
                        maxId = iThisSceneId;
                }
                logicId += (maxId+1).ToString("X4");//逻辑号 两个byte
                logicId += (maxId + 1).ToString("X4");//逻辑号 两个byte
                logicId += "0000";
            }
            catch
@@ -125,7 +125,7 @@
        /// 获取网关房间列表
        /// </summary>
        /// <returns></returns>
        public static List<HDL_ON.Entity.Room> GetGatewayRoomList()
        public static List<HDL_ON.Entity.Room> GetGatewayRoomList()
        {
            return HDL_ON.Entity.DB_ResidenceData.residenceData.Rooms;
        }
@@ -133,7 +133,7 @@
        /// 获取网关房间列表
        /// </summary>
        /// <returns></returns>
        public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name)
        public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name)
        {
            List<Entity.Room> roomList = new List<Entity.Room>();
@@ -163,7 +163,7 @@
        /// <returns></returns>
        public static List<HDL_ON.Entity.Scene> GetSceneList()
        {
           return  HDL_ON.Entity.DB_ResidenceData.functionList.scenes;
            return HDL_ON.Entity.DB_ResidenceData.functionList.scenes;
        }
        /// <summary>
        /// 获取房间的设备列表
@@ -196,7 +196,7 @@
        /// <returns></returns>
        public static HDL_ON.Entity.Function GetDevice(string sid)
        {
            HDL_ON.Entity.Function device = new Entity.Function() { name= "Unknown"};
            HDL_ON.Entity.Function device = new Entity.Function() { name = "Unknown" };
            List<HDL_ON.Entity.Function> deviceLists = GetGatewayDeviceList();
            foreach (var dev in deviceLists)
            {
@@ -216,7 +216,7 @@
        /// <returns></returns>
        public static HDL_ON.Entity.Scene GetSecne(string sid)
        {
            HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown"};
            HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown" };
            List<HDL_ON.Entity.Scene> sceneLists = GetSceneList();
            foreach (var sce in sceneLists)
            {
@@ -294,17 +294,17 @@
        /// </summary>
        /// <param name="deviceList">设备列表</param>
        /// <returns></returns>
        public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList)
        public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList)
        {
            List<string> deviceStrTypeList = new List<string>();
            List<string> deviceStrTypeList = new List<string>();
            deviceStrTypeList.Clear();
            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer|| device.functionType == FunctionType.ColorTemperature || device.functionType == FunctionType.RGB|| device.functionType == FunctionType.RGBW);
            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer || device.functionType == FunctionType.ColorTemperature || device.functionType == FunctionType.RGB || device.functionType == FunctionType.RGBW);
            if (lightjosn != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.Lights));
            }
            var curtainjosn = deviceList.Find((device) => device.functionType ==FunctionType.Curtain|| device.functionType == FunctionType.MotorCurtain|| device.functionType == FunctionType.RollingShutter);
            var curtainjosn = deviceList.Find((device) => device.functionType == FunctionType.Curtain || device.functionType == FunctionType.MotorCurtain || device.functionType == FunctionType.RollingShutter);
            if (curtainjosn != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
@@ -360,11 +360,13 @@
        /// 条件/目标支持设备
        /// </summary>
        /// <returns></returns>
        public static List<FunctionType> GetSupportEquipment(string if_type)
        public static List<FunctionType> GetSupportEquipment(string if_type)
        {
            List<FunctionType> deviceTypeList = new List<FunctionType>();
            switch (if_type) {
                case condition_if: {
            switch (if_type)
            {
                case condition_if:
                    {
                        deviceTypeList.Add(FunctionType.Relay);
                        deviceTypeList.Add(FunctionType.RGB);
                        deviceTypeList.Add(FunctionType.RGBW);
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs
@@ -30,8 +30,8 @@
        /// </summary>
        public Button btnIcon= new Button
        {
            Width= Application.GetMinRealAverage(28),
            Height =Application.GetMinRealAverage(28),
            Width= Application.GetRealWidth(28),
            Height =Application.GetRealWidth(28),
            //Y = Application.GetRealHeight(8),
            X = Application.GetRealWidth(TextSize.left12),
            
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs
@@ -64,7 +64,7 @@
            TextID = StringId.timeTipText,
            TextSize = TextSize.text12,
            TextColor = CSS.CSS_Color.textRedColor,
            Width = Application.GetRealWidth(306),
            Width = Application.GetRealWidth(340-20),
            Height = Application.GetRealHeight(17),
            X = Application.GetRealWidth(20),
            Y = Application.GetRealHeight(58),
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -70,6 +70,7 @@
                    Send.switchLogic(currLogic);
                };
                GetSelectIcon(logicView.frameLayout, currLogic);
                //if (i==0)降序排列
                if (Logic.LogicList.Count - 1 == i)
                {
@@ -164,32 +165,31 @@
        public static string GetWeekString(List<string> weekList)
        {
            string weekTextName = "";
            if (weekList.Contains("0"))
            if (weekList.Contains("1"))
            {
                weekTextName += Language.StringByID(StringId.monday) + ",";
            }
            if (weekList.Contains("1"))
            if (weekList.Contains("2"))
            {
                weekTextName += Language.StringByID(StringId.tuesday) + ",";
            }
            if (weekList.Contains("2"))
            if (weekList.Contains("3"))
            {
                weekTextName += Language.StringByID(StringId.wednesday) + ",";
            }
            if (weekList.Contains("3"))
            if (weekList.Contains("4"))
            {
                weekTextName += Language.StringByID(StringId.thursday) + ",";
            }
            if (weekList.Contains("4"))
            if (weekList.Contains("5"))
            {
                weekTextName += Language.StringByID(StringId.friday) + ",";
            }
            if (weekList.Contains("5"))
            if (weekList.Contains("6"))
            {
                weekTextName += Language.StringByID(StringId.saturday) + ",";
            }
            if (weekList.Contains("6"))
            if (weekList.Contains("0"))
            {
                weekTextName += Language.StringByID(StringId.sunday) + ",";
            }
@@ -199,6 +199,8 @@
            }
            return weekTextName.TrimEnd(',');
        }
        /// <summary>
        /// 获取每月的字符串
        /// </summary>
@@ -231,7 +233,7 @@
            List<string> logicIdList = new List<string>();
            //获取逻辑ID列表
            var idStr = Send.getLogicIdList();
            if (idStr.Code == "0" && idStr.Data != null&& idStr.Data.ToString()!="")
            if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "")
            {
                var date = Newtonsoft.Json.JsonConvert.SerializeObject(idStr.Data);
                var dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Date>>(date);
@@ -283,6 +285,153 @@
            }
            return false;
        }
        /// <summary>
        /// 显示条件或者目标类型图标
        /// </summary>
        /// <param name="layouFrame">父控件</param>
        /// <param name="logic">当前逻辑</param>
        private static void GetSelectIcon(FrameLayout layouFrame, Logic logic)
        {
            //重新排列图标序号
            List<int> iconIntValue = new List<int>();
            iconIntValue.Clear();
            //1-10(表示条件图标)自己局部定义为了显示选中条件类型图标
            //1-时间图标
            //2-功能图标
            for (int i = 0; i < logic.input.Count; i++)
            {
                var int1 = int.Parse(logic.input[i].condition_type);
                int iconInt = 0;
                switch (int1)
                {
                    case 1:
                    case 2:
                        {
                            iconInt = 1;
                        }
                        break;
                    case 3:
                        {
                            iconInt = 2;
                        }
                        break;
                }
                if (!iconIntValue.Contains(iconInt))
                {
                    iconIntValue.Add(iconInt);
                }
            }
            //分割条件和目标的图标
            iconIntValue.Add(11);
            //12-20(表示目标图标)自己局部定义为了显示选中目标类型图标
            //12-功能图标
            //13-场景图标
            //14-延时图标
            for (int i = 0; i < logic.output.Count; i++)
            {
                var int1 = int.Parse(logic.output[i].target_type);
                int iconInt = 0;
                switch (int1)
                {
                    case 1:
                        {
                            iconInt = 12;
                        }
                        break;
                    case 2:
                        {
                            iconInt = 13;
                        }
                        break;
                    case 3:
                        {
                            iconInt = 14;
                        }
                        break;
                }
                if (!iconIntValue.Contains(iconInt))
                {
                    iconIntValue.Add(iconInt);
                }
            }
            //图标控件的父控件
            FrameLayout frame = new FrameLayout {
                Height=Application.GetRealHeight(40),
                Width=Application.GetRealWidth(275),
                Y= Application.GetRealHeight(56),
            };
            layouFrame.AddChidren(frame);
            for (int i = 0; i < iconIntValue.Count; i++)
            {
                //图标控件
                Button btnIcon = new Button
                {
                    Width = Application.GetRealWidth(28),
                    Height = Application.GetRealWidth(28),
                    Gravity=Gravity.CenterVertical,
                };
                frame.AddChidren(btnIcon);
                if (i == 0)
                {
                    btnIcon.X = Application.GetRealWidth(12);
                }
                else
                {
                    btnIcon.X = Application.GetRealWidth(12+(28+4)*i);
                }
                string strIcon = "";
                switch (iconIntValue[i]) {
                    case 1: {
                            strIcon = "LogicIcon/selectTheTime.png";
                        }
                        break;
                    case 2:
                        {
                            strIcon = "LogicIcon/selectTheFun.png";
                        }
                        break;
                    case 11:
                        {
                            //分割条件和目标的图标
                            strIcon = "LogicIcon/link.png";
                        } break;
                    case 12:
                        {
                            strIcon = "LogicIcon/selectTheFun.png";
                        }
                        break;
                    case 13: {
                            strIcon = "LogicIcon/selectTheScene.png";
                        } break;
                    case 14: {
                            //strIcon = "LogicIcon/timeicon.png";
                        }
                        break;
                }
                btnIcon.UnSelectedImagePath = strIcon;
            }
        }
    }
    class Date
    {
HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
New file
@@ -0,0 +1,145 @@
using System;
using System.Collections.Generic;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class PublicInterface
    {
        /// <summary>
        /// 单选择
        /// </summary>
        /// <param name="frameLayout">父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="titleText"></param>
        /// <param name="stateText">之前状态文本</param>
        /// <param name="action">返回值</param>
        public void SingleSelectionShow(FrameLayout frameLayout, List<string> list, string titleText, string stateText, Action<string> action)
        {
            LogicView.DateView view = new LogicView.DateView();
            view.btnTitle.Text = titleText;
            view.FLayoutView(frameLayout, list.Count);
            view.btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
            ///定义一个Btn记录选中状态
            Button checkBtn = new Button
            {
                Tag = "unknown",
            };
            for (int i = 0; i < list.Count; i++)
            {
                string str = list[i];
                LogicView.CheckView checkView = new LogicView.CheckView();
                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                view.frameLayout.AddChidren(checkView.FLayoutView());
                checkView.btnText.Text = str;
                checkView.btnClick.Tag = str;//标记
                if (stateText == str)
                {
                    //显示之前的选中状态
                    checkBtn.IsSelected = false;
                    checkView.btnCheckIcon.IsSelected = true;
                    checkBtn = checkView.btnCheckIcon;
                    checkBtn.Tag = checkView.btnClick.Tag.ToString();
                }
                //点击事件
                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                {
                    checkBtn.IsSelected = false;
                    checkView.btnCheckIcon.IsSelected = true;
                    checkBtn = checkView.btnCheckIcon;
                    checkBtn.Tag = checkView.btnClick.Tag.ToString();
                };
            }
            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (checkBtn.Tag.ToString() == "unknown")
                {
                    return;
                }
                action(checkBtn.Tag.ToString());
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
        }
        /// <summary>
        /// 多选择
        /// </summary>
        /// <param name="frameLayout">父控件</param>
        /// <param name="list">显示数据源</param>
        /// <param name="titleText"></param>
        /// <param name="stateTextList">之前状态文本</param>
        /// <param name="action">返回值</param>
        public void MultiSelectShow(FrameLayout frameLayout, List<string> list, string titleText, List<string> stateTextList, Action<List<string>> action)
        {
            LogicView.DateView view = new LogicView.DateView();
            view.btnTitle.Text = titleText;
            view.FLayoutView(frameLayout, list.Count);
            view.btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                //移除fLayout界面
                view.frameLayout.RemoveFromParent();
            };
            for (int i = 0; i < list.Count; i++)
            {
                string str = list[i];
                LogicView.CheckView checkView = new LogicView.CheckView();
                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                view.frameLayout.AddChidren(checkView.FLayoutView());
                checkView.btnText.Text = str;
                checkView.btnClick.Tag = str;//标记
                if (stateTextList.Contains(str))
                {
                    //显示之前的选中状态
                    checkView.btnCheckIcon.IsSelected = true;
                }
                //点击事件
                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                {
                    string clickIndex = checkView.btnClick.Tag.ToString();
                    checkView.btnClick.IsSelected = !checkView.btnClick.IsSelected;
                    if (checkView.btnClick.IsSelected)
                    {
                        checkView.btnCheckIcon.IsSelected = true;
                        if (!stateTextList.Contains(clickIndex))
                        {
                            //添加选中数据
                            stateTextList.Add(clickIndex);
                        }
                    }
                    else
                    {
                        checkView.btnCheckIcon.IsSelected = false;
                        if (stateTextList.Contains(clickIndex))
                        {
                            //移除选中数据
                            stateTextList.Remove(clickIndex);
                        }
                    }
                };
            }
            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
            {
                if (stateTextList.Count == 0)
                {
                    return;
                }
                action(stateTextList);
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -1,4 +1,4 @@
using System;
using System;
using System.IO;
using System.Net;
using HDL_ON.DAL.Server;
@@ -9,23 +9,37 @@
{
    public  class Send
    {
        /// <summary>
        /// 住宅ID
        /// </summary>
        public static string homeId = UserInfo.Current.CurReginID;
        /// <summary>
        /// 网关ID
        /// </summary>
        public static string gatewayId = DriverLayer.Control.Ins.GatewayId;
        ///// <summary>
        ///// 网关ID
        ///// </summary>
        //public static string gatewayId =Entity.DB_ResidenceData.residenceData.HomeGateway.gatewayId;
        ///// <summary>
        ///// 住宅ID
        ///// </summary>
        //public static string homeId = Entity.DB_ResidenceData.residenceData.HomeGateway.homeId;
        //public static string homeId = Entity.DB_ResidenceData.residenceData.CurReginID;
        ///// <summary>
        ///// 网关ID(秀桡有网关ID却返回是MAC)
        ///// </summary>
        //public static string gatewayId = DriverLayer.Control.Ins.GatewayId;
        public static string homeId = UserInfo.Current.CurReginID;
        /// <summary>
        /// 网关ID(获取嘉乐网关ID)
        /// </summary>
        public static string gatewayId
        {
            get
            {
                if (Entity.DB_ResidenceData.residenceData.HomeGateway == null)
                {
                    return "";
                }
                return Entity.DB_ResidenceData.residenceData.HomeGateway.gatewayId;
            }
        }
        /// <summary>
        /// 住宅ID
        /// </summary>
        public static string homeId = Entity.DB_ResidenceData.residenceData.residecenInfo.RegionID;
        /// <summary>
        /// 获取逻辑ID列表
@@ -35,6 +49,12 @@
        {
            var jObject = new JObject { { "homeId", homeId } };
            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List);
            //如果是token过期则刷新token
            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
            {
                RefreshToken();
                getLogicIdList();
            }
            return responsePackNew;
        }
        /// <summary>
@@ -51,6 +71,12 @@
            }
            var jObject = new JObject { { "userLogicIds", jArray } };
            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info);
            //如果是token过期则刷新token
            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
            {
                RefreshToken();
                getLogic(listIdList);
            }
            return responsePackNew;
        }
        /// <summary>
@@ -124,6 +150,12 @@
                logicjArray.Add(logicIfon);
                var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } };
                responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add);
                //如果是token过期则刷新token
                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
                {
                    RefreshToken();
                    AddLogic(logic);
                }
            }
            catch (Exception e)
@@ -206,7 +238,12 @@
                logicjArray.Add(logicIfon);
                var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } };
                responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update);
                //如果是token过期则刷新token
                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
                {
                    RefreshToken();
                    updateLogic(logic);
                }
            }
            catch (Exception e)
            {
@@ -226,6 +263,12 @@
            jArray.Add(logic.userLogicId);
            var jObject = new JObject { { "userLogicIds", jArray } };
            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete);
            //如果是token过期则刷新token
            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
            {
                RefreshToken();
                delLogic(logic);
            }
            return responsePackNew;
        }
        /// <summary>
@@ -239,6 +282,12 @@
            jArray.Add(job);
            var jObject = new JObject { { "logics", jArray } };
            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Enable);
            //如果是token过期则刷新token
            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
            {
                RefreshToken();
                switchLogic(logic);
            }
            return responsePackNew;
        }
        /// <summary>
@@ -261,6 +310,13 @@
            return HttpUtil.RequestHttpsPost(api_Url, requestJson);
        }
        /// <summary>
        /// 刷新Token
        /// </summary>
        public static void RefreshToken()
        {
            IMessageCommon.Current.StartRefreshToken();
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
@@ -189,7 +189,7 @@
            {
                TextSize = LogicView.TextSize.text12,
                Width = Application.GetRealWidth(32 + 3),
                Height = Application.GetRealHeight(20),
                Height = Application.GetRealHeight(17),
                TextColor = CSS.CSS_Color.textCancelColor,
                Y = Application.GetRealHeight(17),
                X = Application.GetRealWidth(260),
@@ -212,7 +212,7 @@
            {
                TextSize = LogicView.TextSize.text12,
                Width = Application.GetRealWidth(32 + 3),
                Height = Application.GetRealHeight(20),
                Height = Application.GetRealHeight(17),
                TextColor = CSS.CSS_Color.textCancelColor,
                Y = Application.GetRealHeight(17),
                X = Application.GetRealWidth(260),