using AutoMapper; using Newtonsoft.Json; using System; using System.Collections; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; using static GameManager; /// /// 设备-编辑 /// public class RedactDevice : MonoBehaviour { public Body mybody; public Root URlreturn; DeviceQuery.DeviceList device; /// /// 类型 /// public Dropdown type; /// /// 设备类型 /// public Dropdown deviceType; public InputField deviceName; public InputField deviceCode; public InputField devicePosition; public Dropdown status; public Dropdown rackType; public Dropdown openFlag; #region 机柜的 public InputField machineModel; public InputField manufacturer; #endregion public Button save_bt; MapperConfiguration config; IMapper mapper; public 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.root_AllDevice.data.Count; i++) { if (GameManager.Inst.root_AllDevice.data[i].id == GameManager.Inst.nowDeviceID) { device = GameManager.Inst.root_AllDevice.data[i]; break; } } mybody = mapper.Map(device); } } catch (Exception e) { Debug.Log(e.StackTrace + "**********" + e.Message); } if (type) type.value = int.Parse(String.IsNullOrEmpty(mybody.type) ? "0" : mybody.type); if (deviceType) deviceType.value = String.IsNullOrEmpty(mybody.deviceType) ? 0 : int.Parse(mybody.deviceType); if (deviceName) deviceName.text = mybody.deviceName; if (deviceCode) deviceCode.text = mybody.deviceCode; if (devicePosition) devicePosition.text = mybody.devicePosition; if (machineModel) machineModel.text = mybody.machineModel; if (status) status.value = int.Parse(String.IsNullOrEmpty(mybody.status) ? "0" : mybody.status); if (rackType) rackType.value = String.IsNullOrEmpty(mybody.rackType) ? 0 : int.Parse(mybody.rackType); if (openFlag) openFlag.value = String.IsNullOrEmpty(mybody.openFlag) ? 2 : int.Parse(mybody.openFlag); if (manufacturer) manufacturer.text = mybody.manufacturer; } private void Start() { save_bt.onClick.AddListener(() => { StartCoroutine(SaveJsonCoroutine()); }); } private IEnumerator SaveJsonCoroutine() { yield return StartCoroutine(saveJson()); if (URlreturn.message == "操作成功") { yield return StartCoroutine(GameManager.Inst.LoadAddress((ct) => { if (ct != null) { GameManager.Inst.Jk_URL = new webURL(ct); StartCoroutine(GameManager.Inst.Initialize()); } else { Debug.Log("获取穿透错误!"); } })); Array.ForEach(GameManager.Inst.pop_ups.ToArray(), (itme) => { itme.gameObject.SetActive(false); }); } else { } } private void Update() { } public IEnumerator saveJson() { if (string.IsNullOrEmpty(mybody.id)) yield break; try { if (type) mybody.type = type.value.ToString(); if (deviceType) mybody.deviceType = deviceType.value == 0 ? null : deviceType.value.ToString(); if (deviceName) mybody.deviceName = deviceName.text; if (deviceCode) mybody.deviceCode = deviceCode.text; if (devicePosition) mybody.devicePosition = devicePosition.text; if (machineModel) mybody.machineModel = machineModel.text; if (status) mybody.status = status.value.ToString(); if (rackType) mybody.rackType = rackType.value == 0 ? null : rackType.value.ToString(); if (openFlag) mybody.openFlag = openFlag.value == 2 ? null : openFlag.value.ToString(); if (manufacturer) mybody.manufacturer = manufacturer.text; } catch (Exception e) { Debug.Log("修改设备错误:" + e.Message); //gameObject.SetActive(false); yield break; } string json = JsonConvert.SerializeObject(mybody); //Debug.Log(json); using (UnityWebRequest request = UnityWebRequest.Post(GameManager.Inst.Jk_URL.sb_bj, json)) { request.SetRequestHeader("X-Token", GameManager.Inst.arguments.token); request.SetRequestHeader("Content-Type", "application/json"); yield return request.SendWebRequest(); if (request.isNetworkError || request.isHttpError) { Debug.LogError(request.error); } else { string body = request.downloadHandler.text; URlreturn = JsonConvert.DeserializeObject(body); Debug.Log(body); } } } #region JSON [System.Serializable] public class Body { /// /// id /// public string id; /// /// 名称 /// public string deviceName; /// /// 类型:1-机柜;2-设备 /// public string type; /// /// 投运时间 /// public string operationTime; /// /// 是否启用:1-正常;0-禁用 /// public string status; /// /// 负责人 /// public string directorName; /// /// 联系电话 /// public string phone; /// /// 机柜型号 /// public string machineModel; /// /// 机柜位置 /// public string machinePosition; /// /// 编号 /// [Tooltip("编号")] public string deviceCode; /// /// 类型:1-机柜;2-设备 /// [Tooltip("类型:1-机柜;2-设备")] public string typeStr; /// /// 设备类型:1-机框;2-机槽;3-板卡 /// [Tooltip("设备类型:1-机框;2-机槽;3-板卡")] public string deviceType; /// /// 设备类型:1-机框;2-机槽;3-板卡 /// [Tooltip("设备类型:1-机框;2-机槽;3-板卡")] public string deviceTypeStr; /// /// 所属机柜id /// [Tooltip("所属机柜id")] public string rackId; /// /// 所属机框id /// [Tooltip("所属机框id")] public string shelfId; /// /// 所属机槽id /// [Tooltip("所属机槽id")] public string slotId; /// /// 设备位置 /// [Tooltip("设备位置")] public string devicePosition; /// /// /// [Tooltip("")] public string conDeviceName; /// /// 机柜类型:1-通信机柜;2-非通信机柜 /// [Tooltip("机柜类型:1-通信机柜;2-非通信机柜")] public string rackType; /// /// 柜门是否打开:1-开;0-关 /// [Tooltip("柜门是否打开:1-开;0-关")] public string openFlag; /// /// 模型编号 /// [Tooltip("模型编号")] public string modelNum; /// /// U位占用数量 /// [Tooltip("U位占用数量")] public string occupyNum; /// /// /// [Tooltip("")] public string residueNum; /// /// 生产厂家 /// [Tooltip("生产厂家")] public string manufacturer; /// /// 电源属性 /// [Tooltip("电源属性")] public string powerProperties; /// /// 维护单位 /// [Tooltip("维护单位")] public string maintenanceUnit; /// /// 机框高度 /// [Tooltip("机框高度")] public string machineFrameHigh; /// /// 机框宽度 /// [Tooltip("机框宽度")] public string machineFrameWide; /// /// 机框厚度 /// [Tooltip("机框厚度")] public string machineFrameThick; /// /// 插槽数量 /// [Tooltip("插槽数量")] public string slotNum; /// /// 插槽排列方式 /// [Tooltip("插槽排列方式")] public string slotSort; /// /// 安装方式 /// [Tooltip("安装方式")] public string installMethod; /// /// 所属机框 /// [Tooltip("所属机框")] public string affiliationFrame; /// /// 父插槽名称 /// [Tooltip("父插槽名称")] public string parentSlotName; /// /// 插槽类型 /// [Tooltip("插槽类型")] public string slotType; /// /// 占用状态 /// [Tooltip("占用状态")] public string occupyStatus; /// /// 所属机槽名称 /// [Tooltip("所属机槽名称")] public string affiliationSlot; /// /// 端口数量 /// [Tooltip("端口数量")] public string portNum; /// /// 板卡功能 /// [Tooltip("板卡功能")] public string cardFunction; /// /// 板卡类型 /// [Tooltip("板卡类型")] public string cardType; /// /// 运行状态 /// [Tooltip("运行状态")] public string runStatus; /// /// 备注 /// [Tooltip("备注")] public string remark; } [System.Serializable] public class Root { /// /// /// public string code; /// /// 反馈结果 /// public string message; /// /// 返回内容 /// public string data; /// /// /// public string serverTime; } #endregion }