mo %!s(int64=2) %!d(string=hai) anos
pai
achega
1a4ca63f4d

+ 2 - 0
src/components/o-sticky/index.tsx

@@ -3,6 +3,7 @@ import { defineComponent, nextTick, PropType } from 'vue'
 import styles from './index.module.less'
 import styles from './index.module.less'
 
 
 export default defineComponent({
 export default defineComponent({
+  emits: ['getHeight'],
   name: 'o-sticky',
   name: 'o-sticky',
   props: {
   props: {
     position: {
     position: {
@@ -42,6 +43,7 @@ export default defineComponent({
       setTimeout(() => {
       setTimeout(() => {
         const { height } = useRect((this as any).$refs.div)
         const { height } = useRect((this as any).$refs.div)
         this.sectionStyle.height = `${height}px`
         this.sectionStyle.height = `${height}px`
+        this.$emit('getHeight', height)
       }, 100)
       }, 100)
     })
     })
   },
   },

+ 56 - 44
src/school/attendance/components/attend-student.tsx

@@ -10,9 +10,10 @@ import {
   List,
   List,
   PullRefresh,
   PullRefresh,
   ActionSheet,
   ActionSheet,
-  showToast
+  showToast,
+  Sticky
 } from 'vant'
 } from 'vant'
-import { defineComponent, reactive, ref, onMounted } from 'vue'
+import { defineComponent, reactive, ref, onMounted, watch } from 'vue'
 import { useRouter } from 'vue-router'
 import { useRouter } from 'vue-router'
 import styles from './attent-student.module.less'
 import styles from './attent-student.module.less'
 import request from '@/helpers/request'
 import request from '@/helpers/request'
@@ -20,7 +21,14 @@ import { state as globalState } from '@/state'
 import StudentAttItem from '../modals/studentAtt-item'
 import StudentAttItem from '../modals/studentAtt-item'
 export default defineComponent({
 export default defineComponent({
   name: 'attend-student',
   name: 'attend-student',
-  setup() {
+
+  props: {
+    toHeight: {
+      type: Number,
+      default: 0
+    }
+  },
+  setup(props, { emit }) {
     const router = useRouter()
     const router = useRouter()
     const state = reactive({
     const state = reactive({
       showPopoverTime: false,
       showPopoverTime: false,
@@ -40,6 +48,7 @@ export default defineComponent({
       page: 1,
       page: 1,
       rows: 20
       rows: 20
     })
     })
+    const toTop = ref(props.toHeight)
     const minDate = ref(new Date(dayjs().subtract(10, 'year').format('YYYY-MM-DD')))
     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')))
     const maxDate = ref(new Date(dayjs().add(10, 'year').format('YYYY-MM-DD')))
     const columnsType = ref<DatePickerColumnType[]>(['year', 'month'])
     const columnsType = ref<DatePickerColumnType[]>(['year', 'month'])
@@ -48,11 +57,6 @@ export default defineComponent({
     const finished = ref(false)
     const finished = ref(false)
     const showContact = ref(false)
     const showContact = ref(false)
     const list = ref([])
     const list = ref([])
-    const schoolId = globalState.user.data.schoolInfos
-      .map((item) => {
-        return item.id
-      })
-      .join(',')
     const getList = async () => {
     const getList = async () => {
       loading.value = true
       loading.value = true
       try {
       try {
@@ -65,17 +69,17 @@ export default defineComponent({
         const res = await request.post(
         const res = await request.post(
           '/api-school/courseScheduleStudentAttendance/studentAttendance',
           '/api-school/courseScheduleStudentAttendance/studentAttendance',
           {
           {
-            data: { ...forms, schoolId: schoolId }
+            data: { ...forms }
           }
           }
         )
         )
-        console.log(list.value, 'list.value')
+
         if (list.value.length > 0 && res.data.pages === 1) {
         if (list.value.length > 0 && res.data.pages === 1) {
           return
           return
         }
         }
 
 
         // forms.page = res.data.current + 1
         // forms.page = res.data.current + 1
-        list.value = res.data
 
 
+        list.value = res.data
         showContact.value = list.value.length > 0
         showContact.value = list.value.length > 0
         // console.log(showContact.value, ' showContact.value ')
         // console.log(showContact.value, ' showContact.value ')
         loading.value = false
         loading.value = false
@@ -114,7 +118,7 @@ export default defineComponent({
     const getOrchestraList = async () => {
     const getOrchestraList = async () => {
       try {
       try {
         const res = await request.post('/api-school/orchestra/page', {
         const res = await request.post('/api-school/orchestra/page', {
-          data: { page: 1, rows: 9999, schoolId }
+          data: { page: 1, rows: 9999 }
         })
         })
         state.actions = res.data.rows.map((item) => {
         state.actions = res.data.rows.map((item) => {
           return {
           return {
@@ -151,6 +155,13 @@ export default defineComponent({
       getOrchestraList()
       getOrchestraList()
       getList()
       getList()
     })
     })
+
+    watch(
+      () => props.toHeight,
+      (val: number) => {
+        toTop.value = val
+      }
+    )
     const onRefresh = () => {
     const onRefresh = () => {
       finished.value = false
       finished.value = false
       // 重新加载数据
       // 重新加载数据
@@ -161,43 +172,44 @@ export default defineComponent({
     return () => (
     return () => (
       <>
       <>
         {/* <OSticky position="top" background="#F8F8F8"> */}
         {/* <OSticky position="top" background="#F8F8F8"> */}
-
-        <div class={styles.chioseWrap}>
-          <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
-            <div
-              class={styles.searchBand}
-              onClick={() => {
-                state.showPopoverTime = true
-              }}
-            >
-              {forms.timeName}
-              <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
+        <Sticky offsetTop={toTop.value}>
+          <div class={styles.chioseWrap}>
+            <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+              <div
+                class={styles.searchBand}
+                onClick={() => {
+                  state.showPopoverTime = true
+                }}
+              >
+                {forms.timeName}
+                <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
+              </div>
             </div>
             </div>
-          </div>
 
 
-          <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
-            <div
-              class={styles.searchBand}
-              onClick={() => {
-                state.showPopoverOrchestra = true
-              }}
-            >
-              {forms.orchestraName}
-              <Icon name={state.showPopoverOrchestra ? 'arrow-up' : 'arrow-down'} />
+            <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+              <div
+                class={styles.searchBand}
+                onClick={() => {
+                  state.showPopoverOrchestra = true
+                }}
+              >
+                {forms.orchestraName}
+                <Icon name={state.showPopoverOrchestra ? 'arrow-up' : 'arrow-down'} />
+              </div>
             </div>
             </div>
-          </div>
-          <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
-            <div
-              class={styles.searchBand}
-              onClick={() => {
-                state.showPopoverSubject = true
-              }}
-            >
-              {forms.subjectName}
-              <Icon name={state.showPopoverSubject ? 'arrow-up' : 'arrow-down'} />
+            <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+              <div
+                class={styles.searchBand}
+                onClick={() => {
+                  state.showPopoverSubject = true
+                }}
+              >
+                {forms.subjectName}
+                <Icon name={state.showPopoverSubject ? 'arrow-up' : 'arrow-down'} />
+              </div>
             </div>
             </div>
           </div>
           </div>
-        </div>
+        </Sticky>
         {/* </OSticky> */}
         {/* </OSticky> */}
 
 
         {showContact.value ? (
         {showContact.value ? (

+ 71 - 56
src/school/attendance/components/attend-teacher.tsx

@@ -10,9 +10,10 @@ import {
   List,
   List,
   PullRefresh,
   PullRefresh,
   ActionSheet,
   ActionSheet,
-  showToast
+  showToast,
+  Sticky
 } from 'vant'
 } from 'vant'
-import { defineComponent, reactive, ref, onMounted } from 'vue'
+import { defineComponent, reactive, ref, onMounted, watch } from 'vue'
 import { useRouter } from 'vue-router'
 import { useRouter } from 'vue-router'
 import styles from './attent-student.module.less'
 import styles from './attent-student.module.less'
 import request from '@/helpers/request'
 import request from '@/helpers/request'
@@ -21,7 +22,13 @@ import { courseEmnu } from '@/constant'
 import TeacherAttItem from '../modals/teacherAtt-item'
 import TeacherAttItem from '../modals/teacherAtt-item'
 export default defineComponent({
 export default defineComponent({
   name: 'attend-student',
   name: 'attend-student',
-  setup() {
+  props: {
+    toHeight: {
+      type: Number,
+      default: 0
+    }
+  },
+  setup(props) {
     const router = useRouter()
     const router = useRouter()
     const state = reactive({
     const state = reactive({
       showPopoverTime: false,
       showPopoverTime: false,
@@ -42,6 +49,7 @@ export default defineComponent({
       page: 1,
       page: 1,
       rows: 20
       rows: 20
     })
     })
+    const toTop = ref(props.toHeight)
     const minDate = ref(new Date(dayjs().subtract(10, 'year').format('YYYY-MM-DD')))
     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')))
     const maxDate = ref(new Date(dayjs().add(10, 'year').format('YYYY-MM-DD')))
     const columnsType = ref<DatePickerColumnType[]>(['year', 'month'])
     const columnsType = ref<DatePickerColumnType[]>(['year', 'month'])
@@ -69,7 +77,10 @@ export default defineComponent({
         }
         }
 
 
         forms.page = res.data.current + 1
         forms.page = res.data.current + 1
-        list.value = list.value.concat(res.data.rows || [])
+        for (let i = 0; i < 10; i++) {
+          list.value = list.value.concat(res.data.rows || [])
+        }
+
         showContact.value = list.value.length > 0
         showContact.value = list.value.length > 0
         loading.value = false
         loading.value = false
 
 
@@ -93,6 +104,7 @@ export default defineComponent({
       forms.time = val.selectedValues[0] + '-' + val.selectedValues[1]
       forms.time = val.selectedValues[0] + '-' + val.selectedValues[1]
       forms.timeName = val.selectedValues[0] + '年' + val.selectedValues[1] + '月'
       forms.timeName = val.selectedValues[0] + '年' + val.selectedValues[1] + '月'
       state.showPopoverTime = false
       state.showPopoverTime = false
+      refreshing.value = true
       getList()
       getList()
     }
     }
     const checkOrchestra = (val: any) => {
     const checkOrchestra = (val: any) => {
@@ -110,14 +122,9 @@ export default defineComponent({
       getList()
       getList()
     }
     }
     const getOrchestraList = async () => {
     const getOrchestraList = async () => {
-      const schoolId = globalState.user.data.schoolInfos
-        .map((item) => {
-          return item.id
-        })
-        .join(',')
       try {
       try {
         const res = await request.post('/api-school/orchestra/page', {
         const res = await request.post('/api-school/orchestra/page', {
-          data: { page: 1, rows: 9999, schoolId }
+          data: { page: 1, rows: 9999 }
         })
         })
         state.actions = res.data.rows.map((item) => {
         state.actions = res.data.rows.map((item) => {
           return {
           return {
@@ -131,7 +138,13 @@ export default defineComponent({
         showToast(message)
         showToast(message)
       }
       }
     }
     }
-
+    watch(
+      () => props.toHeight,
+      (val: number) => {
+        toTop.value = val
+        console.log(toTop.value, '老师的')
+      }
+    )
     onMounted(() => {
     onMounted(() => {
       getOrchestraList()
       getOrchestraList()
       getList()
       getList()
@@ -146,55 +159,57 @@ export default defineComponent({
     }
     }
     return () => (
     return () => (
       <>
       <>
-        {/* <OSticky position="top" background="#F8F8F8"> */}
-        <OSearch
-          placeholder="请输入伴学指导姓名"
-          inputBackground="white"
-          background="#f6f6f6"
-          onSearch={(val: any) => {
-            console.log(val, 'onSearch')
-            forms.keyword = val
-            refreshing.value = true
-            getList()
-          }}
-        ></OSearch>
-        <div class={styles.chioseWrap}>
-          <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
-            <div
-              class={styles.searchBand}
-              onClick={() => {
-                state.showPopoverTime = true
+        <Sticky offsetTop={toTop.value}>
+          <div>
+            <OSearch
+              placeholder="请输入伴学指导姓名"
+              inputBackground="white"
+              background="#f6f6f6"
+              onSearch={(val: any) => {
+                console.log(val, 'onSearch')
+                forms.keyword = val
+                refreshing.value = true
+                getList()
               }}
               }}
-            >
-              {forms.timeName}
-              <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
-            </div>
-          </div>
+            ></OSearch>
+            <div class={styles.chioseWrap}>
+              <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+                <div
+                  class={styles.searchBand}
+                  onClick={() => {
+                    state.showPopoverTime = true
+                  }}
+                >
+                  {forms.timeName}
+                  <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
+                </div>
+              </div>
 
 
-          <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
-            <div
-              class={styles.searchBand}
-              onClick={() => {
-                state.showPopoverOrchestra = true
-              }}
-            >
-              {forms.orchestraName}
-              <Icon name={state.showPopoverOrchestra ? 'arrow-up' : 'arrow-down'} />
-            </div>
-          </div>
-          <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
-            <div
-              class={styles.searchBand}
-              onClick={() => {
-                state.showPopoverSubject = true
-              }}
-            >
-              {forms.courseTypeName}
-              <Icon name={state.showPopoverSubject ? 'arrow-up' : 'arrow-down'} />
+              <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+                <div
+                  class={styles.searchBand}
+                  onClick={() => {
+                    state.showPopoverOrchestra = true
+                  }}
+                >
+                  {forms.orchestraName}
+                  <Icon name={state.showPopoverOrchestra ? 'arrow-up' : 'arrow-down'} />
+                </div>
+              </div>
+              <div style={{ padding: '12px 13px', background: '#F8F8F8' }}>
+                <div
+                  class={styles.searchBand}
+                  onClick={() => {
+                    state.showPopoverSubject = true
+                  }}
+                >
+                  {forms.courseTypeName}
+                  <Icon name={state.showPopoverSubject ? 'arrow-up' : 'arrow-down'} />
+                </div>
+              </div>
             </div>
             </div>
           </div>
           </div>
-        </div>
-        {/* </OSticky> */}
+        </Sticky>
 
 
         {showContact.value ? (
         {showContact.value ? (
           <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>
           <PullRefresh v-model={refreshing.value} onRefresh={onRefresh}>

+ 14 - 5
src/school/attendance/index.tsx

@@ -1,7 +1,9 @@
 import OHeader from '@/components/o-header'
 import OHeader from '@/components/o-header'
 import OSticky from '@/components/o-sticky'
 import OSticky from '@/components/o-sticky'
+import { useRect } from '@vant/use'
+
 import { Tabs, Tab } from 'vant'
 import { Tabs, Tab } from 'vant'
-import { defineComponent, reactive, ref } from 'vue'
+import { defineComponent, onMounted, reactive, ref, nextTick } from 'vue'
 import { useRouter } from 'vue-router'
 import { useRouter } from 'vue-router'
 import AttendStudent from './components/attend-student'
 import AttendStudent from './components/attend-student'
 import AttendTeacher from './components/attend-teacher'
 import AttendTeacher from './components/attend-teacher'
@@ -10,11 +12,18 @@ export default defineComponent({
   name: 'school-attendance',
   name: 'school-attendance',
   setup() {
   setup() {
     const router = useRouter()
     const router = useRouter()
-    const state = reactive({})
+    const state = reactive({
+      heightV: 0 as number
+    })
+    const stickyRef = ref()
 
 
+    const getHeight = (dataHeight: number) => {
+      state.heightV = dataHeight
+      console.log(state.heightV, '获取高度')
+    }
     return () => (
     return () => (
       <>
       <>
-        <OSticky position="top" background="#F8F8F8">
+        <OSticky position="top" background="#F8F8F8" onGetHeight={getHeight} ref={stickyRef}>
           <OHeader></OHeader>
           <OHeader></OHeader>
           <Tabs v-model:active={activeName.value}>
           <Tabs v-model:active={activeName.value}>
             <Tab name="student" title="学生考勤"></Tab>
             <Tab name="student" title="学生考勤"></Tab>
@@ -23,9 +32,9 @@ export default defineComponent({
         </OSticky>
         </OSticky>
 
 
         {activeName.value == 'student' ? (
         {activeName.value == 'student' ? (
-          <AttendStudent></AttendStudent>
+          <AttendStudent toHeight={state.heightV}></AttendStudent>
         ) : (
         ) : (
-          <AttendTeacher></AttendTeacher>
+          <AttendTeacher toHeight={state.heightV}></AttendTeacher>
         )}
         )}
       </>
       </>
     )
     )

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

@@ -81,7 +81,7 @@ export default defineComponent({
 
 
     const checkTimer = (val: any) => {
     const checkTimer = (val: any) => {
       console.log(val, 'val')
       console.log(val, 'val')
-      forms.time = val.selectedValues[0] + val.selectedValues[1] + val.selectedValues[2]
+      forms.time = val.selectedValues[0] + '-' + val.selectedValues[1] + '-' + val.selectedValues[2]
       forms.timeName =
       forms.timeName =
         val.selectedValues[0] + '年' + val.selectedValues[1] + '月' + val.selectedValues[2] + '日'
         val.selectedValues[0] + '年' + val.selectedValues[1] + '月' + val.selectedValues[2] + '日'
       state.showPopoverTime = false
       state.showPopoverTime = false

+ 6 - 6
src/school/exercise-record/index.tsx

@@ -146,14 +146,14 @@ export default defineComponent({
       getList()
       getList()
     }
     }
     const getOrchestraList = async () => {
     const getOrchestraList = async () => {
-      const schoolId = globalState.user.data.schoolInfos
-        .map((item) => {
-          return item.id
-        })
-        .join(',')
+      // const schoolId = globalState.user.data.schoolInfos
+      //   .map((item) => {
+      //     return item.id
+      //   })
+      //   .join(',')
       try {
       try {
         const res = await request.post('/api-school/orchestra/page', {
         const res = await request.post('/api-school/orchestra/page', {
-          data: { page: 1, rows: 9999, schoolId }
+          data: { page: 1, rows: 9999 }
         })
         })
         state.actions = res.data.rows.map((item) => {
         state.actions = res.data.rows.map((item) => {
           return {
           return {

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

@@ -109,14 +109,14 @@ export default defineComponent({
       getList()
       getList()
     }
     }
     const getOrchestraList = async () => {
     const getOrchestraList = async () => {
-      const schoolId = globalState.user.data.schoolInfos
-        .map((item) => {
-          return item.id
-        })
-        .join(',')
+      // const schoolId = globalState.user.data.schoolInfos
+      //   .map((item) => {
+      //     return item.id
+      //   })
+      //   .join(',')
       try {
       try {
         const res = await request.post('/api-school/orchestra/page', {
         const res = await request.post('/api-school/orchestra/page', {
-          data: { page: 1, rows: 9999, schoolId }
+          data: { page: 1, rows: 9999 }
         })
         })
         state.actions = res.data.rows.map((item) => {
         state.actions = res.data.rows.map((item) => {
           return {
           return {

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

@@ -110,14 +110,14 @@ export default defineComponent({
       getList()
       getList()
     }
     }
     const getOrchestraList = async () => {
     const getOrchestraList = async () => {
-      const schoolId = globalState.user.data.schoolInfos
-        .map((item) => {
-          return item.id
-        })
-        .join(',')
+      // const schoolId = globalState.user.data.schoolInfos
+      //   .map((item) => {
+      //     return item.id
+      //   })
+      //   .join(',')
       try {
       try {
         const res = await request.post('/api-school/orchestra/page', {
         const res = await request.post('/api-school/orchestra/page', {
-          data: { page: 1, rows: 9999, schoolId }
+          data: { page: 1, rows: 9999 }
         })
         })
         state.actions = res.data.rows.map((item) => {
         state.actions = res.data.rows.map((item) => {
           return {
           return {

+ 5 - 6
src/school/school-detail/index.tsx

@@ -37,15 +37,14 @@ export default defineComponent({
       router.push({ path: '/school-eidt' })
       router.push({ path: '/school-eidt' })
     }
     }
     const getTeacherList = async () => {
     const getTeacherList = async () => {
-      const schoolId = (globalState.user.data.schoolInfos || [])
-        .map((item) => {
-          return item.id
-        })
-        .join(',')
+      // const schoolId = (globalState.user.data.schoolInfos || [])
+      //   .map((item) => {
+      //     return item.id
+      //   })
+      //   .join(',')
       try {
       try {
         const { data } = await request.post(`/api-school/teacher/page`, {
         const { data } = await request.post(`/api-school/teacher/page`, {
           data: {
           data: {
-            schoolId,
             page: 1,
             page: 1,
             rows: 9999
             rows: 9999
           }
           }