GQ_Communicate/GQ_TongXin/Assets/script/接口/修改/RedactPort.cs

216 lines
5.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Newtonsoft.Json;
using System;
using System.Net.Http.Headers;
using System.Net.Http;
using UnityEngine;
using UnityEngine.UI;
using static System.Net.Mime.MediaTypeNames;
using System.Threading.Tasks;
using static PortQuery;
using System.Collections.Generic;
using Unity.VisualScripting;
using System.Reflection;
using static UnityEditor.Progress;
/// <summary>
/// 端口-编辑
/// </summary>
public class RedactPort : MonoBehaviour
{
public Root myroot;
public PortQuery.Root root;
public Button save_bt;
public Dropdown port;//端口
public InputField portCode;//编号
public InputField portName;//名称
public InputField portType;//端口类型
public InputField deviceId;//所属设备
public InputField portModel;//型号
public Dropdown status;//状态
public Dropdown conDevice;//对联设备
public Dropdown conPort;//对联端口
private async void OnEnable()
{
if (gameObject.activeSelf)
{
#region
//await initAsync("");
//port.options[0].text = myroot.port;
//portCode.text = myroot.portCode;
//portType.text = myroot.portType;
//deviceId.text = myroot.deviceId;
//portModel.text = myroot.portModel;
//status.value = myroot.status;
//if (!string.IsNullOrEmpty(myroot.conDevice))
//{
// //自动识别对联设备
// for (int i = 0; i < conDevice.options.Count; i++)
// {
// if (conDevice.options[i].text == myroot.conDevice)
// {
// conDevice.value = i;
// OnDropdownValueChanged_conDevice(i);
// break;
// }
// }
// //自动识别端口
// for (int i = 0; i < conPort.options.Count; i++)
// {
// if (conPort.options[i].text == myroot.conPort)
// {
// conPort.value = i;
// break;
// }
// }
//}
#endregion
}
}
/// <summary>
/// 获取所有端口
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public async Task initAsync(string token)
{
var jsonResult = await CombineJSON.GetJson_POST("https://jsonplaceholder.typicode.com/posts", token);
root = JsonConvert.DeserializeObject<PortQuery.Root>(jsonResult);
List<string> port_list = new List<string>();//端口
List<string> conDevice_list = new List<string>();//对联设备
foreach (var item in root.data)
{
port_list.Add(item.port);
conDevice_list.Add(item.conDevice);
}
conDevice.options.Clear();
conDevice.AddOptions(conDevice_list);
}
private void Start()
{
save_bt.onClick.AddListener(async () => await saveJson(""));
conDevice.onValueChanged.AddListener(OnDropdownValueChanged_conDevice);
}
/// <summary>
/// 当 Dropdown 值发生改变时(根据对联设备添加该设备下所有端口)
/// </summary>
/// <param name="index"></param>
public void OnDropdownValueChanged_conDevice(int index)
{
List<string> conPort_list = new List<string>();//对联端口
//conDevice.options[index]//对联设备ID
foreach (var item in root.data)
{
if (item.deviceId == conDevice.options[index].text)
{
conPort_list.Add(item.port);
}
}
conPort.options.Clear();
conPort.AddOptions(conPort_list);
}
private void Update()
{
}
/// <summary>
/// 端口-编辑保存
/// </summary>
/// <param name="token"></param>
public async Task saveJson(string token)
{
if (string.IsNullOrEmpty(myroot.id)) return;
string json = JsonConvert.SerializeObject(myroot);
Debug.Log(json);
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("http://wu4ifs.natappfree.cc/machineRoom/port/updateById"),
Headers =
{
{ "X-Token", token },
},
Content = new StringContent(json)
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Debug.Log(body);
}
}
#region JSON
[System.Serializable]
public class Root
{
/// <summary>
/// id
/// </summary>
public string id;
/// <summary>
/// 端口
/// </summary>
public string port;
/// <summary>
/// 编号
/// </summary>
public string portCode;
/// <summary>
/// 名称
/// </summary>
public string portName;
/// <summary>
/// 类型
/// </summary>
public string portType;
/// <summary>
/// 所属设备
/// </summary>
public string deviceId;
/// <summary>
/// 型号
/// </summary>
public string portModel;
/// <summary>
/// 是否启用1-正常0-禁用
/// </summary>
public int status;
/// <summary>
/// 对联设备
/// </summary>
public string conDevice;
/// <summary>
/// 对联端口
/// </summary>
public string conPort;
/// <summary>
/// 备注
/// </summary>
public string remark;
}
#endregion
}