Browse Source

Merge branch 'master' into jenkins

lex 2 years ago
parent
commit
5431e6d617

+ 7 - 0
src/components/o-protocol/index.module.less

@@ -31,4 +31,11 @@
       line-height: 15px;
     }
   }
+
+  .protocolContent {
+    font-size: 14px;
+    padding: 12px;
+    color: #333;
+    line-height: 1.4;
+  }
 }

+ 4 - 2
src/components/o-protocol/index.tsx

@@ -75,7 +75,9 @@ export default defineComponent({
           this.protocolHTML = data.contractTemplateContent
         }
         this.onPopupClose()
-      } catch {}
+      } catch {
+        //
+      }
     },
     onHash() {
       this.popupStatus = false
@@ -133,7 +135,7 @@ export default defineComponent({
         >
           {this.showHeader && <ColHeader title="管乐团平台服务协议" />}
           {this.popupStatus && (
-            <div class={styles.protocolContent} id="mProtocol">
+            <div id="mProtocol">
               <div class={styles.protocolContent} v-html={this.protocolHTML}></div>
             </div>
           )}

BIN
src/school/school-detail/images/eidt-icon.png


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

@@ -1,7 +1,8 @@
 import OHeader from '@/components/o-header'
 import OSticky from '@/components/o-sticky'
 import { Tabs, Tab, showToast, Icon } from 'vant'
-import { defineComponent, reactive, ref, onMounted } from 'vue'
+import { defineComponent, reactive, ref, onMounted, onDeactivated } from 'vue'
+import eidtIcon from './images/eidt-icon.png'
 import styles from './index.module.less'
 import schoolBg from './images/school-bg.png'
 import logoIcon from './images/logo.png'
@@ -17,7 +18,9 @@ export default defineComponent({
     const router = useRouter()
     const state = reactive({
       list: [],
-      info: {} as any
+      info: {} as any,
+      heightV: 0 as number,
+      scrollTop: 0 as number
     })
     const getSchoolDetail = async () => {
       const schoolId = (globalState.user.data.schoolInfos || [])
@@ -56,14 +59,37 @@ export default defineComponent({
       }
     }
     onMounted(() => {
+      window.addEventListener('scroll', handleScroll)
       getSchoolDetail()
       getTeacherList()
     })
+    onDeactivated(() => {
+      window.removeEventListener('scroll', handleScroll)
+    })
+    const getHeight = (dataHeight: number) => {
+      state.heightV = dataHeight
+      console.log(dataHeight, 'dataHeight')
+    }
+    const handleScroll = () => {
+      const scrollTop =
+        window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
+      state.scrollTop = scrollTop
+    }
     return () => (
       <>
         <div class={styles.schoolWrap}>
           <img src={schoolBg} class={styles.schoolBg} alt="" />
-          <OHeader border={false} background={'transparent'}></OHeader>
+
+          <OSticky onGetHeight={getHeight}>
+            <OHeader
+              border={false}
+              background={state.heightV > state.scrollTop ? 'transparent' : '#fff'}
+            >
+              {{
+                right: () => <Icon style={{ fontSize: '24px' }} name={eidtIcon}></Icon>
+              }}
+            </OHeader>
+          </OSticky>
           <div class={styles.absWrap}>
             <div class={styles.schoolMainTitle}>
               <div class={styles.schoolMainLeft}>
@@ -78,9 +104,7 @@ export default defineComponent({
               </div>
             </div>
             <div class={styles.detailInfo}>
-              <p onClick={gotoEidt}>
-                地址:{state.info.address} <Icon class={styles.eidtIcon} name="edit"></Icon>
-              </p>
+              <p>地址:{state.info.address}</p>
               <p>学年制:{schoolSystem[state.info.schoolSystem]} </p>
               <p>邮箱:{state.info.email}</p>
               <p>管理老师:{state.info.educationalAdministrationUsername}</p>

+ 3 - 1
src/school/school-detail/modals/teacher-item.module.less

@@ -57,7 +57,7 @@
   .bottomWrap {
     display: flex;
     flex-direction: row;
-    align-items: center;
+    align-items: top;
     padding: 15px 12px;
     font-size: 14px;
     font-family: PingFangSC-Medium, PingFang SC;
@@ -65,9 +65,11 @@
     color: #333333;
     line-height: 20px;
     p {
+      width: 42px;
       margin-bottom: 6px;
     }
     .statusTagWrap {
+      flex: 1;
       display: flex;
       flex-direction: row;
       align-items: top;

+ 12 - 2
src/student/music-group/pre-apply/component/apply.tsx

@@ -29,6 +29,10 @@ export default defineComponent({
     schoolSystem: {
       type: String,
       default: 'sixYearSystem' // 默认为六年制
+    },
+    registerInfo: {
+      type: Object,
+      defualt: {}
     }
   },
   emits: ['next'],
@@ -252,6 +256,12 @@ export default defineComponent({
                   showToast('暂无报名声部')
                   return
                 }
+
+                // 切换订单时判断是否有支付中和已支付的订单,并且已注册过
+                if (props.registerInfo?.orderNumber > 0 && props.registerInfo?.register) {
+                  state.subjectChangeStatus = true
+                  return
+                }
                 state.subjectStatus = true
               }}
               rules={[{ required: true, message: '请选择声部' }]}
@@ -346,14 +356,14 @@ export default defineComponent({
           cancelButtonText="选错了"
           showCancelButton
           onConfirm={() => {
-            console.log('223')
+            emit('next', 'order')
           }}
         >
           {{
             title: () => (
               <div class={styles.dialogTitle}>
                 <i></i>
-                课程冲突
+                修改声部
               </div>
             )
           }}

+ 25 - 2
src/student/music-group/pre-apply/index.tsx

@@ -87,6 +87,20 @@ export default defineComponent({
       }
     }
 
+    const getRegisterInfo = async (val: string) => {
+      // 重新查询状态
+      if (val === 'apply') {
+        try {
+          const { data } = await request.get(
+            '/api-student/orchestraRegister/registerStatus/' + route.query.id
+          )
+          state.registerInfo = data || {}
+        } catch {
+          //
+        }
+      }
+    }
+
     // 先请求接口
     getRegisterStatus()
 
@@ -103,7 +117,12 @@ export default defineComponent({
           </span>
         </div>
         <Sticky position="top">
-          <Tabs lineWidth={20} lineHeight={4} v-model:active={state.tabValue}>
+          <Tabs
+            lineWidth={20}
+            lineHeight={4}
+            v-model:active={state.tabValue}
+            onChange={(val: any) => getRegisterInfo(val)}
+          >
             <Tab title="报名信息" name="apply" disabled={state.purchase}></Tab>
             <Tab title="缴费信息" name="payment" disabled={state.purchase || !state.register}></Tab>
             <Tab title="我的订单" name="order" disabled={!state.register}></Tab>
@@ -111,7 +130,11 @@ export default defineComponent({
         </Sticky>
 
         {state.tabValue === 'apply' && (
-          <Apply onNext={onNext} schoolSystem={state.registerInfo.schoolSystem} />
+          <Apply
+            onNext={onNext}
+            registerInfo={state.registerInfo}
+            schoolSystem={state.registerInfo.schoolSystem}
+          />
         )}
         {state.tabValue === 'payment' && <Payment onNext={onNext} />}
         {state.tabValue === 'order' && <Order onNext={onNext} />}

+ 11 - 5
src/student/music-group/pre-apply/order-detail.tsx

@@ -28,8 +28,8 @@ export default defineComponent({
       config: route.query.config ? JSON.parse(route.query.config as any) : {},
       hasFreight: route.query.hf ? false : true, // 是否显示
       freight: '', // 运费
-
-      agreeStatus: true //是否勾选协议
+      agreeStatus: true, //是否勾选协议
+      showHeader: false
     })
 
     const orderType = computed(() => {
@@ -155,8 +155,8 @@ export default defineComponent({
               hideLoading: true
             }
           )
-          console.log(data)
-          if (data.status !== 'WAIT_PAY') {
+          // console.log(data)
+          if (data.status !== 'WAIT_PAY' && data.status !== 'PAYING') {
             clearInterval(orderTimer)
             window.location.replace(
               window.location.origin +
@@ -290,6 +290,12 @@ export default defineComponent({
     }
 
     onMounted(() => {
+      if (browser().isApp) {
+        state.showHeader = true
+      } else {
+        state.showHeader = false
+      }
+
       // 获取收货地址
       let details = sessionStorage.getItem('addressDetails')
       details = details ? JSON.parse(details) : {}
@@ -339,7 +345,7 @@ export default defineComponent({
           <div class={styles.protocol}>
             <OProtocol
               v-model:modelValue={state.agreeStatus}
-              showHeader
+              showHeader={state.showHeader}
               style={{ paddingLeft: 0, paddingRight: 0 }}
             />
           </div>

+ 4 - 1
src/views/exercise-record/exercis-detail.tsx

@@ -14,7 +14,7 @@ import {
   Dialog
 } from 'vant'
 import DetailItem from './modals/detail-item'
-import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { defineComponent, onMounted, reactive, ref, onDeactivated } from 'vue'
 import { useRoute, useRouter } from 'vue-router'
 import styles from './exercis-detail.module.less'
 import request from '@/helpers/request'
@@ -113,6 +113,9 @@ export default defineComponent({
       getDetail()
       window.addEventListener('scroll', handleScroll)
     })
+    onDeactivated(() => {
+      window.removeEventListener('scroll', handleScroll)
+    })
     const handleScroll = () => {
       const scrollTop =
         window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0

+ 2 - 2
vite.config.ts

@@ -12,9 +12,9 @@ function resolve(dir: string) {
 // https://vitejs.dev/config/
 // https://github.com/vitejs/vite/issues/1930 .env
 // const proxyUrl = 'https://mstutest.dayaedu.com/';
-// const proxyUrl = 'http://47.98.131.38:8989/'
+const proxyUrl = 'http://47.98.131.38:8989/'
 // const proxyUrl = 'http://192.168.3.143:8989/' // 尚科
-const proxyUrl = 'http://192.168.3.26:8989/' // 刘俊驰
+// const proxyUrl = 'http://192.168.3.26:8989/' // 刘俊驰
 export default defineConfig({
   base: './',
   plugins: [