Procházet zdrojové kódy

修改加载与显示

lex před 2 roky
rodič
revize
b22c36aa67

+ 7 - 9
public/project/preRegister.html

@@ -524,15 +524,13 @@
               var detail = userDetail.data.data
               var grade = this.currentGrade.find(item => item.value == detail.currentGrade)
               var cls = this.classList.find(item => item.value == detail.currentClass)
-              this.stu = {
-                username: detail.username, // 姓名
-                sex: detail.sex ? 1 : 0, // 性别
-                phone: detail.phone, // 电话
-                currentGrade: grade.text, // 年级
-                currentGradeNum: detail.currentGrade, // 年级编号
-                currentClass: cls.text, // 班级
-                currentClassNum: detail.currentClass, // 年级编号
-              }
+              this.stu.username = detail.username // 姓名
+              this.stu.sex = detail.sex ? 1 : 0 // 性别
+              this.stu.phone = detail.phone // 电话
+              this.stu.currentGrade = grade.text // 年级
+              this.stu.currentGradeNum = detail.currentGrade // 年级编号
+              this.stu.currentClass = cls.text // 班级
+              this.stu.currentClassNum = detail.currentClass // 年级编号
             }
           } catch { }
           this.setLoading(false)

binární
src/common/images/icon-muit-message.png


+ 7 - 5
src/helpers/request.ts

@@ -13,8 +13,9 @@ export interface SearchInitParams {
 
 const request = extend({
   // requestType: 'form',
+  hideLoading: true, // 默认都不显示加载
   timeout: 20000,
-  timeoutMessage: '请求超时'
+  timeoutMessage: '请求超时',
 })
 
 // request.use(async (ctx, next) => {
@@ -35,9 +36,10 @@ let toast: ReturnType<typeof setTimeout>
 request.interceptors.request.use(
   (url, options: any) => {
     // openLoading();
+    // console.log(options, 'request')
     if (!options.hideLoading) {
       clearTimeout(toast)
-      baseEvent.emit('toastShow')
+      baseEvent.emit('toastShow', 'center')
       // clearTimeout(toast)
       // showLoadingToast({
       //   message: '加载中...',
@@ -93,7 +95,7 @@ request.interceptors.request.use(
 request.interceptors.response.use(
   async (res) => {
     toast = setTimeout(() => {
-      baseEvent.emit('toastClose')
+      baseEvent.emit('toastClose', 'center')
       // closeToast()
     }, 100)
 
@@ -101,7 +103,7 @@ request.interceptors.response.use(
     if (res.status > 299 || res.status < 200) {
       clearTimeout(toast)
       const msg = '服务器错误,状态码' + res.status
-      baseEvent.emit('toastClose')
+      baseEvent.emit('toastClose', 'center')
       showToast(msg)
       throw new Error(msg)
     }
@@ -119,7 +121,7 @@ request.interceptors.response.use(
       console.log(data.code, '5104')
       if (!(data.code === 403 || data.code === 5000)) {
         clearTimeout(toast)
-        baseEvent.emit('toastClose')
+        baseEvent.emit('toastClose', 'center')
         showToast(msg)
       }
       const browserInfo = browser()

+ 15 - 0
src/router/index.ts

@@ -5,6 +5,7 @@ import { postMessage } from '@/helpers/native-message'
 import routesTeacher from './routes-teacher'
 import routesStudent from './routes-student'
 import routesSchool from './routes-school'
+import baseEvent from '@/base-event'
 
 const paymentType = (window as any).paymentType
 let routes: any = []
@@ -40,10 +41,24 @@ const router: Router = createRouter({
 })
 
 router.beforeEach((to, from, next) => {
+  baseEvent.emit('toastShow')
+  // console.log(to, from)
   document.title = (to.meta.title || '管乐团') as any
   next()
 })
 
+router.afterEach((to, from) => {
+  // 为了处理全屏弹窗loading没有关闭
+  if (to.path === from.path) {
+    baseEvent.emit('toastClose')
+  } else {
+    setTimeout(() => {
+      // const toastStatus = baseEvent.emit('toastStatus')
+      baseEvent.emit('toastClose')
+    }, 300);
+  }
+})
+
 let isOpen = false
 router.onError((error) => {
   if (error instanceof Error) {

+ 17 - 4
src/school/App.tsx

@@ -8,21 +8,34 @@ export default defineComponent({
   name: 'App',
   setup() {
     const state = reactive({
-      showToast: false
+      showToast: false,
+      showToastCenter: false
     })
 
-    baseEvent.on('toastShow', () => {
+    baseEvent.on('toastShow', (type?: string) => {
+      if (type === 'center') {
+        state.showToastCenter = true
+      }
       state.showToast = true
     })
 
-    baseEvent.on('toastClose', () => {
+    baseEvent.on('toastClose', (type?: string) => {
       state.showToast = false
+      if (type === 'center') {
+        setTimeout(() => {
+          state.showToastCenter = false
+        }, 300)
+      }
+    })
+    // 查看状态
+    baseEvent.on('toastStatus', () => {
+      return state.showToast
     })
 
     return () => (
       <>
         <router-view></router-view>
-        <div class={'appRootToast'}>
+        <div class={['appRootToast', state.showToastCenter ? 'appRootToastCenter' : '']}>
           <Toast v-model:show={state.showToast} overlay duration={30000}>
             {{
               message: () => (

+ 2 - 2
src/school/orchestra/modal/add-information.tsx

@@ -54,7 +54,7 @@ export default defineComponent({
               ...forms
             }
           })
-          showNotify({ type: 'primary', message: '添加成功' })
+          // showNotify({ type: 'primary', message: '添加成功' })
         } else if (props.selectType === 'update') {
           await request.post('/api-school/sysNewsInformation/update', {
             data: {
@@ -62,7 +62,7 @@ export default defineComponent({
               id: props.selectItem.id
             }
           })
-          showNotify({ type: 'primary', message: '修改成功' })
+          // showNotify({ type: 'primary', message: '修改成功' })
         }
 
         emit('close')

+ 22 - 1
src/school/practice-rewards/index.tsx

@@ -7,6 +7,7 @@ import OHeader from '@/components/o-header'
 import request from '@/helpers/request'
 import dayjs from 'dayjs'
 import { moneyFormat } from '@/helpers/utils'
+import { postMessage } from '@/helpers/native-message'
 
 export default defineComponent({
   name: 'practice-rewards',
@@ -73,7 +74,27 @@ export default defineComponent({
       <>
         <OSticky position="top" style={{ background: '#fff' }}>
           <OHeader border={false}>
-            {{ right: () => <span class={styles.btn}>结算记录</span> }}
+            {{
+              right: () => (
+                <span
+                  class={styles.btn}
+                  onClick={() => {
+                    // MANAGE,COURSE,TRAINING
+                    postMessage({
+                      api: 'open_app_page',
+                      content: {
+                        action: 'app',
+                        pageTag: 'settlementRecord',
+                        url: '',
+                        params: JSON.stringify({ type: 'TRAINING' })
+                      }
+                    })
+                  }}
+                >
+                  结算记录
+                </span>
+              )
+            }}
           </OHeader>
           <div class={styles.headerContainer}>
             <div class={styles.headerContent}>

+ 34 - 5
src/student/App.tsx

@@ -1,5 +1,5 @@
 import { Toast } from 'vant'
-import { defineComponent, reactive } from 'vue'
+import { defineComponent, reactive, ref } from 'vue'
 import { Vue3Lottie } from 'vue3-lottie'
 import AstronautJSON from '../components/o-full-refresh/datas/data.json'
 import baseEvent from '@/base-event'
@@ -8,21 +8,34 @@ export default defineComponent({
   name: 'App',
   setup() {
     const state = reactive({
-      showToast: false
+      showToast: false,
+      showToastCenter: false
     })
 
-    baseEvent.on('toastShow', () => {
+    baseEvent.on('toastShow', (type?: string) => {
+      if (type === 'center') {
+        state.showToastCenter = true
+      }
       state.showToast = true
     })
 
-    baseEvent.on('toastClose', () => {
+    baseEvent.on('toastClose', (type?: string) => {
       state.showToast = false
+      if (type === 'center') {
+        setTimeout(() => {
+          state.showToastCenter = false
+        }, 300)
+      }
+    })
+    // 查看状态
+    baseEvent.on('toastStatus', () => {
+      return state.showToast
     })
 
     return () => (
       <>
         <router-view></router-view>
-        <div class={'appRootToast'}>
+        <div class={['appRootToast', state.showToastCenter ? 'appRootToastCenter' : '']}>
           <Toast v-model:show={state.showToast} overlay duration={30000}>
             {{
               message: () => (
@@ -34,6 +47,22 @@ export default defineComponent({
             }}
           </Toast>
         </div>
+
+        {/* <div class={'appRootToastCenter'}>
+          <Toast v-model:show={state.showToastCenter} overlay duration={30000}>
+            {{
+              message: () => (
+                <>
+                  <Vue3Lottie
+                    class={'toastAnimate'}
+                    animationData={AstronautJSON}
+                    ref={animateCenterRef}
+                  ></Vue3Lottie>
+                </>
+              )
+            }}
+          </Toast>
+        </div> */}
       </>
     )
   }

+ 35 - 2
src/styles/index.less

@@ -225,6 +225,39 @@ body {
   }
 }
 
+.appRootToastCenter {
+  .van-overlay {
+    background: rgba(0, 0, 0, 0.4);
+    // background: #fff;
+    // transition: all 0 ease;
+    z-index: 1999 !important;
+  }
+  .van-fade-enter-from,
+  .van-fade-enter-active {
+    animation: none;
+  }
+  .van-toast__text {
+    width: 100px;
+    height: 100px;
+    color: #fff;
+    display: flex;
+    align-items: center;
+    flex-direction: column;
+    justify-content: center;
+  }
+  .van-toast--text {
+    background-color: rgba(255, 255, 255, 1);
+    // background-color: rgba(0, 0, 0, 0.9);
+    // background-color: transparent;
+    // box-shadow: 0px 8px 20px 2px #f0f0f0;
+    z-index: 1999 !important;
+  }
+  .toastAnimate {
+    width: 70px;
+    height: 70px;
+  }
+}
+
 .cell-section {
   width: auto;
   border-radius: 6px;
@@ -263,7 +296,7 @@ body {
 input {
   caret-color: #ff8057;
 }
-.emptyFixedHeightContainer{
+.emptyFixedHeightContainer {
   position: absolute;
   left: 0;
   right: 0;
@@ -273,7 +306,7 @@ input {
   justify-content: center;
   align-items: center;
   padding: 0;
-  .van-empty{
+  .van-empty {
     transform: translateY(-15%);
   }
 }

+ 17 - 4
src/teacher/App.tsx

@@ -8,21 +8,34 @@ export default defineComponent({
   name: 'App',
   setup() {
     const state = reactive({
-      showToast: false
+      showToast: false,
+      showToastCenter: false
     })
 
-    baseEvent.on('toastShow', () => {
+    baseEvent.on('toastShow', (type?: string) => {
+      if (type === 'center') {
+        state.showToastCenter = true
+      }
       state.showToast = true
     })
 
-    baseEvent.on('toastClose', () => {
+    baseEvent.on('toastClose', (type?: string) => {
       state.showToast = false
+      if (type === 'center') {
+        setTimeout(() => {
+          state.showToastCenter = false
+        }, 300)
+      }
+    })
+    // 查看状态
+    baseEvent.on('toastStatus', () => {
+      return state.showToast
     })
 
     return () => (
       <>
         <router-view></router-view>
-        <div class={'appRootToast'}>
+        <div class={['appRootToast', state.showToastCenter ? 'appRootToastCenter' : '']}>
           <Toast v-model:show={state.showToast} overlay duration={30000}>
             {{
               message: () => (

+ 1 - 1
src/views/unit-test/index.tsx

@@ -51,7 +51,7 @@ export default defineComponent({
         if (form.isClick) return
         form.isClick = true
         const res = await request.post('/api-student/studentUnitExamination/queryPageByStudent', {
-          hideLoading: status,
+          // hideLoading: status,
           data: {
             ...form.params
           }