Преглед изворни кода

fix: change course statistics

DESKTOP-USV654P\pc пре 3 недеља
родитељ
комит
5012a10fa7

+ 7 - 2
Makefile

@@ -12,7 +12,7 @@ build:
 
 commit:
 	git add . && \
-	git commit --no-verify -m "fix: change evaluate"
+	git commit --no-verify -m "fix: change course statistics"
 
 checkPre:
 	git checkout pre
@@ -40,7 +40,12 @@ docker-build:
 
 docker-push:
 	docker push registry.yingcaibx.com/tl/admin_web:$(V_TAG) && \
-	git checkout dev
+	git add . && \
+	git commit --no-verify -m "fix: build" && \
+	git push && \
+	git checkout dev && \
+	git merge master && \
+	git push
 
 # 计算总时间
 total_time:

+ 4 - 1
src/services/apis/ClassTimeStatisticsController.ts

@@ -26,6 +26,9 @@ export async function deleteClasstimeClassTimeStatistics(params:string[],mode: E
 export async function postClassTimeStatisticsChangeStatus(params:API.ChangeStatusDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/classtime/classTimeStatistics/change-status', data:params},{errorMessageMode:mode});}
+/** 查询课时补充类型 GET /classtime/classTimeStatistics/coursetimetypelist */
+export async function getClassTimeStatisticsCoursetimetypelist(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.DictionaryDetail对象[]>
+        ({url: '/classtime/classTimeStatistics/coursetimetypelist', params:params},{errorMessageMode:mode});}
 /** 根据id查询课时统计信息 GET /classtime/classTimeStatistics/info */
 export async function getClassTimeStatisticsInfo(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.ClassTimeStatisticsVo>
         ({url: '/classtime/classTimeStatistics/info', params:params},{errorMessageMode:mode});}
@@ -40,7 +43,7 @@ export async function postClassTimeStatisticsRecordDetailExportQuery(params:API.
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
         ({url: '/classtime/classTimeStatistics/record-detail-export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
 /** 课时统计详情明细 GET /classtime/classTimeStatistics/record-detail-info */
-export async function getClassTimeStatisticsRecordDetailInfo(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<any>
+export async function getClassTimeStatisticsRecordDetailInfo(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.RecordDetailVo>
         ({url: '/classtime/classTimeStatistics/record-detail-info', params:params},{errorMessageMode:mode});}
 /** 课时统计详情导出 POST /classtime/classTimeStatistics/record-export-query */
 export async function postClassTimeStatisticsRecordExportQuery(params:API.RefreshStatisticsDto

+ 1 - 1
src/services/apis/EvaluateResultController.ts

@@ -18,7 +18,7 @@ export async function getEvaluateResultDetailPage(params:any,mode: ErrorMessageM
 export async function getEvaluateResultDetailPageDetail(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.EvaluateResultDetailPageDetailVo>
         ({url: '/evaluate/evaluateResult/detail-page-detail', params:params},{errorMessageMode:mode});}
 /** 入参导出 POST /evaluate/evaluateResult/export-query */
-export async function postEvaluateResultExportQuery(params:API.ResultViewingExcelDto
+export async function postEvaluateResultExportQuery(params:API.PageInput_5
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
         ({url: '/evaluate/evaluateResult/export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
 /** 评价结果首页列表(分页) GET /evaluate/evaluateResult/index-page */

+ 2 - 2
src/services/apis/FormExecuteController.ts

@@ -32,7 +32,7 @@ export async function postAppList(params:API.AppFormExecuteListDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/form/execute/app/list', data:params},{errorMessageMode:mode});}
 /** App 自定义表单根据配置获取列表数据 分页 POST /form/execute/app/page */
-export async function postAppPage(params:API.PageInput_5
+export async function postAppPage(params:API.PageInput_6
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/form/execute/app/page', data:params},{errorMessageMode:mode});}
 /** app 修改 POST /form/execute/app/update */
@@ -62,7 +62,7 @@ export async function postExecuteList(params:API.FormExecuteListDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/form/execute/list', data:params},{errorMessageMode:mode});}
 /** 自定义表单根据配置获取列表数据 分页 POST /form/execute/page */
-export async function postExecutePage(params:API.PageInput_6
+export async function postExecutePage(params:API.PageInput_7
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/form/execute/page', data:params},{errorMessageMode:mode});}
 /** 修改 POST /form/execute/update */

+ 2 - 2
src/services/apis/RoomBedAdjustController.ts

@@ -12,14 +12,14 @@ import { ErrorMessageMode } from '/#/axios';
 
 
             /** 修改学生的寝室床位 PUT /room/roomBedAdjust */
-export async function putRoomRoomBedAdjust(params:API.PageInput_7
+export async function putRoomRoomBedAdjust(params:API.PageInput_8
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.put<any>
         ({url: '/room/roomBedAdjust', data:params},{errorMessageMode:mode});}
 /** 批量移出学生 DELETE /room/roomBedAdjust */
 export async function deleteRoomRoomBedAdjust(params:string,mode: ErrorMessageMode = 'modal'){ return defHttp.delete<any>
         ({url: '/room/roomBedAdjust', data:params},{errorMessageMode:mode});}
 /** 批量修改学生的寝室床位 PUT /room/roomBedAdjust/adjustBedBatch */
-export async function putRoomBedAdjustAdjustBedBatch(params:API.PageInput_7[]
+export async function putRoomBedAdjustAdjustBedBatch(params:API.PageInput_8[]
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.put<any>
         ({url: '/room/roomBedAdjust/adjustBedBatch', data:params},{errorMessageMode:mode});}
 /** 床位学生列表 GET /room/roomBedAdjust/bed-student */

+ 1 - 1
src/services/apis/SecondCourseController.ts

@@ -34,7 +34,7 @@ export async function postSecondCourseEnroll(params:API.UserEnrollDto_1
 export async function getSecondCourseEnrollPage(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.PageOutput<API.SecondCourseEnrollVo>>
         ({url: '/courseTable/secondCourse/enroll-page', params:params},{errorMessageMode:mode});}
 /** 导出列表 POST /courseTable/secondCourse/export-query */
-export async function postSecondCourseExportQuery(params:API.PageInput_8
+export async function postSecondCourseExportQuery(params:API.PageInput_9
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
         ({url: '/courseTable/secondCourse/export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
 /** 根据id查询第二课堂信息 GET /courseTable/secondCourse/info */

+ 2 - 2
src/services/apis/SystemUpdateMessageController.ts

@@ -12,11 +12,11 @@ import { ErrorMessageMode } from '/#/axios';
 
 
             /** 新增系统消息 POST /system/systemUpdateMessage */
-export async function postSystemSystemUpdateMessage(params:API.PageInput_9
+export async function postSystemSystemUpdateMessage(params:API.PageInput_10
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/system/systemUpdateMessage', data:params},{errorMessageMode:mode});}
 /** 修改系统消息 PUT /system/systemUpdateMessage */
-export async function putSystemSystemUpdateMessage(params:API.PageInput_10
+export async function putSystemSystemUpdateMessage(params:API.PageInput_11
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.put<any>
         ({url: '/system/systemUpdateMessage', data:params},{errorMessageMode:mode});}
 /** 删除系统消息 DELETE /system/systemUpdateMessage */

+ 1 - 1
src/services/apis/WfRoomStayOvernightController.ts

@@ -23,7 +23,7 @@ export async function putRoomWfRoomStayOvernight(params:API.UpdateWfRoomStayOver
 export async function deleteRoomWfRoomStayOvernight(params:string[],mode: ErrorMessageMode = 'modal'){ return defHttp.delete<any>
         ({url: '/room/wfRoomStayOvernight', data:params},{errorMessageMode:mode});}
 /** 导出 POST /room/wfRoomStayOvernight/export-query */
-export async function postWfRoomStayOvernightExportQuery(params:API.PageInput_11
+export async function postWfRoomStayOvernightExportQuery(params:API.PageInput_12
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
         ({url: '/room/wfRoomStayOvernight/export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
 /** 根据id查询留校住宿申请信息 GET /room/wfRoomStayOvernight/info */

+ 1 - 1
src/services/apis/WfSubscriptionController.ts

@@ -16,7 +16,7 @@ export async function postLedgerWfSubscription(params:API.AddWfSubscriptionDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/ledger/wfSubscription', data:params},{errorMessageMode:mode});}
 /** 导出 POST /ledger/wfSubscription/export-query */
-export async function postWfSubscriptionExportQuery(params:API.PageInput_12
+export async function postWfSubscriptionExportQuery(params:API.PageInput_13
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
         ({url: '/ledger/wfSubscription/export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
 /** 物品申购台账列表(分页) GET /ledger/wfSubscription/page */

+ 102 - 42
src/services/typing.d.ts

@@ -8313,22 +8313,10 @@ type ClassTimeStatisticsRecordVo = {
 allClassTime?: number;
 /** 外聘教师超课时费 */
 beyondClassTimeAmount?: number;
-/** 教研会 */
-classTime1?: number;
 /** 顶课 */
 classTime10?: number;
 /** 调课 */
 classTime11?: number;
-/** 督导听课 */
-classTime2?: number;
-/** 临近三年退休政策 */
-classTime3?: number;
-/** 出题 */
-classTime4?: number;
-/** 阅卷 */
-classTime5?: number;
-/** 周末培优 */
-classTime6?: number;
 /** 早自习 */
 classTime7?: number;
 /** 正课(包含调顶课时) */
@@ -8337,6 +8325,8 @@ classTime8?: number;
 classTime9?: number;
 /** 课时费用 */
 classTimeAmount?: number;
+/** 课时补充数据 */
+courseTimeTypeData?: string;
 /** 聘用类型 */
 employTypeCn?: string;
 /** 主键编号 */
@@ -9025,6 +9015,31 @@ type DeployDto = {
 schemaId?: string;
 }
 
+/** 数据字典详情 */
+type DictionaryDetail对象 = {
+/** 编码 */
+code?: string;
+createDate?: string;
+createUserId?: string;
+deleteMark?: number;
+enabledMark?: number;
+id?: string;
+/** 字典项id */
+itemId?: string;
+modifyDate?: string;
+modifyUserId?: string;
+/** 名字 */
+name?: string;
+/** 父级编号 */
+pId?: string;
+/** 备注 */
+remark?: string;
+/** 排序号 */
+sortCode?: number;
+/** 值 */
+value?: string;
+}
+
 type DistributeClassPageVo = {
 /** 班级名称 */
 className?: string;
@@ -11312,6 +11327,8 @@ evaluateTypeCn?: string;
 name?: string;
 /** 登录用户整个评价管理的已经评价对象的数量(0:表示该用户所有需要评价的对象都已经评价) */
 ratedCount?: number;
+/** 状态(-1:未发布,0:暂停,1:进行中,2:已结束) */
+status?: number;
 }
 
 type MobileResultPageVo = {
@@ -11836,7 +11853,6 @@ type PageInput_10 = {
 content?: string;
 /** 排序字段 */
 field?: string;
-id?: string;
 /** 关键词 */
 keyword?: string;
 /** 当前页标 */
@@ -11857,6 +11873,31 @@ titleColor?: string;
 
 /** 分页入参 */
 type PageInput_11 = {
+/** 消息内容 */
+content?: string;
+/** 排序字段 */
+field?: string;
+id?: string;
+/** 关键词 */
+keyword?: string;
+/** 当前页标 */
+limit?: number;
+/** 排序方式 asc  desc */
+order?: string;
+/** 发送范围(1:全体师生,2:全体教职工) */
+sendRange?: number;
+/** 每页大小 */
+size?: number;
+/** 状态(0:未发布 1:已发布) */
+status?: number;
+/** 消息标题 */
+title?: string;
+/** 标题颜色 */
+titleColor?: string;
+}
+
+/** 分页入参 */
+type PageInput_12 = {
 /** 班级 */
 className?: string;
 /** 结束时间 */
@@ -11882,7 +11923,7 @@ userName?: string;
 }
 
 /** 分页入参 */
-type PageInput_12 = {
+type PageInput_13 = {
 /** 结束时间 */
 endDate?: string;
 /** 排序字段 */
@@ -11989,26 +12030,35 @@ studentId?: string;
 
 /** 分页入参 */
 type PageInput_5 = {
+/** 年级id */
+baseGradeId?: string;
+/** 学期id */
+baseSemesterId?: string;
+/** 班级id */
+classId?: string;
+/** 评价管理主键编号 */
+evaluateManageId: string;
 /** 排序字段 */
 field?: string;
-funcId?: string;
-isTemplate?: boolean;
-isTrans?: boolean;
 /** 关键词 */
 keyword?: string;
 /** 当前页标 */
 limit?: number;
+/** 姓名 */
+name?: string;
 /** 排序方式 asc  desc */
 order?: string;
-params?: any;
 /** 每页大小 */
 size?: number;
+/** 教师id */
+teacherId?: string;
 }
 
 /** 分页入参 */
 type PageInput_6 = {
 /** 排序字段 */
 field?: string;
+funcId?: string;
 isTemplate?: boolean;
 isTrans?: boolean;
 /** 关键词 */
@@ -12018,31 +12068,32 @@ limit?: number;
 /** 排序方式 asc  desc */
 order?: string;
 params?: any;
-releaseId?: string;
 /** 每页大小 */
 size?: number;
 }
 
 /** 分页入参 */
 type PageInput_7 = {
-/** 床位id */
-bedId?: string;
 /** 排序字段 */
 field?: string;
+isTemplate?: boolean;
+isTrans?: boolean;
 /** 关键词 */
 keyword?: string;
 /** 当前页标 */
 limit?: number;
 /** 排序方式 asc  desc */
 order?: string;
+params?: any;
+releaseId?: string;
 /** 每页大小 */
 size?: number;
-/** 学生userId */
-studentUserId?: string;
 }
 
 /** 分页入参 */
 type PageInput_8 = {
+/** 床位id */
+bedId?: string;
 /** 排序字段 */
 field?: string;
 /** 关键词 */
@@ -12051,18 +12102,14 @@ keyword?: string;
 limit?: number;
 /** 排序方式 asc  desc */
 order?: string;
-/** 用户类型 */
-roleId?: string;
-/** 课程id */
-secondCourseId?: string;
 /** 每页大小 */
 size?: number;
+/** 学生userId */
+studentUserId?: string;
 }
 
 /** 分页入参 */
 type PageInput_9 = {
-/** 消息内容 */
-content?: string;
 /** 排序字段 */
 field?: string;
 /** 关键词 */
@@ -12071,16 +12118,12 @@ keyword?: string;
 limit?: number;
 /** 排序方式 asc  desc */
 order?: string;
-/** 发送范围(1:全体师生,2:全体教职工) */
-sendRange?: number;
+/** 用户类型 */
+roleId?: string;
+/** 课程id */
+secondCourseId?: string;
 /** 每页大小 */
 size?: number;
-/** 状态(0:未发布 1:已发布) */
-status?: number;
-/** 消息标题 */
-title?: string;
-/** 标题颜色 */
-titleColor?: string;
 }
 
 type PageOutput<ActivityEnrollPageVo> = {
@@ -14385,6 +14428,28 @@ relationTasks?: LaunchRelationTaskDto[];
 schemaId?: string;
 }
 
+type RecordDetailListVo = {
+/** 调整类型 */
+adjustType?: string;
+/** 内容 */
+content?: string;
+/** 日期 */
+scheduleDate?: string;
+/** 分类 */
+type?: string;
+}
+
+type RecordDetailVo = {
+/** 总课时 */
+allClassTime?: number;
+/** 列 */
+columnTitle?: RecordDetailListVo[];
+/** 数据 */
+data?: RecordDetailListVo[];
+/** 行 */
+rowTitle?: RecordDetailListVo[];
+}
+
 type RecycleDeleteDto = {
 /** 流程id */
 processIds?: string[];
@@ -14621,11 +14686,6 @@ processId?: string;
 schemaId?: string;
 }
 
-type ResultViewingExcelDto = {
-/** 评价管理主键编号 */
-evaluateManageId: string;
-}
-
 type ResultViewingPageVo = {
 /** 实际打分人数 */
 actualExecuterNum?: number;

+ 1 - 1
src/views/course/holiday/data.config.ts

@@ -10,7 +10,7 @@ export const statusOptions: BasicOptionModel[] = [
 
 export const typeOptions: BasicOptionModel[] = [
   { label: '选中覆盖', value: 1 },
-  { label: '全天覆盖', value: 0 },
+  { label: '全天覆盖(未选中则覆盖为空)', value: 0 },
 ];
 
 export const tableColumns: BasicColumn[] = [

+ 36 - 1
src/views/course/statistics/components/edit.vue

@@ -59,6 +59,7 @@
   import { BasicModal, useModal, useModalInner } from '/@/components/Modal';
   import { formDetailSchema } from '../data.config';
   import {
+    getClassTimeStatisticsCoursetimetypelist,
     getClassTimeStatisticsInfo,
     getClassTimeStatisticsRecordList,
     postClassTimeStatisticsChangeStatus,
@@ -84,7 +85,7 @@
     status: 0,
   });
 
-  const [registerTable, { reload, getDataSource }] = useTable({
+  const [registerTable, { reload, getDataSource, setColumns }] = useTable({
     api: getClassTimeStatisticsRecordList,
     title: '课时统计表',
     rowKey: 'id',
@@ -110,6 +111,9 @@
     const resData = await getClassTimeStatisticsInfo({ id: data.baseData.id });
     modelRef.value = { ...resData };
     searchInfo.id = data.baseData.id;
+
+    await changeColumn();
+
     reload();
     setModalProps({ confirmLoading: false });
   });
@@ -174,6 +178,37 @@
     );
     setModalProps({ loading: false, confirmLoading: false });
   };
+
+  const changeColumn = async () => {
+    const columns = [...formDetailSchema];
+
+    const resData = await getClassTimeStatisticsCoursetimetypelist({});
+
+    resData &&
+      resData.forEach((item) => {
+        columns.splice(3, 0, {
+          title: item.name,
+          dataIndex: item.name,
+          align: 'left',
+          width: 80,
+          customRender: ({ text, record }) => {
+            try {
+              if (record.courseTimeTypeJson) {
+                const courseTimeTypeData = JSON.parse(record.courseTimeTypeJson);
+                if (courseTimeTypeData[text]) return courseTimeTypeData[text];
+                else return 0;
+              } else {
+                return 0;
+              }
+            } catch {
+              return 0;
+            }
+          },
+        });
+      });
+
+    setColumns(columns);
+  };
 </script>
 
 <style scoped lang="less"></style>

+ 36 - 36
src/views/course/statistics/data.config.ts

@@ -94,42 +94,42 @@ export const formDetailSchema: BasicColumn[] = [
     align: 'left',
     width: 80,
   },
-  {
-    title: '教研会',
-    dataIndex: 'classTime1',
-    align: 'left',
-    width: 80,
-  },
-  {
-    title: '督导听课',
-    dataIndex: 'classTime2',
-    align: 'left',
-    width: 80,
-  },
-  {
-    title: '临近三年退休政策',
-    dataIndex: 'classTime3',
-    align: 'left',
-    width: 80,
-  },
-  {
-    title: '出题',
-    dataIndex: 'classTime4',
-    align: 'left',
-    width: 80,
-  },
-  {
-    title: '阅卷',
-    dataIndex: 'classTime5',
-    align: 'left',
-    width: 80,
-  },
-  {
-    title: '周末培优',
-    dataIndex: 'classTime6',
-    align: 'left',
-    width: 80,
-  },
+  // {
+  //   title: '教研会',
+  //   dataIndex: 'classTime1',
+  //   align: 'left',
+  //   width: 80,
+  // },
+  // {
+  //   title: '督导听课',
+  //   dataIndex: 'classTime2',
+  //   align: 'left',
+  //   width: 80,
+  // },
+  // {
+  //   title: '临近三年退休政策',
+  //   dataIndex: 'classTime3',
+  //   align: 'left',
+  //   width: 80,
+  // },
+  // {
+  //   title: '出题',
+  //   dataIndex: 'classTime4',
+  //   align: 'left',
+  //   width: 80,
+  // },
+  // {
+  //   title: '阅卷',
+  //   dataIndex: 'classTime5',
+  //   align: 'left',
+  //   width: 80,
+  // },
+  // {
+  //   title: '周末培优',
+  //   dataIndex: 'classTime6',
+  //   align: 'left',
+  //   width: 80,
+  // },
   {
     title: '早自习',
     dataIndex: 'classTime7',