ShanxiKnowledgeBase/SXElectricalInspection/Assets/Adam/Scripts/JobCardController.cs

302 lines
9.4 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 Components;
using JData;
using OData;
using Org.BouncyCastle.Asn1.Crmf;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Newtonsoft.Json;
//============================================================
//支持中文文件使用UTF-8编码
//@author YangHua
//@create 20230914
//@company Adam
//
//@description:工作卡控制器
//============================================================
namespace Adam
{
public class JobCardController : MonoBehaviour
{
//private string nameAndAdressUrl;
//private string aqcsAndFxdfxUrl;
public InputField userNum;
/// <summary>
/// 用户编号
/// </summary>
public InputField[] userIDs;
/// <summary>
/// 客户名称
/// </summary>
public InputField[] userNames;
/// <summary>
/// 工作地点
/// </summary>
public InputField[] workSpace;
/// <summary>
/// 注意事项及安全措施
/// </summary>
public Button[] aqcss;
/// <summary>
/// 现场风险点分析
/// </summary>
public InputField[] fxdfx;
/// <summary>
/// 打钩框
/// </summary>
public Toggle[] toggles;
public GameObject jobCardPanel;
public GameObject jobChoiceQuestionPanel;
public OptionItem optionItemPrefab;
public Transform optionItemContent;
private Dictionary<string, string> tiMuAndOption = new Dictionary<string, string>();
public Text optionTitleText;
/// <summary>
/// 风险点分析
/// </summary>
public Button RiskPointAnalysisBtn;
/// <summary>
/// 安全措施
/// </summary>
public Button SafetyMeasuresBtn;
/// <summary>
/// 关闭按钮
/// </summary>
public Button closeBtn;
public JobCardData jData = new JobCardData();
// Use this for initialization
private void Start()
{
string jJson = FileUtil.ReadFromLocal("Local/姓名和地址.json");
jData = JsonConvert.DeserializeObject<JobCardData>(jJson);
for (int i = 0; i < userIDs.Length; i++)
{
int index = i;
userIDs[index].onSubmit.AddListener((string numb) =>
{
GetValue(numb, index);
});
}
RiskPointAnalysisBtn.onClick.AddListener(() =>
{
OnClick();
});
for (int i = 0; i < aqcss.Length; i++)
{
int index = i;
aqcss[index].onClick.AddListener(() =>
{
aqcss[index].transform.GetChild(0).GetComponent<Text>().text = "";
});
}
closeBtn.onClick.AddListener(() =>
{
UIManager.Instance.bottomCotroller.SwitchFirstPerson(true);
});
GetAQCS();
jobCardPanel.SetActive(false);
jobChoiceQuestionPanel.SetActive(false);
}
//private void Update()
//{
// if (Input.GetKeyDown("t"))
// {
// Debug.Log(AddScore().ToString());
// }
//}
public DataItem GetCurrentUserInfoByUserNub(string userNub)
{
for (int i = 0; i < jData.data.data.Count; i++)
{
if (jData.data.data[i].id.Contains(userNub))
return jData.data.data[i];
}
return null;
}
public void GetValue(string numb, int _index)
{
//nameAndAdressUrl = WebIPAdress.Instance.dicAdresses["姓名和地址"];
//string _url = nameAndAdressUrl + numb;
//JobCardData jData = await AsyncWebReq.Get<JobCardData>(_url);
DataItem temp = GetCurrentUserInfoByUserNub(numb);
if (temp != null)
{
userNames[_index].text = temp.name;
workSpace[_index].text = temp.adress;
}
}
/// <summary>
/// 0- 风险点1-安全措施
/// </summary>
/// <param name="index"></param>
public void OnClick()
{
jobChoiceQuestionPanel.SetActive(true);
optionTitleText.text = "注意事项及安全措施";
//GetAQCS();
}
/// <summary>
/// 安全措施
/// </summary>
/// <param name="name"></param>
private void GetAQCS()
{
if (optionItemContent.childCount == 0)
{
//aqcsAndFxdfxUrl = WebIPAdress.Instance.dicAdresses["安全措施和风险点分析"];
//AQCS od = await AsyncWebReq.Get<AQCS>(aqcsAndFxdfxUrl);
string json = FileUtil.ReadFromLocal("Local/安全措施和风险点分析.json");
AQCS od = JsonConvert.DeserializeObject<AQCS>(json);
for (int i = 0; i < od.data.list.Count; i++)
{
int index = i;
string keyTemp = od.data.list[index].key;
string valueTemp = od.data.list[index].value;
fxdfx[index].text = keyTemp;
tiMuAndOption.Add(keyTemp, valueTemp);
}
for (int i = 0; i < od.data.valueList.Count; i++)
{
int index = i;
OptionItem optionItemTemp = Instantiate(optionItemPrefab, optionItemContent);
string infoTemp = od.data.valueList[index];
index += 1;
optionItemTemp.SetValue(index.ToString(), infoTemp);
optionItemTemp.selfBtn.onClick.AddListener(() =>
{
OnOptionItemClick(infoTemp);
});
}
}
}
/// <summary>
/// 添加分数
/// </summary>
public int AddScore()
{
int score = 0;
int inputUserNum = int.Parse(userNum.text);
if (inputUserNum >= 1)
{
score += 3;
}
for (int j = 0; j < fxdfx.Length; j++)
{
string fxdfxTemp = fxdfx[j].text;
string aqcs = aqcss[j].transform.GetChild(0).GetComponent<Text>().text;
if (!string.IsNullOrEmpty(fxdfxTemp))
{
if (tiMuAndOption[fxdfxTemp].Equals(aqcs))
{
score += 1;
}
}
}
return score;
}
private void OnOptionItemClick(string info)
{
for (int i = 0; i < aqcss.Length; i++)
{
int index = i;
Text temp = aqcss[index].transform.GetChild(0).GetComponent<Text>();
if (temp.text == "")
{
temp.text = info;
break;
}
}
}
public timuAndOptoin hide()
{
timuAndOptoin timuAnd = new timuAndOptoin();
timuAnd.keyValuePairs = new Dictionary<string, string>(tiMuAndOption);
timuAnd.userID = new List<string>();
timuAnd.userName = new List<string>();
timuAnd.workSpace = new List<string>();
timuAnd.aqcss = new List<string>();
timuAnd.fxdfx = new List<string>();
timuAnd.bools = new List<bool>();
timuAnd.userSum = userNum.text;
for (int i = 0; i < userIDs.Length; i++)
{
timuAnd.userID.Add(userIDs[i].text);
}
for (int i = 0; i < userNames.Length; i++)
{
timuAnd.userName.Add(userNames[i].text);
}
for (int i = 0; i < workSpace.Length; i++)
{
timuAnd.workSpace.Add(workSpace[i].text);
}
for (int i = 0; i < aqcss.Length; i++)
{
timuAnd.aqcss.Add(aqcss[i].GetComponentInChildren<Text>().text);
}
for (int i = 0; i < fxdfx.Length; i++)
{
timuAnd.fxdfx.Add(fxdfx[i].text);
}
for (int i = 0; i < toggles.Length; i++)
{
timuAnd.bools.Add(toggles[i].isOn);
}
return timuAnd;
}
public void show(timuAndOptoin timuAnd)
{
for (int i = 0; i < userIDs.Length; i++)
{
userIDs[i].text = timuAnd.userID[i];
}
for (int i = 0; i < userNames.Length; i++)
{
userNames[i].text = timuAnd.userName[i];
}
for (int i = 0; i < workSpace.Length; i++)
{
workSpace[i].text = timuAnd.workSpace[i];
}
for (int i = 0; i < aqcss.Length; i++)
{
aqcss[i].GetComponentInChildren<Text>().text = timuAnd.aqcss[i];
}
for (int i = 0; i < fxdfx.Length; i++)
{
fxdfx[i].text = timuAnd.fxdfx[i];
}
for (int i = 0; i < toggles.Length; i++)
{
toggles[i].isOn = timuAnd.bools[i];
}
userNum.text = timuAnd.userSum;
}
}
}