| | |
| | | List<FilterEntity> _filterList = new List<FilterEntity>(); |
| | | |
| | | public string strType = "";//类别(普通信息,认证信息) |
| | | /// <summary> |
| | | /// DefectCode类的构造函数 |
| | | /// </summary> |
| | | /// <param name="_strType">传入的类型参数(如"QC基础资料",用于标识数据类别)</param> |
| | | public DefectCode(string _strType) |
| | | { |
| | | // 1. 初始化控件布局(设计器自动生成的方法,设置控件位置、大小等) |
| | | InitializeComponent(); |
| | | // 将传入的类型参数赋值给类的成员变量(后续逻辑中使用) |
| | | strType = _strType; |
| | | |
| | | // 2. 绑定工具栏按钮事件(加载、查询) |
| | | // 绑定"加载"按钮点击事件:点击后触发 ToolBarMenu1_btnLoadClick 方法 |
| | | toolBarMenu1.btnLoadClick += ToolBarMenu1_btnLoadClick; |
| | | // 绑定"查询"按钮点击事件:点击后触发 ToolBarMenu1_btnQueryClick 方法 |
| | | this.toolBarMenu1.btnQueryClick += ToolBarMenu1_btnQueryClick; |
| | | |
| | | |
| | | // 3. 配置树形列表(tlMenu)的序号列样式 |
| | | // 设置树形列表的"序号列"宽度为50像素 |
| | | tlMenu.IndicatorWidth = 50; |
| | | // 绑定"自定义绘制序号列"事件:自定义序号显示逻辑 |
| | | tlMenu.CustomDrawNodeIndicator += (s, ee) => |
| | | { |
| | | // 判断当前绘制的是"序号列" |
| | | if (ee.IsNodeIndicator) |
| | | { |
| | | // 获取当前节点在可见列表中的索引(从0开始) |
| | | var index = ee.Node.TreeList.GetVisibleIndexByNode(ee.Node); |
| | | // 序号显示为"索引+1"(从1开始计数) |
| | | ee.Info.DisplayText = (index + 1).ToString(); |
| | | } |
| | | }; |
| | | |
| | | |
| | | // 4. 初始加载第一页数据 |
| | | getPageList(1); |
| | | |
| | | |
| | | // 5. 绑定树形列表鼠标点击事件(后续可在 TlMenu_MouseDown 中处理点击逻辑) |
| | | this.tlMenu.MouseDown += TlMenu_MouseDown; |
| | | |
| | | |
| | | // 6. 绑定"添加子节点"菜单按钮事件(右键菜单或工具栏按钮) |
| | | this.toolStripMenuItemAdd.Click += (s, ee) => |
| | | { |
| | | // 初始化节点ID(新增节点暂未生成ID,为空) |
| | | string strGuid = ""; |
| | | // 父节点ID:如果选中了某个节点,则以该节点为父节点;否则父节点为空(顶级节点) |
| | | string strUpGuid = ""; |
| | | if (tlMenu.FocusedNode != null) |
| | | { |
| | | // 获取选中节点的"guid"字段值,作为新节点的父ID |
| | | strUpGuid = tlMenu.FocusedNode.GetValue("guid").ToString(); |
| | | } |
| | | Frm_MesDefectCodeShow frm = new Frm_MesDefectCodeShow(strGuid, strUpGuid,strType); |
| | | |
| | | // 打开新增节点的弹窗(参数:节点ID、父节点ID、数据类型) |
| | | Frm_MesDefectCodeShow frm = new Frm_MesDefectCodeShow(strGuid, strUpGuid, strType); |
| | | // 绑定弹窗的"更新父控件"事件:弹窗关闭后刷新当前页面数据 |
| | | frm.UpdateParent += (s2, ee2) => |
| | | { |
| | | getPageList(1); |
| | | getPageList(1); // 重新加载第一页数据 |
| | | }; |
| | | // 以模态窗口显示弹窗(阻塞当前界面,直到弹窗关闭) |
| | | frm.ShowDialog(); |
| | | }; |
| | | |
| | | |
| | | // 7. 绑定"添加根节点"菜单按钮事件 |
| | | this.toolStripMenuItemRoot.Click += (s, ee) => |
| | | { |
| | | // 新增根节点:节点ID和父节点ID均为空(无父节点) |
| | | string strGuid = ""; |
| | | string strUpGuid = ""; |
| | | // 打开新增弹窗(明确添加根节点,父ID为空) |
| | | Frm_MesDefectCodeShow frm = new Frm_MesDefectCodeShow(strGuid, strUpGuid, strType); |
| | | // 弹窗关闭后刷新数据 |
| | | frm.UpdateParent += (s2, ee2) => |
| | | { |
| | | getPageList(1); |
| | | }; |
| | | frm.ShowDialog(); |
| | | }; |
| | | |
| | | |
| | | // 8. 绑定"删除节点"菜单按钮事件 |
| | | this.toolStripMenuItemDel.Click += (s, ee) => |
| | | { |
| | | // 判断是否选中了节点(未选中则提示) |
| | | if (tlMenu.FocusedNode != null) |
| | | { |
| | | // 获取选中节点的ID和名称(用于删除确认) |
| | | string rowGuid = ""; |
| | | string rowName = ""; |
| | | rowGuid = tlMenu.FocusedNode.GetValue("guid").ToString(); |
| | | rowName = tlMenu.FocusedNode.GetValue("defectName").ToString(); |
| | | |
| | | // 节点ID为空时提示(异常情况处理) |
| | | if (string.IsNullOrEmpty(rowGuid)) |
| | | { |
| | | ToolBox.MsgHelper.Warning("请先选择你要操作的行!"); |
| | | return; |
| | | } |
| | | |
| | | // 弹出确认框:提示用户是否删除选中的节点 |
| | | if (!MsgHelper.AskQuestion("你选择了【" + rowName + "】,确定删除吗?")) |
| | | return; |
| | | return; // 用户取消删除,直接返回 |
| | | |
| | | // 准备删除参数:将节点ID存入列表(适配接口参数格式) |
| | | List<dynamic> lst = new List<dynamic>(); |
| | | lst.Add(rowGuid); |
| | | var _obj = lst; |
| | | |
| | | try |
| | | { |
| | | // 调用WebService接口删除节点(POST请求,传入节点ID列表) |
| | | string strJson = UtilityHelper.HttpPost("", _webServiceName + "DeleteModel", JsonConvert.SerializeObject(_obj)); |
| | | // 解析接口返回结果 |
| | | ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); |
| | | |
| | | // 接口返回成功(rtnCode>0):从树形列表中移除该节点 |
| | | if (_rtn.rtnCode > 0) |
| | | { |
| | | tlMenu.DeleteNode(tlMenu.FocusedNode); |
| | | } |
| | | // 接口返回失败:提示错误信息 |
| | | else |
| | | ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); |
| | | } |
| | | // 捕获异常(如网络错误、接口报错)并提示 |
| | | catch (Exception ex) |
| | | { |
| | | ToolBox.MsgHelper.Warning("提示:" + ex.Message); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | |
| | | // 9. 绑定"编辑节点"菜单按钮事件 |
| | | this.toolStripMenuItemEdt.Click += (s, ee) => |
| | | { |
| | | // 节点ID:选中节点的ID(用于回显数据) |
| | | string strGuid = ""; |
| | | // 父节点ID:选中节点的父ID(编辑时保持父节点不变) |
| | | string strUpGuid = ""; |
| | | if (tlMenu.FocusedNode != null) |
| | | { |
| | | strGuid = tlMenu.FocusedNode.GetValue("guid").ToString(); |
| | | strUpGuid = tlMenu.FocusedNode.GetValue("pid").ToString(); |
| | | } |
| | | |
| | | // 打开编辑弹窗(参数:节点ID、父节点ID、数据类型) |
| | | Frm_MesDefectCodeShow frm = new Frm_MesDefectCodeShow(strGuid, strUpGuid, strType); |
| | | // 弹窗关闭后刷新当前页面数据 |
| | | frm.UpdateParent += (s2, ee2) => |
| | | { |
| | | getPageList(1); |
| | |
| | | frm.ShowDialog(); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 右键弹出菜单,如果是行,增加子项目,否则增加主项 |
| | | /// </summary> |