Browse Source

feat:修改材料缴交BUG

DESKTOP-USV654P\pc 6 months ago
parent
commit
02163dc534

+ 3 - 3
src/services/apis/BaseNewStudentController.ts

@@ -39,9 +39,9 @@ export async function getBaseNewStudentInfo(params:any,mode: ErrorMessageMode =
 /** 新生维护信息列表(分页) GET /student/baseNewStudent/page */
 export async function getBaseNewStudentPage(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.PageOutput<API.BaseNewStudentPageVo>>
         ({url: '/student/baseNewStudent/page', params:params},{errorMessageMode:mode});}
-/** 导出 POST /student/baseNewStudent/report-export */
-export async function postBaseNewStudentReportExport(mode: ErrorMessageMode = 'modal'){ return defHttp.download<any>
-        ({url: '/student/baseNewStudent/report-export',responseType:'blob', data:{}},{errorMessageMode:mode});}
+/** 导出 POST /student/baseNewStudent/report-export-query */
+export async function postBaseNewStudentReportExportQuery(mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
+        ({url: '/student/baseNewStudent/report-export-query',responseType:'blob',method:'POST', data:{}},{errorMessageMode:mode});}
 /** 新生报到(分页) GET /student/baseNewStudent/report-page */
 export async function getBaseNewStudentReportPage(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.PageOutput<API.BaseNewStudentPageVo>>
         ({url: '/student/baseNewStudent/report-page', params:params},{errorMessageMode:mode});}

+ 3 - 0
src/services/apis/DataboardController.ts

@@ -26,6 +26,9 @@ export async function getDataboardPersonStatistics(params:any,mode: ErrorMessage
 /** 流程统计 GET /databoard/databoard/process-statistics */
 export async function getDataboardProcessStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.ProcessStatisticsVo>
         ({url: '/databoard/databoard/process-statistics', params:params},{errorMessageMode:mode});}
+/** 会议统计 GET /databoard/databoard/reimbursement-statistics */
+export async function getDataboardReimbursementStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.ReimbursementStatisticsVo>
+        ({url: '/databoard/databoard/reimbursement-statistics', params:params},{errorMessageMode:mode});}
 /** 访客统计 GET /databoard/databoard/visitor-statistics */
 export async function getDataboardVisitorStatistics(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.VisitorStatisticsVo>
         ({url: '/databoard/databoard/visitor-statistics', params:params},{errorMessageMode:mode});}

+ 11 - 6
src/services/apis/MaterialTaskController.ts

@@ -39,17 +39,22 @@ export async function getMaterialtaskAssignList(params:any,mode: ErrorMessageMod
 /** 材料提交任务分员列表(分页) GET /material/materialtask/assign-page */
 export async function getMaterialtaskAssignPage(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.get<API.PageOutput<API.MaterialTaskAssignVo>>
         ({url: '/material/materialtask/assign-page', params:params},{errorMessageMode:mode});}
+/** 下载附件(zip压缩包) POST /material/materialtask/download-file-export */
+export async function postMaterialtaskDownloadFileExport(params:API.MaterialTaskAssignListDto
+,mode: ErrorMessageMode = 'modal'){ return defHttp.download<any>
+        ({url: '/material/materialtask/download-file-export',responseType:'blob', data:params},{errorMessageMode:mode});}
 /** 提交材料结束 enabledMark 不用传 PUT /material/materialtask/end */
 export async function putMaterialtaskEnd(params:API.UpdateEnableMarkDto
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.put<any>
         ({url: '/material/materialtask/end', data:params},{errorMessageMode:mode});}
-/** 导出 GET /material/materialtask/export */
-export async function getMaterialtaskExport(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.download<any>
-        ({url: '/material/materialtask/export',responseType:'blob', params:params},{errorMessageMode:mode});}
-/** 表单缴交数据条件导出 GET /material/materialtask/form-data-export-query */
-export async function getMaterialtaskFormDataExportQuery(params:API.FormDataExportQueryDto
+/** 导出 POST /material/materialtask/export-query */
+export async function postMaterialtaskExportQuery(params:API.PageInput_6
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
-        ({url: '/material/materialtask/form-data-export-query',responseType:'blob',method:'POST',params},{errorMessageMode:mode});}
+        ({url: '/material/materialtask/export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
+/** 表单缴交数据条件导出 POST /material/materialtask/form-data-export-query */
+export async function postMaterialtaskFormDataExportQuery(params:API.FormDataExportQueryDto
+,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
+        ({url: '/material/materialtask/form-data-export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
 /** 导入 POST /material/materialtask/import */
 export async function postMaterialtaskImport(params:any,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/material/materialtask/import',headers:{'Content-Type':'multipart/form-data'}, data:params},{errorMessageMode:mode});}

+ 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_6
+export async function putRoomRoomBedAdjust(params:API.PageInput_7
 ,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_6[]
+export async function putRoomBedAdjustAdjustBedBatch(params:API.PageInput_7[]
 ,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_7
+export async function postSecondCourseExportQuery(params:API.PageInput_8
 ,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_8
+export async function postSystemSystemUpdateMessage(params:API.PageInput_9
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.post<any>
         ({url: '/system/systemUpdateMessage', data:params},{errorMessageMode:mode});}
 /** 修改系统消息 PUT /system/systemUpdateMessage */
-export async function putSystemSystemUpdateMessage(params:API.PageInput_9
+export async function putSystemSystemUpdateMessage(params:API.PageInput_10
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.put<any>
         ({url: '/system/systemUpdateMessage', data:params},{errorMessageMode:mode});}
 /** 删除系统消息 DELETE /system/systemUpdateMessage */

+ 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_10
+export async function postWfSubscriptionExportQuery(params:API.PageInput_11
 ,mode: ErrorMessageMode = 'modal'){ return defHttp.download<string>
         ({url: '/ledger/wfSubscription/export-query',responseType:'blob',method:'POST', data:params},{errorMessageMode:mode});}
 /** 物品申购台账列表(分页) GET /ledger/wfSubscription/page */

+ 65 - 20
src/services/typing.d.ts

@@ -10094,6 +10094,7 @@ materialCategory?: string;
 materialTaskAppendixList?: AddMaterialTaskAppendixDto[];
 /** 材料提交任务分配对象ID */
 materialTaskAssignId?: string;
+/** 表单模板id */
 templateId?: string;
 }
 
@@ -10108,11 +10109,20 @@ opinion?: string;
 status?: number;
 }
 
+type MaterialTaskAssignListDto = {
+/** 材料提交任务(material_task) */
+materialTaskId?: string;
+name?: string;
+state?: number;
+}
+
 type MaterialTaskAssignListVo = {
 deptName?: string;
+/** 文件id */
+fileId?: string;
 /** 文件模板 */
 files?: File对象[];
-/** 文件模板 */
+/** 文件夹id */
 folderId?: string;
 /** 文件模板 */
 folderIdCn?: string;
@@ -11085,6 +11095,31 @@ stduyStatus?: string;
 
 /** 分页入参 */
 type PageInput_10 = {
+/** 消息内容 */
+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_11 = {
 /** 结束时间 */
 endDate?: string;
 /** 排序字段 */
@@ -11195,24 +11230,32 @@ size?: number;
 
 /** 分页入参 */
 type PageInput_6 = {
-/** 床位id */
-bedId?: string;
+/** 创建时间 */
+createDateEnd?: string;
+/** 创建时间 */
+createDateStart?: string;
 /** 排序字段 */
 field?: string;
 /** 关键词 */
 keyword?: string;
 /** 当前页标 */
 limit?: number;
+/** 材料提交任务类型(material_type) */
+materialTypeId?: string;
+/** 任务名称 */
+name?: string;
 /** 排序方式 asc  desc */
 order?: string;
 /** 每页大小 */
 size?: number;
-/** 学生userId */
-studentUserId?: string;
+/** 状态 1=未开始 2=进行中 3=结束 */
+status?: number;
 }
 
 /** 分页入参 */
 type PageInput_7 = {
+/** 床位id */
+bedId?: string;
 /** 排序字段 */
 field?: string;
 /** 关键词 */
@@ -11221,18 +11264,14 @@ keyword?: string;
 limit?: number;
 /** 排序方式 asc  desc */
 order?: string;
-/** 用户类型 */
-roleId?: string;
-/** 课程id */
-secondCourseId?: string;
 /** 每页大小 */
 size?: number;
+/** 学生userId */
+studentUserId?: string;
 }
 
 /** 分页入参 */
 type PageInput_8 = {
-/** 消息内容 */
-content?: string;
 /** 排序字段 */
 field?: string;
 /** 关键词 */
@@ -11241,16 +11280,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;
 }
 
 /** 分页入参 */
@@ -11259,7 +11294,6 @@ type PageInput_9 = {
 content?: string;
 /** 排序字段 */
 field?: string;
-id?: string;
 /** 关键词 */
 keyword?: string;
 /** 当前页标 */
@@ -13558,6 +13592,17 @@ userName?: string;
 wechatNumber?: string;
 }
 
+type ReimbursementStatisticsVo = {
+/** 申请总次数 */
+allCount?: number;
+/** 申请 */
+amountList?: ItemCountVo[];
+/** 完成总数 */
+completeCount?: number;
+/** 未完成总数 */
+uncompleteCount?: number;
+}
+
 type RelationProcessConfig = {
 /** 关联流程定义key */
 definitionKey?: string;

+ 2 - 2
src/views/educational/studentReport/index.vue

@@ -5,7 +5,7 @@
   import ClassTree from '/@/views/educational/basicInformation/components/tree.vue';
   import { reactive } from 'vue';
   import {
-    postBaseNewStudentReportExport,
+    postBaseNewStudentReportExportQuery,
     getBaseNewStudentReportPage,
   } from '/@/services/apis/BaseNewStudentController';
   import { Recordable } from 'vite-plugin-mock';
@@ -80,7 +80,7 @@
   const handleExport = async () => {
     const postData = getForm().getFieldsValue();
     downloadByData(
-      (await postBaseNewStudentReportExport({ ...postData, ...searchInfo })).data,
+      (await postBaseNewStudentReportExportQuery({ ...postData, ...searchInfo })).data,
       `新生列表${formatToDate(new Date())}.xlsx`,
     );
   };

+ 12 - 12
src/views/materialManager/completedTodoList/components/viewModal.vue

@@ -41,7 +41,7 @@
       case 2:
         downloadByUrl({
           url: item.fileUrl,
-          fileName: item.fileName,
+          fileName: item.fileName + item.fileType,
         });
     }
 
@@ -80,7 +80,7 @@
     <div class="taskView-Content" v-if="taskDataInfo">
       <div class="taskView-Content-title">
         <h3>{{ taskDataInfo.name }}</h3>
-        <span style="color: black;">{{
+        <span style="color: black">{{
           `[${
             taskDataInfo.status === 1
               ? '未开始'
@@ -94,19 +94,19 @@
         <span>最晚{{ taskDataInfo?.requiredCompleteTime }}前完成提交</span>
       </div>
       <div class="taskView-Content-body">
-        <span style="margin-bottom: 12px; font-size: 16px; color: black;">材料提交要求:</span>
-        <div v-html="taskDataInfo.requirement" style="margin-top: 12px;"></div>
+        <span style="margin-bottom: 12px; font-size: 16px; color: black">材料提交要求:</span>
+        <div v-html="taskDataInfo.requirement" style="margin-top: 12px"></div>
       </div>
       <div class="taskView-Content-fileList">
         <div class="fileLListBox" v-if="Array.isArray(taskDataInfo.materialTaskAppendixList)">
-          <span style="margin-bottom: 12px; font-size: 16px; color: black;">材料附件列表:</span>
+          <span style="margin-bottom: 12px; font-size: 16px; color: black">材料附件列表:</span>
           <ul>
             <li
-              style="display: flex; align-items: center; justify-content: space-between;"
+              style="display: flex; align-items: center; justify-content: space-between"
               v-for="item in taskDataInfo.materialTaskAppendixList"
               :key="item.id"
             >
-              <div style="display: flex; align-items: center;">
+              <div style="display: flex; align-items: center">
                 <LinkOutlined />
                 <div
                   style="
@@ -121,7 +121,7 @@
               </div>
 
               <div>
-                <span style="margin-right: 12px;" @click="handleReview(item, 1)">预览</span>
+                <span style="margin-right: 12px" @click="handleReview(item, 1)">预览</span>
                 <span @click="handleReview(item, 2)">下载</span>
               </div>
             </li>
@@ -129,12 +129,12 @@
         </div>
       </div>
       <div class="taskView-Content-action">
-        <div style="display: flex; flex-direction: column;">
-          <span style="margin-bottom: 12px; font-size: 16px; color: black; margin-left: 12px;"
+        <div style="display: flex; flex-direction: column">
+          <span style="margin-bottom: 12px; font-size: 16px; color: black; margin-left: 12px"
             >材料附件上传:</span
           >
           <Upload
-            style="margin-left: 12px;"
+            style="margin-left: 12px"
             v-model:value="folderId"
             :value="folderId"
             @reload="handleSuccess"
@@ -143,7 +143,7 @@
         <div>
           <a-button
             type="primary"
-            style="width: 64px; margin-left: 12px; margin-bottom: 12px;"
+            style="width: 64px; margin-left: 12px; margin-bottom: 12px"
             @click="handleSubmit"
             >提交</a-button
           >

+ 11 - 16
src/views/materialManager/myTodoList/components/viewModal.vue

@@ -152,7 +152,7 @@
         a.click();
         break;
       case 2:
-        baseDownloadFileUrl(item.fileUrl, item.fileName);
+        baseDownloadFileUrl(item.fileUrl, item.fileName + item.fileType);
     }
 
     a.remove();
@@ -212,7 +212,7 @@
     <div class="taskView-Content" v-if="taskDataInfo">
       <div class="taskView-Content-title">
         <h3>{{ taskDataInfo.name }}</h3>
-        <span style="color: black;">{{
+        <span style="color: black">{{
           `[${
             taskDataInfo.status === 1
               ? '未开始'
@@ -226,32 +226,27 @@
         <span>最晚{{ taskDataInfo?.requiredCompleteTime }}前完成提交</span>
       </div>
       <div class="taskView-Content-body">
-        <span style="margin-bottom: 12px; font-size: 16px; color: black;">材料提交要求:</span>
-        <div v-html="taskDataInfo.requirement" style="margin-top: 12px;"></div>
+        <span style="margin-bottom: 12px; font-size: 16px; color: black">材料提交要求:</span>
+        <div v-html="taskDataInfo.requirement" style="margin-top: 12px"></div>
       </div>
       <div class="taskView-Content-fileList">
         <div class="fileLListBox" v-if="taskDataInfo.materialCategory === 'MT0001'">
-          <span style="margin-bottom: 12px; font-size: 16px; color: black;">材料附件列表:</span>
+          <span style="margin-bottom: 12px; font-size: 16px; color: black">材料附件列表:</span>
           <ul>
             <li
-              style="display: flex; align-items: center; justify-content: space-between;"
+              style="display: flex; align-items: center; justify-content: space-between"
               v-for="item in taskDataInfo.files"
               :key="item.id"
             >
               <div
-                style="
-                  width: 800px;
-                  overflow: hidden;
-                  text-overflow: ellipsis;
-                  white-space: nowrap;
-                "
+                style="width: 800px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap"
               >
                 <LinkOutlined />
                 {{ item.fileName }}
               </div>
 
               <div>
-                <span style="margin-right: 12px;" @click="handleReview(item, 1)">预览</span>
+                <span style="margin-right: 12px" @click="handleReview(item, 1)">预览</span>
                 <span @click="handleReview(item, 2)">下载</span>
               </div>
             </li>
@@ -260,11 +255,11 @@
       </div>
       <div class="taskView-Content-action">
         <template v-if="taskDataInfo.materialCategory === 'MT0001'">
-          <div style="display: flex; flex-direction: column;">
-            <span style="margin-bottom: 12px; font-size: 16px; color: black; margin-left: 12px;">
+          <div style="display: flex; flex-direction: column">
+            <span style="margin-bottom: 12px; font-size: 16px; color: black; margin-left: 12px">
               材料附件上传:
             </span>
-            <Upload style="margin-left: 12px;" v-model:value="folderId" @reload="handleSuccess" />
+            <Upload style="margin-left: 12px" v-model:value="folderId" @reload="handleSuccess" />
           </div>
         </template>
         <template v-else>

+ 30 - 6
src/views/materialManager/taskTodoList/components/viewModal.vue

@@ -3,6 +3,8 @@
   import BasicModal from '/@/components/Modal/src/BasicModal.vue';
   import {
     getMaterialtaskAssignList,
+    postMaterialtaskExportQuery,
+    postMaterialtaskDownloadFileExport,
     getMaterialtaskInfo,
   } from '/@/services/apis/MaterialTaskController';
   import { nextTick, ref } from 'vue';
@@ -16,9 +18,10 @@
   import { LinkOutlined } from '@ant-design/icons-vue';
   import { getAppEnvConfig } from '/@/utils/env';
   import { encode } from 'js-base64';
-  import { baseDownloadFileUrl, downloadByUrl } from '/@/utils/file/download';
+  import { baseDownloadFileUrl, downloadByData, downloadByUrl } from '/@/utils/file/download';
   import { getFileList } from '/@/api/system/file';
   import FormTemplate from '/@/views/form/preview/index.vue';
+  import { formatToDateTime } from '/@/utils/dateUtil';
   const RadioGroup = Radio.Group;
   const RadioButton = Radio.Button;
   const emit = defineEmits(['success', 'register']);
@@ -41,7 +44,7 @@
         a.click();
         break;
       case 2:
-        baseDownloadFileUrl(item.fileUrl, item.fileName);
+        baseDownloadFileUrl(item.fileUrl, item.fileName + item.fileType);
     }
 
     a.remove();
@@ -72,7 +75,7 @@
       fileList.map((item) => {
         downloadByUrl({
           url: item.fileUrl,
-          fileName: item.fileName,
+          fileName: item.fileName + item.fileType,
         });
       }),
     );
@@ -126,6 +129,27 @@
       formReleaseId: item?.formDataId,
     });
   };
+
+  const handelExport = async () => {
+    const postData = {
+      materialTaskId: taskDataInfo.value.id,
+      state: status.value,
+    };
+    const data = await postMaterialtaskExportQuery(postData);
+    downloadByData(data.data, `材料列表${formatToDateTime(new Date(), 'YYYYMMDDHHmmss')}.xlsx`);
+  };
+
+  const handelDownload = async () => {
+    const postData = {
+      materialTaskId: taskDataInfo.value.id,
+      state: status.value,
+    };
+    const data = await postMaterialtaskDownloadFileExport(postData);
+    downloadByData(
+      data.data,
+      `${taskDataInfo.value.name}${formatToDateTime(new Date(), 'YYYYMMDDHHmmss')}.zip`,
+    );
+  };
 </script>
 
 <template>
@@ -187,7 +211,7 @@
             </div>
 
             <div style="white-space: nowrap">
-              <span style="margin-right: 12px" @click="handleFromReview()"> 预览 </span>
+              <span style="margin-right: 12px" @click="handleFromReview(null)"> 预览 </span>
             </div>
           </li>
         </ul>
@@ -217,8 +241,8 @@
             >
               审核
             </a-button>
-            <a-button type="primary">下载</a-button>
-            <a-button type="primary">导出</a-button>
+            <a-button type="primary" @click="handelDownload">下载</a-button>
+            <a-button type="primary" @click="handelExport">导出</a-button>
           </template>
           <template #action="{ record }">
             <div style="display: flex; justify-content: center">