陈嘉乐
2020-12-11 0414d9754bc61b5e496930ff184ede647ab4cc3a
2020-12-11-1
2个文件已添加
6个文件已修改
470 ■■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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/Entity/FunctionList.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs 265 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,20 +1,41 @@
<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget.D4411691-F5B8-40F4-97C1-964F33115DBC" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/DAL/Server/HttpUtil.cs">
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs">
    <Files>
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs" Line="184" Column="58" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs" Line="293" Column="79" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs" />
      <File FileName="HDL_ON/Entity/FunctionList.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs" />
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="186" Column="99" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs" />
      <File FileName="HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs" Line="34" Column="69" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs" Line="486" Column="31" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs" Line="52" Column="45" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs" Line="103" Column="30" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs" Line="103" Column="11" />
      <File FileName="HDL_ON/Entity/FunctionList.cs" Line="40" Column="22" />
      <File FileName="HDL_ON/Entity/FunctionList.cs" Line="613" Column="1" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs" Line="199" Column="14" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs" Line="328" Column="72" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
        <State name="__root__">
          <Node name="HDL_APP_Project" expanded="True">
            <Node name="HDL_ON" expanded="True">
              <Node name="Entity" expanded="True" />
              <Node name="UI" expanded="True">
                <Node name="UI2" expanded="True">
                  <Node name="3-Intelligence" expanded="True">
                    <Node name="Automation" expanded="True">
                      <Node name="LogicView" expanded="True" />
                      <Node name="PublicInterface.cs" selected="True" />
                    </Node>
                  </Node>
                </Node>
              </Node>
            </Node>
            <Node name="HDL-ON_Android" expanded="True">
              <Node name="Assets" expanded="True" />
            </Node>
          </Node>
        </State>
      </Pad>
    </Pads>
  </MonoDevelop.Ide.Workbench>
  <MonoDevelop.Ide.DebuggingService.PinnedWatches />
  <DisabledProjects>
@@ -23,7 +44,7 @@
    <String>Shared.IOS/Shared.IOS.csproj</String>
  </DisabledProjects>
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.4b65c4650918" />
  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.364c4b3158493098" />
  <MonoDevelop.Ide.DebuggingService.Breakpoints>
    <BreakpointStore>
      <Breakpoint file="/Users/hdl/Desktop/wjc/HDL_APP_Project/HDL_ON/DAL/Mqtt/MqttClient.cs" relfile="HDL_ON/DAL/Mqtt/MqttClient.cs" line="529" column="1" />
.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/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
@@ -128,12 +128,8 @@
            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);
            };
@@ -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.GetRealWidth(28);
                weekTypeView.btnNextIcon.Height = Application.GetRealWidth(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);
@@ -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/MainView.cs
@@ -165,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) + ",";
            }
@@ -200,6 +199,8 @@
            }
            return weekTextName.TrimEnd(',');
        }
        /// <summary>
        /// 获取每月的字符串
        /// </summary>
HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -1,10 +1,145 @@
using System;
using System.Collections.Generic;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class PublicInterface
    {
        public 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();
            };
        }
    }
}