Console.tsx 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { TimeFormatter } from "@/utils/time_format";
  2. import { useSelector } from "react-redux";
  3. // const common = useSelector((state: any) => state.common);
  4. export const pickerDurations = () => {
  5. const list: string[] = [];
  6. for (let i = 0; i <= 22 * 12; i++) {
  7. var count = i * 5 + 60;
  8. var hour = Math.floor(count / 60);
  9. var minute = count % 60;
  10. list.push(`${hour > 0 ? hour + '小时' : ''}${minute > 0 ? minute + '分钟' : ''}`);
  11. }
  12. return list;
  13. }
  14. //获取picker的取值范围,返回二维数组
  15. export const durationDatas = (common: any) => {
  16. var min: number = 1
  17. var max: number = 23
  18. var step: number = 5
  19. if (common.duration) {
  20. min = common.duration.min
  21. max = common.duration.max
  22. step = common.duration.step
  23. }
  24. var minutes: string[] = []
  25. for (let i = 0; i < 60; i += step) {
  26. minutes.push(i+'分钟')
  27. }
  28. var hours: string[] = []
  29. for (let i = min; i <= max; i++) {
  30. hours.push(i+'小时')
  31. }
  32. return [hours, minutes]
  33. }
  34. //通过开始时间和结束时间计算picker的index值,返回格式为[hourIndex,minuteIndex]
  35. export const durationIndex = (start: string, end: string,common: any) => {
  36. if ((start+'').indexOf(':') == -1) {
  37. start = TimeFormatter.formatTime(new Date(parseInt(start+'')));
  38. }
  39. if ((end+'').indexOf(':') == -1) {
  40. end = TimeFormatter.formatTime(new Date(parseInt(end+'')));
  41. }
  42. var min: number = 1
  43. var max: number = 23
  44. var step: number = 5
  45. // const common = useSelector((state: any) => state.common);
  46. if (common.duration) {
  47. min = common.duration.min
  48. max = common.duration.max
  49. step = common.duration.step
  50. }
  51. var startHour = parseInt(start.split(':')[0])
  52. var startMinute = parseInt(start.split(':')[1])
  53. var endHour = parseInt(end.split(':')[0])
  54. var endMinute = parseInt(end.split(':')[1])
  55. var startCount = startHour * 60 + startMinute
  56. var endCount = endHour * 60 + endMinute
  57. if (endCount < startCount) {
  58. endCount += 24 * 60
  59. }
  60. var leftCount = endCount - startCount
  61. var leftHour = Math.floor(leftCount / 60)
  62. var leftMinute = leftCount % 60
  63. leftHour = leftHour < min ? min : leftHour
  64. leftHour = leftHour > max ? max : leftHour
  65. return [leftHour - min, leftMinute / step]
  66. }
  67. //通过开始时间和结束时间计算duration,返回格式为[hour,minute]
  68. export const durationTime = (start: string, end: string) => {
  69. var startHour = parseInt(start.split(':')[0])
  70. var startMinute = parseInt(start.split(':')[1])
  71. var endHour = parseInt(end.split(':')[0])
  72. var endMinute = parseInt(end.split(':')[1])
  73. var startCount = startHour * 60 + startMinute
  74. var endCount = endHour * 60 + endMinute
  75. if (endCount < startCount) {
  76. endCount += 24 * 60
  77. }
  78. var leftCount = endCount - startCount
  79. var leftHour = Math.floor(leftCount / 60)
  80. var leftMinute = leftCount % 60
  81. // leftHour = leftHour < 1 ? 1 : leftHour
  82. // leftHour = leftHour > 23 ? 23 : leftHour
  83. return [leftHour, leftMinute]
  84. }
  85. export const getTitle = (data)=>{
  86. if (data.scenario == 'FAST'){
  87. if (data.status == 'WAIT_FOR_START'){
  88. return '开始断食'
  89. }
  90. return '结束断食'
  91. }
  92. else if (data.scenario == 'SLEEP'){
  93. if (data.status == 'WAIT_FOR_START'){
  94. return '开始睡眠'
  95. }
  96. return '结束睡眠'
  97. }
  98. else {
  99. if (data.status == 'WAIT_FOR_START'){
  100. return '开始断食'
  101. }
  102. else if (data.status == 'ONGOING1'){
  103. return '开始睡眠'
  104. }
  105. else if (data.state == 'ONGOING2'){
  106. return '结束睡眠'
  107. }
  108. return '结束睡眠'
  109. }
  110. }