环境:net framework 4.5.2


    页面demo样式

    请求接口返回

    1. /// <summary>
    2. /// 初始化信息
    3. /// </summary>
    4. /// <returns></returns>
    5. public string Init(int? _week) {
    6. var userinfo = Base.GetUserInfo();
    7. //得到当前周
    8. //创建默认周
    9. var week = 0;
    10. //创建当前时间
    11. var currentDate = DateTime.Now;
    12. if (_week != null) {
    13. //如果传递的当前周 - 说明了周数不一定准确 - 比如年底要跨年 2021本年是53周,在前端点击下一周是54周(实际代表是2022年第二周),所以这里需要转换
    14. currentDate = DateTimeConvert.GetDateByWeek(_week ?? 0);
    15. week = DateTimeConvert.GetWeekIndexByYear(currentDate);
    16. } else {
    17. currentDate = DateTimeConvert.GetMondayDate();
    18. week = Tool.DateTimeConvert.GetWeekIndexByYear(DateTime.Now);
    19. }
    20. //判断本周是否有数据
    21. var model = dal.GetByWeek(week);
    22. if (model == null) {
    23. model = new Model.WeeklyPlan() {
    24. WorkID = Guid.NewGuid().ToString(),
    25. StartDate = DateTime.Parse(currentDate.ToString("yyyy-MM-dd")),
    26. EndDate = DateTime.Parse(currentDate.AddDays(5).ToString("yyyy-MM-dd")),
    27. UserID = userinfo.UserID,
    28. Week = week,
    29. Year = currentDate.Year.ToString()
    30. };
    31. if (!dal.Add(model)) {
    32. return Base.GetErrorStr("初始化失败,请稍后在试!");
    33. }
    34. }
    35. if (model is Model.WeeklyPlan_Expand a) {
    36. for (int i = 0; i < a.Afternoon.GetType().GetProperties().Length; i++) {
    37. //写属性的同时插入时间
    38. DateTime dates = currentDate.AddDays(i);
    39. a.DateSort[i] = dates.ToString("yyyy-MM-dd");
    40. a.Morning.GetType().GetProperties()[i].SetValue(a.Morning, dalWeeklyPlanItem.GetByWorkIDOrDateList(model.WorkID, dates, true));
    41. a.Afternoon.GetType().GetProperties()[i].SetValue(a.Afternoon, dalWeeklyPlanItem.GetByWorkIDOrDateList(model.WorkID, dates, false));
    42. }
    43. return Base.GetSuccessObj(a);
    44. } else {
    45. return Base.GetSuccessObj(null);
    46. }
    47. }
    1. public class WeeklyPlan_Expand {
    2. public WeeklyPlan_Expand() {
    3. DateSort = new string[6];
    4. Afternoon = new DateDay();
    5. Morning = new DateDay();
    6. }
    7. [SqlSugar.SugarColumn(IsIgnore = true)]
    8. public DateDay Morning { get; set; }
    9. [SqlSugar.SugarColumn(IsIgnore = true)]
    10. public DateDay Afternoon { get; set; }
    11. [SqlSugar.SugarColumn(IsIgnore = true)]
    12. public string[] DateSort { get; set; }
    13. }
    14. public class DateDay {
    15. /// <summary>
    16. /// 星期一
    17. /// </summary>
    18. public List<Model.WeeklyPlanItem> Monday { get; set; }
    19. /// <summary>
    20. /// 星期二
    21. /// </summary>
    22. public List<Model.WeeklyPlanItem> Tuesday { get; set; }
    23. /// <summary>
    24. /// 星期三
    25. /// </summary>
    26. public List<Model.WeeklyPlanItem> Wednesday { get; set; }
    27. /// <summary>
    28. /// 星期四
    29. /// </summary>
    30. public List<Model.WeeklyPlanItem> Thursday { get; set; }
    31. /// <summary>
    32. /// 星期五
    33. /// </summary>
    34. public List<Model.WeeklyPlanItem> Friday { get; set; }
    35. /// <summary>
    36. /// 星期六
    37. /// </summary>
    38. public List<Model.WeeklyPlanItem> Saturday { get; set; }
    39. }