lex-xin 3 달 전
부모
커밋
c6dc38d230

+ 52 - 34
src/teacher/statistics/home-statistics-detail/echats/index.tsx

@@ -221,11 +221,13 @@ export default defineComponent({
       subjectId: '' as any, // 选择的声部
       subjectList: [] as any,
       startTimeStatus: false,
+      startTimeClosedStatus: false,
       endTimeMinDate: new Date(timeRange?.startTime || ''),
       endTimeMaxDate: dayjs(new Date(timeRange?.startTime || ''))
         .add(1, 'year')
         .toDate(),
       endTimeStatus: false,
+      endTimeClosedStatus: false,
       startTime: new Date(timeRange?.startTime || ''),
       startTimeStr: timeRange?.startTime || '',
       endTime: new Date(timeRange?.endTime || ''),
@@ -425,7 +427,10 @@ export default defineComponent({
                       forms.startTimeStr && styles.hasValue,
                       forms.startTimeStatus && styles.active
                     ]}
-                    onClick={() => (forms.startTimeStatus = true)}
+                    onClick={() => {
+                      forms.startTimeStatus = true
+                      forms.startTimeClosedStatus = true
+                    }}
                   >
                     {forms.startTimeStr || '起始时间'}
                   </p>
@@ -436,7 +441,10 @@ export default defineComponent({
                       forms.endTimeStr && styles.hasValue,
                       forms.endTimeStatus && styles.active
                     ]}
-                    onClick={() => (forms.endTimeStatus = true)}
+                    onClick={() => {
+                      forms.endTimeStatus = true
+                      forms.endTimeClosedStatus = true
+                    }}
                   >
                     {forms.endTimeStr || '终止时间'}
                   </p>
@@ -489,26 +497,31 @@ export default defineComponent({
           round
           class={'popupBottomSearch'}
           teleport={'body'}
+          onClosed={() => {
+            forms.startTimeClosedStatus = false
+          }}
         >
-          <DatetimePicker
-            v-model={forms.startTime}
-            type="date"
-            formatter={formatterDatePicker}
-            onCancel={() => (forms.startTimeStatus = false)}
-            onConfirm={(val: any) => {
-              forms.startTime = val
-              forms.startTimeStr = dayjs(val).format('YYYY-MM-DD')
-              forms.startTimeStatus = false
+          {forms.startTimeClosedStatus && (
+            <DatetimePicker
+              v-model={forms.startTime}
+              type="date"
+              formatter={formatterDatePicker}
+              onCancel={() => (forms.startTimeStatus = false)}
+              onConfirm={(val: any) => {
+                forms.startTime = val
+                forms.startTimeStr = dayjs(val).format('YYYY-MM-DD')
+                forms.startTimeStatus = false
 
-              forms.endTimeMinDate = dayjs(val || new Date()).toDate()
-              forms.endTimeMaxDate = dayjs(val || new Date())
-                .add(1, 'year')
-                .toDate()
-              forms.endTime = val
-              forms.endTimeStr = ''
-              currentType.value = '' as any
-            }}
-          />
+                forms.endTimeMinDate = dayjs(val || new Date()).toDate()
+                forms.endTimeMaxDate = dayjs(val || new Date())
+                  .add(1, 'year')
+                  .toDate()
+                forms.endTime = val
+                forms.endTimeStr = ''
+                currentType.value = '' as any
+              }}
+            />
+          )}
         </Popup>
         {/* 结束日期 */}
         <Popup
@@ -517,21 +530,26 @@ export default defineComponent({
           round
           class={'popupBottomSearch'}
           teleport={'body'}
+          onClosed={() => {
+            forms.endTimeClosedStatus = false
+          }}
         >
-          <DatetimePicker
-            v-model={forms.endTime}
-            type="date"
-            minDate={forms.endTimeMinDate}
-            maxDate={forms.endTimeMaxDate}
-            formatter={formatterDatePicker}
-            onCancel={() => (forms.endTimeStatus = false)}
-            onConfirm={(val: any) => {
-              forms.endTime = val
-              forms.endTimeStatus = false
-              forms.endTimeStr = dayjs(val).format('YYYY-MM-DD')
-              currentType.value = '' as any
-            }}
-          />
+          {forms.endTimeClosedStatus && (
+            <DatetimePicker
+              v-model={forms.endTime}
+              type="date"
+              minDate={forms.endTimeMinDate}
+              maxDate={forms.endTimeMaxDate}
+              formatter={formatterDatePicker}
+              onCancel={() => (forms.endTimeStatus = false)}
+              onConfirm={(val: any) => {
+                forms.endTime = val
+                forms.endTimeStatus = false
+                forms.endTimeStr = dayjs(val).format('YYYY-MM-DD')
+                currentType.value = '' as any
+              }}
+            />
+          )}
         </Popup>
       </div>
     )

+ 8 - 1
src/teacher/statistics/home-statistics-detail/list/index.module.less

@@ -6,7 +6,7 @@
   background: #ffffff;
   border-radius: 10px;
   margin: 12px 14px 0;
-  overflow: hidden;
+  // overflow: hidden;
   :global {
     .van-list__loading,
     .van-list__finished-text,
@@ -19,6 +19,13 @@
     align-items: center;
     justify-content: space-between;
     padding: 15px 12px 12px;
+
+    position: sticky;
+    top: 0;
+    left: 0;
+    background: #ffffff;
+    border-radius: 10px 10px 0 0;
+
     .title {
       display: flex;
       align-items: center;

+ 53 - 35
src/teacher/statistics/practice-statistics-detail/index.tsx

@@ -63,11 +63,13 @@ export default defineComponent({
       subjectId: '' as any, // 选择的声部
       subjectList: [] as any,
       startTimeStatus: false,
+      startTimeClosedStatus: false,
       endTimeMinDate: new Date(timeRange?.startTime || ''),
       endTimeMaxDate: dayjs(new Date(timeRange?.startTime || ''))
         .add(1, 'year')
         .toDate(),
       endTimeStatus: false,
+      endTimeClosedStatus: false,
       startTime: new Date(timeRange?.startTime || ''),
       startTimeStr: timeRange?.startTime || '',
       endTime: new Date(timeRange?.endTime || ''),
@@ -605,7 +607,10 @@ export default defineComponent({
                       styles.timeInput,
                       forms.startTimeStr && styles.hasValue
                     ]}
-                    onClick={() => (forms.startTimeStatus = true)}
+                    onClick={() => {
+                      forms.startTimeStatus = true
+                      forms.startTimeClosedStatus = true
+                    }}
                   >
                     {forms.startTimeStr || '起始时间'}
                   </p>
@@ -615,7 +620,10 @@ export default defineComponent({
                       styles.timeInput,
                       forms.endTimeStr && styles.hasValue
                     ]}
-                    onClick={() => (forms.endTimeStatus = true)}
+                    onClick={() => {
+                      forms.endTimeStatus = true
+                      forms.endTimeClosedStatus = true
+                    }}
                   >
                     {forms.endTimeStr || '终止时间'}
                   </p>
@@ -676,26 +684,31 @@ export default defineComponent({
           position="bottom"
           round
           class={'popupBottomSearch'}
+          onClosed={() => {
+            forms.startTimeClosedStatus = false
+          }}
         >
-          <DatetimePicker
-            v-model={forms.startTime}
-            type="date"
-            formatter={formatterDatePicker}
-            onCancel={() => (forms.startTimeStatus = false)}
-            onConfirm={(val: any) => {
-              forms.startTime = val
-              forms.startTimeStr = dayjs(val).format('YYYY-MM-DD')
-              forms.startTimeStatus = false
-
-              forms.endTimeMinDate = dayjs(val || new Date()).toDate()
-              forms.endTimeMaxDate = dayjs(val || new Date())
-                .add(1, 'year')
-                .toDate()
-              forms.endTime = val
-              forms.endTimeStr = ''
-              searchObj.type = '' as any
-            }}
-          />
+          {forms.startTimeClosedStatus && (
+            <DatetimePicker
+              v-model={forms.startTime}
+              type="date"
+              formatter={formatterDatePicker}
+              onCancel={() => (forms.startTimeStatus = false)}
+              onConfirm={(val: any) => {
+                forms.startTime = val
+                forms.startTimeStr = dayjs(val).format('YYYY-MM-DD')
+                forms.startTimeStatus = false
+
+                forms.endTimeMinDate = dayjs(val || new Date()).toDate()
+                forms.endTimeMaxDate = dayjs(val || new Date())
+                  .add(1, 'year')
+                  .toDate()
+                forms.endTime = val
+                forms.endTimeStr = ''
+                searchObj.type = '' as any
+              }}
+            />
+          )}
         </Popup>
         {/* 结束日期 */}
         <Popup
@@ -703,21 +716,26 @@ export default defineComponent({
           position="bottom"
           round
           class={'popupBottomSearch'}
+          onClosed={() => {
+            forms.endTimeClosedStatus = false
+          }}
         >
-          <DatetimePicker
-            v-model={forms.endTime}
-            type="date"
-            minDate={forms.endTimeMinDate}
-            maxDate={forms.endTimeMaxDate}
-            formatter={formatterDatePicker}
-            onCancel={() => (forms.endTimeStatus = false)}
-            onConfirm={(val: any) => {
-              forms.endTime = val
-              forms.endTimeStatus = false
-              forms.endTimeStr = dayjs(val).format('YYYY-MM-DD')
-              searchObj.type = '' as any
-            }}
-          />
+          {forms.endTimeClosedStatus && (
+            <DatetimePicker
+              v-model={forms.endTime}
+              type="date"
+              minDate={forms.endTimeMinDate}
+              maxDate={forms.endTimeMaxDate}
+              formatter={formatterDatePicker}
+              onCancel={() => (forms.endTimeStatus = false)}
+              onConfirm={(val: any) => {
+                forms.endTime = val
+                forms.endTimeStatus = false
+                forms.endTimeStr = dayjs(val).format('YYYY-MM-DD')
+                searchObj.type = '' as any
+              }}
+            />
+          )}
         </Popup>
       </div>
     )