using Competition.Mysql.Other; using LitJson; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using UnityEngine; using UnityEngine.EventSystems; public class WorkPlacePanel : MonoBehaviour { WorkPlaceItem workPlaceItem; RectTransform rectTransform; public void Init(string custCodes, WorkPlaceItem workPlaceItem) { this.workPlaceItem = workPlaceItem; rectTransform = GetComponent(); InitModel(custCodes); } /// /// 生成企业图标 /// /// private void InitModel(string custCodes) { //删除所有模型 GetComponentsInChildren(true).ToList().ForEach(a => { Destroy(a.gameObject); }); //获取关区下所有企业信息 //string url = "http://" + FirstPanel.instance.serverIP + ":4000/api/Corporation/GetAllPosition?customCodes=" + custCodes; string url = "http://" + FirstPanel.instance.serverIP + ":4000/api/GetModelVersionList"; Debug.Log("获取企业模型:" + url); StartCoroutine(FirstPanel.instance.CallGet(url, (isok, result) => { Debug.Log("获取企业模型返回 "+ result); if (isok) { //生成企业模型 JsonData data = JsonMapper.ToObject(result); var tmp = data["data"]["list"]; List list = new List(); foreach (JsonData item in tmp) { erprise_model_version v = JsonMapper.ToObject(item.ToJson()); if (!string.IsNullOrEmpty(v.MapLatitude) && !string.IsNullOrEmpty(v.MapLongitude)) { list.Add(v); } } //本关区的 List showAll=new List(); if (workPlaceItem.workPlaceName == "驻罗源湾办事处") { showAll = list.FindAll(a => a.DistrictCode=="3505"); } else if (workPlaceItem.workPlaceName == "驻福清办事处") { showAll = list.FindAll(a => a.DistrictCode == "3502"); //读取福清配置文件 List tmpComps = JsonMapper.ToObject>(FirstPanel.instance.fuqingWorkPlaceJson); showAll.AddRange(tmpComps); } showAll.ForEach(a => { //生成本关区的图标 if (ModelItem.modelItemPrefb == null) { ModelItem.modelItemPrefb = Resources.Load("prefeb/modelItem"); } GameObject go = Instantiate(ModelItem.modelItemPrefb, transform); go.GetComponent().Init(a, GetComponent()); }); Application.ExternalCall("ClickCustom", JsonMapper.ToJson(showAll)); Debug.Log("调前端显示企业" + custCodes); //福清默认放大 if (workPlaceItem.workPlaceName == "驻福清办事处") { SetPos(new Vector2(124.3824f, 583.4997f)); SetScale(3); } else { SetPos(Vector2.zero); SetScale(1); } #if UNITY_EDITOR Debug.Log(JsonMapper.ToJson(showAll)); #endif } else { Debug.LogError(result); } })); } public void OnMove(BaseEventData baseEvent) { PointerEventData evnetdata = (PointerEventData)baseEvent; if (evnetdata.button == PointerEventData.InputButton.Left) { SetPos(rectTransform.anchoredPosition + evnetdata.delta); } } public void OnScorll(BaseEventData baseEvent) { PointerEventData evnetdata = (PointerEventData)baseEvent; float value = (rectTransform.localScale.x + evnetdata.scrollDelta.y* 0.1f); value = Mathf.Clamp(value, 1f, 3f); SetScale(value); } private void SetPos(Vector2 anchoredPosition) { rectTransform.anchoredPosition = anchoredPosition; //更新坐标 List list = new List(); transform.GetComponentsInChildren(true).ToList().ForEach(a => { a.SetNowPostion(); list.Add(a.modelData); }); Application.ExternalCall("OnBanShiChuChange", JsonMapper.ToJson(list)); } private void SetScale(float scale) { rectTransform.localScale = new Vector3(scale, scale, scale); //更新坐标 List list = new List(); transform.GetComponentsInChildren(true).ToList().ForEach(a => { a.SetNowPostion(); list.Add(a.modelData); }); Application.ExternalCall("OnBanShiChuChange", JsonMapper.ToJson(list)); } }