Пример #1
0
        private void CreateSubTreeNode(BootstrapTreeViewNode parentNode, int parentID, List <StructureTreeModel> strus, List <int?> ids)
        {
            var subStrucs = strus.Where(s => s.ParentID == parentID);

            if (subStrucs.Count() == 0)
            {
                return;
            }
            parentNode.nodes = new List <BootstrapTreeViewNode>();
            foreach (var item in subStrucs)
            {
                bool flag = ids.SingleOrDefault(id => id == item.ID) != null;
                var  temp = new BootstrapTreeViewNode()
                {
                    text = item.StrucName,
                    tag  = item.ID,
                    //ParentNode = parentNode,
                    state = new BootstrapTreeViewNodeState()
                    {
                        @checked = flag,
                        expanded = flag
                    }
                };
                //if (temp.state.@checked)//如果节点是分配过的,那么还需要展开父节点,防止分配了子单位未分配父单位,导致节点未展开
                //{
                //    //parentNode.state.expanded = true;
                //    ExpandParentNode(parentNode);
                //}
                parentNode.nodes.Add(temp);
                CreateSubTreeNode(temp, item.ID, strus, ids);
            }
        }
Пример #2
0
        public ActionResult GetRealTimeSignals()
        {
            List <RealTimeSignalTreeModel> allItems;

            if (base.VehicleViewMode)
            {
                allItems = SignalBLL.GetDefaultRealTimeSignals(base.CurrentStrucID);
            }
            else
            {
                allItems = SignalBLL.GetRealTimeSignals(base.CurrentUserID);
            }



            if (allItems == null)
            {
                allItems = new List <RealTimeSignalTreeModel>();
            }
            allItems = allItems.OrderBy(item => item.SID).ToList();

            //提取单位
            var query = from item in allItems select new StructureTreeModel {
                ID = item.SID, StrucName = item.SN, ParentID = item.SPID
            };
            var structures = query.Distinct(new StrucTreeComparer()).ToList();

            List <BootstrapTreeViewNode> nodes = new List <BootstrapTreeViewNode>();

            for (int i = 0; i < structures.Count; i++)
            {
                var item     = structures[i];
                var tempNode = new BootstrapTreeViewNode()
                {
                    text       = item.StrucName,
                    selectable = false,
                    sid        = item.ID,
                    state      = new BootstrapTreeViewNodeState()
                    {
                        expanded = false
                    }
                };
                tempNode.nodes = new List <BootstrapTreeViewNode>();
                CreateSubStrucNode(tempNode, structures, allItems, item.ID);
                CreateVehicleNode(tempNode, allItems, item.ID);
                nodes.Add(tempNode);
                structures.RemoveAt(i);
                i--;
            }
            //展开第一个 单位节点
            if (nodes.Count > 0)
            {
                nodes.First().state.expanded = true;
            }
            return(Json(nodes, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        private void CreateVehicleNode(BootstrapTreeViewNode tempNode, List <RealTimeSignalTreeModel> allItems, int sid)
        {
            var query = allItems.Where(item => item.SID == sid);//找单位ID是当前单位节点的车辆
            List <RealTimeSignalTreeModel> list = new List <RealTimeSignalTreeModel>();

            foreach (var item in query)
            {
                string color = string.Empty;
                if (item.IsOnline == 0)//掉线 红色
                {
                    color = "#ff0202";
                }
                else if (item.Latitude == null)//信号表无数据
                {
                    color = "#B766AD";
                }
                else if (item.IsOnline == 1 && item.IsRunning == 1)//在线有速度
                {
                    color = "#00a1fe";
                }
                else//在线无速度 停车 灰色
                {
                    color = "#8c8c8c";
                }

                tempNode.nodes.Add(new BootstrapTreeViewNode()
                {
                    text  = item.VN,
                    tag   = new { VID = item.VID, SN = item.SN, SID = item.SID, IsOnline = item.IsOnline == 1, IsRunning = item.IsRunning == 1, NoSignal = item.Latitude == null },//只有车辆节点才有tag
                    color = color,
                });
                list.Add(item);
            }
            //移除添加过的数据
            list.ForEach(item =>
            {
                allItems.Remove(item);
            });
        }
Пример #4
0
        private void CreateSubStrucNode(BootstrapTreeViewNode parentNode, List <StructureTreeModel> list, List <RealTimeSignalTreeModel> allItems, int pid)
        {
            var subStrucs = list.Where(s => s.ParentID == pid).ToList();

            if (subStrucs.Count == 0)
            {
                return;
            }
            foreach (var item in subStrucs)
            {
                var temp = new BootstrapTreeViewNode()
                {
                    text       = item.StrucName,
                    selectable = false,
                    sid        = item.ID
                };
                temp.nodes = new List <BootstrapTreeViewNode>();
                CreateVehicleNode(temp, allItems, item.ID);
                list.Remove(item);
                CreateSubStrucNode(temp, list, allItems, item.ID);
                parentNode.nodes.Add(temp);
            }
        }
Пример #5
0
        public ActionResult GetDistributiveStrucsByUserID(int uid)
        {
            var allStrucs    = StructureBLL.GetStructuresForTree();
            var userStrucIDs = StructureBLL.GetDistributiveStrucIDByUserID(uid);
            var parentStruc  = allStrucs.Where(s => s.ParentID == null);
            List <BootstrapTreeViewNode> nodes = new List <BootstrapTreeViewNode>();

            foreach (var item in parentStruc)
            {
                var temp = new BootstrapTreeViewNode()
                {
                    text  = item.StrucName,
                    tag   = item.ID,
                    state = new BootstrapTreeViewNodeState()
                    {
                        expanded = true,
                        @checked = userStrucIDs.SingleOrDefault(id => id == item.ID) != null
                    }
                };
                CreateSubTreeNode(temp, item.ID, allStrucs, userStrucIDs);
                nodes.Add(temp);
            }
            return(Json(nodes, JsonRequestBehavior.AllowGet));
        }