Browse Source

Merge branch 'feature-3.20' into dev

TIANYONG 1 year ago
parent
commit
fbbc2c8c28

+ 1 - 1
dev-dist/sw.js

@@ -112,4 +112,4 @@ define(['./workbox-5357ef54'], function (workbox) {
     new RegExp('|js'),
     workbox.strategies.networkOnly()
   );
-});
+});

+ 1 - 37
package-lock.json

@@ -2988,11 +2988,6 @@
         "url": "https://github.com/sponsors/antfu"
       }
     },
-<<<<<<< HEAD
-=======
-<<<<<<< HEAD
-=======
->>>>>>> startLogin
     "node_modules/@xmldom/xmldom": {
       "version": "0.8.10",
       "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
@@ -3001,10 +2996,6 @@
         "node": ">=10.0.0"
       }
     },
-<<<<<<< HEAD
-=======
->>>>>>> online
->>>>>>> startLogin
     "node_modules/acorn": {
       "version": "8.10.0",
       "license": "MIT",
@@ -3771,11 +3762,6 @@
         "url": "https://opencollective.com/core-js"
       }
     },
-<<<<<<< HEAD
-=======
-<<<<<<< HEAD
-=======
->>>>>>> startLogin
     "node_modules/cos-js-sdk-v5": {
       "version": "1.4.20",
       "resolved": "https://registry.npmmirror.com/cos-js-sdk-v5/-/cos-js-sdk-v5-1.4.20.tgz",
@@ -3784,10 +3770,6 @@
         "@xmldom/xmldom": "^0.8.6"
       }
     },
-<<<<<<< HEAD
-=======
->>>>>>> online
->>>>>>> startLogin
     "node_modules/croact": {
       "version": "1.0.4",
       "license": "MIT",
@@ -12176,20 +12158,11 @@
         "vue-demi": ">=0.14.5"
       }
     },
-<<<<<<< HEAD
-=======
-<<<<<<< HEAD
-=======
->>>>>>> startLogin
     "@xmldom/xmldom": {
       "version": "0.8.10",
       "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
       "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
     },
-<<<<<<< HEAD
-=======
->>>>>>> online
->>>>>>> startLogin
     "acorn": {
       "version": "8.10.0"
     },
@@ -12623,11 +12596,6 @@
         "browserslist": "^4.21.9"
       }
     },
-<<<<<<< HEAD
-=======
-<<<<<<< HEAD
-=======
->>>>>>> startLogin
     "cos-js-sdk-v5": {
       "version": "1.4.20",
       "resolved": "https://registry.npmmirror.com/cos-js-sdk-v5/-/cos-js-sdk-v5-1.4.20.tgz",
@@ -12636,10 +12604,6 @@
         "@xmldom/xmldom": "^0.8.6"
       }
     },
-<<<<<<< HEAD
-=======
->>>>>>> online
->>>>>>> startLogin
     "croact": {
       "version": "1.0.4",
       "requires": {
@@ -16676,4 +16640,4 @@
       }
     }
   }
-}
+}

+ 1 - 1
public/version.json

@@ -1 +1 @@
-{"version":1710934675836}
+{"version":1710934675836}

BIN
src/components/layout/images/invite_student_icon.png


+ 4 - 0
src/components/layout/index.module.less

@@ -582,4 +582,8 @@
   width: 500px !important;
   border-radius: 19px !important;
   // border-radius: ;
+}
+
+.popBox {
+  z-index: 9;
 }

+ 48 - 1
src/components/layout/layoutTop.tsx

@@ -1,4 +1,4 @@
-import { defineComponent, ref, onMounted, nextTick, onUnmounted } from 'vue';
+import { defineComponent, ref, onMounted, nextTick, onUnmounted, reactive } from 'vue';
 import styles from './index.module.less';
 import { NImage, NBadge, NPopover, NIcon, NModal, NTooltip } from 'naive-ui';
 import styles2 from './modals/suggestion-option.module.less';
@@ -19,6 +19,7 @@ import boxBg from './images/boxBg.png';
 import { useRouter } from 'vue-router';
 import { storeToRefs } from 'pinia';
 import opinionIcon from './images/opinionIcon.png';
+import inviteIcon from './images/invite_student_icon.png';
 import classHistoryIcon from './images/classHistoryIcon.png';
 import 'animate.css';
 import ForgotPassword from '/src/views/setting/modal/forgotPassword';
@@ -29,6 +30,9 @@ import ClassModal from '/src/views/home/modals/class-modal';
 import { suggestMessageUnread } from '/src/api/user';
 import { eventGlobal } from '/src/utils';
 import { usePrepareStore } from '/src/store/modules/prepareLessons';
+import { schoolDetail } from '/src/views/studentList/api'
+import AddStudentModel from '/src/views/studentList/modals/addStudentModel';
+
 export default defineComponent({
   name: 'layoutTop',
   setup() {
@@ -44,6 +48,10 @@ export default defineComponent({
     const userInfoStatus = ref(false);
     const classRecordStatus = ref(false);
     const prepareStore = usePrepareStore();
+    const state = reactive({
+      addStudentVisible: false,
+      activeRow: {} as any,
+    });
 
     const oncheckEditStatus = (callBack: any) => {
       if (prepareStore.getIsEditResource) {
@@ -80,6 +88,23 @@ export default defineComponent({
       console.log(suggestionOptionRef.value, 'suggestionOptionRef');
     };
 
+    // 邀请学生二维码
+    const showInviteQrcode = async () => {
+      try {
+        const { schoolInfos } = users.getUserInfo;
+        const schoolId =
+          schoolInfos.length > 0 ? schoolInfos[0].id : null;
+        if (schoolId) {
+          const { data } = await schoolDetail({ id: schoolId });
+          state.activeRow = data;
+
+          state.addStudentVisible = true;
+        }
+      } catch {
+        //
+      }
+    }
+
     const suggestionStatus = ref(false);
     const getSuggestMessageUnread = async () => {
       try {
@@ -170,6 +195,18 @@ export default defineComponent({
             </p>
           </div>
           <div class={styles.layoutRight}>
+            <NTooltip showArrow={false}>
+              {{
+                trigger: () => (
+                  <div class={styles.optons} onClick={showInviteQrcode}>
+                    <NBadge dot={suggestionStatus.value} color={'#FF1036'}>
+                      <NImage src={inviteIcon} previewDisabled></NImage>
+                    </NBadge>
+                  </div>
+                ),
+                default: '邀请学生'
+              }}
+            </NTooltip>            
             <NPopover
               width={380}
               class={styles.popoverClassModel}
@@ -386,6 +423,16 @@ export default defineComponent({
                 (showSuggestionViseble.value = false)
               }></SuggestionOption>
           </NModal>
+
+          {state.addStudentVisible ? (
+            <div v-model:show={state.addStudentVisible} class={['n-modal-mask', styles.popBox]}>
+              <AddStudentModel
+                activeRow={state.activeRow}
+                onClose={() => {
+                  state.addStudentVisible = false;
+                }}></AddStudentModel>
+            </div>
+          ) : null}
         </div>
       </>
     );

BIN
src/views/studentList/images/studentTitle.png


+ 1 - 1
src/views/studentList/index.module.less

@@ -404,7 +404,7 @@
           font-size: 14px;
           font-weight: 400;
           color: #000000;
-
+          line-height: 22px;
           span {
             color: #198cfe;
             font-weight: 600;

+ 2 - 2
src/views/studentList/index.tsx

@@ -440,7 +440,7 @@ export default defineComponent({
             </NFormItem>
           </NForm>
         </div>
-        <NButton
+        {/* <NButton
           {...{ id: 'student-0' }}
           onClick={async () => {
             // state.addStudentVisible = true;
@@ -471,7 +471,7 @@ export default defineComponent({
             )
           }}>
           邀请学生
-        </NButton>
+        </NButton> */}
         <div class={styles.tableWrap}>
           <NDataTable
             v-slots={{

+ 5 - 4
src/views/studentList/modals/addStudentModel.tsx

@@ -151,11 +151,12 @@ export default defineComponent({
               }></img>
             <div class={styles.studentCoreInfo}>
               <h2>{userStore.getUserInfo.schoolInfos[0].name}</h2>
-              <p class={styles.studentCoreInfoSubtitle}>
-                {/* 邀请您的孩子加入
-                <span>音乐数字课堂</span> */}
+              {/* <p class={styles.studentCoreInfoSubtitle}>
                 乐器Ai学练工具<span>购买通道</span>
-              </p>
+              </p> */}
+              <p class={styles.studentCoreInfoSubtitle}>
+                <span>报名注册</span>
+              </p>              
               <div class={styles.codewrap}>
                 <TheQrCode margin={0} text={url.value} size={119} />
                 {/* <img src={codewrap} class={styles.codewrapBg} alt="" /> */}