index.tsx 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. import OHeader from '@/components/o-header'
  2. import OSticky from '@/components/o-sticky'
  3. import { useRect } from '@vant/use'
  4. import { Collapse, CollapseItem, dividerProps } from 'vant'
  5. import { defineComponent, onMounted, reactive, ref, nextTick } from 'vue'
  6. import { useRouter } from 'vue-router'
  7. import clockIcon from './images/clock-icon.png'
  8. import styles from './index.module.less'
  9. const activeName = ref('student')
  10. export default defineComponent({
  11. name: 'attendance-rule',
  12. setup() {
  13. const router = useRouter()
  14. const state = reactive({
  15. activeNames: ['1']
  16. })
  17. const stickyRef = ref()
  18. return () => (
  19. <>
  20. <OSticky position="top" background="#F8F8F8">
  21. <OHeader></OHeader>
  22. </OSticky>
  23. <div class={styles.attCollapseWrap}>
  24. <Collapse v-model={state.activeNames}>
  25. <CollapseItem
  26. name="1"
  27. border={false}
  28. v-slots={{
  29. title: () => (
  30. <div class={styles.collapseTitle}>
  31. <span class={styles.dot}></span>
  32. 签到规则
  33. </div>
  34. )
  35. }}
  36. >
  37. <div>
  38. <div class={styles.mainMsg}>
  39. <img src={clockIcon} alt="" class={styles.clockIcon} />
  40. <p>以课程时间12:00:00 ~ 13:00:00为例</p>
  41. </div>
  42. <div class={styles.textWrap}>
  43. <h4>可签到时间范围:</h4>
  44. <p>
  45. 课程<span>开始前60分钟</span>至课程<span>结束前</span>
  46. </p>
  47. <p>时间段:11:00:00 ~ 13:00</p>
  48. </div>
  49. <div class={styles.textWrap}>
  50. <h4>正常签到:</h4>
  51. <p>
  52. 课程<span>开始前60分钟</span>至课程<span>开始前20分钟</span>
  53. 签到GPS定位点在教学点<span>1000米内</span>
  54. </p>
  55. <p>时间段:11:00:00 ~ 11:40:00</p>
  56. </div>
  57. <div class={styles.textWrap}>
  58. <h4>异常签到:</h4>
  59. <p>
  60. 课程<span>开始前20分钟</span>后至课程<span>开始前</span>
  61. 签到GPS定位点在教学点<span>1000米外</span>
  62. </p>
  63. <p>时间段:11:00:00 ~ 11:40:00</p>
  64. <p>
  65. 扣除训练补助:<span>-50元</span>
  66. </p>
  67. </div>
  68. <div class={styles.textWrap}>
  69. <h4>迟到:</h4>
  70. <p>
  71. 课程<span>开始后30分钟</span>内签到
  72. </p>
  73. <p>时间段:12:00:00 ~ 12:30:00</p>
  74. <p>
  75. 扣除训练补助:<span>-100%</span>
  76. </p>
  77. </div>
  78. <div class={styles.textWrap}>
  79. <h4>旷课:</h4>
  80. <p>
  81. 课程<span>开始后30分钟</span>至课程<span>结束前</span>签到
  82. </p>
  83. <p>时间段:11:30:00后签到(含11:30:00)</p>
  84. <p>
  85. 扣除训练补助:<span>-100%</span>
  86. </p>
  87. </div>
  88. <div class={styles.textWrap}>
  89. <h4>未签到:</h4>
  90. <p>未进行【签到】操作</p>
  91. <p>
  92. 扣除训练补助:<span>-100%</span>
  93. </p>
  94. </div>
  95. </div>
  96. </CollapseItem>
  97. <CollapseItem
  98. name="2"
  99. border={false}
  100. v-slots={{
  101. title: () => (
  102. <div class={styles.collapseTitle}>
  103. <span class={styles.dot}></span>
  104. 签退规则
  105. </div>
  106. )
  107. }}
  108. >
  109. <div>
  110. <div class={styles.mainMsg}>
  111. <img src={clockIcon} alt="" class={styles.clockIcon} />
  112. <p>以课程时间12:00:00 ~ 13:00:00为例</p>
  113. </div>
  114. <div class={styles.textWrap}>
  115. <h4>可签退时间范围:</h4>
  116. <p>
  117. 课程<span>开始后</span>至课程当天24点前
  118. </p>
  119. <p>时间段:12:00:00 ~ 23:59:59</p>
  120. </div>
  121. <div class={styles.textWrap}>
  122. <h4>正常签退:</h4>
  123. <p>
  124. 课程<span>结束后</span>至课程<span>开始后360分钟</span>
  125. 签退GPS定位点在教学点<span>1000米内</span>
  126. </p>
  127. <p>时间段:13:00:00 ~ 19:00:00</p>
  128. </div>
  129. <div class={styles.textWrap}>
  130. <h4>早退:</h4>
  131. <p>
  132. 课程<span>开始后30分钟</span>内签到
  133. </p>
  134. <p>时间段:12:00:00 ~ 12:30:00</p>
  135. <p>
  136. 扣除训练补助:<span>-100%</span>
  137. </p>
  138. </div>
  139. <div class={styles.textWrap}>
  140. <h4>异常签到:</h4>
  141. <p>
  142. 课程<span>开始前20分钟</span>后至课程<span>开始前</span>
  143. 签到GPS定位点在教学点<span>1000米外</span>
  144. </p>
  145. <p>时间段:11:00:00 ~ 11:40:00</p>
  146. <p>
  147. 扣除训练补助:<span>-50元</span>
  148. </p>
  149. </div>
  150. <div class={styles.textWrap}>
  151. <h4>旷课:</h4>
  152. <p>
  153. 课程<span>开始后30分钟</span>至课程<span>结束前</span>签到
  154. </p>
  155. <p>时间段:11:30:00后签到(含11:30:00)</p>
  156. <p>
  157. 扣除训练补助:<span>-100%</span>
  158. </p>
  159. </div>
  160. <div class={styles.textWrap}>
  161. <h4>未签到:</h4>
  162. <p>未进行【签到】操作</p>
  163. <p>
  164. 扣除训练补助:<span>-100%</span>
  165. </p>
  166. </div>
  167. </div>
  168. </CollapseItem>
  169. <CollapseItem
  170. name="3"
  171. border={false}
  172. v-slots={{
  173. title: () => (
  174. <div class={styles.collapseTitle}>
  175. <span class={styles.dot}></span>
  176. 签到规则
  177. </div>
  178. )
  179. }}
  180. ></CollapseItem>
  181. </Collapse>
  182. </div>
  183. </>
  184. )
  185. }
  186. })