Procházet zdrojové kódy

feat:修改分班导出

DESKTOP-USV654P\pc před 8 měsíci
rodič
revize
fdd63a73c2

+ 5 - 2
src/services/apis/BandingTaskClassController.ts

@@ -27,11 +27,14 @@ export async function postBandingTaskClassChangeClass(params:API.ChangeClassDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/banding/bandingTaskClass/change-class', data:params},{errorMessageMode:mode});}
 /** 分班后的学生列表 GET /banding/bandingTaskClass/class-student */
-export async function getBandingTaskClassClassStudent(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.BandingTaskClassPageVo[]>
+export async function getBandingTaskClassClassStudent(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.BandingTaskClassStudentListVo[]>
         ({url: '/banding/bandingTaskClass/class-student', params:params},{errorMessageMode:mode});}
 /** 分班确认列表 GET /banding/bandingTaskClass/class-sure */
-export async function getBandingTaskClassClassSure(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.BandingTaskClassPageVo[]>
+export async function getBandingTaskClassClassSure(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.BandingTaskClassSureListVo[]>
         ({url: '/banding/bandingTaskClass/class-sure', params:params},{errorMessageMode:mode});}
+/** 导出学生列表 GET /banding/bandingTaskClass/export */
+export async function getBandingTaskClassExport(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.download<any>
+        ({url: '/banding/bandingTaskClass/export',responseType:'blob', params:params},{errorMessageMode:mode});}
 /** 导入 POST /banding/bandingTaskClass/import */
 export async function postBandingTaskClassImport(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/banding/bandingTaskClass/import',headers:{'Content-Type':'multipart/form-data'}, data:params},{errorMessageMode:mode});}

+ 60 - 0
src/services/typing.d.ts

@@ -4414,6 +4414,66 @@ teacherId?: string;
 teacherName?: string;
 }
 
+type BandingTaskClassStudentListVo = {
+/** 班级名称 */
+className?: string;
+/** 学号 */
+credentialNumber?: string;
+/** 第一志愿 */
+firstAmbition?: string;
+/** 性别 */
+genderCn?: string;
+/** 毕业班级 */
+graduateClass?: string;
+/** 毕业学校 */
+graduateSchool?: string;
+/** 身高 */
+height?: number;
+/** 主键编号 */
+id?: string;
+/** 学生姓名 */
+name?: string;
+/** 分数 */
+score?: number;
+/** 第二志愿 */
+secondAmbition?: string;
+/** 住宿类型 */
+stduyStatusCn?: string;
+/** 班主人名称 */
+teacherName?: string;
+/** 体重 */
+weight?: number;
+}
+
+type BandingTaskClassSureListVo = {
+/** 教室名称 */
+classroomName?: string;
+/** 女生人数 */
+femaleCount?: number;
+/** 主键编号 */
+id?: string;
+/** 是否是订单班 */
+isOrdeClass?: number;
+/** 专业方向id */
+majorSetId?: string;
+/** 专业方向 */
+majorSetName?: string;
+/** 男生人数 */
+maleCount?: number;
+/** 班级名称 */
+name?: string;
+/** 走读人数 */
+notStayCount?: number;
+/** 班级人数 */
+number?: number;
+/** 班级排序 */
+sortCode?: number;
+/** 住校人数 */
+stayCount?: number;
+/** 班主任名称 */
+teacherName?: string;
+}
+
 type BandingTaskClassVo = {
 /** 教室id */
 classroomId?: string;

+ 1 - 1
src/views/educational/division/components/DsionStep1.vue

@@ -85,7 +85,7 @@
       if (state.radioItem) {
         bandingRuleIds.push(state.radioItem);
       }
-      await postBandingTaskSetRule({ bandingRuleIds: bandingRuleIds, bandingTaskid: props.taskId });
+      await postBandingTaskSetRule({ bandingRuleIds: bandingRuleIds, bandingTaskId: props.taskId });
       return true;
     } catch {
       return false;

+ 13 - 2
src/views/educational/division/components/DsionStep4.vue

@@ -3,7 +3,7 @@
     <BasicTable @register="registerTable" :searchInfo="searchInfo">
       <template #toolbar>
         <a-button type="primary" @click="handelAjd">调整班级</a-button>
-        <a-button type="primary">导出</a-button>
+        <a-button type="primary" @click="handelExport">导出</a-button>
       </template>
     </BasicTable>
     <FormAdjust @register="registerModal" @success="handleSuccess" />
@@ -14,9 +14,14 @@
   import { reactive, watch } from 'vue';
   import { BasicTable, useTable } from '/@/components/Table';
   import { table4Columns, searchForm4Schema } from '../data.config';
-  import { getBandingTaskClassClassStudent } from '/@/services/apis/BandingTaskClassController';
+  import {
+    getBandingTaskClassClassStudent,
+    getBandingTaskClassExport,
+  } from '/@/services/apis/BandingTaskClassController';
   import FormAdjust from './adjust.vue';
   import { useModal } from '/@/components/Modal';
+  import { formatToDateTime } from '/@/utils/dateUtil';
+  import { downloadByData } from '/@/utils/file/download';
 
   const [registerModal, { openModal }] = useModal();
 
@@ -77,6 +82,12 @@
     reload();
   };
 
+  const handelExport = async () => {
+    // const postData = getForm().getFieldsValue();
+    const data = await getBandingTaskClassExport({});
+    downloadByData(data.data, `学生列表${formatToDateTime(new Date(), 'YYYYMMDDHHmmss')}.xlsx`);
+  };
+
   defineExpose({ validateStep, reloadStep });
 </script>