using AutoMapper; using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; using static GameManager; /// /// 端口-编辑 /// public class RedactPort : MonoBehaviour { public Body mybody = new Body(); public Root URlreturn; //public PortQuery.Root root; public Button save_bt; PortQuery.PortList portlist; /// /// 端口 /// //public Dropdown port; public InputField port; /// /// 编号 /// public InputField portCode; /// /// 名称 /// public InputField portName; /// /// 线缆组名称 /// public Dropdown cableGroupName; ///// ///// 所属设备 ///// //public InputField deviceId; /// /// 型号 /// public InputField portModel; /// /// 状态 /// public Dropdown status; /// /// 对联设备 /// public Dropdown conDevice; /// /// 对联端口 /// public Dropdown conPort; public InputField cableName; //MapperConfiguration config; //IMapper mapper; private void OnEnable() { //config = new MapperConfiguration(cfg => //{ // cfg.CreateMap(); // cfg.CreateMap(); //}); //mapper = config.CreateMapper(); //try //{ // if (!string.IsNullOrEmpty(GameManager.Inst.nowDeviceID)) // { // for (int i = 0; i < GameManager.Inst.TmsPorts.Count; i++) // { // if (GameManager.Inst.TmsPorts[i].id == GameManager.Inst.nowDeviceID) // { // portlist = GameManager.Inst.TmsPorts[i]; // break; // } // } // mybody = mapper.Map(portlist); // } //} //catch (Exception e) //{ // Debug.Log(e.StackTrace + "**********" + e.Message); //} syncInfo(); #region 正式 init(); port.text = mybody.port; portCode.text = mybody.portCode; portName.text = mybody.portName; cableGroupName.captionText.text = mybody.cableGroupName; cableName.text = mybody.cableName; //deviceId.text = mybody.deviceId; portModel.text = mybody.portModel; conDevice.captionText.text = mybody.conDevice; status.value = string.IsNullOrEmpty(mybody.status) ? 2 : Convert.ToInt32(mybody.status); if (!string.IsNullOrEmpty(mybody.conDevice)) { //自动识别对联设备 for (int i = 0; i < conDevice.options.Count; i++) { if (conDevice.options[i].text == mybody.conDevice) { conDevice.value = 0; conDevice.value = i; break; } } } else { conDevice.captionText.text = null; } #endregion } /// /// 同步信息 /// public void syncInfo(string nowDeviceID) { mybody = new Body(); //config = new MapperConfiguration(cfg => //{ // cfg.CreateMap(); // cfg.CreateMap(); //}); //mapper = config.CreateMapper(); try { if (!string.IsNullOrEmpty(GameManager.Inst.nowDeviceID)) { for (int i = 0; i < GameManager.Inst.TmsPorts.Count; i++) { if (GameManager.Inst.TmsPorts[i].id == GameManager.Inst.nowDeviceID) { portlist = GameManager.Inst.TmsPorts[i]; break; } } //mybody = mapper.Map(portlist); if (portlist != null) { mybody.id = portlist.id; mybody.port = portlist.port; mybody.portCode = portlist.portCode; mybody.portName = portlist.portName; mybody.portType = portlist.portType; mybody.deviceId = portlist.deviceId; mybody.deviceName = portlist.deviceName; mybody.portModel = portlist.portModel; mybody.status = portlist.status; mybody.conDevice = portlist.conDevice; mybody.conDevice = portlist.conDeviceName; mybody.conPort = portlist.conPort; mybody.cableName = portlist.cableName; mybody.cableGroupName = portlist.cableGroupName; mybody.remark = portlist.remark; mybody.createTime = portlist.createTime; mybody.createName = portlist.createName; } } } catch (Exception e) { Debug.Log(e.StackTrace + "**********" + e.Message); } } /// /// 同步信息 /// public void syncInfo() { //config = new MapperConfiguration(cfg => //{ // cfg.CreateMap(); // cfg.CreateMap(); //}); //mapper = config.CreateMapper(); try { if (!string.IsNullOrEmpty(GameManager.Inst.nowDeviceID)) { for (int i = 0; i < GameManager.Inst.TmsPorts.Count; i++) { if (GameManager.Inst.TmsPorts[i].id == GameManager.Inst.nowDeviceID) { portlist = GameManager.Inst.TmsPorts[i]; break; } } //mybody = mapper.Map(portlist); if (portlist != null) { mybody.id = portlist.id; mybody.port = portlist.port; mybody.portCode = portlist.portCode; mybody.portName = portlist.portName; mybody.portType = portlist.portType; mybody.deviceId = portlist.deviceId; mybody.deviceName = portlist.deviceName; mybody.portModel = portlist.portModel; mybody.status = portlist.status; mybody.conDevice = portlist.conDevice; mybody.conDevice = portlist.conDeviceName; mybody.conPort = portlist.conPort; mybody.cableName = portlist.cableName; mybody.cableGroupName = portlist.cableGroupName; mybody.remark = portlist.remark; mybody.createTime = portlist.createTime; mybody.createName = portlist.createName; } } } catch (Exception e) { Debug.Log(e.StackTrace + "**********" + e.Message); } } /// /// 获取端口的对联设备和对联端口选项 /// /// /// public void init() { //var jsonResult = await CombineJSON.GetJson_POST(GameManager.Inst.Jk_URL.dk_cx, GameManager.Inst.token); //root = JsonConvert.DeserializeObject(jsonResult); List conDevice_list = new List();//对联设备 List conPort_list = new List();// 对联端口 conPort_list.Add(""); conDevice_list.Add(""); //加载所有对联设备和对联端口选项 Dictionary conDevice_list_dict = new Dictionary(); Dictionary conPort_list_dict = new Dictionary(); if (GameManager.Inst.TmsPorts == null) return; foreach (var item in GameManager.Inst.TmsPorts) { if (!conDevice_list_dict.ContainsKey(item.deviceId)) { conDevice_list_dict.Add(item.deviceId, ""); conDevice_list.Add(item.deviceId); } if (!conPort_list_dict.ContainsKey(item.port)) { conPort_list_dict.Add(item.port, ""); conPort_list.Add(item.port); } } conDevice.options.Clear(); conDevice.AddOptions(conDevice_list); conPort.options.Clear(); conPort.AddOptions(conPort_list); cableGroupName.options.Clear(); foreach (var item in LineQuery.Inst.keyValues.Keys) { Dropdown.OptionData optionData = new Dropdown.OptionData(item); cableGroupName.options.Add(optionData); } cableGroupName.captionText.text = null; } private void Start() { save_bt.onClick.AddListener(() => { GameManager.Inst.editorMenu.gameObject.SetActive(false); StartCoroutine(SaveJsonCoroutine()); }); conDevice.onValueChanged.AddListener(OnDropdownValueChanged_conDevice); //port.onValueChanged.AddListener(OnDropdownValueChanged_port); } private IEnumerator SaveJsonCoroutine() { Debug.Log("@@1"); yield return StartCoroutine(saveJson((x) => { //Debug.Log("@@8"); if (URlreturn != null && URlreturn.message == "操作成功") { StartCoroutine(Succeed((x)=> { if (x) { Array.ForEach(GameManager.Inst.pop_ups.ToArray(), (itme) => { itme.gameObject.SetActive(false); }); } })); } else { } })); } public IEnumerator Succeed(Action callback) { GameManager.Inst.isLoading = false; TransparentGlowManage.Inst.addScript(); yield return StartCoroutine(GameManager.Inst.init_Device()); yield return StartCoroutine(GameManager.Inst.init_Port()); yield return StartCoroutine(LineQuery.Inst.getJsonCoroutine()); GameManager.Inst.LoadScene(); callback.Invoke(true); } /// /// 当 端口 值发生改变时(根据端口添加该端口下信息) /// /// private void OnDropdownValueChanged_port(int index) { if (index == 0) return; //port.options[index] //for (int i = 0; i < port.options.Count; i++) //{ // if (i == port.value) // { // port.value = 0; // port.value = i; // } //} } /// /// 当 对联设备 值发生改变时(根据对联设备--添加该设备下所有端口) /// /// public void OnDropdownValueChanged_conDevice(int index) { if (index == 0) return; List conPort_list = new List();//对联端口 conPort_list.Add(""); //conDevice.options[index]//对联设备ID foreach (var item in GameManager.Inst.root_AllPort.data) { if (item.deviceId == conDevice.options[index].text) { conPort_list.Add(item.port); } } conPort.options.Clear(); conPort.AddOptions(conPort_list); if (string.IsNullOrEmpty(mybody.conPort)) return; //自动识别端口 for (int i = 0; i < conPort.options.Count; i++) { if (conPort.options[i].text == mybody.conPort) { conPort.value = i; break; } } } private void Update() { } /// /// 端口-编辑保存 /// /// public IEnumerator saveJson(Action callback = null) { //Debug.Log("@@2"); if (string.IsNullOrEmpty(mybody.id)) yield break; //Debug.Log("@@3"); try { mybody.port = port.text; mybody.portCode = portCode.text; mybody.portName = portName.text; if (!string.IsNullOrEmpty(conDevice.captionText.text) && !string.IsNullOrEmpty(conPort.captionText.text)) mybody.cableGroupName = cableGroupName.captionText.text; //mybody.deviceId = deviceId.text; mybody.portModel = portModel.text; mybody.status = status.value.ToString(); mybody.conDevice = conDevice.captionText.text; mybody.conPort = conPort.captionText.text; mybody.cableName = cableName.text; } catch (Exception e) { Debug.Log("修改端口错误:" + e.Message); //gameObject.SetActive(false); yield break; } //Debug.Log("@@4"); string newData = JsonConvert.SerializeObject(mybody); //Debug.Log(json); yield return StartCoroutine( CombineJSON.UpdateJson_POST(GameManager.Inst.Jk_URL.dk_bj, GameManager.Inst.arguments.token, newData, (jsonResult) => { //Debug.Log("@@5"); try { URlreturn = JsonConvert.DeserializeObject(jsonResult); callback?.Invoke("1"); //Debug.Log("@@6"); } catch (Exception e) { Debug.Log("修改端口接口错误:" + e.Message); } } )); } #region JSON [System.Serializable] public class Body { /// /// id /// public string id; /// /// 端口 /// public string port; /// /// 编号 /// public string portCode; /// /// 名称 /// public string portName; /// /// 类型 /// public string portType; /// /// 所属设备 /// public string deviceId; /// /// 型号 /// public string portModel; /// /// 是否启用:1-正常;0-禁用 /// public string status; /// /// 对联设备 /// public string conDevice; /// /// 对联端口 /// public string conPort; /// /// 线缆名 /// [Tooltip("线缆名")] public string cableName; /// /// 线缆组名 /// [Tooltip("线缆组名")] public string cableGroupName; /// /// 备注 /// public string remark; /// /// 所属设备名称 /// public string deviceName; /// /// 对联设备名称 /// public string conDeviceName; /// /// /// public string createTime; /// /// /// public string createName; } [System.Serializable] public class Root { /// /// /// public string code; /// /// 反馈结果 /// public string message; /// /// 返回内容 /// public string data; /// /// /// public string serverTime; } #endregion }