| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using MPUIKIT;
- using Unity.VisualScripting;
- using UnityEngine;
- using UnityEngine.Serialization;
- using UnityEngine.UI;
- using XCharts.Runtime;
- public class GCYWLayer : YZTRootLayer
- {
- private Dropdown stationDropdown;
-
- private Text _daiPaiGongText;
- private Text _daiXunJianText;
- private Text _xunJianZhongText;
- private Text _yiXunJianText;
-
- private BarChart wenTiTongJiBarChart;
- //突发事件总计
- private Text TFSJ_DaiPaiGongNumTex;
- private Text TFSJ_DaiChuLiNumTex;
- private Text TFSJ_DaiYanShouNumTex;
- private Text TFSJ_YiChuLiNumTex;
- private Text TFSJ_completeText;
- private MPImage TFSJ_completeSlider;
- public GameObject eventListItemPrefab;
- private List<GameObject> TFSJ_eventItems = new List<GameObject>();
- private Transform TFSJ_eventItemContent;
-
- //工程管理
- private PieChart gongChengGuanLiChart;
- private PieChart fenJiKaoPingChart;
- private Text gongChengGuanLiChartCount;
- private Button checkPathButton;
- private Text checkPathButtonText;
- private bool showCheckPath = false;
- public TaskListPanel taskListPanel;
- //public GameObject taskPhotoPanelObj;
- //public TaskPhotoPanel taskPhotoPanel;
- public GameObject taskPointIconStartPrefab;
- public GameObject taskPointIconEndPrefab;
- public Transform taskPointIconContent;
- public List<GameObject> taskPointIcons = new List<GameObject>();
- public LineRenderer taskPointLineRenderer;
- //public Button closePanelBtn;
- private List<string> stationNames = new List<string>();
- private List<string> ids = new List<string>();
- private string currentIds = "";
- private void Awake()
- {
- Init();
- }
- public void Init()
- {
- stationDropdown = this.transform.Find("Dropdown").GetComponent<Dropdown>();
-
- _daiPaiGongText = this.transform.Find("ShuJuTongJi/DaiPaiGong/title/numText").GetComponent<Text>();
- _daiXunJianText = this.transform.Find("ShuJuTongJi/DaiXunJian/title/numText").GetComponent<Text>();
- _xunJianZhongText = this.transform.Find("ShuJuTongJi/XunJianZhong/title/numText").GetComponent<Text>();
- _yiXunJianText = this.transform.Find("ShuJuTongJi/YiXunJian/title/numText").GetComponent<Text>();
-
- wenTiTongJiBarChart = this.transform.Find("ShuJuTongJi/XunJianTongJi/BarChart").GetComponent<BarChart>();
- gongChengGuanLiChart = this.transform.Find("GongChengGuanLi/GuanLiJianCha").GetComponent<PieChart>();
- gongChengGuanLiChartCount =
- this.transform.Find("GongChengGuanLi/GuanLiJianCha/count/numText").GetComponent<Text>();
- fenJiKaoPingChart = this.transform.Find("GongChengGuanLi/FenJiKaoPing").GetComponent<PieChart>();
- TFSJ_DaiPaiGongNumTex = this.transform.Find("TuFaShiJian/DaiPaiGong/count").GetComponent<Text>();
- TFSJ_DaiChuLiNumTex = this.transform.Find("TuFaShiJian/DaiChuLi/count").GetComponent<Text>();
- TFSJ_DaiYanShouNumTex = this.transform.Find("TuFaShiJian/DaiYanShou/count").GetComponent<Text>();
- TFSJ_YiChuLiNumTex = this.transform.Find("TuFaShiJian/YiChuLi/count").GetComponent<Text>();
- TFSJ_completeText = this.transform.Find("TuFaShiJian/completeText/numText").GetComponent<Text>();
- TFSJ_completeSlider = this.transform.Find("TuFaShiJian/slider").GetComponent<MPImage>();
- TFSJ_eventItemContent = this.transform.Find("TuFaShiJian/TuFaShiJianTongBao/ScrollView/Viewport/Content");
-
- checkPathButton = this.transform.Find("CheckPathButton").GetComponent<Button>();
- checkPathButtonText = checkPathButton.GetComponentInChildren<Text>();
- checkPathButton.onClick.AddListener(CheckPathChange);
- }
- private async void ChangeData(int type)
- {
- try
- {
- currentIds = ids[type];
-
- showCheckPath = false;
- string textStr = showCheckPath ? "隐藏" : "显示";
- checkPathButtonText.text = $"巡检路线({textStr})";
- var currentData = GlobalData.B08StatisticsInfo[stationNames[type]];
-
- _daiPaiGongText.text = $"{currentData.waitDispatch}";
- _daiXunJianText.text = $"{currentData.waitPatrol}";
- _xunJianZhongText.text = $"{currentData.onPatrol}";
- _yiXunJianText.text = $"{currentData.patrolCompleted}";
-
- var tempSeries = wenTiTongJiBarChart.series;
-
-
- XAxis tempXaxis = wenTiTongJiBarChart.GetChartComponent<XAxis>();
- tempXaxis.data.Clear();
- List<B08_StatisticsInfo.DateValuePair> temps = currentData.SortedDateValues;
- foreach (B08_StatisticsInfo.DateValuePair dateValue in temps)
- {
- tempXaxis.data.Add(dateValue.Date);
- }
-
- SerieData[] tempDatas = new SerieData[temps.Count];
- for (int i = 0; i < tempDatas.Length; i++)
- {
- tempDatas[i] = new SerieData();
- tempDatas[i].data = new List<double>();
- tempDatas[i].data.Add(i);
- tempDatas[i].data.Add(temps[i].Value);
- }
- tempSeries[0].data.Clear();
- tempSeries[0].data.AddRange(tempDatas);
- if (!GlobalData.B08_Type.Equals(currentIds))
- {
- await HttpHelper._Instance.InitGCYWData1(currentIds);
- }
- SetTFSJ_Data();
- taskListPanel.SetData(this);
- }
- catch (Exception e)
- {
- Debug.LogError("GCYWLayer ChangeData error"+e.ToString());
- }
- }
- public CameraBird cameraBird;
- private void OnEnable()
- {
- stationNames.Clear();
- ids.Clear();
- stationDropdown.ClearOptions();
- StaticLod.instance.OnFoucusStatic("Bird0");
- stationNames.AddRange(GlobalData.B08StationList.Keys.ToArray());
- ids.AddRange(GlobalData.B08StationList.Values.ToArray());
- stationDropdown.AddOptions(stationNames);
- stationDropdown.onValueChanged.AddListener(ChangeData);
- stationDropdown.value = 0;
-
- SetChart();
- ChangeData(0);
- cameraBird = CameraManager.instance.mainCamera.GetComponent<CameraBird>();
-
- }
- public void SetChart()
- {
- if (GlobalData.B08Char1 != null)
- {
- var tempData = GlobalData.B08Char1;
- var tempSeries = gongChengGuanLiChart.series;
- int tempCount = 0;
- SerieData[] tempDatas = new SerieData[tempData.data.Length];
- for (int i = 0; i < tempDatas.Length; i++)
- {
- tempDatas[i] = new SerieData();
- tempDatas[i].data = new List<double>();
- tempDatas[i].data.Add(i);
- tempDatas[i].data.Add(tempData.data[i].count);
- tempDatas[i].name = tempData.data[i].name;
- tempCount += tempData.data[i].count;
- }
- tempSeries[0].data.Clear();
- tempSeries[0].data.AddRange(tempDatas);
- gongChengGuanLiChartCount.text = tempCount.ToString();
-
- gongChengGuanLiChart.RefreshChart();
- }
- if (GlobalData.B08Char2 != null)
- {
- var tempdata_1 = GlobalData.B08Char2;
- var tempSeries_1 = fenJiKaoPingChart.series;
- SerieData[] tempDatas_1 = new SerieData[4];
- for (int i = 0; i < tempDatas_1.Length; i++)
- {
- tempDatas_1[i] = new SerieData();
- tempDatas_1[i].data = new List<double>();
- tempDatas_1[i].data.Add(i);
- switch (i)
- {
- case 0:
- tempDatas_1[i].data.Add(tempdata_1.data.grade1);
- tempDatas_1[i].name = "低";
- break;
- case 1:
- tempDatas_1[i].data.Add(tempdata_1.data.grade2);
- tempDatas_1[i].name = "中";
- break;
- case 2:
- tempDatas_1[i].data.Add(tempdata_1.data.grade3);
- tempDatas_1[i].name = "高";
- break;
- case 3:
- tempDatas_1[i].data.Add(tempdata_1.data.grade4);
- tempDatas_1[i].name = "紧急";
- break;
- }
-
- }
- tempSeries_1[0].data.Clear();
- tempSeries_1[0].data.AddRange(tempDatas_1);
- fenJiKaoPingChart.RefreshChart();
- }
- }
- public void SetTFSJ_Data()
- {
- B08_event tempData = GlobalData.B08Event;
- TFSJ_DaiPaiGongNumTex.text = tempData.waitWork.ToString();
- TFSJ_DaiChuLiNumTex.text = tempData.waitHandle.ToString();
- TFSJ_DaiYanShouNumTex.text = tempData.waitAccept.ToString();
- TFSJ_YiChuLiNumTex.text = tempData.hasHandle.ToString();
- TFSJ_completeText.text = $"{tempData.hasHandle*1.0f/tempData.total * 100.0f:0}%";
- TFSJ_completeSlider.fillAmount = tempData.hasHandle*1.0f/tempData.total;
- for (int i = 0; i < TFSJ_eventItems.Count; i++)
- {
- Destroy(TFSJ_eventItems[i]);
- }
- TFSJ_eventItems.Clear();
- for (int i = 0; i < tempData.rows.Count; i++)
- {
- var tempObj = Instantiate(eventListItemPrefab, TFSJ_eventItemContent).GetComponent<B08_EventListItem>();
- tempObj.Init(tempData.rows[i]);
- TFSJ_eventItems.Add(tempObj.gameObject);
- }
- // _tuFaShiJian_Count_Text.text =
- // $"{tempData.data.waitHandle + tempData.data.waitAccept + tempData.data.hasHandle}";
- // _tuFaShiJian_Vlaue_Text.text = $"{float.Parse(tempData.data.completeRate) * 100.0f:0}%";
- // _tuFaShiJian_Slider.fillAmount = float.Parse(tempData.data.completeRate);
- }
- public void CheckPathChange()
- {
- showCheckPath = !showCheckPath;
- //ActionInstance._Instance.SetCheckPathActive(showCheckPath);
- string textStr = showCheckPath ? "隐藏" : "显示";
- checkPathButtonText.text = $"巡检路线({textStr})";
- }
- // public void OpenTaskListPanel(int type)
- // {
- // taskListPanel.SetData(this,type);
- // TaskListPanelObj.SetActive(true);
- // }
- private B08_TaskLocation[] currentTaskLocation;
- private string taskTime;
-
- public void SetTaskImgPanelData(B08_TaskLocation[] itemsArray,string _time)
- {
- currentTaskLocation = itemsArray;
- taskTime = _time;
- //taskPhotoPanel.SetData(currentTaskItems[0],taskTime);
- taskPointLineRenderer.positionCount = 0;
- for (int i = 0; i < taskPointIcons.Count; i++)
- {
- Destroy(taskPointIcons[i].gameObject);
- }
- taskPointIcons.Clear();
- for (int i = 0; i < itemsArray.Length; i++)
- {
- GameObject ori = taskPointIconStartPrefab;
- if (i == 0) {
- ori = taskPointIconEndPrefab;
- }
- if (itemsArray[i].longitude != null && itemsArray[i].latitude != null)
- {
-
- GameObject tempObj = Instantiate(ori, taskPointIconContent);
- tempObj.name = itemsArray[i].locationTypeName;
- Vector2 longlatt = CoordinateConverter.GCJ02ToWGS84(double.Parse(itemsArray[i].longitude),
- double.Parse(itemsArray[i].latitude));
- tempObj.transform.position = CoordinateConverter.GeoToUnity(longlatt.x, longlatt.y) + Vector3.up * 41;
- tempObj.transform.localEulerAngles = new Vector3(-90f, 0f, 0f);
- tempObj.gameObject.SetActive(false);
- taskPointIcons.Add(tempObj);
- }
- }
- //taskPointLineRenderer.positionCount = itemsArray.Length;
- float allDistance = 0;
- UnityEngine.Vector3 prePos = UnityEngine.Vector3.zero;
- List<UnityEngine.Vector3> vector3s = new List<UnityEngine.Vector3>();
- for (int i = 0; i < taskPointIcons.Count; i++)
- {
- vector3s.Add(taskPointIcons[i].transform.position);
- if (i != 0)
- {
- allDistance += UnityEngine.Vector3.Distance(taskPointIcons[i].transform.position, prePos);
- }
- else {
- cameraBird.target.transform.position = taskPointIcons[i].transform.position;
- }
- if (i == 0 || i == taskPointIcons.Count - 1) {
- taskPointIcons[i].gameObject.SetActive(true);
- }
- //taskPointLineRenderer.SetPosition(i, taskPointIcons[i].transform.position);
- prePos = taskPointIcons[i].transform.position;
- }
- taskPointLineRenderer.GetComponent<DynamicLine>().SetDynamicPoint(vector3s);
- //taskPointLineRenderer.GetComponent<DynamicLine>().OnTouchIndex = (int index) =>
- //{
- // //Debug.Log(index);
- // taskPointIcons[index].gameObject.SetActive(true);
- //};
- }
- //public void SetTaskPointIconHeightLight(int index)
- //{
- // for (int i = 0; i < taskPointIcons.Count; i++)
- // {
- // taskPointIcons[i].SetHeightLight(i == index);
- // }
- //}
- // public void OpenTaskImgPanel(int openPage)
- // {
- // taskPhotoPanel.SetData(currentTaskItems[openPage],taskTime);
- // taskPhotoPanel.ChangePage(0);
- // taskPhotoPanelObj.SetActive(true);
- // }
- private void Update()
- {
- for (int i = 0; i < taskPointIcons.Count; i++) {
- taskPointIcons[i].transform.localScale = Vector3.one * (cameraBird.currentDistance / 60);
- }
- taskPointLineRenderer.GetComponent<LineRenderer>().startWidth = cameraBird.currentDistance / 25;
- taskPointLineRenderer.GetComponent<LineRenderer>().endWidth = cameraBird.currentDistance / 25;
- taskPointLineRenderer.GetComponent<LineRenderer>().material.SetTextureScale("_MainTex", new Vector2(250000/cameraBird.currentDistance, 1f));
- }
- }
|