瀏覽代碼

修改样式与加载问题

lex 2 年之前
父節點
當前提交
6a98a3f376

+ 3 - 3
src/school/attendance-rules/component/sigin-in-rule.tsx

@@ -206,7 +206,7 @@ export default defineComponent({
                   </div>
                   <div class={styles.ruleTips}>
                     以<span>12:00:00</span>开始的课程为例,在
-                    <span>
+                    <span style="display: inline-block;">
                       {reduceFormMinute('12:00:00', forms['normal_sign_in_start'])}~
                       {reduceFormMinute('12:00:00', forms['normal_sign_in_end'])}
                     </span>
@@ -235,7 +235,7 @@ export default defineComponent({
                   </div>
                   <div class={styles.ruleTips}>
                     以<span>12:00:00</span>开始的课程为例,在
-                    <span>
+                    <span style="display: inline-block;">
                       {reduceFormMinuteAddS('12:00:00', forms['normal_sign_in_end'])}~12:00:00
                     </span>
                     时间范围内签到属于<span>异常签到</span>
@@ -301,7 +301,7 @@ export default defineComponent({
                   </div>
                   <div class={styles.ruleTips}>
                     以<span>12:00:00</span>开始的课程为例,在
-                    <span>
+                    <span style="display: inline-block;">
                       {addFormMinuteAddS('12:00:00', 0)} ~{' '}
                       {addFormMinute('12:00:00', forms['absence_sign_in'])}
                     </span>

+ 4 - 2
src/school/attendance-rules/component/sigin-out-rule.tsx

@@ -161,7 +161,9 @@ export default defineComponent({
                   </div>
                   <div class={styles.ruleTips}>
                     以<span>12:00:00</span>结束的课程为例, 在
-                    <span>12:00:00~{addFormMinute('12:00:00', forms['normal_sign_out'])}</span>
+                    <span style="display: inline-block;">
+                      12:00:00~{addFormMinute('12:00:00', forms['normal_sign_out'])}
+                    </span>
                     时间范围内签退属于<span>正常签退</span>
                   </div>
                 </div>
@@ -190,7 +192,7 @@ export default defineComponent({
                   </div>
                   <div class={styles.ruleTips}>
                     以<span>12:00:00</span>结束的课程为例, 在
-                    <span>
+                    <span style="display: inline-block;">
                       {reduceFormMinute('12:00:00', forms['premise_sign_out'])}~
                       {reduceFormMinuteMS('12:00:00', 0)}
                     </span>

+ 2 - 1
src/school/attendance-rules/index.module.less

@@ -29,7 +29,7 @@
       padding: 14px 12px;
     }
     .van-cell:after {
-      // border-color: #f2f2f2;
+      transform: scale(1);
     }
 
     .van-cell-group {
@@ -38,6 +38,7 @@
     }
     .van-field__control {
       text-align: center;
+      font-family: DINA;
     }
   }
 

+ 1 - 1
src/school/orchestra/compontent/information.module.less

@@ -30,7 +30,7 @@
 
 .gridClass {
   .title {
-    font-size: 22px;
+    font-size: 24px;
     font-family: 'DINA';
     font-family: DINAlternate-Bold, DINAlternate;
   }

+ 1 - 1
src/school/orchestra/compontent/plan.module.less

@@ -112,7 +112,7 @@
         font-size: 16px;
         color: #333333;
         padding: 0 6px;
-        font-weight: bold;
+        font-family: DINA;
       }
     }
     .block {

+ 10 - 2
src/school/practice-rewards/index.module.less

@@ -1,7 +1,15 @@
 .practiceRewards {
+  position: relative;
   min-height: 100vh;
-  background: url('./images/bg.png') no-repeat top right #fff0e8;
-  background-size: contain;
+  &::before {
+    content: ' ';
+    position: fixed;
+    top: 0;
+    width: 100%;
+    height: 100%;
+    background: url('./images/bg.png') no-repeat top right;
+    background-size: contain;
+  }
 }
 
 .btn {

+ 7 - 3
src/views/courseware-record/index.module.less

@@ -2,10 +2,15 @@
   margin: 0 13px 13px;
   border-radius: 10px;
   overflow: hidden;
+  :global {
+    .van-cell:after {
+      transform: scale(1);
+    }
+  }
 
   .top1 {
     padding: 12px;
-    font-size: 12px;
+    font-size: 13px;
     color: #777777 !important;
   }
   .top2 {
@@ -40,7 +45,6 @@
   .courseRange {
     font-size: 16px;
     font-family: DINA;
-    font-weight: bold;
     color: #333333;
     line-height: 19px;
     span {
@@ -51,7 +55,7 @@
   .courseName,
   .courseRangeTips {
     line-height: 1.2;
-    padding-top: 2px;
+    padding-top: 4px;
   }
 }
 

+ 2 - 4
src/views/courseware-record/index.tsx

@@ -54,7 +54,6 @@ export default defineComponent({
     const showContact = ref(true)
     const list = ref([])
     const getList = async () => {
-      loading.value = true
       try {
         if (refreshing.value) {
           forms.page = 1
@@ -70,13 +69,12 @@ export default defineComponent({
           return
         }
 
-        forms.page = res.data.current + 1
         list.value = list.value.concat(res.data.rows || [])
+        finished.value = res.data.current >= res.data.pages
         showContact.value = list.value.length > 0
+        forms.page = res.data.current + 1
         // console.log(showContact.value, ' showContact.value ')
         loading.value = false
-
-        finished.value = res.data.current >= res.data.pages
       } catch (e: any) {
         // console.log(e, 'e')
         const message = e.message

+ 9 - 0
src/views/exercise-record/index.module.less

@@ -54,6 +54,15 @@
     .van-button + .van-button {
       margin-left: 15px;
     }
+    .van-dropdown-menu__title:after {
+      border-color: transparent transparent #aaaaaa #aaaaaa;
+    }
+    .van-dropdown-menu__title--active {
+      color: #f67146;
+    }
+    .van-dropdown-menu__title--active:after {
+      border-color: transparent transparent currentColor currentColor;
+    }
   }
   .searchContainer {
     max-height: 400px;

+ 54 - 39
src/views/exercise-record/index.tsx

@@ -23,7 +23,15 @@ export default defineComponent({
       showSearchStatus: true,
       showPopoverTime: false,
       actions: [] as any,
-      subjects: [] as any
+      subjects: [] as any,
+      listState: {
+        dataShow: true, // 判断是否有数据
+        loading: false,
+        finished: false,
+        refreshing: false,
+        height: 0 // 页面头部高度,为了处理下拉刷新用的
+      },
+      isClick: false
     })
     const forms = reactive({
       startTime: dayjs().day(1).format('YYYY-MM-DD'),
@@ -38,21 +46,22 @@ export default defineComponent({
       page: 1,
       rows: 20
     })
-    const refreshing = ref(false)
-    const loading = ref(false)
-    const finished = ref(false)
-    const showContact = ref(true)
+    // const loading = ref(false)
+    // const finished = ref(false)
+    // const showContact = ref(true)
     const list = ref([])
+
     const getList = async () => {
-      loading.value = true
       try {
-        if (refreshing.value) {
+        if (state.isClick) return
+        state.isClick = true
+        if (state.listState.refreshing) {
           forms.page = 1
           list.value = []
-          refreshing.value = false
+          state.listState.refreshing = false
         }
+
         const { endTime, startTime, ...re } = forms
-        //
         const res = await request.post(
           `${platformApi.value}/musicPracticeRecord/${
             globalState.platformType === 'TEACHER' ? 'teacher' : 'school'
@@ -61,26 +70,26 @@ export default defineComponent({
             data: { ...re, endTime: endTime + ' 23:59:59', startTime: startTime + ' 00:00:00' }
           }
         )
-
-        if (list.value.length > 0 && res.data.pages === 1) {
+        state.listState.loading = false
+        state.listState.refreshing = false
+        const result = res.data || {}
+        // 处理重复请求数据
+        if (list.value.length > 0 && result.current === 1) {
           return
         }
-
-        forms.page = res.data.current + 1
-        list.value = list.value.concat(res.data.rows || [])
-        showContact.value = list.value.length > 0
-        console.log(showContact.value, ' showContact.value ')
-        loading.value = false
-
-        finished.value = res.data.current >= res.data.pages
-      } catch (e: any) {
-        // console.log(e, 'e')
-        const message = e.message
-        showToast(message)
-        showContact.value = false
-        finished.value = true
+        list.value = list.value.concat(result.rows || [])
+        state.listState.finished = result.current >= result.pages
+        forms.page = result.current + 1
+        state.listState.dataShow = list.value.length > 0
+        state.isClick = false
+      } catch {
+        state.listState.dataShow = false
+        state.listState.finished = true
+        state.listState.refreshing = false
+        state.isClick = false
       }
     }
+
     onMounted(async () => {
       await getSubjects()
       await getOrchestraList()
@@ -143,10 +152,11 @@ export default defineComponent({
       }
     }
     const onRefresh = () => {
-      finished.value = false
+      state.listState.finished = false
       // 重新加载数据
       // 将 loading 设置为 true,表示处于加载状态
-      loading.value = true
+      state.listState.loading = true
+      console.log(3)
       getList()
     }
 
@@ -174,19 +184,21 @@ export default defineComponent({
       forms.sortType = ''
       forms.sortTypeName = ''
       dropdownItemRef.value?.toggle()
-      refreshing.value = true
+      state.listState.refreshing = true
+      console.log(4)
       getList()
     }
 
     // 搜索
     const onSearchConfirm = () => {
       dropdownItemRef.value?.toggle()
-      refreshing.value = true
+      state.listState.refreshing = true
+      console.log(5)
       getList()
     }
 
     return () => (
-      <div class={[!showContact.value ? 'emptyRootContainer' : '', styles.exerciseRecord]}>
+      <div class={[!state.listState.dataShow ? 'emptyRootContainer' : '', styles.exerciseRecord]}>
         <OSticky
           position="top"
           background="#F8F8F8"
@@ -304,7 +316,8 @@ export default defineComponent({
               class={styles.recordSearch}
               onSearch={(val: any) => {
                 forms.keyword = val
-                refreshing.value = true
+                state.listState.refreshing = true
+                console.log(6)
                 getList()
               }}
             ></OSearch>
@@ -329,7 +342,8 @@ export default defineComponent({
                       forms.orchestraId = ''
                       forms.orchestraName = ''
                       e.stopPropagation()
-                      refreshing.value = true
+                      state.listState.refreshing = true
+                      console.log(8)
                       getList()
                     }}
                   />
@@ -345,7 +359,8 @@ export default defineComponent({
                       forms.subjectId = ''
                       forms.subjectName = ''
                       e.stopPropagation()
-                      refreshing.value = true
+                      state.listState.refreshing = true
+                      console.log(2)
                       getList()
                     }}
                   />
@@ -361,7 +376,8 @@ export default defineComponent({
                       forms.sortType = ''
                       forms.sortTypeName = ''
                       e.stopPropagation()
-                      refreshing.value = true
+                      state.listState.refreshing = true
+                      console.log(1)
                       getList()
                     }}
                   />
@@ -370,20 +386,19 @@ export default defineComponent({
             </div>
           </div>
         </OSticky>
-        {showContact.value ? (
+        {state.listState.dataShow ? (
           <OFullRefresh
-            v-model:modelValue={refreshing.value}
+            v-model:modelValue={state.listState.refreshing}
             onRefresh={onRefresh}
             style="min-height: calc(100vh - var(--header-height))"
           >
             <List
-              loading-text=" "
               // v-model:loading={loading.value}
-              finished={finished.value}
+              finished={state.listState.finished}
               style={{
                 paddingTop: '12px'
               }}
-              finished-text=" "
+              finishedText=" "
               onLoad={getList}
               immediateCheck={false}
             >

+ 8 - 46
src/views/exercise-record/modals/student-item.tsx

@@ -110,7 +110,12 @@ export default defineComponent({
                   </p>
                   <p class={styles.bottomText}>练习时长</p>
                 </div>
-                <div class={styles.userItem}>
+                <div
+                  class={styles.userItem}
+                  style={{
+                    marginLeft: '-5px'
+                  }}
+                >
                   <p class={styles.topText}>
                     <span>{props.item.trainingDays ? props.item.trainingDays : 0}</span>天
                   </p>
@@ -120,51 +125,8 @@ export default defineComponent({
             )
           }}
         </Cell>
-        {/* <div>
-          <div class={styles.itemWrap} onClick={gotoDetail}>
-            <div class={styles.itemTop}>
-              <div class={styles.itemTopLeft}>
-                <div class={styles.headIcon}>
-                  <img src={props.item.avatar ? props.item.avatar : defaultIcon} alt="" />
-                </div>
-                <p class={styles.name}>{props.item.nickname}</p>
 
-                <div class={styles.tag}>
-                  {props.item.subjectNames ? props.item.subjectNames : '暂无声部'}
-                </div>
-              </div>
-              <div class={styles.itemTopRight}>
-                <div
-                  class={styles.msgIcon}
-                  onClick={(e: any) => {
-                    e.stopPropagation()
-                    e.preventDefault()
-                    startContact()
-                  }}
-                >
-                  <img src={msgIcon} alt="" />
-                </div>
-              </div>
-            </div>
-            <div class={styles.itemBottom}>
-              <div class={styles.itemBottomLeft}>
-                <p class={styles.msgMain}>
-                  {props.item.practiceDays ? props.item.practiceDays : 0} <span>天</span>
-                </p>
-                <p class={styles.msgsub}>练习天数</p>
-              </div>
-              <div class={styles.itemBottomRight}>
-                <p class={styles.msgMain}>
-                  {props.item.practiceTimes ? props.item.practiceTimes : 0}
-                  <span>分钟</span>
-                </p>
-                <p class={styles.msgsub}>练习时长</p>
-                <Icon class={styles.arrow} name="arrow"></Icon>
-              </div>
-            </div>
-          </div>
-        </div> */}
-        <ActionSheet
+        {/* <ActionSheet
           class="bottomSheet"
           v-model:show={showContact.value}
           v-slots={{
@@ -216,7 +178,7 @@ export default defineComponent({
               <p>拨打电话</p>
             </div>
           </div>
-        </ActionSheet>
+        </ActionSheet> */}
       </>
     )
   }