Пример #1
0
        private void OnTreeSelectedItemChanged(object selectedItem)
        {
            var selectedNode = selectedItem as TreeViewItem;

            if (selectedNode == null)
            {
                return;
            }
            var data = selectedNode.Tag as ECCategory;

            if (data == null)
            {
                return;
            }

            if (data.SysNo.HasValue && data.SysNo > 0)
            {
                this.ucMaintain.ChangeToEditMode(data.DeepCopy().Convert <ECCategory, ECCategoryVM>((entity, vm) =>
                {
                    if (entity.WebChannel != null)
                    {
                        vm.ChannelID = entity.WebChannel.ChannelID;
                    }
                }));

                this.ucMaintain.BindDataGrid();
            }
            else
            {
                ECCategoryVM toCreateVM = new ECCategoryVM();
                toCreateVM.ChannelID = this.lstChannelList.SelectedValue.ToString();
                this.ucMaintain.ChangeToCreateMode(toCreateVM);
            }
        }
Пример #2
0
        public void ChangeToEditMode(ECCategoryVM selectedNode)
        {
            //当前界面正在编辑模式,加载数据
            _isEditing         = true;
            this.txtTitle.Text = ResECCategory.Info_EditTitle;
            _currentVM         = selectedNode;

            this.DataContext          = _currentVM;
            this.btnDelete.Visibility = Visibility.Visible;

            this.txtPriority.IsReadOnly = _currentVM.Level != ECCategoryLevel.Category1;

            if (_currentVM.Level == ECCategoryLevel.Category2)
            {
                this.chbShowInParent.Content = "一级类页面显示";
            }

            if (_currentVM.Level == ECCategoryLevel.Category3)
            {
                this.chbShowInParent.Content = "二级类页面显示";
                LoadAllBackendC3(() =>
                {
                    this.lstBackendC3.SelectedValue = _currentVM.C3SysNo;
                });
                this.btnAddChild.Visibility = Visibility.Collapsed;
            }
            else
            {
                this.btnAddChild.Visibility = Visibility.Visible;
            }
            //加载父类列表
            LoadParentView((unAssignedParent, assignedParent) =>
            {
                if (assignedParent != null)
                {
                    //先清空
                    _currentVM.Parents.Clear();
                    //再逐个加入
                    foreach (var p in assignedParent)
                    {
                        _currentVM.Parents.Add(p);
                    }
                    _currentVM.ParentCount = _currentVM.Parents.Count;
                }
            });
            LoadChildView((unAssignedChildren, assignedChildren) =>
            {
                if (assignedChildren != null)
                {
                    //先清空
                    _currentVM.Children.Clear();
                    //再逐个加入
                    foreach (var p in assignedChildren)
                    {
                        _currentVM.Children.Add(p);
                    }
                    _currentVM.ChildrenCount = _currentVM.Children.Count;
                }
            });
        }
Пример #3
0
        private void btnAddChild_Click(object sender, RoutedEventArgs e)
        {
            if (_currentVM != null)
            {
                //当前节点做为要创建子节点的父级节点
                ECCategoryVM parent = _currentVM;
                _currentVM = new ECCategoryVM();
                //根据当前节点的Level确定其子级的level
                ECCategoryLevel childLevel = ECCategoryLevel.Category1;
                if (parent.Level == ECCategoryLevel.Category1)
                {
                    childLevel = ECCategoryLevel.Category2;
                }
                else if (parent.Level == ECCategoryLevel.Category2)
                {
                    childLevel = ECCategoryLevel.Category3;
                }
                _currentVM.Level     = childLevel;
                _currentVM.ChannelID = parent.ChannelID;
                _currentVM.Parents.Add(parent);
                _currentVM.ParentCount = _currentVM.Parents.Count;

                ChangeToCreateMode(_currentVM);
            }
        }
Пример #4
0
        public void ChangeToCreateMode(ECCategoryVM toCreateVM)
        {
            _isEditing                  = false;
            this.txtTitle.Text          = ResECCategory.Info_AddTitle;
            this.btnAddChild.Visibility = Visibility.Collapsed;
            this.btnDelete.Visibility   = Visibility.Collapsed;

            _currentVM       = toCreateVM;
            this.DataContext = _currentVM;
            this.lstChannelList.SelectedIndex = 0;
            this.txtPriority.IsReadOnly       = _currentVM.Level != ECCategoryLevel.Category1;

            if (_currentVM.Level == ECCategoryLevel.Category2)
            {
                this.chbShowInParent.Content = "一级类页面显示";
            }

            if (_currentVM.Level == ECCategoryLevel.Category3)
            {
                this.chbShowInParent.Content = "二级类页面显示";
                LoadAllBackendC3(() =>
                {
                    this.lstBackendC3.SelectedIndex = 0;
                });
            }
        }
Пример #5
0
        protected virtual void OnDeleteCompleted(ECCategoryVM vm)
        {
            var hander = DeleteCompleted;

            if (hander != null)
            {
                hander(this, new ECCategoryActionEventArgs(vm));
            }
        }
Пример #6
0
        public void Update(ECCategoryVM vm, EventHandler <RestClientEventArgs <object> > callback)
        {
            var entity = vm.ConvertVM <ECCategoryVM, ECCategory>();

            entity.CompanyCode = CPApplication.Current.CompanyCode;
            entity.WebChannel  = new WebChannel
            {
                ChannelID = vm.ChannelID
            };
            entity.ParentList = new List <ECCategory>();
            foreach (var p in vm.Parents)
            {
                entity.ParentList.Add(p.ConvertVM <ECCategoryVM, ECCategory>());
            }
            entity.ChildrenList = new List <ECCategory>();
            foreach (var c in vm.Children)
            {
                entity.ChildrenList.Add(c.ConvertVM <ECCategoryVM, ECCategory>());
            }
            string relativeUrl = "/MKTService/ECCategory/Update";

            restClient.Update(relativeUrl, entity, callback);
        }
Пример #7
0
        public void SetSelectedCategory3SysNo(int?c3SysNo)
        {
            RemoveSelectionChangedEvent();
            //通过c3找到c2,c1
            ECCategoryVM category3 = null;

            if (this._allECCategoryList != null)
            {
                category3 = this._allECCategoryList.Category3List.FirstOrDefault(c3 => c3.SysNo == c3SysNo);
            }
            int?c2SysNo = null;
            int?c1SysNo = null;

            if (category3 != null)
            {
                var category2 = this._allECCategoryList.Category2List.FirstOrDefault(c2 => c2.SysNo == category3.ParentSysNo);
                c2SysNo = category3.ParentSysNo;
                if (category2 != null)
                {
                    c1SysNo = category2.ParentSysNo;
                }
            }
            //验证c3对应的c1是否选中
            if (c1SysNo != null && this.SelectedCategory1SysNo != c1SysNo)
            {
                this.lstECCategory1.SelectedValue = c1SysNo;
                LoadECCategory2();
            }
            //验证c3的c2是否选中
            if (c2SysNo != null && this.SelectedCategory2SysNo != c2SysNo)
            {
                this.lstECCategory2.SelectedValue = c2SysNo;
                LoadCategory3();
            }
            this.lstECCategory3.SelectedValue = c3SysNo;
            AddSelectionChangedEvent();
        }
Пример #8
0
 public ECCategoryActionEventArgs(ECCategoryVM data)
 {
     _data = data;
 }
Пример #9
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            //输入验证不通过,则直接返回
            if (!ValidationManager.Validate(this))
            {
                return;
            }

            var facade = new ECCategoryFacade(CPApplication.Current.CurrentPage);

            if (_currentVM.Level == ECCategoryLevel.Category3)
            {
                if (_currentVM.Name.Length < 1 || _currentVM.Name.Length > 10)
                {
                    CurrentWindow.Alert("三级类别最少1个字,最多10个字");
                    return;
                }
            }
            else if (_currentVM.Level == ECCategoryLevel.Category2)
            {
                if (_currentVM.Name.Length < 1 || _currentVM.Name.Length > 15)
                {
                    CurrentWindow.Alert("二级类别最少1个字,最多不能超过15个字");
                    return;
                }
            }
            else
            {
                if (_currentVM.Name.Length > 15)
                {
                    CurrentWindow.Alert("名称字数长度超范围,一级类别不可大于15个字");
                    return;
                }
            }

            if (_isEditing)
            {
                //编辑
                facade.Update(_currentVM, (s, args) =>
                {
                    if (args.FaultsHandle())
                    {
                        return;
                    }
                    CurrentWindow.Alert(ResECCategory.Info_EditSuccess);
                    OnEditCompleted(_currentVM);
                });
            }
            else
            {
                //新建
                facade.Create(_currentVM, (s, args) =>
                {
                    if (args.FaultsHandle())
                    {
                        return;
                    }
                    CurrentWindow.Alert(ResECCategory.Info_AddSuccess);

                    _currentVM = args.Result.Convert <ECCategory, ECCategoryVM>();

                    _currentVM.ChannelID = args.Result.WebChannel == null ? "1" : args.Result.WebChannel.ChannelID;

                    OnAddCompleted(_currentVM);

                    OnCancelClick();
                });
            }
        }