123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- /****************************************************************************
- * 2021.7 DESKTOP-CLH3E67
- ****************************************************************************/
- using UniRx;
- using UnityEngine;
- using UnityEngine.UI;
- namespace QFramework
- {
- public partial class UITreeNode01 : UIElement
- {
- private TreeNodeItem _treeNodeItemModel;
- public Sprite expandNodeSprite;
- /// <summary>
- /// 收缩时效果
- /// </summary>
- public Sprite m_ShrinkNodeSprite;
-
- /// <summary>
- /// 初始化方法
- /// </summary>
- /// <param name="treeNodeItem">节点数据模型</param>
- public void Init(TreeNodeItem treeNodeItem,ToggleGroup _group)
- {
- _treeNodeItemModel = treeNodeItem;
- selectToggle.group = _group;
- string conent = string.Empty;
- string tmpNumber = LUtilitys.DigitalToChinese(int.Parse(treeNodeItem.index));
- conent = tmpNumber + " " + _treeNodeItemModel.Content.Value;
- if (conent.Contains("%"))
- {
- conent = conent.Split('%')[0];
- }
- else if (conent.Contains("@"))
- {
- conent = conent.Split('@')[0];
- }
- // 监测(监听)内容数据
- _treeNodeItemModel.Content.Subscribe(content => contentText.text = conent);
- // 根据数据模型的ShowHidden值监测,确定显示隐藏该Node
- _treeNodeItemModel.ShowHidden.Subscribe(value =>
- {
- if (value)
- Show();
- else
- Hide();
- });
- // 根据数据模型的Layer值检测,改变Node位置
- _treeNodeItemModel.Layer.Subscribe(layer =>
- {
- var indentDistance = 15 * (layer - 1);
- });
- // 如果没有子节点,隐藏Toggle
- if (treeNodeItem.ChildTreeNodeList.TreeNodeItems.Count == 0)
- {
- selectToggle.Hide();
- }
- else
- {
- selectToggle.isOn = false;
- selectToggle.onValueChanged.AddListener(on =>
- {
- _treeNodeItemModel.ExPanded.Value = on;
- });
-
- // 监测节点展开状态数据
- _treeNodeItemModel.ExPanded.Subscribe(on =>
- {
- if (on)
- {
- NewOperation(_treeNodeItemModel.equipmentUniqueID);
-
- ChangeChilderNodeItemState(treeNodeItem.ChildTreeNodeList.TreeNodeItems, true);
- ExpandImg.Show();
- RecoverImg.Hide();
- selectToggle.targetGraphic = ExpandImg;
- selectIcon.sprite = expandNodeSprite;
- }
- else
- {
- ChangeChilderNodeItemState(treeNodeItem.ChildTreeNodeList.TreeNodeItems, false);
- ExpandImg.Hide();
- RecoverImg.Show();
- selectToggle.targetGraphic = RecoverImg;
- selectIcon.sprite = m_ShrinkNodeSprite;
- }
- });
- }
- // 节点点击事件添加
- clickButton.GetComponent<ClickButton>().onLeftClick.AddListener(() => NodeButtonLeftClick(treeNodeItem));
- }
- private void NodeButtonLeftClick(TreeNodeItem _treeNodeItemModel)
- {
- selectToggle.isOn = true;
-
- // 重置
- //TreeNodeData.Instance.ResetFontColor(_treeNodeItemModel.Content.Value);
-
- //NewOperation(_treeNodeItemModel.equipmentUniqueID);
- }
- /// <summary>
- /// 切换节点状态
- /// </summary>
- /// <param name="nodeList"></param>
- /// <param name="hide"></param>
- public void ChangeChilderNodeItemState(ReactiveCollection<TreeNodeItem> nodeList, bool hide = false)
- {
- nodeList.ForEach(item =>
- {
- item.ShowHidden.Value = hide;
- if (hide == true && item.ExPanded.Value == false) return;
- if (item.ChildTreeNodeList.TreeNodeItems.Count != 0)
- {
- ChangeChilderNodeItemState(item.ChildTreeNodeList.TreeNodeItems, hide);
- }
- });
- }
- /// <summary>
- /// 新增操作
- /// </summary>
- /// <param name="_uniqueID"></param>
- public void NewOperation(int _uniqueID)
- {
- CameraJumpManager.Instance.SetCameraPosture(_uniqueID);
- }
- }
- }
|