98 lines
3.6 KiB
C#

using CG.Framework;
using CG.UTility;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/*******************************************************************************
*Create By CG
*Function 操作步骤栏控制 安装部署
*******************************************************************************/
namespace ZXK.GYJQR
{
public class OperationStepAZBSPanel : OperationStepPanel
{
protected override void Awake()
{
base.Awake();
GameManager.Instance._DataAZBSHandler.CurAZBShandler.OnValueChanged += OnCountChanged;
AddEventListener("ShrinkBtn_N", UIEventType.OnButtonClick, Shrink);
AddEventListener("ExtBtn_N", UIEventType.OnButtonClick, Extend);
}
/// <summary>
/// 实例化数据到流程栏
/// </summary>
/// <param name="partsInfo"></param>
public void InitData(List<AZBS> partsInfo, AZBS selectItem)
{
List<string[]> parts = new List<string[]>();
for (int i = 0; i < partsInfo.Count; i++)
{
parts.Add(new string[] { partsInfo[i].id.ToString(), partsInfo[i].stepName, partsInfo[i].stepNameChild });
}
List<GameObject> stepchildrenBtns = InitStepDataUI(parts);
for (int i = 0; i < stepchildrenBtns.Count; i++)
{
GameObject btn = stepchildrenBtns[i];
btn.GetComponent<Button>().onClick.AddListener(() =>
{
foreach (AZBS item in GameManager.Instance._DataAZBSHandler.AZBSDataArray)
{
if (item.stepName.Equals(btn.name))
{
StepManager.Instance.OnSwitchInit(
GameManager.Instance._DataAZBSHandler.CurAZBShandler.Value
, item);
GameManager.Instance._DataAZBSHandler.CurAZBShandler.Value = item;
StepManager.Instance.OnExcuteAZBS(ExcuteState.Excute);
break;
}
}
});
}
GameManager.Instance._DataAZBSHandler.CurAZBShandler.Value = selectItem;
StepManager.Instance.OnExcuteAZBS(ExcuteState.Excute);
}
protected override void OnDestroy()
{
base.OnDestroy();
GameManager.Instance._DataAZBSHandler.CurAZBShandler.OnValueChanged -= OnCountChanged;
GameManager.Instance._DataAZBSHandler.CurAZBShandler.Value = new AZBS();
}
/// <summary>
/// 收回步骤流程面板
/// </summary>
private void Shrink()
{
ShrinkPanel(GameManager.Instance._DataAZBSHandler.CurAZBShandler.Value.stepNameChild);
}
/// <summary>
/// 伸展步骤流程面板
/// </summary>
private void Extend()
{
Extpanel();
}
private void OnCountChanged(AZBS obj)
{
StepManager.Instance.OnReset();
ItemChanged(obj.stepName);
GameObject focusGeo = GetWedage("FocusStep_N");
focusGeo.transform.Find("Stepdetail").GetComponent<Text>().text = GameManager.Instance._DataAZBSHandler.CurAZBShandler.Value.stepNameChild;
}
/// <summary>
/// 显示其他部件
/// </summary>
public void ShowPartsWithName(GameObject obj)
{
List<GameObject> parts = ModelManager.Instance.azbsParts;
foreach (var item in parts)
{
item.SetActive(true);
}
}
}
}