From c54a8d05bb008902c397053f7dafdcbb2dff1f9f Mon Sep 17 00:00:00 2001 From: yaojian <1161995598@qq.com> Date: Thu, 12 Mar 2026 10:45:02 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=AD=90=E9=A1=B9?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/stuwork/activityinfo.ts | 14 +++++++++++++- src/views/stuwork/activityinfo/index.vue | 23 +++++++++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/api/stuwork/activityinfo.ts b/src/api/stuwork/activityinfo.ts index d45ff47..6955d3d 100644 --- a/src/api/stuwork/activityinfo.ts +++ b/src/api/stuwork/activityinfo.ts @@ -69,11 +69,23 @@ export const importSub = (id: string, file: File) => { const formData = new FormData(); formData.append('file', file); return request({ - url: `/stuwork/activityinfo/importSub/${id}`, + url: '/stuwork/file/importActivityInfoSub', method: 'post', data: formData, + params: { activityInfoId: id }, headers: { 'Content-Type': 'multipart/form-data', }, }); }; + +/** + * 下载活动子项导入模板 + */ +export const downloadImportTemplate = () => { + return request({ + url: '/stuwork/file/getActivityInfoSubImportTemplate', + method: 'get', + responseType: 'blob', + }); +}; diff --git a/src/views/stuwork/activityinfo/index.vue b/src/views/stuwork/activityinfo/index.vue index b456d6a..0d994cc 100644 --- a/src/views/stuwork/activityinfo/index.vue +++ b/src/views/stuwork/activityinfo/index.vue @@ -123,7 +123,10 @@
将文件拖到此处,或点击上传
+ + + + + + + + + + + + + + + + + + @@ -392,6 +421,14 @@ const workYearList = ref([]); const applyInternshipForm = reactive({ year: '', }); +// 证书导出相关 +const exportCertificateDialogVisible = ref(false); +const exportCertificateLoading = ref(false); +const majorLevelList = ref([]); +const exportCertificateForm = reactive({ + classCode: '', + exportType: '' as string | null, +}); // 表格列配置 const tableColumns = [ @@ -817,14 +854,45 @@ const handleExportStudentCard = async () => { // 证书导出 const handleExportCertificate = async () => { + // 获取导出类型字典 + if (majorLevelList.value.length === 0) { + try { + const res = await getDicts('major_level'); + if (res.data && Array.isArray(res.data)) { + majorLevelList.value = res.data.map((item: any) => ({ + label: item.label || item.dictLabel || item.name, + value: item.value || item.dictValue || item.code, + })); + } + } catch (err) { + majorLevelList.value = []; + } + } + // 重置表单 + exportCertificateForm.classCode = searchForm.classCode || ''; + exportCertificateForm.exportType = null; + exportCertificateDialogVisible.value = true; +}; + +// 确认证书导出 +const handleExportCertificateConfirm = async () => { + if (!exportCertificateForm.classCode) { + useMessage().warning('请选择班级'); + return; + } + + exportCertificateLoading.value = true; try { await makeExportSkillLevelTask({ - deptCode: searchForm.deptCode, - classCode: searchForm.classCode, + classCode: exportCertificateForm.classCode, + exportType: exportCertificateForm.exportType || null, }); useMessage().success('导出任务已创建,请在文件管理中下载'); + exportCertificateDialogVisible.value = false; } catch (err: any) { useMessage().error(err.msg || '创建导出任务失败'); + } finally { + exportCertificateLoading.value = false; } }; From ff2023709b4ddf63871c00548741e1fb5b59694e Mon Sep 17 00:00:00 2001 From: yaojian <1161995598@qq.com> Date: Thu, 12 Mar 2026 17:39:13 +0800 Subject: [PATCH 4/6] 1 --- src/views/basic/basicstudent/components/StudentDetail.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/basic/basicstudent/components/StudentDetail.vue b/src/views/basic/basicstudent/components/StudentDetail.vue index 270ac60..a337339 100644 --- a/src/views/basic/basicstudent/components/StudentDetail.vue +++ b/src/views/basic/basicstudent/components/StudentDetail.vue @@ -316,7 +316,7 @@ - + @@ -816,7 +816,7 @@ const loadDictData = async () => { const dictTypes = [ 'family_member_type', // 家庭成员关系 'political_family', // 家庭成员政治面貌 - 'eye_status', // 辨色力 + 'color_discrimination', // 辨色力 'veteran_status', // 是否退伍军人 'pre_school_education', // 入学前文化程度 'school_province', // 毕业学校省市 @@ -846,8 +846,8 @@ const loadDictData = async () => { })); } // 辨色力 - if (dictMap['eye_status'] && Array.isArray(dictMap['eye_status'])) { - eyeStatusList.value = dictMap['eye_status'].map((item: any) => ({ + if (dictMap['color_discrimination'] && Array.isArray(dictMap['color_discrimination'])) { + eyeStatusList.value = dictMap['color_discrimination'].map((item: any) => ({ label: item.label, value: item.value, })); From d9f7f85422b1f3e01e03fbae8a5e4e89a3f9363b Mon Sep 17 00:00:00 2001 From: yaojian <1161995598@qq.com> Date: Thu, 12 Mar 2026 18:32:54 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=AF=8F=E5=91=A8=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=97=A5=E5=8D=AB=E7=94=9F=E6=9C=88=E5=8D=AB=E7=94=9F=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/stuwork/classroomhygienedaily.ts | 13 ++ src/api/stuwork/classroomhygienemonthly.ts | 13 ++ src/api/stuwork/weekplan.ts | 13 ++ .../stuwork/classroomhygienedaily/index.vue | 116 +++++++++++++++- .../stuwork/classroomhygienemonthly/index.vue | 78 ++++++++++- src/views/stuwork/weekplan/index.vue | 130 +++++++++++++++--- 6 files changed, 340 insertions(+), 23 deletions(-) diff --git a/src/api/stuwork/classroomhygienedaily.ts b/src/api/stuwork/classroomhygienedaily.ts index 78e06c8..883e7b8 100644 --- a/src/api/stuwork/classroomhygienedaily.ts +++ b/src/api/stuwork/classroomhygienedaily.ts @@ -96,3 +96,16 @@ export function validateExist(rule: any, value: any, callback: any, isEdit: bool } }); } + +/** + * 获取日卫生学年学期统计 + * @param {Object} [query] - 查询参数(schoolYear, schoolTerm) + * @returns {Promise} 请求的 Promise 对象。 + */ +export function summary(query?: Object) { + return request({ + url: '/stuwork/classRoomHygieneDaily/summary', + method: 'get', + params: query, + }); +} diff --git a/src/api/stuwork/classroomhygienemonthly.ts b/src/api/stuwork/classroomhygienemonthly.ts index bc555a3..a936a45 100644 --- a/src/api/stuwork/classroomhygienemonthly.ts +++ b/src/api/stuwork/classroomhygienemonthly.ts @@ -57,3 +57,16 @@ export const importData = (data: FormData) => { }, }); }; + +/** + * 获取月卫生学年学期统计 + * @param {Object} [query] - 查询参数(schoolYear, schoolTerm) + * @returns {Promise} 请求的 Promise 对象。 + */ +export const monthlySummaryByYearTerm = (query?: Object) => { + return request({ + url: '/stuwork/classroomhygienemonthly/monthlySummaryByYearTerm', + method: 'get', + params: query, + }); +}; diff --git a/src/api/stuwork/weekplan.ts b/src/api/stuwork/weekplan.ts index 3ca70b2..bda79f9 100644 --- a/src/api/stuwork/weekplan.ts +++ b/src/api/stuwork/weekplan.ts @@ -96,3 +96,16 @@ export function validateExist(rule: any, value: any, callback: any, isEdit: bool } }); } + +/** + * 获取班级班主任查看状况统计 + * @param {Object} [query] - 查询参数(schoolYear, schoolTerm) + * @returns {Promise} 请求的 Promise 对象。 + */ +export function readStatistics(query?: Object) { + return request({ + url: '/stuwork/weekPlan/readStatistics', + method: 'get', + params: query, + }); +} diff --git a/src/views/stuwork/classroomhygienedaily/index.vue b/src/views/stuwork/classroomhygienedaily/index.vue index d055904..dfe69bd 100644 --- a/src/views/stuwork/classroomhygienedaily/index.vue +++ b/src/views/stuwork/classroomhygienedaily/index.vue @@ -59,6 +59,7 @@
新增 + 学期统计 导入 导出 + + + + + + + + + + + + + + + + + + + + + 查询 + + + + + + + + + + + +
diff --git a/src/views/stuwork/classroomhygienemonthly/index.vue b/src/views/stuwork/classroomhygienemonthly/index.vue index c7e9e3c..f512af1 100644 --- a/src/views/stuwork/classroomhygienemonthly/index.vue +++ b/src/views/stuwork/classroomhygienemonthly/index.vue @@ -59,6 +59,7 @@
导入 导出 + 学期统计 考核 + + + + + + + + + + + + + + + + + + + + + 查询 + + + + + + + + + + +
@@ -199,7 +234,7 @@ import { ref, reactive, defineAsyncComponent, computed, onMounted } from 'vue'; import { useRoute } from 'vue-router'; import { BasicTableProps, useTable } from '/@/hooks/table'; -import { fetchList, delObjs, checkClassRoomHygieneMonthly } from '/@/api/stuwork/classroomhygienemonthly'; +import { fetchList, delObjs, checkClassRoomHygieneMonthly, monthlySummaryByYearTerm } from '/@/api/stuwork/classroomhygienemonthly'; import { makeExportClassRoomHygieneMonthlyTask } from '/@/api/stuwork/file'; import { useMessage, useMessageBox } from '/@/hooks/message'; import { queryAllSchoolYear } from '/@/api/basic/basicyear'; @@ -244,6 +279,16 @@ const checkDialogVisible = ref(false); // 模板文件URL - 使用后端接口 const templateUrl = ref('/stuwork/classroomhygienemonthly/import/template'); +// 统计相关变量 +const summaryVisible = ref(false); +const summaryLoading = ref(false); +const summaryData = ref([]); +const summaryForm = reactive({ + schoolYear: '', + schoolTerm: '', + deptCode: '' +}); + // 表格列配置 const tableColumns = [ { prop: 'schoolYear', label: '学年' }, @@ -524,6 +569,37 @@ const formatSchoolTerm = (value: string | number) => { return dictItem ? dictItem.label : value; }; +// 打开统计弹窗 +const handleOpenSummary = () => { + summaryVisible.value = true; + summaryForm.schoolYear = ''; + summaryForm.schoolTerm = ''; + summaryForm.deptCode = ''; + summaryData.value = []; +}; + +// 查询统计数据 +const handleQuerySummary = async () => { + if (!summaryForm.schoolYear || !summaryForm.schoolTerm) { + useMessage().warning('请选择学年和学期'); + return; + } + summaryLoading.value = true; + try { + const res = await monthlySummaryByYearTerm({ + schoolYear: summaryForm.schoolYear, + schoolTerm: summaryForm.schoolTerm, + deptCode: summaryForm.deptCode + }); + summaryData.value = Array.isArray(res.data) ? res.data : []; + } catch (err: any) { + useMessage().error(err.msg || '获取统计数据失败'); + summaryData.value = []; + } finally { + summaryLoading.value = false; + } +}; + // 初始化 onMounted(() => { getSchoolYearList(); diff --git a/src/views/stuwork/weekplan/index.vue b/src/views/stuwork/weekplan/index.vue index cbfc1be..9c6d92e 100644 --- a/src/views/stuwork/weekplan/index.vue +++ b/src/views/stuwork/weekplan/index.vue @@ -62,16 +62,16 @@ 每周工作计划列表
- 新增 - - + From 9ccbe8b524efd21519c1d4a8aeb2058a8e2bc236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E7=BA=A2=E5=85=B5?= <374362909@qq.com> Date: Thu, 12 Mar 2026 21:47:41 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/purchasingrequisition/add.vue | 36 +++++++++---------- .../purchase/purchasingrequisition/form.vue | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/views/purchase/purchasingrequisition/add.vue b/src/views/purchase/purchasingrequisition/add.vue index 5109eb4..efccca2 100644 --- a/src/views/purchase/purchasingrequisition/add.vue +++ b/src/views/purchase/purchasingrequisition/add.vue @@ -153,7 +153,7 @@ :file-type="['pdf', 'jpg', 'jpeg', 'png']" :data="{ fileType: FILE_TYPE_MAP.deptSelfMeetingMinutes }" upload-file-url="/purchase/purchasingfiles/upload" - :disabled="flowFieldDisabled('deptSelfMeetingMinutes')" + :disabled="isViewMode || flowFieldDisabled('deptSelfMeetingMinutes')" /> @@ -249,7 +249,7 @@ :file-type="['doc', 'docx']" :data="{ fileType: FILE_TYPE_MAP.serviceDirectSelect }" upload-file-url="/purchase/purchasingfiles/upload" - :disabled="flowFieldDisabled('serviceDirectSelect')" + :disabled="isViewMode || flowFieldDisabled('serviceDirectSelect')" />
支持上传zip格式的压缩包文件
@@ -391,7 +391,7 @@ :file-type="['pdf', 'jpg', 'jpeg', 'png']" :data="{ fileType: FILE_TYPE_MAP.deptSelfMeetingMinutes }" upload-file-url="/purchase/purchasingfiles/upload" - :disabled="flowFieldDisabled('deptSelfMeetingMinutes')" + :disabled="isViewMode || flowFieldDisabled('deptSelfMeetingMinutes')" /> @@ -499,7 +499,7 @@ :file-type="['pdf', 'jpg', 'jpeg', 'png']" :data="{ fileType: FILE_TYPE_MAP.feasibilityReport }" upload-file-url="/purchase/purchasingfiles/upload" - :disabled="flowFieldDisabled('feasibilityReport')" + :disabled="isViewMode || flowFieldDisabled('feasibilityReport')" /> @@ -533,7 +533,7 @@ :file-type="['pdf', 'jpg', 'jpeg', 'png']" :data="{ fileType: FILE_TYPE_MAP.singleSourceProof }" upload-file-url="/purchase/purchasingfiles/upload" - :disabled="flowFieldDisabled('singleSourceProof')" + :disabled="isViewMode || flowFieldDisabled('singleSourceProof')" />
支持上传zip格式的压缩包文件
diff --git a/src/views/purchase/purchasingrequisition/form.vue b/src/views/purchase/purchasingrequisition/form.vue index d99fe01..051eff3 100644 --- a/src/views/purchase/purchasingrequisition/form.vue +++ b/src/views/purchase/purchasingrequisition/form.vue @@ -2,7 +2,7 @@