Browse Source

Merge branch 'iteration-0906' into jenkins

lex 1 year ago
parent
commit
d980443992

+ 6 - 5
src/views/classList/components/classStudent.tsx

@@ -20,6 +20,9 @@ import TheEmpty from '/src/components/TheEmpty';
 export default defineComponent({
   name: 'student-studentList',
   setup(props, { emit }) {
+    const message = useMessage();
+    const route = useRoute();
+    const router = useRouter();
     const state = reactive({
       searchForm: { keyword: '', gender: null as any },
       loading: false,
@@ -30,9 +33,7 @@ export default defineComponent({
       },
       tableList: [] as any
     });
-    const message =useMessage()
-    const route = useRoute();
-    const router = useRouter();
+
     const search = () => {
       state.pagination.page = 1;
       getList();
@@ -213,8 +214,8 @@ export default defineComponent({
         </NButton> */}
         <div class={styles.tableWrap}>
           <NDataTable
-             v-slots={{
-              empty:()=><TheEmpty></TheEmpty>
+            v-slots={{
+              empty: () => <TheEmpty></TheEmpty>
             }}
             class={styles.classTable}
             loading={state.loading}

+ 1 - 1
src/views/classList/index.tsx

@@ -302,7 +302,6 @@ export default defineComponent({
 
     const classesBegin = async (row: any) => {
       try {
-        console.log(row, 'row');
         // 判断是否有声部
         if (row.subjectId) {
           //
@@ -314,6 +313,7 @@ export default defineComponent({
               unit: row.lessonCoursewareKnowledgeDetailId,
               subjectId: row.subjectId,
               courseScheduleSubjectId: row.courseScheduleSubjectId,
+              preStudentNum: row.preStudentNum,
               name: row.name, // 班级名称
               classGroupId: row.id // 班级编号
             }

+ 4 - 0
src/views/home/index.module.less

@@ -664,6 +664,10 @@
   .n-base-select-menu .n-base-select-option.n-base-select-option--show-checkmark {
     padding-right: var(--n-option-padding);
   }
+
+  .n-empty {
+    --n-font-size: 14px !important;
+  }
 }
 
 .teachListWrap {

+ 1 - 0
src/views/natural-resources/components/my-resources/index.tsx

@@ -281,6 +281,7 @@ export default defineComponent({
           title={state.editStatus ? '修改资源' : '上传资源'}
           blockScroll={false}>
           <UploadModal
+            editStatus={state.editStatus}
             onClose={() => (state.uploadStatus = false)}
             onConfirm={() => {
               state.editIds = [];

+ 2 - 2
src/views/natural-resources/components/my-resources/save-modal/index.module.less

@@ -1,6 +1,6 @@
 .saveModal {
   // min-height: 50vh;
-  padding: 18px;
+  padding: 18px 32px;
 
 
 
@@ -80,4 +80,4 @@
       min-width: 156px;
     }
   }
-}
+}

+ 3 - 3
src/views/natural-resources/components/my-resources/upload-modal/index.module.less

@@ -96,9 +96,9 @@
         border-radius: 8px;
 
         .n-input__input-el,
-        .n-input__input-el::placeholder {
+        .n-input__input-el::placeholder,
+        .n-tag__content {
           font-size: 18px;
-
         }
       }
 
@@ -160,4 +160,4 @@
       margin-bottom: 20px;
     }
   }
-}
+}

+ 5 - 1
src/views/natural-resources/components/my-resources/upload-modal/index.tsx

@@ -47,6 +47,10 @@ export default defineComponent({
     list: {
       type: Array,
       default: () => []
+    },
+    editStatus: {
+      type: Boolean,
+      default: true
     }
   },
   emits: ['close', 'confirm'],
@@ -355,7 +359,7 @@ export default defineComponent({
 
         <NSpace class={styles.btnGroup} justify="center">
           <NButton round onClick={() => emit('close')}>
-            取消
+            {props.editStatus ? '取消' : '上一步'}
           </NButton>
           <NButton
             round

+ 39 - 7
src/views/prepare-lessons/components/lesson-main/courseware/index.module.less

@@ -4,13 +4,7 @@
   justify-content: space-between;
   padding-left: 22px !important;
   padding-right: 22px !important;
-
-  .tips {
-    color: #0378EC;
-    font-size: 16px;
-    line-height: 38px;
-    font-weight: 500;
-  }
+  height: 40px;
 
   .btnClassList {
     :global {
@@ -149,6 +143,44 @@
   }
 }
 
+.tipsContainer {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  flex: 1 auto;
+  margin-right: 30px;
+  height: 40px;
+  padding: 0 16px;
+  background: #EDF7FF;
+  border-radius: 9px;
+  max-width: 600px;
+
+  .tipsLeft {
+    display: flex;
+    align-items: center;
+    font-size: 16px;
+    color: rgba(0, 0, 0, 0.88);
+
+
+    .tips {
+      line-height: 38px;
+    }
+  }
+
+  .iconTips {
+    margin-right: 9px;
+    width: 18px;
+    height: 18px;
+  }
+
+  .btnNoTips {
+    font-size: 16px;
+    font-weight: 500;
+    color: #1677FF;
+    cursor: pointer;
+  }
+}
+
 .btnGroupClass {
   padding-top: 10px;
 }

+ 29 - 4
src/views/prepare-lessons/components/lesson-main/courseware/index.tsx

@@ -31,7 +31,7 @@ import PreviewWindow from '/src/views/preview-window';
 import { state } from '/src/state';
 import SubjectSync from '../../../model/subject-sync';
 import { eventGlobal } from '/src/utils';
-
+import iconTips from '../../../images/icon-tips.png';
 export default defineComponent({
   name: 'courseware-modal',
   setup() {
@@ -47,6 +47,9 @@ export default defineComponent({
     );
 
     const forms = reactive({
+      tipsStatus: localStorage.getItem('prepare-lesson-courseware-tip')
+        ? true
+        : false,
       className: route.query.name as any,
       classGroupId: route.query.classGroupId,
       preStudentNum: route.query.preStudentNum,
@@ -367,9 +370,31 @@ export default defineComponent({
       <div class={styles.coursewareModal}>
         <div class={styles.btnGroup}>
           {forms.drag ? (
-            <NSpace>
-              <span class={styles.tips}>拖动可将资源进行排序哦~</span>
-            </NSpace>
+            // <div class={styles.tipsContainer}>
+            //   <div class={styles.tipsLeft}>
+            //     <img src={iconTips} class={styles.iconTips} />
+            //     <span class={styles.tips}>拖动可将资源进行排序哦~</span>
+            //   </div>
+            //   <span class={styles.btnNoTips}>不再提醒</span>
+            // </div>
+            !forms.tipsStatus ? (
+              <div class={styles.tipsContainer}>
+                <div class={styles.tipsLeft}>
+                  <img src={iconTips} class={styles.iconTips} />
+                  <span class={styles.tips}>可以拖动资源排序哦</span>
+                </div>
+                <span
+                  class={styles.btnNoTips}
+                  onClick={() => {
+                    localStorage.setItem('prepare-lesson-courseware-tip', '1');
+                    forms.tipsStatus = true;
+                  }}>
+                  不再提醒
+                </span>
+              </div>
+            ) : (
+              <span></span>
+            )
           ) : (
             <NSpace>
               {forms.classGroupId && (

+ 59 - 7
src/views/prepare-lessons/components/lesson-main/train/index.module.less

@@ -3,13 +3,9 @@
   align-items: center;
   justify-content: space-between;
   padding-left: 22px !important;
+  height: 40px;
   padding-right: 22px !important;
 
-  .tips {
-    color: #0378EC;
-    font-size: 16px;
-    line-height: 38px;
-  }
 
   :global {
     .n-base-selection {
@@ -57,6 +53,44 @@
   }
 }
 
+.tipsContainer {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  flex: 1 auto;
+  margin-right: 30px;
+  height: 40px;
+  padding: 0 16px;
+  background: #EDF7FF;
+  border-radius: 9px;
+  max-width: 600px;
+
+  .tipsLeft {
+    display: flex;
+    align-items: center;
+    font-size: 16px;
+    color: rgba(0, 0, 0, 0.88);
+
+
+    .tips {
+      line-height: 38px;
+    }
+  }
+
+  .iconTips {
+    margin-right: 9px;
+    width: 18px;
+    height: 18px;
+  }
+
+  .btnNoTips {
+    font-size: 16px;
+    font-weight: 500;
+    color: #1677FF;
+    cursor: pointer;
+  }
+}
+
 .btnSubjectList {
   :global {
 
@@ -96,13 +130,31 @@
   }
 }
 
+.btnGroupClass {
+  padding-top: 10px;
+}
+
 .listContainer {
   margin-top: 12px;
   // // 52 + 28 + 38
-  max-height: calc(var(--window-page-lesson-height) - 148px);
+  // max-height: calc(var(--window-page-lesson-height) - 148px);
+
+  // .listSection {
+  //   min-height: calc(var(--window-page-lesson-height) - 148px);
+  // }
+
+  max-height: calc(var(--window-page-lesson-height) - 196px);
 
   .listSection {
-    min-height: calc(var(--window-page-lesson-height) - 148px);
+    min-height: calc(var(--window-page-lesson-height) - 196px);
+  }
+
+  &.listContainerDrag {
+    max-height: calc(var(--window-page-lesson-height) - 148px);
+
+    .listSection {
+      min-height: calc(var(--window-page-lesson-height) - 148px);
+    }
   }
 
   .emptySection {

+ 86 - 57
src/views/prepare-lessons/components/lesson-main/train/index.tsx

@@ -25,6 +25,7 @@ import TrainUpdate from '/src/views/attend-class/model/train-update';
 import AssignHomework from './assign-homework';
 import Trainguide from '@/custom-plugins/guide-page/train-guide';
 import { eventGlobal } from '/src/utils';
+import iconTips from '../../../images/icon-tips.png';
 export default defineComponent({
   name: 'courseware-modal',
   setup() {
@@ -33,6 +34,9 @@ export default defineComponent({
     const dialog = useDialog();
     const message = useMessage();
     const forms = reactive({
+      tipsStatus: localStorage.getItem('prepare-lesson-train-tip')
+        ? true
+        : false,
       showAttendClass: false,
       list: [] as any,
       drag: false,
@@ -201,13 +205,54 @@ export default defineComponent({
       <div class={styles.coursewareModal}>
         <div class={styles.btnGroup}>
           {forms.drag ? (
+            !forms.tipsStatus ? (
+              <div class={styles.tipsContainer}>
+                <div class={styles.tipsLeft}>
+                  <img src={iconTips} class={styles.iconTips} />
+                  <span class={styles.tips}>可以拖动资源排序哦</span>
+                </div>
+                <span
+                  class={styles.btnNoTips}
+                  onClick={() => {
+                    localStorage.setItem('prepare-lesson-train-tip', '1');
+                    forms.tipsStatus = true;
+                  }}>
+                  不再提醒
+                </span>
+              </div>
+            ) : (
+              <span></span>
+            )
+          ) : (
+            <NSpace>
+              <div class={styles.btnItem}>
+                <span class={styles.btnTitle}>声部:</span>
+                <NSelect
+                  placeholder="选择声部"
+                  class={styles.btnSubjectList}
+                  options={prepareStore.getSubjectList}
+                  labelField="name"
+                  valueField="id"
+                  value={prepareStore.getSubjectId}
+                  onUpdate:value={(val: any) => {
+                    prepareStore.setSubjectId(val);
+                    localStorage.setItem('prepareLessonSubjectId', val);
+                  }}
+                />
+              </div>
+            </NSpace>
+          )}
+
+          {forms.drag ? (
             <NSpace>
               <NButton
-                type="default"
+                type="error"
                 onClick={() => {
-                  forms.removeVisiable = true;
+                  // forms.trainList = [];
+                  // prepareStore.setTrainList([]);
+                  forms.removeVisiable1 = true;
                 }}>
-                完成编辑
+                清空资源
               </NButton>
               <NButton
                 type="error"
@@ -220,43 +265,15 @@ export default defineComponent({
                 取消编辑
               </NButton>
               <NButton
-                type="error"
+                type="default"
                 onClick={() => {
-                  // forms.trainList = [];
-                  // prepareStore.setTrainList([]);
-                  forms.removeVisiable1 = true;
+                  forms.removeVisiable = true;
                 }}>
-                清空资源
+                完成编辑
               </NButton>
-              <span class={styles.tips}>拖动可将资源进行排序</span>
             </NSpace>
           ) : (
             <NSpace>
-              {/* <NSelect
-                placeholder="选择声部"
-                options={catchStore.getSubjectList}
-                labelField="name"
-                valueField="id"
-                value={prepareStore.getSubjectId}
-                onUpdate:value={(val: any) => {
-                  prepareStore.setSubjectId(val);
-                }}
-              /> */}
-              <div class={styles.btnItem}>
-                <span class={styles.btnTitle}>声部:</span>
-                <NSelect
-                  placeholder="选择声部"
-                  class={styles.btnSubjectList}
-                  options={prepareStore.getSubjectList}
-                  labelField="name"
-                  valueField="id"
-                  value={prepareStore.getSubjectId}
-                  onUpdate:value={(val: any) => {
-                    prepareStore.setSubjectId(val);
-                    localStorage.setItem('prepareLessonSubjectId', val);
-                  }}
-                />
-              </div>
               <NButton
                 type="default"
                 onClick={() => {
@@ -267,31 +284,13 @@ export default defineComponent({
               </NButton>
             </NSpace>
           )}
-
-          <NSpace>
-            <NButton
-              type="primary"
-              {...{ id: 'train-0' }}
-              disabled={forms.drag}
-              onClick={() => {
-                let count = 0;
-                forms.trainList.forEach((item: any) => {
-                  if (!item.removeFlag) {
-                    count++;
-                  }
-                });
-                if (count <= 0) {
-                  message.error('作业内容不能为空');
-                  return;
-                }
-                forms.assignHomeworkStatus = true;
-              }}>
-              布置作业
-            </NButton>
-          </NSpace>
         </div>
 
-        <NScrollbar class={styles.listContainer}>
+        <NScrollbar
+          class={[
+            styles.listContainer,
+            forms.drag ? styles.listContainerDrag : ''
+          ]}>
           <NSpin show={forms.loadingStatus}>
             <div
               class={[
@@ -385,6 +384,36 @@ export default defineComponent({
           </NSpin>
         </NScrollbar>
 
+        {!forms.drag ? (
+          <div
+            class={[styles.btnGroup, styles.btnGroupClass]}
+            style={{ justifyContent: 'flex-end' }}>
+            <NSpace justify="end">
+              <NButton
+                type="primary"
+                {...{ id: 'train-0' }}
+                disabled={forms.drag}
+                onClick={() => {
+                  let count = 0;
+                  forms.trainList.forEach((item: any) => {
+                    if (!item.removeFlag) {
+                      count++;
+                    }
+                  });
+                  if (count <= 0) {
+                    message.error('作业内容不能为空');
+                    return;
+                  }
+                  forms.assignHomeworkStatus = true;
+                }}>
+                布置作业
+              </NButton>
+            </NSpace>
+          </div>
+        ) : (
+          ''
+        )}
+
         {/* 编辑 */}
         <NModal
           v-model:show={forms.editStatus}

BIN
src/views/prepare-lessons/images/icon-tips.png


+ 29 - 27
src/views/studentList/components/baseInfo.tsx

@@ -25,6 +25,7 @@ import { api_teacherUpdate } from '/src/api/user';
 import { resetStudentInfo } from '../api';
 import UploadFile from '/src/components/upload-file';
 import { getgradeNumList, classArray } from '@/views/classList/contants';
+import { useRoute } from 'vue-router';
 export default defineComponent({
   name: 'setting-personInfo',
   props: {
@@ -41,9 +42,10 @@ export default defineComponent({
     }
   },
   setup(props) {
+    const route = useRoute();
     const message = useMessage();
     const userStore = useUserStore();
-    const loading = ref()
+    const loading = ref();
     const formOptions = reactive({
       sexs: [
         { label: '男', value: 1, class: 'option' },
@@ -52,8 +54,9 @@ export default defineComponent({
       areaList: [] as any[]
     });
     const formRef = ref();
-    const showUpdate = ref(false)
+    const showUpdate = ref(false);
     const studentForm = reactive({
+      upgradeFlag: (route.query.upgradeFlag as any) == 0 ? 1 : 0, // 是否为历史班
       nickname: props.studentInfo.nickname as any,
       phone: props.studentInfo.phone,
       gender: props.studentInfo.gender,
@@ -82,19 +85,19 @@ export default defineComponent({
     // onMounted(() => {});
 
     const handleSave = () => {
-      loading.value = true
+      loading.value = true;
       formRef.value.validate(async (err: any) => {
         if (err) {
           return;
         }
-        try{
+        try {
           await resetStudentInfo({ ...props.studentInfo, ...studentForm });
           data.disabled = true;
           message.success('修改成功');
-          loading.value = false
-          showUpdate.value = false
-        }catch(e){
-          loading.value = false
+          loading.value = false;
+          showUpdate.value = false;
+        } catch (e) {
+          loading.value = false;
         }
       });
     };
@@ -188,46 +191,45 @@ export default defineComponent({
           </NForm>
         </div>
         {data.disabled ? (
-          <NSpace class={styles.btnList} align="center" justify="end">
-            <NButton
-              class={styles.btn}
-              strong
-              color="#f24433"
-              onClick={() => (data.disabled = false)}>
-              修改信息
-            </NButton>
-          </NSpace>
+          !studentForm.upgradeFlag && (
+            <NSpace class={styles.btnList} align="center" justify="end">
+              <NButton
+                class={styles.btn}
+                strong
+                color="#f24433"
+                onClick={() => (data.disabled = false)}>
+                修改信息
+              </NButton>
+            </NSpace>
+          )
         ) : (
           <NSpace class={styles.btnList} align="center" justify="end">
             <NButton class={styles.btn} onClick={() => cancel()}>
               取消
             </NButton>
             <NButton
-
               class={styles.btn}
               type="primary"
-              onClick={() => showUpdate.value = true}>
+              onClick={() => (showUpdate.value = true)}>
               完成
             </NButton>
           </NSpace>
         )}
 
-
-
-
         <NModal
           v-model:show={showUpdate.value}
           preset="card"
           class={['modalTitle', styles.removeVisiable]}
           title={'确认修改'}>
           <div class={styles.studentRemove}>
-            <p>
-             是否确认修改学员信息
-
-            </p>
+            <p>是否确认修改学员信息</p>
 
             <NSpace class={styles.btnGroup} justify="center">
-              <NButton round type="primary" onClick={handleSave}   loading={loading.value}>
+              <NButton
+                round
+                type="primary"
+                onClick={handleSave}
+                loading={loading.value}>
                 确定
               </NButton>
               <NButton round onClick={() => (showUpdate.value = false)}>