예제 #1
0
 static void SetAreaItems3(this IViewModelField v, IReadOnlyList <IArea> value, bool isSetProperty)
 {
     if (isSetProperty)
     {
         v.AreaItems3 = value;
     }
     else
     {
         v.MAreaItems3 = value;
     }
 }
예제 #2
0
 static void SetAreaSelectItem3(this IViewModelField v, IArea value, bool isSetProperty)
 {
     if (isSetProperty)
     {
         v.AreaSelectItem3 = value;
     }
     else
     {
         v.MAreaSelectItem3 = value;
     }
 }
예제 #3
0
 static void SetAreaNotVisible4(this IViewModelField v, bool value, bool isSetProperty)
 {
     if (isSetProperty)
     {
         v.AreaNotVisible4 = value;
     }
     else
     {
         v.MAreaNotVisible4 = value;
     }
 }
예제 #4
0
        public static void SetAreaId(this IViewModelField v, int areaId, IArea?area, bool isSetProperty)
        {
            if (areaId == PleaseSelect.Id)
            {
                return;
            }
            area ??= Res.GetAll().FirstOrDefault(x => x.Id == areaId);
            if (area == null)
            {
                return;
            }
            if (!isSetProperty && area.Up.HasValue)
            {
                v.SetAreaId(area.Up.Value, null, isSetProperty);
            }
            switch (area.Level)
            {
            case AreaLevel.省或直辖市或特别行政区:
                v.SetAreaItems3(GetAreasByLevel(AreaLevel.市_不包括直辖市, areaId), isSetProperty);
                v.SetAreaNotVisible3(v.AreaItems3 == GroupEmpty, isSetProperty);
                v.SetAreaItems4(v.AreaNotVisible3 ? GetAreasByLevel(AreaLevel.区县_县级市, areaId) : GroupEmpty, isSetProperty);
                v.SetAreaNotVisible4(v.AreaNotVisible3 && v.AreaItems4 == GroupEmpty, isSetProperty);
                if (!isSetProperty)
                {
                    v.SetAreaSelectItem2(area, isSetProperty);
                }
                v.SetAreaSelectItem3(v.AreaSelectItem4 = PleaseSelect, isSetProperty);
                break;

            case AreaLevel.市_不包括直辖市:
                v.SetAreaItems4(GetAreasByLevel(AreaLevel.区县_县级市, areaId), isSetProperty);
                v.SetAreaNotVisible4(v.AreaItems4 == GroupEmpty, isSetProperty);
                if (!isSetProperty)
                {
                    v.SetAreaSelectItem3(area, isSetProperty);
                }
                v.SetAreaSelectItem4(PleaseSelect, isSetProperty);
                break;

            case AreaLevel.区县_县级市:
                if (!isSetProperty)
                {
                    v.SetAreaSelectItem4(area, isSetProperty);
                }
                break;
            }
        }
예제 #5
0
        /// <summary>
        /// 初始化视图模型中的地区数据
        /// </summary>
        /// <param name="v"></param>
        public static void InitAreas(this IViewModelField v)
        {
            v.AreaItems2 = Group2;
            v.AreaItems3 = v.AreaItems4 = GroupEmpty;
            v.SetAreaSelectItem4(PleaseSelect, false);
            v.SetAreaSelectItem3(PleaseSelect, false);
            v.SetAreaSelectItem2(PleaseSelect, false);

            void SubscribeAreaSelectItem(IArea?area)
            {
                if (area != null)
                {
                    v.SelectArea(area);
                }
            }

            v.WhenAnyValue(x => x.AreaSelectItem2).Subscribe(SubscribeAreaSelectItem).AddTo(v);
            v.WhenAnyValue(x => x.AreaSelectItem3).Subscribe(SubscribeAreaSelectItem).AddTo(v);
        }
예제 #6
0
 /// <inheritdoc cref="SelectAreaId(IViewModelField, int, IArea?)"/>
 public static void SelectArea(this IViewModelField v, IArea area) => v.SelectAreaId(area.Id);
예제 #7
0
 /// <inheritdoc cref="SelectAreaId(IViewModelField, int, IArea?)"/>
 public static void SelectAreaId(this IViewModelField v, int areaId) => v.SelectAreaId(areaId, null);
예제 #8
0
 /// <summary>
 /// 前端选中一个地区
 /// </summary>
 /// <param name="v"></param>
 /// <param name="areaId"></param>
 /// <param name="area"></param>
 /// <param name="setArea"></param>
 /// <param name="isRecursionUp"></param>
 static void SelectAreaId(this IViewModelField v, int areaId, IArea?area) => v.SetAreaId(areaId, area, true);
예제 #9
0
 /// <summary>
 /// 后端设置一个地区
 /// </summary>
 /// <param name="v"></param>
 /// <param name="areaId"></param>
 public static void SetAreaId(this IViewModelField v, int areaId) => v.SetAreaId(areaId, null, false);