lex 2 éve
szülő
commit
352a8c451d

+ 7 - 0
src/router/routes-student.ts

@@ -58,6 +58,13 @@ export default [
         meta: {
           title: '交易记录'
         }
+      }, {
+        path: '/my-orchestra',
+        name: 'my-orchestra',
+        component: () => import('@/student/my-orchestra/index'),
+        meta: {
+          title: '我的乐团'
+        }
       }
     ]
   },

+ 5 - 1
src/school/companion-teacher/index.tsx

@@ -315,7 +315,11 @@ export default defineComponent({
           </div>
         </Popup>
 
-        <Popup v-model:show={form.showMessage} position="bottom" safeAreaInsetBottom={true}>
+        <Popup
+          v-model:show={form.showMessage}
+          position="bottom"
+          style={{ background: 'transparent' }}
+        >
           <div class={styles.codeContainer}>
             <div class={styles.codeBottom}>
               <Icon

+ 1 - 1
src/state.ts

@@ -9,7 +9,7 @@ export const state = reactive({
     status: 'init' as status,
     data: {} as any
   },
-  platformType: 'TEACHER' as 'STUDENT' | 'TEACHER' | 'SCHOOL',
+  platformType: 'STUDENT' as 'STUDENT' | 'TEACHER' | 'SCHOOL',
   clientId: {
     STUDENT: 'jmedu-student',
     TEACHER: 'jmedu-teacher',

+ 2 - 1
src/student/music-group/shop-address/address-operation.tsx

@@ -124,7 +124,7 @@ export default defineComponent({
           <Field label="收货人" placeholder="请输入收货人姓名" v-model={state.name} />
           <Field
             label="手机号"
-            placeholder="请输入收货人手机号"
+            placeholder="请输入收货人手机号"
             v-model={state.phoneNumber}
             maxlength={11}
             formatter={onFormatterInt}
@@ -172,6 +172,7 @@ export default defineComponent({
               console.log(val, 'val')
               const selectedOptions = val.selectedOptions || []
               // 因为有的只
+              state.pcrStr = ''
               if (selectedOptions.length === 2) {
                 selectedOptions.forEach((item: any, index: number) => {
                   state.pcrStr += item.name

+ 114 - 0
src/student/my-orchestra/index.module.less

@@ -0,0 +1,114 @@
+.myOrchestra {
+  :global {
+    .van-nav-bar__right {
+      color: var(--van-primary-color);
+    }
+  }
+
+  .gridContainer {
+    margin: 12px 13px 12px;
+
+    border-radius: 10px;
+    overflow: hidden;
+    // background: #ffffff;
+
+    .title {
+      font-size: 26px;
+      font-weight: bold;
+      color: #333;
+      i {
+        font-style: normal;
+        font-size: 12px;
+        color: #333333;
+      }
+    }
+    .red {
+      color: #f67146;
+    }
+    .name {
+      padding-top: 8px;
+      font-size: 12px;
+      color: #777777;
+    }
+  }
+
+  .gridClass {
+    .img {
+      width: 40px;
+      height: 40px;
+      margin-right: 12px;
+      border-radius: 50%;
+      overflow: hidden;
+    }
+    .teacherName {
+      display: flex;
+      align-items: center;
+      font-size: 16px;
+      font-weight: 600;
+      color: #333333;
+      line-height: 22px;
+      :global {
+        .van-tag {
+          margin-left: 6px;
+        }
+      }
+    }
+    .classCheckbox {
+      display: flex;
+      justify-content: flex-end;
+    }
+    .orchestraName {
+      padding-top: 3px;
+      font-size: 12px;
+      color: #777777;
+      line-height: 17px;
+    }
+    .title {
+      font-size: 24px;
+    }
+
+    .className {
+      padding: 17px 15px 0;
+      font-size: 16px;
+      font-weight: 500;
+      color: #333333;
+      line-height: 22px;
+      .line {
+        display: inline-block;
+        width: 4px;
+        height: 12px;
+        background: #ff8057;
+        border-radius: 3px;
+        margin-right: 6px;
+      }
+    }
+
+    :global {
+      .van-grid-item {
+        &:after {
+          content: ' ';
+          position: absolute;
+          top: 50%;
+          right: 0;
+          margin-top: -10px;
+          width: 1px;
+          height: 20px;
+          background: #eaeaea;
+          border-radius: 1px;
+        }
+
+        &:last-child {
+          &::after {
+            display: none;
+          }
+        }
+      }
+    }
+  }
+
+  // .classCellGroup {
+  //   margin-bottom: 12px;
+  //   border-radius: 10px;
+  //   overflow: hidden;
+  // }
+}

+ 59 - 0
src/student/my-orchestra/index.tsx

@@ -0,0 +1,59 @@
+import OHeader from '@/components/o-header'
+import { Cell, CellGroup, Grid, GridItem, Image, Tag } from 'vant'
+import { defineComponent } from 'vue'
+import { useRouter } from 'vue-router'
+import styles from './index.module.less'
+import iconTeacher from '@common/images/icon_teacher.png'
+
+export default defineComponent({
+  name: 'my-orchestra',
+  setup() {
+    const router = useRouter()
+    return () => (
+      <div class={styles.myOrchestra}>
+        <OHeader
+          rightText="申请退团"
+          onClickRight={() => {
+            console.log('111')
+          }}
+        />
+
+        <div class={[styles.gridContainer, styles.gridClass]}>
+          {[1, 2, 3, 4, 5].map((item: any) => (
+            <CellGroup class={styles.classCellGroup}>
+              <Cell center titleStyle={{ flex: '0 auto' }} valueClass={styles.classCheckbox}>
+                {{
+                  icon: () => <Image src={iconTeacher} class={styles.img} />,
+                  title: () => (
+                    <div class={styles.content}>
+                      <div class={styles.teacherName}>
+                        {item.teacherName} <Tag type="primary">{item.name}</Tag>
+                      </div>
+                      <div class={styles.orchestraName}>{item.orchestraName}</div>
+                    </div>
+                  )
+                }}
+              </Cell>
+              <Grid border={false} columnNum={3}>
+                <GridItem>
+                  <p class={styles.title}>{item.preStudentNum}</p>
+                  <p class={styles.name}>学生人数</p>
+                </GridItem>
+                <GridItem>
+                  <p class={[styles.title]}>
+                    {item.courseScheduleNum - item.completeCourseScheduleNum}
+                  </p>
+                  <p class={styles.name}>剩余课时</p>
+                </GridItem>
+                <GridItem>
+                  <p class={styles.title}>{item.courseScheduleNum}</p>
+                  <p class={styles.name}>总课时</p>
+                </GridItem>
+              </Grid>
+            </CellGroup>
+          ))}
+        </div>
+      </div>
+    )
+  }
+})