GCYWLayer.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using MPUIKIT;
  5. using UnityEngine;
  6. using UnityEngine.Serialization;
  7. using UnityEngine.UI;
  8. using XCharts.Runtime;
  9. public class GCYWLayer : YZTRootLayer
  10. {
  11. private Text _xunJianRenWuText;
  12. private Text _xunJianRenCiText;
  13. private Text _quanBuGongChengText;
  14. private Text _dangRiGongChengText;
  15. private Text _zhengChangYunXingText;
  16. private Text _zhengGaiWenTi_Count_Text;
  17. private Text _zhengGaiWenTi_Vlaue_Text;
  18. private MPImage _zhengGaiWenTi_Slider;
  19. private Text _tuFaShiJian_Count_Text;
  20. private Text _tuFaShiJian_Vlaue_Text;
  21. private MPImage _tuFaShiJian_Slider;
  22. private BarChart wenTiTongJiBarChart;
  23. //突发事件总计
  24. private Text TFSJ_DaiChuLiNumTex;
  25. private Text TFSJ_DaiYanShouNumTex;
  26. private Text TFSJ_YiChuLiNumTex;
  27. private Text TFSJ_completeText;
  28. private MPImage TFSJ_completeSlider;
  29. public GameObject eventListItemPrefab;
  30. private List<GameObject> TFSJ_eventItems = new List<GameObject>();
  31. private Transform TFSJ_eventItemContent;
  32. //问题整改总计
  33. private Text WTZG_DaiChuLiNumTex;
  34. private Text WTZG_DaiYanShouNumTex;
  35. private Text WTZG_YiChuLiNumTex;
  36. private Text WTZG_completeText;
  37. private MPImage WTZG_completeSlider;
  38. private List<GameObject> WTZG_eventItems = new List<GameObject>();
  39. private Transform WTZG_eventItemContent;
  40. //巡检类型总计
  41. private Text dianQiCountText;
  42. private Text zhaZhanCountText;
  43. private Text diFangCountText;
  44. private Text jiaoChaJianZhuCountText;
  45. private Text dingQiZhuanXiangCountText;
  46. private Button dianQiButton;
  47. private Button zhaZhanButton;
  48. private Button diFangButton;
  49. private Button jianChaJianZhuButton;
  50. private Button diQiZhuanXiangButton;
  51. //工程管理
  52. private PieChart gongChengGuanLiChart;
  53. private PieChart fenJiKaoPingChart;
  54. private Text gongChengGuanLiChartCount;
  55. private Button checkPathButton;
  56. private Text checkPathButtonText;
  57. private bool showCheckPath = false;
  58. private Button BuYuanDataButton;
  59. private Button TaoKouDataButton;
  60. private CanvasGroup button_CG1;
  61. private CanvasGroup button_CG2;
  62. [FormerlySerializedAs("TaskListPanel")] public GameObject TaskListPanelObj;
  63. public TaskListPanel taskListPanel;
  64. public GameObject taskPhotoPanelObj;
  65. public TaskPhotoPanel taskPhotoPanel;
  66. private void Awake()
  67. {
  68. Init();
  69. }
  70. public void Init()
  71. {
  72. _xunJianRenWuText = this.transform.Find("ShuJuTongJi/XunJianRenWu/title/numText").GetComponent<Text>();
  73. _xunJianRenCiText = this.transform.Find("ShuJuTongJi/XunJianRenCi/title/numText").GetComponent<Text>();
  74. _quanBuGongChengText = this.transform.Find("ShuJuTongJi/QuanBuGongCheng/title/numText").GetComponent<Text>();
  75. _dangRiGongChengText = this.transform.Find("ShuJuTongJi/DangRiJingGao/title/numText").GetComponent<Text>();
  76. _zhengChangYunXingText = this.transform.Find("ShuJuTongJi/ZhengChangGongCheng/title/numText").GetComponent<Text>();
  77. _zhengGaiWenTi_Count_Text = this.transform.Find("ShuJuTongJi/ZhengGaiWenTi/count/numText").GetComponent<Text>();
  78. _zhengGaiWenTi_Vlaue_Text = this.transform.Find("ShuJuTongJi/ZhengGaiWenTi/value/numText").GetComponent<Text>();
  79. _zhengGaiWenTi_Slider = this.transform.Find("ShuJuTongJi/ZhengGaiWenTi/slider").GetComponent<MPImage>();
  80. _tuFaShiJian_Count_Text = this.transform.Find("ShuJuTongJi/TuFaShiJian/count/numText").GetComponent<Text>();
  81. _tuFaShiJian_Vlaue_Text = this.transform.Find("ShuJuTongJi/TuFaShiJian/value/numText").GetComponent<Text>();
  82. _tuFaShiJian_Slider = this.transform.Find("ShuJuTongJi/TuFaShiJian/slider").GetComponent<MPImage>();
  83. wenTiTongJiBarChart = this.transform.Find("ShuJuTongJi/XunJianTongJi/BarChart").GetComponent<BarChart>();
  84. gongChengGuanLiChart = this.transform.Find("GongChengGuanLi/GuanLiJianCha").GetComponent<PieChart>();
  85. gongChengGuanLiChartCount = this.transform.Find("GongChengGuanLi/GuanLiJianCha/count/numText").GetComponent<Text>();
  86. fenJiKaoPingChart = this.transform.Find("GongChengGuanLi/FenJiKaoPing").GetComponent<PieChart>();
  87. TFSJ_DaiChuLiNumTex = this.transform.Find("TuFaShiJian/DaiChuLi/count").GetComponent<Text>();
  88. TFSJ_DaiYanShouNumTex = this.transform.Find("TuFaShiJian/DaiYanShou/count").GetComponent<Text>();
  89. TFSJ_YiChuLiNumTex = this.transform.Find("TuFaShiJian/YiChuLi/count").GetComponent<Text>();
  90. TFSJ_completeText = this.transform.Find("TuFaShiJian/completeText/numText").GetComponent<Text>();
  91. TFSJ_completeSlider = this.transform.Find("TuFaShiJian/slider").GetComponent<MPImage>();
  92. TFSJ_eventItemContent = this.transform.Find("TuFaShiJian/TuFaShiJianTongBao/ScrollView/Viewport/Content");
  93. WTZG_DaiChuLiNumTex = this.transform.Find("ZhengGaiWenTi/DaiZhengGai/count").GetComponent<Text>();
  94. WTZG_DaiYanShouNumTex = this.transform.Find("ZhengGaiWenTi/DaiYanShou/count").GetComponent<Text>();
  95. WTZG_YiChuLiNumTex = this.transform.Find("ZhengGaiWenTi/YiZhengGai/count").GetComponent<Text>();
  96. WTZG_completeText = this.transform.Find("ZhengGaiWenTi/completeText/numText").GetComponent<Text>();
  97. WTZG_completeSlider = this.transform.Find("ZhengGaiWenTi/slider").GetComponent<MPImage>();
  98. WTZG_eventItemContent = this.transform.Find("ZhengGaiWenTi/ZhengGaiTongBao/ScrollView/Viewport/Content");
  99. dianQiCountText = this.transform.Find("XunJianLeiXingZongJi/DianQi/count").GetComponent<Text>();
  100. zhaZhanCountText = this.transform.Find("XunJianLeiXingZongJi/ZhaZhan/count").GetComponent<Text>();
  101. diFangCountText = this.transform.Find("XunJianLeiXingZongJi/DiFang/count").GetComponent<Text>();
  102. jiaoChaJianZhuCountText = this.transform.Find("XunJianLeiXingZongJi/JiaoChaJianZhu/count").GetComponent<Text>();
  103. dingQiZhuanXiangCountText = this.transform.Find("XunJianLeiXingZongJi/DingQiZhuanXiang/count").GetComponent<Text>();
  104. dianQiButton = dianQiCountText.transform.parent.GetComponent<Button>();
  105. zhaZhanButton = zhaZhanCountText.transform.parent.GetComponent<Button>();
  106. diFangButton = diFangCountText.transform.parent.GetComponent<Button>();
  107. jianChaJianZhuButton = jiaoChaJianZhuCountText.transform.parent.GetComponent<Button>();
  108. diQiZhuanXiangButton = dingQiZhuanXiangCountText.transform.parent.GetComponent<Button>();
  109. dianQiButton.onClick.AddListener(()=>OpenTaskListPanel(0));
  110. zhaZhanButton.onClick.AddListener(()=>OpenTaskListPanel(1));
  111. diFangButton.onClick.AddListener(()=>OpenTaskListPanel(2));
  112. jianChaJianZhuButton.onClick.AddListener(()=>OpenTaskListPanel(3));
  113. diQiZhuanXiangButton.onClick.AddListener(()=>OpenTaskListPanel(4));
  114. checkPathButton = this.transform.Find("CheckPathButton").GetComponent<Button>();
  115. checkPathButtonText = checkPathButton.GetComponentInChildren<Text>();
  116. checkPathButton.onClick.AddListener(CheckPathChange);
  117. BuYuanDataButton = this.transform.Find("BuYuanButton").GetComponent<Button>();
  118. button_CG1 = BuYuanDataButton.GetComponent<CanvasGroup>();
  119. BuYuanDataButton.onClick.AddListener(() => { ChangeData(0); });
  120. TaoKouDataButton = this.transform.Find("TaoKouButton").GetComponent<Button>();
  121. button_CG2 = TaoKouDataButton.GetComponent<CanvasGroup>();
  122. TaoKouDataButton.onClick.AddListener(() => { ChangeData(1); });
  123. }
  124. private async void ChangeData(int type)
  125. {
  126. //切换补元、套口数据
  127. StaticLod.instance.OnFoucusStatic(type);
  128. button_CG1.alpha = type == 0 ? 1.0f : 0.4f;
  129. button_CG2.alpha = type == 1 ? 1.0f : 0.4f;
  130. showCheckPath = false;
  131. ActionInstance._Instance.SetCheckPathActive(showCheckPath);
  132. string textStr = showCheckPath ? "隐藏" : "显示";
  133. checkPathButtonText.text = $"巡检路线({textStr})";
  134. if (GlobalData.B08_Type != type)
  135. {
  136. await HttpHelper._Instance.InitGCYWData1(type);
  137. }
  138. SetShuJuTongJiData();
  139. SetXunJianBarChart();
  140. SetGongChengGuanLiChart();
  141. SetTFSJ_Data();
  142. SetWTZG_Data();
  143. SetXJLE_Data();
  144. }
  145. private async void OnEnable()
  146. {
  147. TaskListPanelObj.SetActive(false);
  148. taskPhotoPanelObj.SetActive(false);
  149. ChangeData(0);
  150. }
  151. public void SetShuJuTongJiData()
  152. {
  153. B08_dataStatis tempData = GlobalData.B08DataStatis;
  154. _xunJianRenWuText.text = $"{tempData.data.inspectTask}";
  155. _xunJianRenCiText.text = $"{tempData.data.inspectTimes}";
  156. _quanBuGongChengText.text = $"{tempData.data.allProject}";
  157. _dangRiGongChengText.text = $"{tempData.data.warnProject}";
  158. _zhengChangYunXingText.text = $"{tempData.data.normalProject}";
  159. }
  160. public void SetXunJianBarChart()
  161. {
  162. B08_inspectResult tempData = GlobalData.B08InspectResult;
  163. var tempSeries = wenTiTongJiBarChart.series;
  164. SerieData[] tempDatas = new SerieData[tempData.data.question.Length];
  165. for (int i = 0; i < tempDatas.Length; i++)
  166. {
  167. tempDatas[i] = new SerieData();
  168. tempDatas[i].data = new List<double>();
  169. tempDatas[i].data.Add(i);
  170. tempDatas[i].data.Add(tempData.data.question[i].value);
  171. }
  172. tempSeries[0].data.Clear();
  173. tempSeries[0].data.AddRange(tempDatas);
  174. SerieData[] tempDatas_1 = new SerieData[tempData.data.events.Length];
  175. for (int i = 0; i < tempDatas_1.Length; i++)
  176. {
  177. tempDatas_1[i] = new SerieData();
  178. tempDatas_1[i].data = new List<double>();
  179. tempDatas_1[i].data.Add(i);
  180. tempDatas_1[i].data.Add(tempData.data.events[i].value);
  181. }
  182. tempSeries[1].data.Clear();
  183. tempSeries[1].data.AddRange(tempDatas_1);
  184. }
  185. public void SetGongChengGuanLiChart()
  186. {
  187. B08_projectExamine tempData = GlobalData.B08ProjectExamine;
  188. var tempSeries = gongChengGuanLiChart.series;
  189. int tempCount = 0;
  190. SerieData[] tempDatas = new SerieData[tempData.data.type1.Length];
  191. for (int i = 0; i < tempDatas.Length; i++)
  192. {
  193. tempDatas[i] = new SerieData();
  194. tempDatas[i].data = new List<double>();
  195. tempDatas[i].data.Add(i);
  196. tempDatas[i].data.Add(tempData.data.type1[i].value);
  197. tempDatas[i].name = tempData.data.type1[i].key;
  198. tempCount += tempData.data.type1[i].value;
  199. }
  200. tempSeries[0].data.Clear();
  201. tempSeries[0].data.AddRange(tempDatas);
  202. gongChengGuanLiChartCount.text = tempCount.ToString();
  203. var tempSeries_1 = fenJiKaoPingChart.series;
  204. SerieData[] tempDatas_1 = new SerieData[tempData.data.type2.Length];
  205. for (int i = 0; i < tempDatas_1.Length; i++)
  206. {
  207. tempDatas_1[i] = new SerieData();
  208. tempDatas_1[i].data = new List<double>();
  209. tempDatas_1[i].data.Add(i);
  210. tempDatas_1[i].data.Add(tempData.data.type2[i].value);
  211. tempDatas_1[i].name = tempData.data.type2[i].key;
  212. }
  213. tempSeries_1[0].data.Clear();
  214. tempSeries_1[0].data.AddRange(tempDatas_1);
  215. }
  216. public void SetTFSJ_Data()
  217. {
  218. B08_event tempData = GlobalData.B08Event;
  219. TFSJ_DaiChuLiNumTex.text = tempData.data.waitHandle.ToString();
  220. TFSJ_DaiYanShouNumTex.text = tempData.data.waitAccept.ToString();
  221. TFSJ_YiChuLiNumTex.text = tempData.data.hasHandle.ToString();
  222. TFSJ_completeText.text = $"{float.Parse(tempData.data.completeRate) * 100.0f:0}%";
  223. TFSJ_completeSlider.fillAmount = float.Parse(tempData.data.completeRate);
  224. for (int i = 0; i < TFSJ_eventItems.Count; i++)
  225. {
  226. Destroy(TFSJ_eventItems[i]);
  227. }
  228. TFSJ_eventItems.Clear();
  229. for (int i = 0; i < tempData.data.list.Count; i++)
  230. {
  231. var tempObj = Instantiate(eventListItemPrefab, TFSJ_eventItemContent).GetComponent<B08_EventListItem>();
  232. tempObj.Init(tempData.data.list[i]);
  233. TFSJ_eventItems.Add(tempObj.gameObject);
  234. }
  235. _tuFaShiJian_Count_Text.text = $"{tempData.data.waitHandle + tempData.data.waitAccept + tempData.data.hasHandle}";
  236. _tuFaShiJian_Vlaue_Text.text = $"{float.Parse(tempData.data.completeRate) * 100.0f:0}%";
  237. _tuFaShiJian_Slider.fillAmount = float.Parse(tempData.data.completeRate);
  238. }
  239. public void SetWTZG_Data()
  240. {
  241. B08_questionStatis tempData = GlobalData.B08QuestionStatis;
  242. WTZG_DaiChuLiNumTex.text = tempData.data.waitHandle.ToString();
  243. WTZG_DaiYanShouNumTex.text = tempData.data.waitAccept.ToString();
  244. WTZG_YiChuLiNumTex.text = tempData.data.hasHandle.ToString();
  245. WTZG_completeText.text = $"{float.Parse(tempData.data.completeRate) * 100.0f:0}%";
  246. WTZG_completeSlider.fillAmount = float.Parse(tempData.data.completeRate);
  247. for (int i = 0; i < WTZG_eventItems.Count; i++)
  248. {
  249. Destroy(WTZG_eventItems[i]);
  250. }
  251. WTZG_eventItems.Clear();
  252. for (int i = 0; i < tempData.data.list.Count; i++)
  253. {
  254. var tempObj = Instantiate(eventListItemPrefab, WTZG_eventItemContent).GetComponent<B08_EventListItem>();
  255. tempObj.Init(tempData.data.list[i]);
  256. WTZG_eventItems.Add(tempObj.gameObject);
  257. }
  258. _zhengGaiWenTi_Count_Text.text = $"{tempData.data.waitHandle + tempData.data.waitAccept + tempData.data.hasHandle}";
  259. _zhengGaiWenTi_Vlaue_Text.text = $"{float.Parse(tempData.data.completeRate) * 100.0f:0}%";
  260. _zhengGaiWenTi_Slider.fillAmount = float.Parse(tempData.data.completeRate);
  261. }
  262. public void SetXJLE_Data()
  263. {
  264. B08_inspectType tempData = GlobalData.B08InspectType;
  265. dianQiCountText.text = tempData.data[0].value.ToString();
  266. zhaZhanCountText.text = tempData.data[1].value.ToString();
  267. diFangCountText.text = tempData.data[2].value.ToString();
  268. jiaoChaJianZhuCountText.text = tempData.data[3].value.ToString();
  269. dingQiZhuanXiangCountText.text = tempData.data[4].value.ToString();
  270. }
  271. public void CheckPathChange()
  272. {
  273. showCheckPath = !showCheckPath;
  274. ActionInstance._Instance.SetCheckPathActive(showCheckPath);
  275. string textStr = showCheckPath ? "隐藏" : "显示";
  276. checkPathButtonText.text = $"巡检路线({textStr})";
  277. }
  278. public void OpenTaskListPanel(int type)
  279. {
  280. taskListPanel.SetData(this);
  281. TaskListPanelObj.SetActive(true);
  282. }
  283. public void SetTaskImgPanelData(B08_TaskItems[] itemsArray)
  284. {
  285. taskPhotoPanel.SetData(itemsArray);
  286. }
  287. public void OpenTaskImgPanel()
  288. {
  289. taskPhotoPanelObj.SetActive(true);
  290. }
  291. }