diff --git a/api/instructor/studentNotice.js b/api/instructor/studentNotice.js new file mode 100644 index 0000000..3e08fb1 --- /dev/null +++ b/api/instructor/studentNotice.js @@ -0,0 +1,45 @@ +import request from '@/utils/request'; + +// 查询通知任务材料 +export function listStuNoticeMaterials(query) { + return request({ + url: '/teacher/stuNoticeMaterials/getByFdyNameAndYearAndMonth', + method: 'get', + params: query, + headers: { + Authorization: "Bearer " + uni.getStorageSync("App-Token"), + } + }) +} +// 查询通知任务材料详细 +export function getStuNoticeMaterials(id) { + return request({ + url: '/teacher/stuNoticeMaterials/' + id, + method: 'get' + }) +} +// 新增通知任务材料 +export function addStuNoticeMaterials(data) { + return request({ + url: '/teacher/stuNoticeMaterials/add', + method: 'post', + data: data + }) +} + + +// 修改通知任务材料 +export function updateStuNoticeMaterials(data) { + return request({ + url: '/teacher/stuNoticeMaterials/update', + method: 'post', + data: data + }) +} +// 删除通知任务材料 +export function delStuNoticeMaterials(id) { + return request({ + url: '/teacher/stuNoticeMaterials/'+id, + method: 'post', + }) +} diff --git a/api/instructor/studentTest.js b/api/instructor/studentTest.js new file mode 100644 index 0000000..49f7a3a --- /dev/null +++ b/api/instructor/studentTest.js @@ -0,0 +1,45 @@ +import request from '@/utils/request'; + +// 查询职业测评材料 +export function listStuTestMaterials(query) { + return request({ + url: '/teacher/stuTestMaterials/getByFdyNameAndYearAndMonth', + method: 'get', + params: query, + headers: { + Authorization: "Bearer " + uni.getStorageSync("App-Token"), + } + }) +} +// 查询职业测评材料详细 +export function getStuTestMaterials(id) { + return request({ + url: '/teacher/stuTestMaterials/' + id, + method: 'get' + }) +} +// 新增职业测评材料 +export function addStuTestMaterials(data) { + return request({ + url: '/teacher/stuTestMaterials/add', + method: 'post', + data: data + }) +} + + +// 修改职业测评材料 +export function updateStuTestMaterials(data) { + return request({ + url: '/teacher/stuTestMaterials/update', + method: 'post', + data: data + }) +} +// 删除职业测评材料 +export function delStuTestMaterials(id) { + return request({ + url: '/teacher/stuTestMaterials/'+id, + method: 'post', + }) +} diff --git a/pages.json b/pages.json index 00353cf..ae370e1 100644 --- a/pages.json +++ b/pages.json @@ -554,6 +554,54 @@ "navigationBarTextStyle": "white" } }, + { + "path": "pages/instructor/performance-appraisal/performance-evaluation/student-test/list", + "style": { + "navigationBarTitleText": "职业测评佐证", + "navigationBarBackgroundColor": "#1890FF", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/instructor/performance-appraisal/performance-evaluation/student-test/add", + "style": { + "navigationBarTitleText": "添加佐证", + "navigationBarBackgroundColor": "#1890FF", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/instructor/performance-appraisal/performance-evaluation/student-test/detail", + "style": { + "navigationBarTitleText": "佐证详情", + "navigationBarBackgroundColor": "#1890FF", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/instructor/performance-appraisal/performance-evaluation/student-notice/list", + "style": { + "navigationBarTitleText": "通知任务佐证", + "navigationBarBackgroundColor": "#1890FF", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/instructor/performance-appraisal/performance-evaluation/student-notice/add", + "style": { + "navigationBarTitleText": "添加佐证", + "navigationBarBackgroundColor": "#1890FF", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/instructor/performance-appraisal/performance-evaluation/student-notice/detail", + "style": { + "navigationBarTitleText": "佐证详情", + "navigationBarBackgroundColor": "#1890FF", + "navigationBarTextStyle": "white" + } + }, { "path": "pages/instructor/performance-appraisal/performance-evaluation/overwork-materials/add", "style": { diff --git a/pages/instructor/performance-appraisal/components/professional-work.vue b/pages/instructor/performance-appraisal/components/professional-work.vue index 5584f42..d4f7262 100644 --- a/pages/instructor/performance-appraisal/components/professional-work.vue +++ b/pages/instructor/performance-appraisal/components/professional-work.vue @@ -3,45 +3,48 @@ - - - - + - - @@ -96,17 +99,24 @@ label06() { return this.isGraduate ? "06 按时按质完成学工、学院发布的各项学生工作通知、任务 (5分)" - : "06 按程序要求处理突发事件(5分)"; + : "06 按程序要求处理突发事件(10分)"; + }, + maxStuLeaveMaterials() { + return this.isGraduate ? 5 : 5; + }, + maxStuFillingMaterials() { + return this.isGraduate ? 10 : 10; }, maxStuDisciplinaryViolation() { - return this.isGraduate ? 10 : 5; + return this.isGraduate ? 5 : 5; }, maxHandleEvents() { - return this.isGraduate ? 5 : 10; + return this.isGraduate ? 10 : 10; } - },data() { + }, data() { return { formData: { + stuLeaveRequestScoring: "", stuLeaveMaterialsScoring: "", stuFillingMaterialsScoring: "", stuBasicDataScoring: "", @@ -125,6 +135,7 @@ kpiFillingBusinessWorkDetail(params).then(res => { if (res.rows.length > 0) { const { + stuLeaveRequestScoring, stuLeaveMaterialsScoring, stuFillingMaterialsScoring, stuBasicDataScoring, @@ -134,7 +145,8 @@ id } = res.rows[0]; this.formData = { - ...this.formData, // 保留 this.formData 中已有的其他属性 + ...this.formData, + stuLeaveRequestScoring, stuLeaveMaterialsScoring, stuFillingMaterialsScoring, stuBasicDataScoring, diff --git a/pages/instructor/performance-appraisal/components/student-management.vue b/pages/instructor/performance-appraisal/components/student-management.vue index dd9238e..1939689 100644 --- a/pages/instructor/performance-appraisal/components/student-management.vue +++ b/pages/instructor/performance-appraisal/components/student-management.vue @@ -54,6 +54,9 @@ + + {{commitStatus==1?"查看材料":"上传材料"}} + @@ -61,6 +64,9 @@ + + {{commitStatus==1?"查看材料":"上传材料"}} + @@ -185,18 +191,7 @@ let result = limitInput(event.detail.value,max); this[name] = result; }, - initQueryParams() { - this.queryParams = new URLSearchParams({ - year: this.queryDetailParams.fillingYear, - month: this.queryDetailParams.fillingMonth, - commitStatus:this.commitStatus - }); - }, - onLimitInput(event,name,max) { - let result = limitInput(event.detail.value,max); - this[name] = result; - }, - uploadClassMeetingMaterial() { + uploadClassMeetingMaterial() { uni.navigateTo({ url: `/pages/instructor/performance-appraisal/performance-evaluation/class-meeting-evidence/list?${this.queryParams.toString()}` @@ -222,6 +217,16 @@ url: `/pages/instructor/performance-appraisal/performance-evaluation/student-activity/list?${this.queryParams.toString()}` }) }, + uploadStuTest() { + uni.navigateTo({ + url: `/pages/instructor/performance-appraisal/performance-evaluation/student-test/list?${this.queryParams.toString()}` + }) + }, + uploadStuNotie() { + uni.navigateTo({ + url: `/pages/instructor/performance-appraisal/performance-evaluation/student-notice/list?${this.queryParams.toString()}` + }) + }, getFormData() { const data = { classScoring: this.classScoring, diff --git a/pages/instructor/performance-appraisal/performance-evaluation/personal-reporting.vue b/pages/instructor/performance-appraisal/performance-evaluation/personal-reporting.vue index b67c432..69ef533 100644 --- a/pages/instructor/performance-appraisal/performance-evaluation/personal-reporting.vue +++ b/pages/instructor/performance-appraisal/performance-evaluation/personal-reporting.vue @@ -81,47 +81,84 @@ commitStatus: "", completionStatus: "", //完成状态 roleAudit:"",//角色 - tabConfigs: { + } + }, + computed: { + tabConfigs() { + if (this.classType === 'graduate') { + return { + 0: { + ref: 'studentManagement', + addFunc: teacherKpiFillingMgtAdd, + updateFunc: teacherKpiFillingMgtUpdate, + }, + 1: { + ref: 'GraduationGuidance', + addFunc: kpiFillingGraduationGuidanceAdd, + updateFunc: kpiFillingGraduationGuidanceUpdate, + }, + 2: { + ref: 'ProfessionalWork', + addFunc: kpiFillingBusinessWorkAdd, + updateFunc: kpiFillingBusinessWorkUpdate, + }, + 3: { + ref: 'AttendanceManagement', + addFunc: kpiFillingAMgtAdd, + updateFunc: kpiFillingAMgtUpdate, + }, + 4: { + ref: 'BonusPoints', + addFunc: kpiFillingBonusPointsAdd, + updateFunc: kpiFillingBonusPointsUpdate, + }, + 5: { + ref: 'NegativeList', + addFunc: kpiFillingNegativeListAdd, + updateFunc: kpiFillingNegativeListUpdate, + }, + 6: { + ref: 'OverWork', + }, + 7: { + ref: 'StudentEmergencies', + } + }; + } + return { 0: { ref: 'studentManagement', addFunc: teacherKpiFillingMgtAdd, updateFunc: teacherKpiFillingMgtUpdate, }, 1: { - ref: 'GraduationGuidance', - addFunc: kpiFillingGraduationGuidanceAdd, - updateFunc: kpiFillingGraduationGuidanceUpdate, - }, - 2: { ref: 'ProfessionalWork', addFunc: kpiFillingBusinessWorkAdd, updateFunc: kpiFillingBusinessWorkUpdate, }, - 3: { + 2: { ref: 'AttendanceManagement', addFunc: kpiFillingAMgtAdd, updateFunc: kpiFillingAMgtUpdate, }, - 4: { + 3: { ref: 'BonusPoints', addFunc: kpiFillingBonusPointsAdd, updateFunc: kpiFillingBonusPointsUpdate, }, - 5: { + 4: { ref: 'NegativeList', addFunc: kpiFillingNegativeListAdd, updateFunc: kpiFillingNegativeListUpdate, }, - 6: { + 5: { ref: 'OverWork', }, - 7: { + 6: { ref: 'StudentEmergencies', } - } - } - }, - computed: { + }; + }, tabs() { if (this.classType === 'graduate') { return ["学生管理", "就业指导工作", "业务管理", "考勤管理", "加分项", "负面清单", "超工作量奖励绩效", "处理学生突发事件"]; @@ -208,16 +245,22 @@ // 根据班级类型排除不需要填写的字段 let excludeKeys = ['id', 'departmentName', 'fdyName', 'fillingYear', 'fillingMonth', 'classType']; - // 学生管理(tabIndex 0) - 毕业班需要排除部分字段 - if (this.tabIndex === 0 && this.classType === 'graduate') { - excludeKeys = [...excludeKeys, 'visitDormitoryScoring', 'cadreScoring', 'stuActivityScoring', 'edgScoring', 'noticeScoring']; + // 业务管理(毕业班tabIndex 2, 非毕业班tabIndex 1) - 需要排除业务管理不需要验证的字段 + if ((this.tabIndex === 2 && this.classType === 'graduate') || (this.tabIndex === 1 && this.classType === 'ungraduate')) { + excludeKeys = [...excludeKeys, + 'stuLeaveRequestScoring', 'stuLeaveMaterialsScoring', 'stuFillingMaterialsScoring', + 'stuBasicDataScoring', 'stuDisciplinaryViolationScoring', 'handleEventsScoring', 'otherTaskScoring']; } - // 负面清单(tabIndex 4/5)、考勤管理(tabIndex 2/3)、加分项(tabIndex 3/4)、就业指导(tabIndex 1)等不需要验证空值 - if (this.tabIndex === 1 || this.tabIndex === 2 || this.tabIndex === 3 || this.tabIndex === 4 || this.tabIndex === 5) { + // 就业指导(毕业班tabIndex 1)不需要验证空值 + if (this.classType === 'graduate' && this.tabIndex === 1) { + excludeKeys = [...excludeKeys, + 'gradFormAuditScoring', 'stuCareerConsultScoring', 'gradFormGuidanceScoring']; + } + // 考勤管理(tabIndex 2/3)、加分项(tabIndex 3/4)、负面清单(tabIndex 4/5)不需要验证空值 + if (this.tabIndex === 2 || this.tabIndex === 3 || this.tabIndex === 4 || this.tabIndex === 5) { excludeKeys = [...excludeKeys, 'moralityAndBehavior', 'speech', 'complaint', 'offense', 'emergency', 'punishment', 'practiceFraud', - 'dutyWorkScoring', 'conferenceScoring', 'bonusType', 'bonusScoring', - 'gradFormAuditScoring', 'stuCareerConsultScoring', 'gradFormGuidanceScoring']; + 'dutyWorkScoring', 'conferenceScoring', 'bonusType', 'bonusScoring']; } console.log('formData:', formData); console.log('excludeKeys:', excludeKeys); @@ -232,8 +275,10 @@ return; // 停止执行后续操作 } console.log('准备保存,tabIndex:', this.tabIndex, 'formData:', formData); - // 只跳过超工作量(tabIndex 6)和处理学生突发事件(tabIndex 7) - if (this.tabIndex !== 6 && this.tabIndex !== 7) { + // 判断是否需要保存:超工作量(毕业班6/非毕业班5)和处理学生突发事件(毕业班7/非毕业班6)不需要保存 + const skipSave = (this.classType === 'graduate' && (this.tabIndex === 6 || this.tabIndex === 7)) || + (this.classType === 'ungraduate' && (this.tabIndex === 5 || this.tabIndex === 6)); + if (!skipSave) { if (formData.id || formData.id === 0) { let res = await updateFunc(formData); if (res.code == 200) { @@ -241,7 +286,7 @@ title: "修改成功", }); } - } else { + } else if (addFunc) { let res = await addFunc(formData); if (res.code == 200) { uni.showToast({ diff --git a/pages/instructor/performance-appraisal/performance-evaluation/student-notice/add.vue b/pages/instructor/performance-appraisal/performance-evaluation/student-notice/add.vue new file mode 100644 index 0000000..43f8f4f --- /dev/null +++ b/pages/instructor/performance-appraisal/performance-evaluation/student-notice/add.vue @@ -0,0 +1,397 @@ +