Browse Source

添加作业

lex 1 year ago
parent
commit
0fa4c9fd05

+ 1 - 1
public/version.json

@@ -1 +1 @@
-{"version":1706880268811}
+{"version":1706883102237}

+ 1 - 0
src/views/attend-class/model/train-type/index.module.less

@@ -238,6 +238,7 @@
     height: 20Px;
     line-height: 20Px;
     margin-right: 7px;
+    flex-shrink: 0;
   }
 
   .PRACTICE {

+ 5 - 3
src/views/homework-record/index.module.less

@@ -79,7 +79,7 @@
 }
 
 .workVisiable {
-  width: 1158px;
+  width: 1258px;
 }
 
 .workContainer {
@@ -97,10 +97,11 @@
 
   :global {
     .train-container {
-      max-height: calc(var(--window-page-lesson-height) - 135px) !important;
+      // max-height: calc(var(--window-page-lesson-height) - 135px) !important;
+      max-height: calc(var(--window-page-lesson-height) - 100px) !important;
 
       .train-listSection {
-        min-height: calc(var(--window-page-lesson-height) - 135px) !important;
+        min-height: calc(var(--window-page-lesson-height) - 100px) !important;
       }
     }
   }
@@ -160,6 +161,7 @@
 }
 
 .item {
+  cursor: pointer;
   background: #F7F9FF;
   border-radius: 13px;
   padding: 0 17px 17px;

+ 12 - 2
src/views/homework-record/index.tsx

@@ -355,7 +355,11 @@ export default defineComponent({
           <NSpin show={state.loading}>
             <div class={styles.listSection}>
               {state.tableList.map((item: any) => (
-                <div class={styles.item}>
+                <div
+                  class={styles.item}
+                  onClick={() => {
+                    console.log('item', item);
+                  }}>
                   <div class={styles.header}>
                     <NAvatar
                       class={styles.navatar}
@@ -426,7 +430,9 @@ export default defineComponent({
                       class={styles.errorBtn}
                       type="error"
                       color="#F94D50"
-                      onClick={() => {
+                      onClick={(e: any) => {
+                        console.log(e);
+                        e.stopPropagation();
                         state.resetVisiable = true;
                         state.resetItem = item;
                       }}>
@@ -485,6 +491,10 @@ export default defineComponent({
                   title: dayjs().format('YYYY年MM月DD日') + '-课后作业'
                 }}
                 cardType={'homeworkRecord'}
+                onChange={(val: any) => {
+                  state.workVisiable = val.status;
+                  getList();
+                }}
               />
             </div>
             <div class={styles.resourceMain}>

+ 40 - 20
src/views/prepare-lessons/components/lesson-main/train/assign-homework.tsx

@@ -124,7 +124,7 @@ export default defineComponent({
             });
           });
           const params = {
-            title: forms.title,
+            name: forms.title,
             homeworkObj: forms.homeworkObj,
             homeworkType: forms.homeworkType,
             lessonTrainingDetails: details,
@@ -137,6 +137,7 @@ export default defineComponent({
           await lessonTrainingAdd(params);
           message.success('布置成功');
           emit('close');
+          emit('confirm');
         } catch {
           //
         }
@@ -196,6 +197,7 @@ export default defineComponent({
               clearable
             />
           </NFormItem>
+
           <NFormItem
             label="年级"
             path="currentGradeNum"
@@ -218,25 +220,43 @@ export default defineComponent({
               }}
             />
           </NFormItem>
-          <NFormItem
-            label="班级"
-            path="classGroupId"
-            rule={[
-              {
-                required: true,
-                message: '请选择班级',
-                trigger: 'change',
-                type: 'array'
-              }
-            ]}>
-            <NSelect
-              v-model:value={forms.classGroupId}
-              placeholder="请选择班级"
-              clearable
-              multiple
-              options={forms.classList}
-            />
-          </NFormItem>
+          {forms.homeworkObj === 'CLASS' ? (
+            <NFormItem
+              label="班级"
+              path="classGroupId"
+              rule={[
+                {
+                  required: true,
+                  message: '请选择班级',
+                  trigger: 'change',
+                  type: 'array'
+                }
+              ]}>
+              <NSelect
+                v-model:value={forms.classGroupId}
+                placeholder="请选择班级"
+                clearable
+                multiple
+                options={forms.classList}
+              />
+            </NFormItem>
+          ) : (
+            <NFormItem
+              label="学生"
+              path="classGroupId"
+              rule={[
+                {
+                  required: true,
+                  message: '请选择学生',
+                  trigger: 'change',
+                  type: 'array'
+                }
+              ]}>
+              <span class={styles.selectStudentBtn}>选择学生</span>
+              <div class={styles.studentList}></div>
+            </NFormItem>
+          )}
+
           <NFormItem
             label="截止日期"
             path="expireDate"

+ 1 - 0
src/views/prepare-lessons/components/lesson-main/train/index.module.less

@@ -248,6 +248,7 @@
     padding: 20px 40px 0;
 
     p {
+      text-align: center;
       font-size: max(18px, 14Px);
       color: #777777;
       line-height: 30px;

+ 72 - 33
src/views/prepare-lessons/components/lesson-main/train/index.tsx

@@ -157,6 +157,8 @@ export default defineComponent({
     watch(
       () => prepareStore.getSelectKey,
       () => {
+        eventGlobal.emit('teacher-slideshow', false);
+        emit('change', { status: false });
         forms.trainList = [];
         getList();
       }
@@ -223,6 +225,7 @@ export default defineComponent({
     onMounted(async () => {
       await getList();
 
+      console.log(prepareStore.getTrainList, 'prepareStore.getTrainList');
       // 动态添加数据
       eventGlobal.on('onTrainAddItem', (item: any) => {
         forms.drag = true;
@@ -249,6 +252,7 @@ export default defineComponent({
           <NSpace>
             <NButton
               type="error"
+              disabled={forms.trainList.length <= 0}
               onClick={() => {
                 forms.removeVisiable1 = true;
               }}>
@@ -266,13 +270,35 @@ export default defineComponent({
               }}>
               取消
             </NButton>
-            <NButton
-              type="default"
-              disabled={forms.trainList.length <= 0}
-              onClick={onPreSave}
-              loading={forms.preBtnLoading}>
-              保存预设
-            </NButton>
+
+            {props.cardType === 'homeworkRecord' ? (
+              <NButton
+                type="primary"
+                disabled={forms.trainList.length <= 0}
+                onClick={() => {
+                  let count = 0;
+                  forms.trainList.forEach((item: any) => {
+                    if (!item.removeFlag) {
+                      count++;
+                    }
+                  });
+                  if (count <= 0) {
+                    message.error('作业内容不能为空');
+                    return;
+                  }
+                  forms.assignHomeworkStatus = true;
+                }}>
+                立即布置
+              </NButton>
+            ) : (
+              <NButton
+                type="default"
+                disabled={forms.trainList.length <= 0}
+                onClick={onPreSave}
+                loading={forms.preBtnLoading}>
+                保存预设
+              </NButton>
+            )}
           </NSpace>
         </div>
 
@@ -389,32 +415,34 @@ export default defineComponent({
           </NSpin>
         </NScrollbar>
 
-        <div
-          class={[styles.btnGroup, styles.btnGroupClass]}
-          style={{ justifyContent: 'flex-end' }}>
-          <NSpace justify="end">
-            <NButton
-              type="primary"
-              // {...{ id: 'train-0' }}
-              // disabled={forms.drag}
-              disabled={forms.trainList.length <= 0}
-              onClick={() => {
-                let count = 0;
-                forms.trainList.forEach((item: any) => {
-                  if (!item.removeFlag) {
-                    count++;
+        {props.cardType !== 'homeworkRecord' && (
+          <div
+            class={[styles.btnGroup, styles.btnGroupClass]}
+            style={{ justifyContent: 'flex-end' }}>
+            <NSpace justify="end">
+              <NButton
+                type="primary"
+                // {...{ id: 'train-0' }}
+                // disabled={forms.drag}
+                disabled={forms.trainList.length <= 0}
+                onClick={() => {
+                  let count = 0;
+                  forms.trainList.forEach((item: any) => {
+                    if (!item.removeFlag) {
+                      count++;
+                    }
+                  });
+                  if (count <= 0) {
+                    message.error('作业内容不能为空');
+                    return;
                   }
-                });
-                if (count <= 0) {
-                  message.error('作业内容不能为空');
-                  return;
-                }
-                forms.assignHomeworkStatus = true;
-              }}>
-              立即布置
-            </NButton>
-          </NSpace>
-        </div>
+                  forms.assignHomeworkStatus = true;
+                }}>
+                立即布置
+              </NButton>
+            </NSpace>
+          </div>
+        )}
 
         {/* 编辑 */}
         <NModal
@@ -461,8 +489,19 @@ export default defineComponent({
           title={'布置作业'}
           blockScroll={false}>
           <AssignHomework
-            trainList={forms.trainList}
+            item={{
+              title: forms.title,
+              lessonPreTrainingDetails: forms.trainList
+            }}
+            // trainList={forms.trainList}
             onClose={() => (forms.assignHomeworkStatus = false)}
+            onConfirm={() => {
+              if (props.cardType === 'homeworkRecord') {
+                forms.trainList = [];
+                prepareStore.setTrainList([]);
+                emit('change', { state: false });
+              }
+            }}
           />
         </NModal>
         {/* {showGuide.value ? <Trainguide></Trainguide> : null} */}

+ 7 - 1
src/views/prepare-lessons/components/resource-main/components/select-music/index.tsx

@@ -52,6 +52,11 @@ export default defineComponent({
     type: {
       type: String as PropType<'myMusic' | 'sahreMusic' | 'collectMusic'>,
       default: 'myMusic'
+    },
+    /** 类型 */
+    cardType: {
+      type: String as PropType<'' | 'homerowk-record'>,
+      default: ''
     }
   },
   setup(props) {
@@ -79,7 +84,8 @@ export default defineComponent({
     });
     const getList = async () => {
       try {
-        if (!prepareStore.getSubjectId) return;
+        if (!prepareStore.getSubjectId && props.cardType !== 'homerowk-record')
+          return;
         if (state.pagination.page === 1) {
           state.loading = true;
         }

+ 6 - 3
src/views/prepare-lessons/components/resource-main/index.tsx

@@ -175,13 +175,16 @@ export default defineComponent({
               default: () => (
                 <>
                   <NTabPane name="myMusic" tab="我的曲目">
-                    <SelectMusic type="myMusic" />
+                    <SelectMusic cardType={props.cardType} type="myMusic" />
                   </NTabPane>
                   <NTabPane name="sahreMusic" tab="共享曲目">
-                    <SelectMusic type="sahreMusic" />
+                    <SelectMusic cardType={props.cardType} type="sahreMusic" />
                   </NTabPane>
                   <NTabPane name="collectMusic" tab="收藏曲目">
-                    <SelectMusic type="collectMusic" />
+                    <SelectMusic
+                      cardType={props.cardType}
+                      type="collectMusic"
+                    />
                   </NTabPane>
                 </>
               )