mo 2 rokov pred
rodič
commit
e05ec42e4c

+ 21 - 10
src/router/routes-student.ts

@@ -51,14 +51,16 @@ export default [
         meta: {
           title: '会员中心'
         }
-      }, {
+      },
+      {
         path: '/tradeRecord',
         name: 'tradeRecord',
         component: () => import('@/student/trade-record/index'),
         meta: {
           title: '交易记录'
         }
-      }, {
+      },
+      {
         path: '/my-orchestra',
         name: 'my-orchestra',
         component: () => import('@/student/my-orchestra/index'),
@@ -111,17 +113,26 @@ export default [
         meta: {
           title: '收货地址'
         }
+      },
+      {
+        path: '/attendance-rule',
+        name: 'attendance-rule',
+        component: () => import('@/views/attendance-rule/index'),
+        meta: {
+          title: '考勤规则'
+        }
+      },
+      {
+        path: '/ranking-list',
+        name: 'ranking-list',
+        component: () => import('@/student/ranking-list/index'),
+        meta: {
+          title: '排行榜'
+        }
       }
     ]
   },
-  {
-    path: '/ranking-list',
-    name: 'ranking-list',
-    component: () => import('@/student/ranking-list/index'),
-    meta: {
-      title: '排行榜'
-    }
-  },
+
   ...noLoginRouter,
   ...rootRouter
 ]

+ 1 - 1
src/school/approval-manage/components/approval-item.tsx

@@ -40,7 +40,7 @@ export default defineComponent({
                 <img src={clockIcon} alt="" />
               </div>
               <p class={styles.leftTimer}>
-                {dayjs(props.item.createTime).format('YYYY-MM-DD hh:mm')}
+                {dayjs(props.item.createTime).format('YYYY-MM-DD HH:mm')}
               </p>
             </div>
             {props.type == 'end' && props.item.status == 'PASS' ? (

+ 6 - 2
src/school/approval-manage/components/end-approval.tsx

@@ -31,7 +31,7 @@ export default defineComponent({
           refreshing.value = false
         }
 
-        const res = await request.post('/api-school/userLeaveRecord/page', {
+        const res = await request.post('/api-school/userApproveRecord/page', {
           data: { ...forms, hasHandle: true }
         })
 
@@ -69,7 +69,11 @@ export default defineComponent({
       <>
         <div class={styles.approvalWrap}>
           {showContact.value ? (
-            <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+            <PullRefresh
+              v-model={refreshing.value}
+              onRefresh={onRefresh}
+              style="min-height: 100vh;"
+            >
               <List
                 v-model:loading={loading.value}
                 finished={finished.value}

+ 6 - 2
src/school/approval-manage/components/wait-approval.tsx

@@ -31,7 +31,7 @@ export default defineComponent({
           refreshing.value = false
         }
 
-        const res = await request.post('/api-school/userLeaveRecord/page', {
+        const res = await request.post('/api-school/userApproveRecord/page', {
           data: { ...forms, hasHandle: false }
         })
 
@@ -71,7 +71,11 @@ export default defineComponent({
       <>
         <div class={styles.approvalWrap}>
           {showContact.value ? (
-            <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+            <PullRefresh
+              v-model={refreshing.value}
+              onRefresh={onRefresh}
+              style="min-height: 100vh;"
+            >
               <List
                 v-model:loading={loading.value}
                 finished={finished.value}

+ 1 - 1
src/school/attendance/components/attend-student.tsx

@@ -213,7 +213,7 @@ export default defineComponent({
         {/* </OSticky> */}
 
         {showContact.value ? (
-          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh} style="min-height: 100vh;">
             <List
               v-model:loading={loading.value}
               finished={finished.value}

+ 1 - 1
src/school/attendance/components/attend-teacher.tsx

@@ -210,7 +210,7 @@ export default defineComponent({
         </Sticky>
 
         {showContact.value ? (
-          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh} style="min-height: 100vh;">
             <List
               v-model:loading={loading.value}
               finished={finished.value}

+ 1 - 1
src/school/attendance/student-att-day.tsx

@@ -128,7 +128,7 @@ export default defineComponent({
           modelValue={forms.nickName}
         ></OSearch>
         {showContact.value ? (
-          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh} style="min-height: 100vh;">
             <List
               v-model:loading={loading.value}
               finished={finished.value}

+ 1 - 1
src/school/ranking-list/components/day-bang.tsx

@@ -215,7 +215,7 @@ export default defineComponent({
         {/* </OSticky> */}
 
         {showContact.value ? (
-          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh} style="min-height: 100vh;">
             <List
               v-model:loading={loading.value}
               finished={finished.value}

+ 1 - 2
src/school/ranking-list/components/timer-bang.tsx

@@ -42,7 +42,7 @@ export default defineComponent({
       subjectName: '全部声部',
       page: 1,
       rows: 50,
-      sortType: 'PRACTICE_TIMERS'
+      sortType: 'PRACTICE_TIMES'
     })
     const minDate = ref(new Date(dayjs().subtract(10, 'year').format('YYYY-MM-DD')))
     const maxDate = ref(new Date(dayjs().add(10, 'year').format('YYYY-MM-DD')))
@@ -61,7 +61,6 @@ export default defineComponent({
       }
     )
     const getList = async () => {
-      console.log('getList')
       loading.value = true
       try {
         if (refreshing.value) {

+ 1 - 6
src/school/ranking-list/index.tsx

@@ -26,12 +26,7 @@ export default defineComponent({
       <>
         <OSticky position="top" background="#F8F8F8" onGetHeight={getHeight}>
           <div class={styles.topWrap}>
-            <OHeader
-              isBack={true}
-              color={'#ffffff'}
-              background={'transparent'}
-              border={false}
-            ></OHeader>
+            <OHeader color={'#ffffff'} background={'transparent'} border={false}></OHeader>
             <span class={styles.topTime}>{timers.value}</span>
           </div>
           <Tabs

+ 1 - 1
src/school/school-detail/modals/teacher-item.tsx

@@ -31,7 +31,7 @@ export default defineComponent({
         <div class={styles.itemWrap} onClick={gotoMsg}>
           <div class={styles.itemLeft}>
             <div class={styles.headerWrap}>
-              <img src={props.item.studentAvatar ? props.item.studentAvatar : defaultIcon} alt="" />
+              <img src={props.item.avatar ? props.item.avatar : defaultIcon} alt="" />
             </div>
           </div>
           <div class={styles.itemRight}>

+ 5 - 1
src/student/ranking-list/components/day-bang.tsx

@@ -113,7 +113,11 @@ export default defineComponent({
       <>
         {showContact.value ? (
           <div>
-            <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+            <PullRefresh
+              v-model={refreshing.value}
+              onRefresh={onRefresh}
+              style="min-height: 100vh;"
+            >
               <List
                 v-model:loading={loading.value}
                 finished={finished.value}

+ 5 - 1
src/student/ranking-list/components/timer-bang.tsx

@@ -112,7 +112,11 @@ export default defineComponent({
 
         {showContact.value ? (
           <div>
-            <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+            <PullRefresh
+              v-model={refreshing.value}
+              onRefresh={onRefresh}
+              style="min-height: 100vh;"
+            >
               <List
                 v-model:loading={loading.value}
                 finished={finished.value}

+ 1 - 6
src/student/ranking-list/index.tsx

@@ -39,12 +39,7 @@ export default defineComponent({
       <>
         <OSticky position="top" background="#F8F8F8" onGetHeight={getHeight}>
           <div class={styles.topWrap}>
-            <OHeader
-              isBack={true}
-              color={'#ffffff'}
-              background={'transparent'}
-              border={false}
-            ></OHeader>
+            <OHeader color={'#ffffff'} background={'transparent'} border={false}></OHeader>
             <span class={styles.topTime} onClick={() => (state.showPopoverTime = true)}>
               {forms.timeName} <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
             </span>

+ 1 - 1
src/teacher/attendance/index.tsx

@@ -202,7 +202,7 @@ export default defineComponent({
         </Sticky>
 
         {showContact.value ? (
-          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh} style="min-height: 100vh;">
             <List
               v-model:loading={loading.value}
               finished={finished.value}

+ 53 - 49
src/views/exercise-record/exercis-detail.tsx

@@ -37,7 +37,9 @@ export default defineComponent({
         { text: '交付团' },
         { text: '晋升团' }
       ],
-      id: route.query.id
+      id: route.query.id,
+      heightV: 0 as number,
+      scrollTop: 0 as number
     })
 
     const forms = reactive({
@@ -109,10 +111,16 @@ export default defineComponent({
     onMounted(() => {
       getList()
       getDetail()
+      window.addEventListener('scroll', handleScroll)
     })
-    const onBack = () => {
-      console.log('返回')
-      router.push('/exercise-record')
+    const handleScroll = () => {
+      const scrollTop =
+        window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
+      state.scrollTop = scrollTop
+    }
+    const getHeight = (dataHeight: number) => {
+      state.heightV = dataHeight
+      console.log(dataHeight, 'dataHeight')
     }
 
     const checkTimer = (val: any) => {
@@ -132,12 +140,11 @@ export default defineComponent({
     }
     return () => (
       <>
-        <OSticky position="top" background="#F8F8F8">
-          <div class={styles.topWrap}>
+        <div class={styles.topWrap}>
+          <OSticky position="top" background="#F8F8F8" onGetHeight={getHeight}>
             <OHeader
-              // onHeaderBack={onBack}
               border={false}
-              background={'transparent'}
+              background={state.heightV > state.scrollTop ? 'transparent' : '#fff'}
             >
               {{
                 right: () => (
@@ -152,50 +159,48 @@ export default defineComponent({
                 )
               }}
             </OHeader>
-            <div class={styles.topInfo}>
-              <div class={styles.topInfoLeft}>
-                <div class={styles.headWrap}>
-                  <img
-                    src={infoDetail.value.avatar ? infoDetail.value.avatar : defaultIcon}
-                    alt=""
-                  />
-                </div>
-                <div class={styles.infoMsg}>
-                  <p>{infoDetail.value.nickname}</p>
-                  <div class={styles.tag}>{infoDetail.value.subjectNames}</div>
-                </div>
+          </OSticky>
+          <div class={styles.topInfo}>
+            <div class={styles.topInfoLeft}>
+              <div class={styles.headWrap}>
+                <img src={infoDetail.value.avatar ? infoDetail.value.avatar : defaultIcon} alt="" />
               </div>
-              <div class={styles.topInfoRight}>
-                <div class={styles.infoDay}>
-                  <p class={styles.infoDayMain}>
-                    {infoDetail.value.practiceDays ? infoDetail.value.practiceDays : 0}{' '}
-                    <span>天</span>
-                  </p>
-                  <p class={styles.infoDaysub}>练习天数</p>
-                </div>
-                <div class={styles.infoTime}>
-                  <p class={styles.infoDayMain}>
-                    {infoDetail.value.practiceTimes ? infoDetail.value.practiceTimes : 0}{' '}
-                    <span>分钟</span>
-                  </p>
-                  <p class={styles.infoDaysub}>练习时长</p>
-                </div>
+              <div class={styles.infoMsg}>
+                <p>{infoDetail.value.nickname}</p>
+                <div class={styles.tag}>{infoDetail.value.subjectNames}</div>
               </div>
             </div>
-            <div class={styles.chioseWrap}>
-              <div style={{ padding: '12px 13px', background: 'transparent' }}>
-                <div
-                  class={styles.searchBand}
-                  onClick={() => {
-                    state.showPopoverTime = true
-                  }}
-                >
-                  {forms.practiceMonthName}
-                  <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
-                </div>
+            <div class={styles.topInfoRight}>
+              <div class={styles.infoDay}>
+                <p class={styles.infoDayMain}>
+                  {infoDetail.value.practiceDays ? infoDetail.value.practiceDays : 0}{' '}
+                  <span>天</span>
+                </p>
+                <p class={styles.infoDaysub}>练习天数</p>
+              </div>
+              <div class={styles.infoTime}>
+                <p class={styles.infoDayMain}>
+                  {infoDetail.value.practiceTimes ? infoDetail.value.practiceTimes : 0}{' '}
+                  <span>分钟</span>
+                </p>
+                <p class={styles.infoDaysub}>练习时长</p>
+              </div>
+            </div>
+          </div>
+          <div class={styles.chioseWrap}>
+            <div style={{ padding: '12px 13px', background: 'transparent' }}>
+              <div
+                class={styles.searchBand}
+                onClick={() => {
+                  state.showPopoverTime = true
+                }}
+              >
+                {forms.practiceMonthName}
+                <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
               </div>
+            </div>
 
-              {/* <div style={{ padding: '12px 13px', background: 'transparent' }}>
+            {/* <div style={{ padding: '12px 13px', background: 'transparent' }}>
                 <Popover
                   v-model:show={state.showPopoverOrchestra}
                   actions={state.actions}
@@ -213,9 +218,8 @@ export default defineComponent({
                   }}
                 </Popover>
               </div> */}
-            </div>
           </div>
-        </OSticky>
+        </div>
         {showContact.value ? (
           <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
             <List

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

@@ -4,4 +4,17 @@
   align-items: center;
   justify-content: space-around;
   background-color: #f8f8f8;
+  .searchBandWrap {
+    max-width: 23%;
+  }
+  .searchBand {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    p {
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
+    }
+  }
 }

+ 24 - 9
src/views/exercise-record/index.tsx

@@ -208,42 +208,57 @@ export default defineComponent({
               }}
             ></OSearch>
             <div class={styles.chioseWrap}>
-              <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+              <div
+                class={styles.searchBandWrap}
+                style={{ padding: '12px 13px', background: '#F8F8F8' }}
+              >
                 <div
                   class={styles.searchBand}
                   onClick={() => {
                     state.showPopoverTime = true
                   }}
                 >
-                  {forms.practiceMonthName}
+                  <p>{forms.practiceMonthName}</p>
+
                   <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
                 </div>
               </div>
 
-              <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+              <div
+                class={styles.searchBandWrap}
+                style={{ padding: '12px 13px', background: '#F8F8F8' }}
+              >
                 <div
                   class={styles.searchBand}
                   onClick={() => {
                     state.showPopoverOrchestra = true
                   }}
                 >
-                  {forms.orchestraName}
+                  <p> {forms.orchestraName}</p>
+
                   <Icon name={state.showPopoverOrchestra ? 'arrow-up' : 'arrow-down'} />
                 </div>
               </div>
-              <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+              <div
+                class={styles.searchBandWrap}
+                style={{ padding: '12px 13px', background: '#F8F8F8' }}
+              >
                 <div
                   class={styles.searchBand}
                   onClick={() => {
                     state.showPopoverSubject = true
                   }}
                 >
-                  {forms.subjectName}
+                  <p>{forms.subjectName}</p>
+
                   <Icon name={state.showPopoverSubject ? 'arrow-up' : 'arrow-down'} />
                 </div>
               </div>
 
-              <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+              <div
+                class={styles.searchBandWrap}
+                style={{ padding: '12px 13px', background: '#F8F8F8' }}
+              >
                 <Popover
                   v-model:show={state.showPopoverSort}
                   actions={state.actionSorts}
@@ -255,7 +270,7 @@ export default defineComponent({
                   {{
                     reference: () => (
                       <div class={styles.searchBand}>
-                        按天数
+                        <p> {forms.sortTypeName}</p>
                         <Icon name={state.showPopoverSort ? 'arrow-up' : 'arrow-down'} />
                       </div>
                     )
@@ -266,7 +281,7 @@ export default defineComponent({
           </div>
         </OSticky>
         {showContact.value ? (
-          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
+          <PullRefresh v-model={refreshing.value} onRefresh={onRefresh} style="min-height: 100vh;">
             <List
               v-model:loading={loading.value}
               finished={finished.value}