2025-04-24 16:01:48 +08:00

265 lines
11 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 CG.Framework;
using CG.UTility;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using static LYTWebGLHelper;
/*******************************************************************************
*Create By CG
*Function
*******************************************************************************/
namespace ZXK.LouDiXvMuNiu
{
public class ScoreDataPanel : UIBase
{
private InputField _studentNameInF = null;
private InputField _studentNumberInF = null;
private Text _studentTotalTxt = null;
private Text _studentActualTxt = null;
private Text _errorTipTxt = null;
private Transform _scoreItemContent = null;
private GameObject _scoreItemPrefab = null;
private Button _closeBtn = null;
private string _nameTemp = null;
protected override void Awake()
{
base.Awake();
_studentNameInF = GetWedage("NameTxt_N").GetComponent<InputField>();
_studentNumberInF = GetWedage("NumberTxt_N").GetComponent<InputField>();
_studentTotalTxt = GetWedage("TotalScoreText_N").GetComponent<Text>();
_studentActualTxt = GetWedage("ActualScoreTxt_N").GetComponent<Text>();
_errorTipTxt = GetWedage("ErroTipTxt_N").GetComponent<Text>();
_scoreItemContent = GetWedage("ScoreItemContent_N").transform;
_scoreItemPrefab = GetWedage("ScoreItemPrefab_N");
_closeBtn = GetWedage("CloseBtn_N").GetComponent<Button>();
_closeBtn.onClick.AddListener(() =>
{
UI_Manage.Instance.ClosePanel("ScoreDataPanel");
CG.UTility.PopUpMng._TriAble = true;
});
_studentNameInF.onValueChanged.AddListener((vul) =>
{
if (UtilitiesMng.GetTransCharNum(vul) > 24)
{
_studentNameInF.text = _nameTemp;
}
else
{
_studentNameInF.text = _nameTemp = vul;
}
GameManager.Instance._StudentName = _studentNameInF.text;
});
_studentNumberInF.onValueChanged.AddListener((vul) =>
{
GameManager.Instance._StudentNumber = _studentNumberInF.text;
_errorTipTxt.gameObject.SetActive(false);
});
AddEventListener("PDFLoadBtn_N", UIEventType.OnButtonClick, () =>
{
if (!CheckInfo()) return;
Queue<string[]> scoreQueue = GameManager.Instance._DataNiuHandler.GetExamScore();
string json = string.Empty;
// ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3>ܳɼ<DCB3><C9BC><EFBFBD>ʵ<EFBFBD>ʳɼ<CAB3>
Dictionary<string, object> data = new Dictionary<string, object>();
data.Add("name", _studentNameInF.text);
foreach (var item in scoreQueue)
{
data.Add(item[0] + item[1], item[3]);
}
foreach (var item in GameManager.Instance._DataNiuHandler.scoreTime)
{
data.Add(item.Key + "Time", item.Value);
}
json = JsonConvert.SerializeObject(data);
#if UNITY_EDITOR || UNITY_STANDALONE
AsposeHelper.Writer(json, filePath =>
{
PopUpMng.PopConBox("<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", $"<22>ļ<EFBFBD><C4BC>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"{filePath}\"<22><><EFBFBD>Ƿ<EFBFBD>ֱ<EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>", "<22><><EFBFBD><EFBFBD>", <><C8A1>",
() => { FolderBrowserHelper.OpenFolder(filePath); });
});
#elif UNITY_WEBGL
StartCoroutine(DownLoadReport(bytes =>
{
WebGLDownLoadFile.instance.DownloadDocx(bytes, json);
}));
#endif
//#if UNITY_EDITOR || UNITY_STANDALONE
// string savePath = CG.UTility.FolderBrowserHelper.GetPathFromWindowsExplorer();
// if (!string.IsNullOrEmpty(savePath))
// {
// string systemTypeName = GameManager.Instance._CurModelType;
// string fileName = "ʵѵ<CAB5>ɼ<EFBFBD><C9BC><EFBFBD><5F><C5A3><EFBFBD><EFBFBD>̥<EFBFBD><CCA5>ֲ.pdf";
// string filePath = System.IO.Path.Combine(savePath, fileName);
// PDFGreadeManager.Instance.GreatePDFPC(filePath
// , systemTypeName
// , scoreQueue
// , GameManager.Instance._StudentName
// , GameManager.Instance._StudentNumber
// , () =>
// {
// PopUpMng.PopConBox("<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", $"<22>ļ<EFBFBD><C4BC>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"{filePath}\"<22><><EFBFBD>Ƿ<EFBFBD>ֱ<EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>", "<22><><EFBFBD><EFBFBD>", "ȡ<><C8A1>",
// () => { FolderBrowserHelper.OpenFolder(filePath); });
// });
// }
//#elif UNITY_WEBGL
// string systemTypeName = GameManager.Instance._CurModelType;
// string fileName = "ʵѵ<CAB5>ɼ<EFBFBD><C9BC><EFBFBD><5F><C5A3><EFBFBD><EFBFBD>̥<EFBFBD><CCA5>ֲ.pdf";
// PDFGreadeManager.Instance.GreatePDFWeb(fileName
// , systemTypeName
// , scoreQueue
// , GameManager.Instance._StudentName
// , GameManager.Instance._StudentNumber);
//#endif
});
ShowScore(GameManager.Instance._DataNiuHandler.GetExamScore());
CG.UTility.PopUpMng._TriAble = false;
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><E9B1A8>ģ<EFBFBD><C4A3>
/// </summary>
/// <returns></returns>
IEnumerator DownLoadReport(Action<byte[]> callback)
{
UnityWebRequest request = new UnityWebRequest(Global.reportDemoPath);
request.downloadHandler = new DownloadHandlerBuffer();
yield return request.SendWebRequest();
if (string.IsNullOrEmpty(request.error))
{
callback?.Invoke(request.downloadHandler.data);
}
else
{
Debug.LogError(request.error);
}
yield return null;
}
/// <summary>
/// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>
/// </summary>
/// <param name="scoreQueue"></param>
private void ShowScore(Queue<string[]> scoreQueue)
{
float totalScore = 0.0f;//<2F>ܵ÷<DCB5>
float actualScore = 0.0f;//ʵ<>ʵ÷<CAB5>
List<Expstepvtwolist> datas = new List<Expstepvtwolist>();
int seq = 1;
foreach (string[] item in scoreQueue)
{
//WDebug.Log(item[0] + "@@@" + item[1] + "$$$" + item[2] + "%%%" + item[3]);
Transform scoreItem = _scoreItemContent.Find((item[0] + "_" + item[1]).Replace("/", ""));
if (scoreItem == null)
{
scoreItem = Instantiate(_scoreItemPrefab, _scoreItemContent).transform;
scoreItem.name = (item[0] + "_" + item[1]).Replace("/", "");
}
scoreItem.gameObject.SetActive(true);
scoreItem.Find("StepTxt").GetComponent<Text>().text = item[0];
scoreItem.Find("CaoZuoTxt").GetComponent<Text>().text = item[1];
scoreItem.Find("TotalScoreTxt").GetComponent<Text>().text = item[2];
scoreItem.Find("ActualScoreTxt").GetComponent<Text>().text = item[3];
float _totalScore = float.Parse(item[2]);
float _actualScore = float.Parse(item[3]);
actualScore += _actualScore;
totalScore += _totalScore;
var dataItem = new Expstepvtwolist();
dataItem.ExpStepName = item[0] + item[1];
dataItem.maxScore = (int)float.Parse(item[2]);
dataItem.score = (int)float.Parse(item[3]);
if (GameManager.Instance._DataNiuHandler.scoreTime.ContainsKey(dataItem.ExpStepName))
{
dataItem.startTime = dataItem.endTime = GameManager.Instance._DataNiuHandler.scoreTime[dataItem.ExpStepName];
}
else
{
dataItem.startTime = dataItem.endTime = "";
}
dataItem.seq = seq;
datas.Add(dataItem);
seq++;
}
_studentNameInF.placeholder.GetComponent<Text>().text = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...";
_studentNameInF.placeholder.GetComponent<Text>().color = new Color(1, 1, 1, 0.5f);
_studentNameInF.placeholder.GetComponent<Text>().text = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7>...";
_studentNameInF.placeholder.GetComponent<Text>().color = new Color(1, 1, 1, 0.5f);
_studentNameInF.text = GameManager.Instance._StudentName;
_studentNumberInF.text = GameManager.Instance._StudentNumber;
_studentTotalTxt.text = totalScore.ToString();
_studentActualTxt.text = actualScore.ToString();
#if !UNITY_EDITOR && UNITY_WEBGL
LYTWebGLHelper.Instance.UpLoadData((int)actualScore, datas);
#endif
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>Ϣ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
/// </summary>
/// <returns></returns>
private bool CheckInfo()
{
#if UNITY_EDITOR
GameManager.Instance._StudentName = "<22><><EFBFBD><EFBFBD>";
GameManager.Instance._StudentNumber = "1234567890";
_studentNameInF.text = "<22><><EFBFBD><EFBFBD>";
_studentNameInF.text = "1234567890";
return true;
#else
bool isPass = true;
string studentName = _studentNameInF.text;
string studentNumber = _studentNumberInF.text;
if (string.IsNullOrEmpty(studentName))
{
_studentNameInF.placeholder.GetComponent<Text>().text = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
_studentNameInF.placeholder.GetComponent<Text>().color = Color.red;
isPass = false;
}
else
{
if (string.IsNullOrEmpty(studentNumber))
{
_studentNumberInF.placeholder.GetComponent<Text>().text = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7>";
_studentNumberInF.placeholder.GetComponent<Text>().color = Color.red;
isPass = false;
}
else if (studentNumber.Length < 9)
{
_errorTipTxt.gameObject.SetActive(true);
//_studentNumberInF.placeholder.GetComponent<Text>().text = "ѧ<><D1A7>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
//_studentNumberInF.placeholder.GetComponent<Text>().color = Color.red;
isPass = false;
}
else
{
}
}
return isPass;
#endif
}
}
}