فهرست منبع

修改声部相关内容

lex 1 سال پیش
والد
کامیت
d252a8dee9

+ 16 - 10
src/components/layout/layoutTop.tsx

@@ -1,4 +1,11 @@
-import { defineComponent, ref, onMounted, nextTick, onUnmounted, reactive } 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';
@@ -30,7 +37,7 @@ 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 { schoolDetail } from '/src/views/studentList/api';
 import AddStudentModel from '/src/views/studentList/modals/addStudentModel';
 
 export default defineComponent({
@@ -50,7 +57,7 @@ export default defineComponent({
     const prepareStore = usePrepareStore();
     const state = reactive({
       addStudentVisible: false,
-      activeRow: {} as any,
+      activeRow: {} as any
     });
 
     const oncheckEditStatus = (callBack: any) => {
@@ -92,8 +99,7 @@ export default defineComponent({
     const showInviteQrcode = async () => {
       try {
         const { schoolInfos } = users.getUserInfo;
-        const schoolId =
-          schoolInfos.length > 0 ? schoolInfos[0].id : null;
+        const schoolId = schoolInfos.length > 0 ? schoolInfos[0].id : null;
         if (schoolId) {
           const { data } = await schoolDetail({ id: schoolId });
           state.activeRow = data;
@@ -103,7 +109,7 @@ export default defineComponent({
       } catch {
         //
       }
-    }
+    };
 
     const suggestionStatus = ref(false);
     const getSuggestMessageUnread = async () => {
@@ -195,7 +201,7 @@ export default defineComponent({
             </p>
           </div>
           <div class={styles.layoutRight}>
-            <NTooltip showArrow={false}>
+            {/* <NTooltip showArrow={false}>
               {{
                 trigger: () => (
                   <div class={styles.optons} onClick={showInviteQrcode}>
@@ -206,7 +212,7 @@ export default defineComponent({
                 ),
                 default: '邀请学生'
               }}
-            </NTooltip>            
+            </NTooltip>*/}
             <NPopover
               width={380}
               class={styles.popoverClassModel}
@@ -424,7 +430,7 @@ export default defineComponent({
               }></SuggestionOption>
           </NModal>
 
-          {state.addStudentVisible ? (
+          {/* {state.addStudentVisible ? (
             <div v-model:show={state.addStudentVisible} class={['n-modal-mask', styles.popBox]}>
               <AddStudentModel
                 activeRow={state.activeRow}
@@ -432,7 +438,7 @@ export default defineComponent({
                   state.addStudentVisible = false;
                 }}></AddStudentModel>
             </div>
-          ) : null}
+          ) : null} */}
         </div>
       </>
     );

+ 9 - 0
src/views/classList/api.ts

@@ -211,3 +211,12 @@ export const classGroupDetail = (params?: any) => {
     params
   });
 };
+
+/**
+ * 获取年级,班级 声部
+ */
+export const getConfiguredSubjects = (params?: any) => {
+  return request.post('/edu-app/classGroup/getConfiguredSubjects', {
+    data: params
+  });
+};

+ 38 - 5
src/views/classList/index.tsx

@@ -27,9 +27,12 @@ import ResetSubject from './modals/resetSubject';
 import UpdateSubject from './modals/updateSubject';
 import { getGradeLevelList, getGradeYearList } from '../home/api';
 import { initCache, setCache } from '/src/hooks/use-async';
+import AddStudentModel from '../studentList/modals/addStudentModel';
+import { useUserStore } from '/src/store/modules/users';
 export default defineComponent({
   name: 'class-classList',
   setup() {
+    const users = useUserStore();
     const state = reactive({
       searchForm: {
         keyword: null as any,
@@ -64,7 +67,8 @@ export default defineComponent({
       showSubjectClass: false,
       groupVisiable: false,
       popSelectYearList: [] as any,
-      popSelectLevelList: [] as any
+      popSelectLevelList: [] as any,
+      addStudentVisible: false
     });
     const formRef = ref();
     const message = useMessage();
@@ -124,7 +128,6 @@ export default defineComponent({
         state.loading = false;
         console.log(e);
       }
-      console.log('getList');
     };
     const getSubjectList = async () => {
       const res = await getSubject({ page: 1, rows: 9999 });
@@ -224,7 +227,7 @@ export default defineComponent({
                   )}
                   <NButton
                     type="primary"
-                    disabled={!row.upgradeFlag}
+                    disabled={!row.upgradeFlag || row.subjectId}
                     text
                     onClick={() => resetClassSubject(row)}>
                     修改声部
@@ -302,6 +305,26 @@ export default defineComponent({
                       创建群聊
                     </NButton>
                   )}
+                  <NButton
+                    type="primary"
+                    disabled={!row.upgradeFlag}
+                    text
+                    onClick={() => {
+                      const { schoolInfos } = users.getUserInfo;
+                      const schoolId =
+                        schoolInfos.length > 0 ? schoolInfos[0].id : null;
+                      if (schoolId) {
+                        state.addStudentVisible = true;
+                        state.activeRow = {
+                          id: schoolId,
+                          classId: row.id,
+                          currentGradeNum: row.currentGradeNum,
+                          currentClass: row.currentClass
+                        };
+                      }
+                    }}>
+                    邀请学生
+                  </NButton>
                 </NSpace>
               </div>
             );
@@ -559,7 +582,6 @@ export default defineComponent({
           <CreateClass
             gradeNumList={state.gradeNumList}
             classArray={classArray}
-            subjectList={state.subjectList}
             onGetList={() => getList()}
             onClose={() => (state.showaddClass = false)}
           />
@@ -573,7 +595,6 @@ export default defineComponent({
           title={'修改声部'}>
           <ResetSubject
             activeRow={state.activeRow}
-            subjectList={state.subjectList}
             onGetList={() => getList()}
             onClose={() => (state.showResetClass = false)}
           />
@@ -656,6 +677,18 @@ export default defineComponent({
           </div>
         </NModal>
         {showGuide.value ? <ClassGuide></ClassGuide> : null}
+
+        {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>
     );
   }

+ 30 - 7
src/views/classList/modals/createClass.tsx

@@ -6,10 +6,10 @@ import {
   NFormItem,
   NSelect
 } from 'naive-ui';
-import { defineComponent, onMounted, reactive, ref } from 'vue';
+import { defineComponent, onMounted, reactive, ref, watch } from 'vue';
 import styles from '../index.module.less';
 import CSelect from '/src/components/CSelect';
-import { addClass } from '../api';
+import { addClass, getConfiguredSubjects } from '../api';
 export default defineComponent({
   props: {
     activeRow: {
@@ -23,10 +23,6 @@ export default defineComponent({
     classArray: {
       type: Array,
       default: () => []
-    },
-    subjectList: {
-      type: Array,
-      default: () => []
     }
   },
   name: 'resetStudent',
@@ -42,6 +38,7 @@ export default defineComponent({
       currentClass: null,
       subjectId: null
     });
+    const subjectList = ref([] as any);
     const submitForms = () => {
       foemsRef.value.validate(async (error: any) => {
         if (error) {
@@ -60,6 +57,32 @@ export default defineComponent({
         data.uploading = false;
       });
     };
+
+    const getConfigSubject = async () => {
+      try {
+        const { data } = await getConfiguredSubjects({
+          currentGradeNum: createClassForm.currentGradeNum,
+          currentClass: createClassForm.currentClass
+        });
+        const temp = data || [];
+        subjectList.value = temp.map((item: any) => {
+          return {
+            label: item.name,
+            value: item.id
+          };
+        });
+      } catch {
+        //
+      }
+    };
+
+    watch(
+      () => [createClassForm.currentGradeNum, createClassForm.currentClass],
+      () => {
+        getConfigSubject();
+      }
+    );
+
     return () => (
       <div class={[styles.addClass]}>
         <NForm label-placement="left" model={createClassForm} ref={foemsRef}>
@@ -108,7 +131,7 @@ export default defineComponent({
             <CSelect
               {...({
                 style: { width: '400px' },
-                options: props.subjectList,
+                options: subjectList.value,
                 placeholder: '选择声部',
                 clearable: true
               } as any)}

+ 25 - 7
src/views/classList/modals/resetSubject.tsx

@@ -9,7 +9,7 @@ import {
 import { defineComponent, onMounted, reactive, ref } from 'vue';
 import styles from '../index.module.less';
 import CSelect from '/src/components/CSelect';
-import { resetClass } from '../api';
+import { getConfiguredSubjects, resetClass } from '../api';
 export default defineComponent({
   props: {
     activeRow: {
@@ -23,10 +23,6 @@ export default defineComponent({
     classArray: {
       type: Array,
       default: () => []
-    },
-    subjectList: {
-      type: Array,
-      default: () => []
     }
   },
   name: 'resetStudent',
@@ -37,6 +33,7 @@ export default defineComponent({
     });
     const message = useMessage();
     const foemsRef = ref();
+    const subjectList = ref([] as any);
     const createClassForm = reactive({
       currentGradeNum: null,
       currentClass: null,
@@ -48,6 +45,8 @@ export default defineComponent({
       createClassForm.currentClass = props.activeRow.currentClass;
       createClassForm.subjectId = props.activeRow.subjectId;
       createClassForm.id = props.activeRow.id;
+
+      getConfigSubject();
     });
     const submitForms = () => {
       foemsRef.value.validate(async (error: any) => {
@@ -56,7 +55,7 @@ export default defineComponent({
         }
         data.uploading = true;
         try {
-          const res = await resetClass({ ...createClassForm });
+          await resetClass({ ...createClassForm });
           message.success('修改成功');
           emit('close');
           emit('getList');
@@ -67,6 +66,25 @@ export default defineComponent({
         data.uploading = false;
       });
     };
+
+    const getConfigSubject = async () => {
+      try {
+        const { data } = await getConfiguredSubjects({
+          currentGradeNum: createClassForm.currentGradeNum,
+          currentClass: createClassForm.currentClass
+        });
+        const temp = data || [];
+        subjectList.value = temp.map((item: any) => {
+          return {
+            label: item.name,
+            value: item.id
+          };
+        });
+      } catch {
+        //
+      }
+    };
+
     return () => (
       <div class={[styles.addClass]}>
         <NForm label-placement="left" model={createClassForm} ref={foemsRef}>
@@ -81,7 +99,7 @@ export default defineComponent({
             <CSelect
               {...({
                 style: { width: '400px' },
-                options: props.subjectList,
+                options: subjectList.value,
                 placeholder: '选择声部',
                 clearable: true
               } as any)}

+ 26 - 8
src/views/classList/modals/updateSubject.tsx

@@ -2,7 +2,7 @@ import { NButton, NSpace, useMessage, NForm, NFormItem } from 'naive-ui';
 import { defineComponent, onMounted, reactive, ref } from 'vue';
 import styles from '../index.module.less';
 import CSelect from '/src/components/CSelect';
-import { resetClass } from '../api';
+import { getConfiguredSubjects, resetClass } from '../api';
 import { useCatchStore } from '/src/store/modules/catchData';
 export default defineComponent({
   props: {
@@ -31,18 +31,38 @@ export default defineComponent({
       subjectId: null,
       id: null
     });
+
+    const getConfigSubject = async () => {
+      try {
+        const { data } = await getConfiguredSubjects({
+          currentGradeNum: createClassForm.currentGradeNum,
+          currentClass: createClassForm.currentClass
+        });
+        const temp = data || [];
+        subjectList.value = temp.map((item: any) => {
+          return {
+            label: item.name,
+            value: item.id
+          };
+        });
+      } catch {
+        //
+      }
+    };
     onMounted(async () => {
       // 获取教材分类列表
-      await catchStore.getSubjects();
-      subjectList.value = [
-        { id: null, name: '选择声部' },
-        ...catchStore.getSubjectList
-      ];
+      // await catchStore.getSubjects();
+      // subjectList.value = [
+      //   { id: null, name: '选择声部' },
+      //   ...catchStore.getSubjectList
+      // ];
 
       createClassForm.currentGradeNum = props.activeRow.currentGradeNum;
       createClassForm.currentClass = props.activeRow.currentClass;
       createClassForm.subjectId = props.activeRow.subjectId;
       createClassForm.id = props.activeRow.id;
+
+      getConfigSubject();
     });
     const submitForms = () => {
       foemsRef.value.validate(async (error: any) => {
@@ -84,8 +104,6 @@ export default defineComponent({
                 style: { width: '400px' },
                 options: subjectList.value,
                 placeholder: '选择声部',
-                labelField: 'name',
-                valueField: 'id',
                 clearable: true
               } as any)}
               v-model:value={createClassForm.subjectId}></CSelect>

+ 8 - 8
src/views/content-information/content-musician/components/list/index.module.less

@@ -119,16 +119,16 @@
       right: 0;
       top: 0;
       display: inline-block;
-      font-size: 12px;
+      font-size: 12Px;
       font-weight: 600;
       color: #FFFFFF;
-      line-height: 17px;
-      text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.1);
-      line-height: 23px;
-      padding: 0 7px;
+      line-height: 17Px;
+      text-shadow: 2Px 2Px 8Px rgba(0, 0, 0, 0.1);
+      line-height: 23Px;
+      padding: 0 7Px;
       background: linear-gradient(135deg, #02BAFF 0%, #007AFE 100%);
-      box-shadow: 2px 2 8px 0px rgba(0, 0, 0, 0.1);
-      border-radius: 0px 13px 0px 13px;
+      box-shadow: 2Px 2 8Px 0Px rgba(0, 0, 0, 0.1);
+      border-radius: 0px 13Px 0px 13Px;
     }
 
     .itemImgSection {
@@ -136,7 +136,7 @@
       height: 305px;
       background: linear-gradient(360deg, #DBF1FF 0%, #E7F9FF 100%);
       box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.1);
-      border-radius: 13px;
+      border-radius: 13Px;
       overflow: hidden;
       transition: all .2s ease;
 

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

@@ -395,7 +395,7 @@
         h2 {
           margin-top: 37px;
           height: 22px;
-          font-size: 16px;
+          font-size: max(16px, 13Px);
           font-weight: 600;
           color: #000000;
           line-height: 22px;
@@ -406,7 +406,7 @@
         }
 
         .studentCoreInfoSubtitle {
-          font-size: 14px;
+          font-size: max(14px, 11Px);
           font-weight: 400;
           color: #000000;
           line-height: 22px;
@@ -452,7 +452,7 @@
           border-radius: 18px;
           text-align: center;
           line-height: 35px;
-          font-size: 14px;
+          font-size: max(14px, 11Px);
           color: #117de9;
           position: relative;
 

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

@@ -489,7 +489,7 @@ export default defineComponent({
             sync
           />
         </div>
-        {state.addStudentVisible ? (
+        {/* {state.addStudentVisible ? (
           <div v-model:show={state.addStudentVisible} class="n-modal-mask">
             <AddStudentModel
               activeRow={state.activeRow}
@@ -497,7 +497,7 @@ export default defineComponent({
                 state.addStudentVisible = false;
               }}></AddStudentModel>
           </div>
-        ) : null}
+        ) : null} */}
         {/* <NModal
           v-model:show={state.addStudentVisible}
           showIcon={false}

+ 10 - 3
src/views/studentList/modals/addStudentModel.tsx

@@ -49,8 +49,16 @@ export default defineComponent({
     //   vaildUrl() +
     //     `/classroom-app/#/student-register?sId=${userStore.getUserInfo.schoolInfos[0].id}`
     // );
+    // classId: row.id,
+    //                       currentGradeNum: row.currentGradeNum,
+    //                       currentClass: row.currentClass
     const url = ref(
-      vaildUrl() + `/classroom-app/#/register-new?sId=${props.activeRow.id}`
+      vaildUrl() +
+        `/classroom-app/#/register-new?sId=${props.activeRow.id}&ci=${
+          props.activeRow.classId
+        }&cgn=${props.activeRow.currentGradeNum}&cc=${
+          props.activeRow.currentClass
+        }&t=${+new Date()}`
     );
     // if (props.activeRow.registerType != 'BUG_GOODS') {
     //   url.value =
@@ -117,7 +125,6 @@ export default defineComponent({
       <div class={[styles.addStudentWrap]}>
         <div
           onClick={() => {
-            console.log('点击');
             emit('close');
           }}>
           <NImage
@@ -155,7 +162,7 @@ export default defineComponent({
               </p> */}
               <p class={styles.studentCoreInfoSubtitle}>
                 <span>报名注册</span>
-              </p>              
+              </p>
               <div class={styles.codewrap}>
                 <TheQrCode margin={0} text={url.value} size={119} />
                 {/* <img src={codewrap} class={styles.codewrapBg} alt="" /> */}

+ 2 - 2
vite.config.ts

@@ -23,8 +23,8 @@ function resolve(dir: string) {
 }
 // https://vitejs.dev/config/
 // https://github.com/vitejs/vite/issues/1930 .env
-// const proxyUrl = 'https://dev.kt.colexiu.com/';
-const proxyUrl = 'https://test.kt.colexiu.com';
+const proxyUrl = 'https://dev.kt.colexiu.com/';
+// const proxyUrl = 'https://test.kt.colexiu.com';
 // const proxyUrl = 'http://192.168.3.14:7989';
 const now = new Date().getTime();
 export default defineConfig(() => {