Compare commits
17 Commits
xgxt_Wz_pc
...
7a7b464fd6
| Author | SHA1 | Date | |
|---|---|---|---|
| 7a7b464fd6 | |||
| ffb3fabd27 | |||
| db6af26906 | |||
| 567c023661 | |||
| 855b9b89a1 | |||
| 2e87f7510d | |||
| 04c8ee7939 | |||
| b0d3684dd9 | |||
| 7034ec9750 | |||
| c0712f3741 | |||
| b8a8dac060 | |||
| ca67db8016 | |||
|
|
0e85ada450 | ||
|
|
c7b4834e74 | ||
| 2998b85265 | |||
| b5f35e500b | |||
| 6987ecf01d |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -22,3 +22,5 @@ selenium-debug.log
|
||||
|
||||
package-lock.json
|
||||
yarn.lock
|
||||
package.json
|
||||
vue.config.js
|
||||
|
||||
@@ -92,14 +92,17 @@
|
||||
"xlsx-style": "^0.8.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.29.0",
|
||||
"@vue/cli-plugin-babel": "4.4.6",
|
||||
"@vue/cli-plugin-eslint": "4.4.6",
|
||||
"@vue/cli-service": "4.4.6",
|
||||
"babel-eslint": "10.1.0",
|
||||
"babel-loader": "^8.4.1",
|
||||
"babel-plugin-dynamic-import-node": "2.3.3",
|
||||
"chalk": "4.1.0",
|
||||
"compression-webpack-plugin": "5.0.2",
|
||||
"connect": "3.6.6",
|
||||
"cross-env": "^10.1.0",
|
||||
"eslint": "7.15.0",
|
||||
"eslint-plugin-vue": "7.2.0",
|
||||
"lint-staged": "10.5.3",
|
||||
|
||||
9
src/api/common/stamp.js
Normal file
9
src/api/common/stamp.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getStampBase64(data) {
|
||||
return request({
|
||||
url: '/common/stamp/getStampBase64',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@@ -36,6 +36,15 @@ export function addEnlistmentReserve(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 批量新增应征入伍保留学籍申请
|
||||
export function batchInsert(data) {
|
||||
return request({
|
||||
url: '/routine/enlistmentReserve/batchInsert',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改应征入伍保留学籍申请
|
||||
export function updateEnlistmentReserve(data) {
|
||||
return request({
|
||||
@@ -59,4 +68,4 @@ export function getOwnInfo(){
|
||||
url:'/comprehensive/stuInfoView/getOwnInfo',
|
||||
method:'GET'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,3 +76,55 @@ export function delKpiFilling(id) {
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询加分项列表
|
||||
export function listKpiFillingBonusPoints(query) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 新增加分项
|
||||
export function addKpiFillingBonusPoints(data) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改加分项
|
||||
export function updateKpiFillingBonusPoints(data) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除加分项
|
||||
export function delKpiFillingBonusPoints(id) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/' + id,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询就业指导工作
|
||||
export function getKpiFillingGraduationGuidance(id) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改就业指导工作
|
||||
export function updateKpiFillingGraduationGuidance(data) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
53
src/api/teacher/kpiFillingGuidance.js
Normal file
53
src/api/teacher/kpiFillingGuidance.js
Normal file
@@ -0,0 +1,53 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询业绩考核-个人填报-就业指导工作列表
|
||||
export function listKpiFillingGuidance(query) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询业绩考核-个人填报-就业指导工作详细
|
||||
export function getKpiFillingGuidance(id) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// js
|
||||
// 根据辅导员名称、年份 月份 查询详细信息
|
||||
export function getByFdyNameAndYearAndMonth(query) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/getByFdyNameAndYearAndMonth',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 新增业绩考核-个人填报-就业指导工作
|
||||
export function addKpiFillingGuidance(data) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改业绩考核-个人填报-就业指导工作
|
||||
export function updateKpiFillingGuidance(data) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除业绩考核-个人填报-就业指导工作
|
||||
export function delKpiFillingGuidance(id) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingGraduationGuidance/' + id,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
49
src/api/teacher/kpiFillingPoints.js
Normal file
49
src/api/teacher/kpiFillingPoints.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询业绩考核-个人填报-加分项列表
|
||||
export function listKpiFillingPoints(query) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询业绩考核-个人填报-加分项详细
|
||||
export function getKpiFillingPoints(id) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增业绩考核-个人填报-加分项
|
||||
export function addKpiFillingPoints(data) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// js
|
||||
// 修改业绩考核-个人填报-加分项
|
||||
/**
|
||||
* 更新KPI填报加分信息
|
||||
* @param {Object} data - KPI填报加分数据对象
|
||||
* @returns {Promise} 返回请求的Promise对象
|
||||
*/
|
||||
export function updateKpiFillingPoints(data) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除业绩考核-个人填报-加分项
|
||||
export function delKpiFillingPoints(id) {
|
||||
return request({
|
||||
url: '/teacher/kpiFillingBonusPoints/' + id,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
@@ -4,6 +4,12 @@ const TokenKey = 'Admin-Token'
|
||||
|
||||
export function getToken() {
|
||||
console.log('getToken')
|
||||
// 先从 sessionStorage 获取
|
||||
const token = sessionStorage.getItem(TokenKey)
|
||||
if (token) {
|
||||
return token
|
||||
}
|
||||
// 如果 sessionStorage 没有,再从 Cookie 获取
|
||||
return Cookies.get(TokenKey)
|
||||
}
|
||||
|
||||
|
||||
@@ -263,7 +263,8 @@ export default {
|
||||
fontSize: 14
|
||||
},
|
||||
|
||||
data: [...stuYearNames]
|
||||
data: [...stuYearNames],
|
||||
selectedMode: 'single'
|
||||
},
|
||||
radar: {
|
||||
indicator: [
|
||||
|
||||
@@ -401,6 +401,218 @@
|
||||
</el-descriptions>
|
||||
<!-- 外宿申请表单 -->
|
||||
<div v-if="outsideAccommodationForm"><detailApply :formData="form" :isShwo="false"></detailApply></div>
|
||||
|
||||
<!-- 退伍复学表单 -->
|
||||
<el-descriptions v-if="basicForm" class="margin-top" title="退伍复学申请表" :column="4" size="medium" border
|
||||
style="width: 100%; ">
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 姓名 </template>
|
||||
{{ form.stName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 性别 </template>
|
||||
{{ form.sex }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 民族 </template>
|
||||
<!-- {{ form.nation }} -->
|
||||
<dict-tag :options="dict.type.rt_nation" :value="form.nations" />
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 年级 </template>
|
||||
{{ form.grade }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 班级 </template>
|
||||
{{ form.stClass }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 学号 </template>
|
||||
{{ form.stId }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 专业 </template>
|
||||
{{ form.majors }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 联系电话 </template>
|
||||
{{ form.datab }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item span="4">
|
||||
<template slot="label"> 申请理由 </template>
|
||||
<div style="padding-top: 10px; line-height: 1.8;">
|
||||
<p class="reason-text">本人于 {{ form.rwTime | formatDate }} 应征入伍,于 {{ form.dataa | formatDate }}
|
||||
日退役,退役后申请复学。</p>
|
||||
<p class="reason-text" v-if="form.conversion == 'Y'">是否申请转专业:(√)是 ()否</p>
|
||||
<p class="reason-text" v-else>是否申请转专业:()是 (×)否</p>
|
||||
|
||||
<p v-if="form.conversion === 'Y'" class="reason-text" style="color: red;">
|
||||
原年级和专业:__{{ form.maList.length > 0 ? form.maList[0].oldgrade : '' }}__{{ form.maList.length > 0 ?
|
||||
form.maList[0].oldmajor : '' }}__
|
||||
申请转入年级和专业:__{{ saveGradeName }}__{{ saveClassName }}__
|
||||
</p>
|
||||
|
||||
<!-- 附件预览区域 -->
|
||||
<div style="margin: 10px 0; display: flex; gap: 10px; flex-wrap: wrap;">
|
||||
<image-preview v-if="form.maList.length > 0 && form.maList[0].proof" :src="form.maList[0].proof"
|
||||
:width="240" :height="160" />
|
||||
<image-preview v-if="form.maList.length > 0 && form.maList[0].idcard" :src="form.maList[0].idcard"
|
||||
:width="240" :height="160" />
|
||||
<image-preview v-if="form.maList.length > 0 && form.maList[0].material"
|
||||
:src="form.maList[0].material" :width="240" :height="160" />
|
||||
</div>
|
||||
|
||||
<!-- 申请人信息 -->
|
||||
<div class="applicant-info right-align" style="padding: 20px 0 0 0;">
|
||||
<span>申请人:</span>
|
||||
{{ form.stName }}
|
||||
<span class="date-label" style="margin-left: 10px;">日期:</span>
|
||||
{{ form.times | formatDate }}
|
||||
</div>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 招生与就业处意见(仅转专业时显示) -->
|
||||
<el-descriptions-item span="4" v-if="form.conversion === 'Y'">
|
||||
<template slot="label"> 招生与就业处意见 </template>
|
||||
<div style="padding-top: 10px; line-height: 1.8;">
|
||||
<p class="reason-text" style="color: red;">
|
||||
符合转专业条件,拟同意转入年级和专业:__{{ saveGradeName }}__{{ saveClassName }}__
|
||||
</p>
|
||||
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
|
||||
<span>审批结果:</span>
|
||||
<el-select v-model="form.zsStatus" placeholder="" class="short-select" disabled
|
||||
style="width: 100px; margin: 0 5px;">
|
||||
<el-option label="重新审核" value="0"></el-option>
|
||||
<el-option label="通过" value="1"></el-option>
|
||||
<el-option label="退回" value="2"></el-option>
|
||||
<el-option label="驳回" value="3"></el-option>
|
||||
</el-select>
|
||||
<span class="date-label">签名:</span>
|
||||
{{ form.zsIdea || '无' }}
|
||||
<span class="date-label" style="margin-left: 10px;">日期:</span>
|
||||
{{ form.zsTime | formatDate }}
|
||||
</div>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 辅导员意见 -->
|
||||
<el-descriptions-item span="4">
|
||||
<template slot="label"> 辅导员意见 </template>
|
||||
<div style="padding-top: 10px; line-height: 1.8;">
|
||||
{{ form.fdIdea || '暂无意见' }}
|
||||
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
|
||||
<span>审批结果:</span>
|
||||
<el-select v-model="form.fdStatus" placeholder="待审核" class="short-select" disabled
|
||||
style="width: 100px; margin: 0 5px;">
|
||||
<el-option label="重新审核" value="0"></el-option>
|
||||
<el-option label="通过" value="1"></el-option>
|
||||
<el-option label="退回" value="2"></el-option>
|
||||
<el-option label="驳回" value="3"></el-option>
|
||||
</el-select>
|
||||
<span class="date-label">签名:</span>
|
||||
{{ form.fdQm || '无' }}
|
||||
<span class="date-label" style="margin-left: 10px;">日期:</span>
|
||||
{{ form.fdTime | formatDate }}
|
||||
</div>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 学务意见 -->
|
||||
<el-descriptions-item span="4">
|
||||
<template slot="label"> 学务意见 </template>
|
||||
<div style="padding-top: 10px; line-height: 1.8;">
|
||||
<div v-if="form.xwStatus == '0' || form.xwStatus == null || form.xwStatus == '2'" >{{ form.xwIdea }}拟编入____</div>
|
||||
<!-- 同意 -->
|
||||
<div v-if="form.xwStatus == '1'">{{ form.xwIdea || '暂无意见' }},拟编入__{{finalGradeName}}_{{finalClassName}}__</div>
|
||||
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
|
||||
<span>审批结果:</span>
|
||||
<el-select v-model="form.xwStatus" placeholder="待审核" class="short-select" disabled
|
||||
style="width: 100px; margin: 0 5px;">
|
||||
<el-option label="重新审核" value="0"></el-option>
|
||||
<el-option label="通过" value="1"></el-option>
|
||||
<el-option label="退回" value="2"></el-option>
|
||||
<el-option label="驳回" value="3"></el-option>
|
||||
</el-select>
|
||||
<span class="date-label">签名:</span>
|
||||
{{ form.xwQm || '无' }}
|
||||
<span class="date-label" style="margin-left: 10px;">日期:</span>
|
||||
{{ form.xwTime | formatDate }}
|
||||
</div>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 二级学院意见 -->
|
||||
<el-descriptions-item span="4">
|
||||
<template slot="label"> 二级学院意见 </template>
|
||||
<div style="padding-top: 10px; line-height: 1.8;">
|
||||
{{ form.twoIdea || '暂无意见' }}
|
||||
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
|
||||
<span>审批结果:</span>
|
||||
<el-select v-model="form.twoStatus" placeholder="待审核" class="short-select" disabled
|
||||
style="width: 100px; margin: 0 5px;">
|
||||
<el-option label="重新审核" value="0"></el-option>
|
||||
<el-option label="通过" value="1"></el-option>
|
||||
<el-option label="退回" value="2"></el-option>
|
||||
<el-option label="驳回" value="3"></el-option>
|
||||
</el-select>
|
||||
<span class="date-label">签名:</span>
|
||||
{{ form.erQm || '无' }}
|
||||
<span class="date-label" style="margin-left: 10px;">日期:</span>
|
||||
{{ form.twoTime | formatDate }}
|
||||
</div>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 学籍管理科意见 -->
|
||||
<el-descriptions-item span="4">
|
||||
<template slot="label"> 学籍管理科意见 </template>
|
||||
<div style="padding-top: 10px; line-height: 1.8;">
|
||||
{{ form.xjIdea || '暂无意见' }}
|
||||
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
|
||||
<span>审批结果:</span>
|
||||
<el-select v-model="form.xjglStatus" placeholder="待审核" class="short-select" disabled
|
||||
style="width: 100px; margin: 0 5px;">
|
||||
<el-option label="重新审核" value="0"></el-option>
|
||||
<el-option label="通过" value="1"></el-option>
|
||||
<el-option label="退回" value="2"></el-option>
|
||||
<el-option label="驳回" value="3"></el-option>
|
||||
</el-select>
|
||||
<span class="date-label">签名:</span>
|
||||
{{ form.xjQm || '无' }}
|
||||
<span class="date-label" style="margin-left: 10px;">日期:</span>
|
||||
{{ form.xjTime | formatDate }}
|
||||
</div>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 教务处主管领导意见 -->
|
||||
<el-descriptions-item span="4">
|
||||
<template slot="label"> 教务处主管领导意见 </template>
|
||||
<div style="padding-top: 10px; line-height: 1.8;">
|
||||
{{ form.jwIdea || '暂无意见' }}
|
||||
<div class="signature-area right-align" style="padding: 10px 0 0 0;">
|
||||
<span>审批结果:</span>
|
||||
<el-select v-model="form.jwStatus" placeholder="待审核" class="short-select" disabled
|
||||
style="width: 100px; margin: 0 5px;">
|
||||
<el-option label="重新审核" value="0"></el-option>
|
||||
<el-option label="通过" value="1"></el-option>
|
||||
<el-option label="退回" value="2"></el-option>
|
||||
<el-option label="驳回" value="3"></el-option>
|
||||
</el-select>
|
||||
<span class="date-label">签名:</span>
|
||||
{{ form.jwQm || '无' }}
|
||||
<span class="date-label" style="margin-left: 10px;">日期:</span>
|
||||
{{ form.jwTime | formatDate }}
|
||||
</div>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
</el-descriptions>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
</el-tab-pane>
|
||||
@@ -464,9 +676,12 @@ import { getRtStuQuitSchoolByProcInsId } from '@/api/routine/rtStuQuitSchool'
|
||||
import Parser from '@/components/parser/Parser'
|
||||
import flow from '@/views/flowable/task/myProcess/detail/flow'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import {getStname, getProcessId } from "@/api/routine/basic";
|
||||
import { getEnlistmentReserveByProcessInstanceId} from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
||||
import { getOutsideAccommodationApplyByProcessInstanceId } from "@/api/dormitory/outsideAccommodation/outsideAccommodationApply";
|
||||
import detailApply from "@/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/detailApply" // 外宿申请表详细
|
||||
import { listStudent, getClassName } from '@/api/stuCQS/basedata/student'
|
||||
import { listGrade } from '@/api/stuCQS/basedata/grade'
|
||||
|
||||
export default {
|
||||
name: 'Record',
|
||||
@@ -506,6 +721,7 @@ export default {
|
||||
quitSchoolForm: false, // 休学申请表单
|
||||
enlistmentReserveForm: false, // 入伍保留学籍表单
|
||||
outsideAccommodationForm: false, // 外宿申请表单
|
||||
basicForm: false,//退伍复学表单
|
||||
form: {},
|
||||
// 学生基础信息
|
||||
stuInfo: {},
|
||||
@@ -537,7 +753,10 @@ export default {
|
||||
} else if (this.category == 'outsideAccommodation') {
|
||||
this.outsideAccommodationForm = true
|
||||
this.getOutsideAccommodation(this.taskForm.procInsId)
|
||||
}
|
||||
}else if (this.category == '退伍复学') {
|
||||
this.basicForm = true
|
||||
this.getBasicApplication(this.taskForm.procInsId)
|
||||
}
|
||||
// 回显流程记录
|
||||
// 流程任务重获取变量表单
|
||||
this.processVariables(this.taskForm.taskId)
|
||||
@@ -630,6 +849,95 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 退伍复学申请表单数据
|
||||
getBasicApplication(procInsId) {
|
||||
getProcessId(procInsId.toString()).then((res) => {
|
||||
// console.log("后端返回原始数据:",res.data);
|
||||
this.form = res.data
|
||||
this.getClassNameList()
|
||||
this.listGrade()
|
||||
this.getXWClassNameList()
|
||||
});
|
||||
},
|
||||
|
||||
// 获取学务班级名称列表
|
||||
getXWClassNameList() {
|
||||
getClassName().then(res => {
|
||||
this.ClassNameList = res.data;
|
||||
if (this.ClassNameList != null) {
|
||||
this.ClassNameList.forEach(element => {
|
||||
if (element.value == this.form.maList[0].finaldata1) {
|
||||
element.children.forEach(elementTwo => {
|
||||
if (elementTwo.value == this.form.maList[0].finaldata2) {
|
||||
elementTwo.children.forEach(elementFree => {
|
||||
if (elementFree.value == this.form.maList[0].newmajor) {
|
||||
this.finalClassName = elementFree.label;
|
||||
this.classVlue1 = [element.value, elementTwo.value, elementFree.value];
|
||||
|
||||
// 关键修复:从年级列表中查找年级名称,而不是直接使用 element.label
|
||||
const gradeId = element.value;
|
||||
const gradeItem = this.grade_list.find(item => item.gradeId === gradeId);
|
||||
if (gradeItem) {
|
||||
this.finalGradeName = gradeItem.gradeName; // 正确的年级名称
|
||||
this.$set(this.form.maList[0], 'finallabel', gradeItem.gradeId); // 正确的年级ID
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/** 获取班级名称列表 */
|
||||
getClassNameList() {
|
||||
getClassName().then(res => {
|
||||
this.ClassNameList = res.data
|
||||
console.log(this.ClassNameList)
|
||||
if (this.ClassNameList != null) {
|
||||
this.ClassNameList.forEach(element => {
|
||||
if (element.value == this.form.maList[0].data1) {
|
||||
// console.log(element.label)
|
||||
element.children.forEach(elementTwo => {
|
||||
if (elementTwo.value == this.form.maList[0].data2) {
|
||||
// console.log(elementTwo.label)
|
||||
this.saveClassName =elementTwo.label
|
||||
// console.log("退伍复学",this.saveClassName)
|
||||
// 班级
|
||||
// elementTwo.children.forEach(elementFree => {
|
||||
// this.saveClassName = elementFree.label
|
||||
// // console.log(elementFree.label)
|
||||
// });
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 获取年级列表 */
|
||||
async listGrade() {
|
||||
try {
|
||||
let res = await listGrade()
|
||||
if (res.code == 200) {
|
||||
this.grade_list = [...res.rows]
|
||||
console.log(this.grade_list)
|
||||
this.grade_list.forEach(element => {
|
||||
if(element.gradeId == this.form.maList[0].newgrade){
|
||||
this.saveGradeName = element.gradeName
|
||||
}
|
||||
if (element.gradeId == this.form.maList[0].finallabel) {
|
||||
this.finalGradeName = element.gradeName
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取年级列表失败:', error)
|
||||
}
|
||||
},
|
||||
|
||||
handleClick(tab, event) {
|
||||
if (tab.name === '3') {
|
||||
flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then((res) => {
|
||||
|
||||
@@ -391,7 +391,9 @@
|
||||
<el-descriptions-item span="4">
|
||||
<template slot="label"> 申请原因 </template>
|
||||
<div style="padding-top: 10px;">
|
||||
{{ form.applyReason }}
|
||||
<!-- {{ form.applyReason }} -->
|
||||
<el-input v-if="taskName == '辅导员审批'" v-model="form.applyReason" type="textarea" placeholder="请输入申请原因" />
|
||||
<div v-else>{{ form.applyReason }}</div>
|
||||
</div>
|
||||
<div style="padding: 20px;">
|
||||
<div style="display: flex;justify-content: flex-end;align-items: center;">
|
||||
@@ -755,7 +757,7 @@
|
||||
</el-tabs>
|
||||
<!--审批任务-->
|
||||
<el-dialog :title="completeTitle" class="certificate-service" :visible.sync="completeOpen" width="60%"
|
||||
append-to-body>
|
||||
append-to-body @opened="showGlobalWatermark" @closed="hideGlobalWatermark">
|
||||
<!-- 处分决定书 -->
|
||||
<el-card v-if="showLetterService">
|
||||
<div class="flex justify-center items-center min-h-screen">
|
||||
@@ -764,19 +766,16 @@
|
||||
<p class="mb-4 text-zinc-600 dark:text-zinc-300">{{ form.stuName }}同学:</p>
|
||||
<p class="mb-4 text-zinc-600 dark:text-zinc-300 desc">{{ form.letterService }}</p>
|
||||
<div class="stamp">
|
||||
<img
|
||||
src="https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D450%2C600/sign=debd0a4bb2fd5266a77e34109e28bb1d/8d5494eef01f3a297283d36e9d25bc315d607cc2.jpg"
|
||||
alt="Stamp">
|
||||
<!-- <img src="https://placehold.co/100x100" alt="Stamp" /> -->
|
||||
<div>
|
||||
<div>学生工作处</div>
|
||||
<div>{{ form.violationDate }}</div>
|
||||
</div>
|
||||
<img v-if="stampBase64" :src="stampBase64" width="200" height="200">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <pdf :src="pdfURL"> </pdf> -->
|
||||
<el-button type="danger" @click="fileUpload">下载处分下文</el-button>
|
||||
|
||||
</el-card>
|
||||
<el-button v-if="showFileDowload" type="danger" @click="fileUpload">下载解除处分下文</el-button>
|
||||
|
||||
@@ -788,13 +787,13 @@
|
||||
}}学生,学号:{{ form.stuNo }}.该生于个人原因-{{ form.reasonApplying }},申请休学.经学校研究,同意休学,时间从{{ form.quitStartTime }}至{{
|
||||
form.quitEndTime }}.</p>
|
||||
<p>抄送:教务处、财务处、{{ form.departmentName }}</p>
|
||||
<div class="stamp">
|
||||
<img
|
||||
src="https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D450%2C600/sign=debd0a4bb2fd5266a77e34109e28bb1d/8d5494eef01f3a297283d36e9d25bc315d607cc2.jpg"
|
||||
alt="Stamp">
|
||||
<div>
|
||||
<span>学生工作处</span>
|
||||
<span>{{ form.quitStartTime }}</span>
|
||||
<div class="stamp quit-school-stamp">
|
||||
<div class="quit-school-stamp-layer">
|
||||
<img v-if="stampBase64" class="quit-school-stamp-image" :src="stampBase64" width="200" height="200">
|
||||
<div class="quit-school-stamp-text">
|
||||
<span>学生工作处</span>
|
||||
<span>{{ form.quitStartTime }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -891,6 +890,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="danger" @click="fileUpload">下载处分送达书</el-button>
|
||||
<el-button @click="completeOpen = false">取 消</el-button>
|
||||
<el-button type="primary" @click="taskComplete">确 定</el-button>
|
||||
</span>
|
||||
@@ -936,6 +936,7 @@ import { flowXmlAndNode, getProcessVariables } from '@/api/flowable/definition'
|
||||
import { flowRecord } from '@/api/flowable/finished'
|
||||
import { complete, delegate, flowTaskForm, getNextFlowNode, rejectTask, returnList, returnTask } from '@/api/flowable/todo'
|
||||
import { getDisciplinaryApplicationByProcInsId, getStuInfo, updateDisciplinaryApplication } from '@/api/routine/disciplinaryApplication'
|
||||
import { getStampBase64 } from '@/api/common/stamp'
|
||||
import { getLeaveApplicationByProcInsId, getStuInfoByStuId } from '@/api/routine/leaveApplication'
|
||||
import { getStuDisciplinaryRelieveByProcInsId, updateRelieve } from '@/api/routine/relieve'
|
||||
import { getRtStuQuitSchoolByProcInsId, updateRtStuQuitSchool } from '@/api/routine/rtStuQuitSchool'
|
||||
@@ -947,11 +948,11 @@ import { checkRole } from '@/utils/permission' // 权限判断函数
|
||||
import flow from '@/views/flowable/task/todo/detail/flow'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import pdf from 'vue-pdf'
|
||||
import { getEnlistmentReserveByProcessInstanceId, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
||||
import { getEnlistmentReserveByProcessInstanceId, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve"; // 入伍保留学籍
|
||||
import { insertOrUpdateByStuAndApprover } from "@/api/routine/enlistmentReserve/enlistmentReserveApproval";
|
||||
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
|
||||
import { updateStudent } from '@/api/stuCQS/basedata/student'
|
||||
import { getOutsideAccommodationApplyByProcessInstanceId, updateOutsideAccommodationApply } from "@/api/dormitory/outsideAccommodation/outsideAccommodationApply";
|
||||
import { getOutsideAccommodationApplyByProcessInstanceId, updateOutsideAccommodationApply } from "@/api/dormitory/outsideAccommodation/outsideAccommodationApply"; // 外宿申请
|
||||
import { listBasic, getBasic, delBasic, addBasic, updateBasic, getStname, getProcessId } from "@/api/routine/basic";
|
||||
import detailApply from "@/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/detailApply" // 外宿申请表详细
|
||||
import { addOrUpdateAccommodationApproval } from "@/api/dormitory/outsideAccommodation/outsideAccommodationApproval";
|
||||
@@ -1096,6 +1097,9 @@ export default {
|
||||
basicForm: false,//退伍复学表单
|
||||
BasicTestData: 0, // 新增:默认0,仅退回学生申请时改为1
|
||||
user: [], // 当前登录用户
|
||||
stampBase64: '', // 印章Base64数据
|
||||
globalWatermarkEl: null,
|
||||
globalWatermarkText: '\u5e7f\u897f\u6c34\u5229\u7535\u529b\u804c\u4e1a\u6280\u672f\u5b66\u9662\u5b66\u5de5\u7cfb\u7edf'
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -1118,9 +1122,11 @@ export default {
|
||||
}
|
||||
if ((this.taskName == '学生接收' || this.taskName == '申请人(辅导员)接收') && this.category == 'disposal') {
|
||||
this.showLetterService = true
|
||||
this.getStampBase64()
|
||||
}
|
||||
if ((this.taskName == '学生接收' || this.taskName == '辅导员接收') && this.category == 'quitSchool') {
|
||||
this.showQuitSchoolProve = true
|
||||
this.getStampBase64()
|
||||
}
|
||||
if (this.taskName == '学生接收' && this.category == 'relieve') {
|
||||
this.showFileDowload = true
|
||||
@@ -1175,7 +1181,86 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
createWatermarkCanvas(text, options = {}) {
|
||||
const {
|
||||
width = 300,
|
||||
height = 200,
|
||||
angle = -25,
|
||||
fontSize = 18,
|
||||
alpha = 0.2
|
||||
} = options
|
||||
const canvas = document.createElement('canvas')
|
||||
canvas.width = width
|
||||
canvas.height = height
|
||||
const ctx = canvas.getContext('2d')
|
||||
if (!ctx) {
|
||||
return null
|
||||
}
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height)
|
||||
ctx.translate(canvas.width / 2, canvas.height / 2)
|
||||
ctx.rotate((angle * Math.PI) / 180)
|
||||
ctx.textAlign = 'center'
|
||||
ctx.textBaseline = 'middle'
|
||||
ctx.font = `${fontSize}px Microsoft YaHei`
|
||||
ctx.fillStyle = `rgba(0, 0, 0, ${alpha})`
|
||||
ctx.fillText(text, 0, 0)
|
||||
return canvas
|
||||
},
|
||||
createWatermarkDataUrl(text, options = {}) {
|
||||
const canvas = this.createWatermarkCanvas(text, options)
|
||||
if (!canvas) {
|
||||
return ''
|
||||
}
|
||||
return canvas.toDataURL('image/png')
|
||||
},
|
||||
showGlobalWatermark() {
|
||||
if (typeof document === 'undefined') {
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否有显示处分决定送达书的卡片且包含.stamp元素
|
||||
const letterServiceCard = document.querySelector('.el-card:has(.stamp)')
|
||||
if (!letterServiceCard) {
|
||||
// 如果没有找到符合条件的元素,则不显示水印
|
||||
return
|
||||
}
|
||||
|
||||
if (!this.globalWatermarkEl) {
|
||||
this.globalWatermarkEl = document.createElement('div')
|
||||
this.globalWatermarkEl.className = 'global-dialog-watermark-mask'
|
||||
}
|
||||
const topZIndex = Array.from(document.querySelectorAll('body *'))
|
||||
.map(item => Number(window.getComputedStyle(item).zIndex) || 0)
|
||||
.reduce((max, value) => Math.max(max, value), 2002)
|
||||
const watermarkUrl = this.createWatermarkDataUrl(this.globalWatermarkText)
|
||||
this.globalWatermarkEl.style.cssText = `
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
pointer-events: none;
|
||||
z-index: ${topZIndex + 1};
|
||||
background-image: url(${watermarkUrl});
|
||||
background-size: 300px 200px;
|
||||
background-repeat: repeat;
|
||||
background-position: 0 0;
|
||||
`
|
||||
if (!document.body.contains(this.globalWatermarkEl)) {
|
||||
document.body.appendChild(this.globalWatermarkEl)
|
||||
}
|
||||
},
|
||||
hideGlobalWatermark() {
|
||||
if (this.globalWatermarkEl && this.globalWatermarkEl.parentNode) {
|
||||
this.globalWatermarkEl.parentNode.removeChild(this.globalWatermarkEl)
|
||||
}
|
||||
},
|
||||
|
||||
getStampBase64() {
|
||||
getStampBase64().then(res => {
|
||||
this.stampBase64 = res.msg
|
||||
})
|
||||
},
|
||||
|
||||
handleChange1(value) {
|
||||
if (value && value.length === 3) {
|
||||
const [gradeId, majorId, classId] = value;
|
||||
@@ -1523,7 +1608,7 @@ export default {
|
||||
// this.completeOpen = true;
|
||||
// this.completeTitle = "流程审批";
|
||||
this.submitForm(null)
|
||||
// 获取当前用户的签名,并赋值给this.taskForm.variables.signature传入监听器
|
||||
// 获取当前用户的签名,并赋值给this.taskForm.variables传入监听器
|
||||
this.taskForm.variables.signature = this.user.signature
|
||||
},
|
||||
/** 用户审批任务 */
|
||||
@@ -1584,6 +1669,10 @@ export default {
|
||||
this.form.remark = this.taskForm.remark
|
||||
this.updateRtStuQuitSchool()
|
||||
} else if (this.category == 'enlistmentReserve') { // 是应征入伍保留学籍申请,才执行
|
||||
if (this.taskName == '辅导员审批') { // 辅导员可以修改申请原因
|
||||
updateEnlistmentReserve(this.form).then(result => {
|
||||
})
|
||||
}
|
||||
if (this.taskName == '教务处主管领导审批') { // (最后一个领导审核完成之后,修改学生学籍状态, status:30是入伍保留学籍)
|
||||
updateStudent({ stuId: this.form.studentId, status: '30' }).then(response => { })
|
||||
}
|
||||
@@ -2374,7 +2463,53 @@ export default {
|
||||
})
|
||||
},
|
||||
fileUpload() {
|
||||
download.resource(this.pdfURL)
|
||||
// 使用html2canvas将处分决定书卡片内容转换为图片并下载
|
||||
import('html2canvas').then((html2canvas) => {
|
||||
// 优先选择处分决定书的卡片内容,如果找不到再尝试通用的.el-card__body
|
||||
const element = document.querySelector('.certificate-service .el-card__body') ||
|
||||
document.querySelector('.certificate-service') ||
|
||||
document.querySelector('.el-card__body');
|
||||
if (element) {
|
||||
html2canvas.default(element).then((canvas) => {
|
||||
// 创建一个新的canvas用于添加水印
|
||||
const watermarkedCanvas = document.createElement('canvas');
|
||||
const ctx = watermarkedCanvas.getContext('2d');
|
||||
watermarkedCanvas.width = canvas.width;
|
||||
watermarkedCanvas.height = canvas.height;
|
||||
|
||||
// 绘制原始canvas内容
|
||||
ctx.drawImage(canvas, 0, 0);
|
||||
|
||||
// 使用平铺水印块,避免文字重叠并降低透明度
|
||||
const watermarkCanvas = this.createWatermarkCanvas(this.globalWatermarkText, {
|
||||
width: 320,
|
||||
height: 220,
|
||||
angle: -25,
|
||||
fontSize: 22,
|
||||
alpha: 0.3
|
||||
})
|
||||
if (watermarkCanvas) {
|
||||
ctx.save()
|
||||
const pattern = ctx.createPattern(watermarkCanvas, 'repeat')
|
||||
if (pattern) {
|
||||
ctx.fillStyle = pattern
|
||||
ctx.fillRect(0, 0, watermarkedCanvas.width, watermarkedCanvas.height)
|
||||
}
|
||||
ctx.restore()
|
||||
}
|
||||
|
||||
// 创建下载链接
|
||||
const link = document.createElement('a');
|
||||
link.download = '处分决定送达书.png'; // 更具描述性的文件名
|
||||
link.href = watermarkedCanvas.toDataURL('image/png');
|
||||
link.click();
|
||||
});
|
||||
} else {
|
||||
console.error('找不到需要截图的元素');
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.error('html2canvas 加载失败:', error);
|
||||
});
|
||||
},
|
||||
// 初始化入伍保留学籍申请审核意见参数
|
||||
initApproval() {
|
||||
@@ -2464,6 +2599,9 @@ export default {
|
||||
})
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.hideGlobalWatermark()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@@ -2526,15 +2664,34 @@ export default {
|
||||
|
||||
.stamp {
|
||||
text-align: right;
|
||||
position: relative;
|
||||
min-height: 120px;
|
||||
padding-top: 10px;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
|
||||
&>div {
|
||||
margin-top: -70px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
margin-top: 10px;
|
||||
margin-right: 25px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -55px;
|
||||
width: 150px;
|
||||
height: 200px;
|
||||
z-index: 1;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2561,28 +2718,76 @@ export default {
|
||||
|
||||
.stamp {
|
||||
position: relative;
|
||||
height: 115px;
|
||||
height: 190px;
|
||||
margin-top: 50px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: #333;
|
||||
line-height: 35px;
|
||||
letter-spacing: 3px;
|
||||
align-items: flex-end;
|
||||
align-items: center;
|
||||
|
||||
&>div {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-right: 28px;
|
||||
align-items: center;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 180px;
|
||||
height: 180px;
|
||||
top: -54px;
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
left: 50%;
|
||||
top: 10px;
|
||||
transform: translateX(-50%);
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
|
||||
.quit-school-stamp {
|
||||
height: 260px;
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.quit-school-stamp-layer {
|
||||
position: relative;
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.quit-school-stamp-image {
|
||||
position: absolute !important;
|
||||
inset: 0;
|
||||
width: 250px !important;
|
||||
height: 250px !important;
|
||||
z-index: 1 !important;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.quit-school-stamp-text {
|
||||
position: absolute !important;
|
||||
inset: 0;
|
||||
z-index: 2 !important;
|
||||
display: flex !important;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
line-height: 1.15;
|
||||
font-size: 24px;
|
||||
font-weight: 500;
|
||||
color: #222;
|
||||
letter-spacing: 0;
|
||||
transform: translateY(18px);
|
||||
}
|
||||
|
||||
.quit-school-stamp-text span + span {
|
||||
margin-top: 2px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -194,11 +194,11 @@
|
||||
<p>{{ form.stuName }},{{ form.gender }},{{ form.mz }},{{ form.birthday }}出生,{{ form.jg }}人,{{ form.className }}学生,学号:{{ form.stuNo }}.该生于个人原因-{{ form.reasonApplying }},申请休学.经学校研究,同意休学,时间从{{ form.quitStartTime }}至{{ form.quitEndTime }}.</p>
|
||||
<p>抄送:教务处、财务处、{{ form.departmentName }}</p>
|
||||
<div class="stamp">
|
||||
<img src="https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D450%2C600/sign=debd0a4bb2fd5266a77e34109e28bb1d/8d5494eef01f3a297283d36e9d25bc315d607cc2.jpg" alt="Stamp">
|
||||
<div>
|
||||
<span>学生工作处</span>
|
||||
<span>{{ form.quitStartTime }}</span>
|
||||
</div>
|
||||
<img v-if="stampBase64" :src="stampBase64" width="200" height="200">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -289,6 +289,7 @@ import { flowXmlAndNode, getProcessVariables } from '@/api/flowable/definition'
|
||||
import { flowRecord } from '@/api/flowable/finished'
|
||||
import { complete, delegate, flowTaskForm, getNextFlowNode, rejectTask, returnList, returnTask } from '@/api/flowable/todo'
|
||||
import { getRtStuQuitSchoolByProcInsId, updateRtStuQuitSchool } from '@/api/routine/rtStuQuitSchool'
|
||||
import { getStampBase64 } from '@/api/common/stamp'
|
||||
import FlowRole from '@/components/flow/Role'
|
||||
import FlowUser from '@/components/flow/User'
|
||||
import Parser from '@/components/parser/Parser'
|
||||
@@ -403,6 +404,7 @@ export default {
|
||||
quitSchoolForm: false, // 休学申请表单
|
||||
showQuitSchoolProve: false, //休学证明
|
||||
quitSchoolGLKSHShow: false, // 学生教育管理科审核
|
||||
stampBase64: '', // 印章Base64数据
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -418,6 +420,7 @@ export default {
|
||||
// 如果任务名是其中的两个,则改变审批意见的输入框内容
|
||||
if ((this.taskName == '学生接收' || this.taskName == '辅导员接收') && this.category == 'quitSchool') {
|
||||
this.showQuitSchoolProve = true
|
||||
this.getStampBase64()
|
||||
}
|
||||
if (this.category == 'quitSchool') {
|
||||
this.quitSchoolForm = true
|
||||
@@ -439,6 +442,12 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getStampBase64() {
|
||||
getStampBase64().then(res => {
|
||||
this.stampBase64 = res.msg
|
||||
})
|
||||
},
|
||||
|
||||
reentryYearMethodFormat(row, column) {
|
||||
return this.selectDictLabel(this.dict.type.sys_teacher_kpi_filling_year, row.quitYear)
|
||||
},
|
||||
@@ -765,14 +774,24 @@ export default {
|
||||
|
||||
.stamp {
|
||||
text-align: right;
|
||||
position: relative;
|
||||
min-height: 120px;
|
||||
padding-top: 10px;
|
||||
|
||||
& > div {
|
||||
margin-top: -70px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
margin-top: 10px;
|
||||
margin-right: 25px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 10px;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,11 +213,11 @@
|
||||
</p>
|
||||
<p>抄送:教务处、财务处、{{ form.departmentName }}</p>
|
||||
<div class="stamp">
|
||||
<img src="https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D450%2C600/sign=debd0a4bb2fd5266a77e34109e28bb1d/8d5494eef01f3a297283d36e9d25bc315d607cc2.jpg" alt="Stamp">
|
||||
<div>
|
||||
<span>学生工作处</span>
|
||||
<span>{{ form.reentryTime }}</span>
|
||||
</div>
|
||||
<img v-if="stampBase64" :src="stampBase64" width="200" height="200">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -322,6 +322,7 @@ import { flowXmlAndNode, getProcessVariables } from '@/api/flowable/definition'
|
||||
import { flowRecord } from '@/api/flowable/finished'
|
||||
import { complete, delegate, flowTaskForm, getNextFlowNode, rejectTask, returnList, returnTask } from '@/api/flowable/todo'
|
||||
import { getRtStuReentrySchoolByProcInsId, updateRtStuReentrySchool } from '@/api/routine/rtStuReentrySchool'
|
||||
import { getStampBase64 } from '@/api/common/stamp'
|
||||
import { getClass } from '@/api/stuCQS/basedata/class'
|
||||
import { getClassName } from '@/api/stuCQS/basedata/student'
|
||||
import FlowRole from '@/components/flow/Role'
|
||||
@@ -442,6 +443,7 @@ export default {
|
||||
classVlue2: [], //班级添加修改选择
|
||||
ClassNameList: [], //班级名称
|
||||
showReentryProve: false, // 复学证明
|
||||
stampBase64: '', // 印章Base64数据
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -466,6 +468,7 @@ export default {
|
||||
}
|
||||
if (this.taskName == '辅导员接收' || this.taskName == '学生接收') {
|
||||
this.showReentryProve = true
|
||||
this.getStampBase64()
|
||||
}
|
||||
}
|
||||
// 流程任务获取变量信息
|
||||
@@ -480,6 +483,12 @@ export default {
|
||||
this.getClassNameList()
|
||||
},
|
||||
methods: {
|
||||
getStampBase64() {
|
||||
getStampBase64().then(res => {
|
||||
this.stampBase64 = res.msg
|
||||
})
|
||||
},
|
||||
|
||||
reentryYearMethodFormat(row, column) {
|
||||
return this.selectDictLabel(this.dict.type.sys_teacher_kpi_filling_year, row.reentryYear)
|
||||
},
|
||||
@@ -837,14 +846,24 @@ export default {
|
||||
|
||||
.stamp {
|
||||
text-align: right;
|
||||
position: relative;
|
||||
min-height: 120px;
|
||||
padding-top: 10px;
|
||||
|
||||
& > div {
|
||||
margin-top: -70px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
margin-top: 10px;
|
||||
margin-right: 25px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 10px;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -880,17 +899,20 @@ export default {
|
||||
align-items: flex-end;
|
||||
|
||||
& > div {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-right: 28px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 180px;
|
||||
height: 180px;
|
||||
top: -54px;
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,12 @@
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['routine:disciplinaryApplication:import']" type="success" plain icon="el-icon-upload2" size="mini"
|
||||
@click="handleImport"
|
||||
>处分导入</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="disciplinaryApplicationList" @selection-change="handleSelectionChange">
|
||||
@@ -225,6 +231,37 @@
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 学生处分导入对话框 -->
|
||||
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:limit="1"
|
||||
accept=".xlsx, .xls"
|
||||
:headers="upload.headers"
|
||||
:action="upload.url + '?updateSupport=' + upload.updateSupport"
|
||||
:disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress"
|
||||
:on-success="handleFileSuccess"
|
||||
:auto-upload="false"
|
||||
:with-credentials="true"
|
||||
drag
|
||||
>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip text-center" slot="tip">
|
||||
<!-- <div class="el-upload__tip" slot="tip">
|
||||
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
|
||||
</div> -->
|
||||
<span>仅允许导入xls、xlsx格式文件。</span>
|
||||
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
|
||||
</div>
|
||||
</el-upload>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||||
<el-button @click="upload.open = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -233,6 +270,7 @@ import { addDisciplinaryApplication, delDisciplinaryApplication, getDisciplinary
|
||||
import {
|
||||
pcaTextArr, // 省市区联动数据,纯汉字
|
||||
} from 'element-china-area-data'
|
||||
import { getToken } from "@/utils/auth";
|
||||
|
||||
export default {
|
||||
name: 'DisciplinaryApplication',
|
||||
@@ -301,6 +339,21 @@ export default {
|
||||
stuInfo: {},
|
||||
// 省市区
|
||||
areaOptions: pcaTextArr,
|
||||
// 导入参数
|
||||
upload: {
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否禁用上传
|
||||
isUploading: false,
|
||||
// 是否更新已经存在的数据
|
||||
updateSupport: 0,
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: "Bearer " + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + "/routine/disciplinaryApplication/importData"
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -454,6 +507,35 @@ export default {
|
||||
`disciplinaryApplication_${new Date().getTime()}.xlsx`
|
||||
)
|
||||
},
|
||||
/** 导入按钮操作 */
|
||||
handleImport() {
|
||||
this.upload.title = "学生处分导入";
|
||||
this.upload.open = true;
|
||||
console.log('Token:', getToken());
|
||||
console.log('Upload headers:', this.upload.headers);
|
||||
console.log('Upload url:', this.upload.url);
|
||||
},
|
||||
/** 下载模板操作 */
|
||||
importTemplate() {
|
||||
this.download('routine/disciplinaryApplication/importTemplate', {
|
||||
}, `disciplinaryApplication_template_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
// 文件上传中处理
|
||||
handleFileUploadProgress(event, file, fileList) {
|
||||
this.upload.isUploading = true;
|
||||
},
|
||||
// 文件上传成功处理
|
||||
handleFileSuccess(response, file, fileList) {
|
||||
this.upload.open = false;
|
||||
this.upload.isUploading = false;
|
||||
this.$refs.upload.clearFiles();
|
||||
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
||||
this.getList();
|
||||
},
|
||||
// 提交上传文件
|
||||
submitFileForm() {
|
||||
this.$refs.upload.submit();
|
||||
},
|
||||
handleBlur() {
|
||||
if (this.form.stuNo != null || this.form.stuNo != '') {
|
||||
getStuInfo(this.form.stuNo).then((res) => {
|
||||
|
||||
@@ -661,7 +661,7 @@ export default {
|
||||
// 填写附件里面的申请编号
|
||||
this.enlistmentReserveAttachList.forEach(element => {
|
||||
element.applyNo = this.formData.applyNo
|
||||
element.applyId = response.data.id
|
||||
element.applyId = this.formData.id
|
||||
})
|
||||
// 批量新增材料附件
|
||||
if (this.enlistmentReserveAttachList && this.enlistmentReserveAttachList.length > 0) {
|
||||
@@ -743,7 +743,6 @@ export default {
|
||||
this.$message.warning('该文件已添加,请勿重复上传');
|
||||
}
|
||||
console.log(this.enlistmentReserveAttachList);
|
||||
|
||||
},
|
||||
// 处理子组件传递的删除文件事件
|
||||
handleDeleteFile(fileName) {
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
:disabled="single" @click="handleUpdate">修改</el-button>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-delete" size="mini" :disabled="multiple"
|
||||
@click="handleAdd">批量申请</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-folder-checked" size="mini" :disabled="multiple"
|
||||
@click="handleAdd">提交批量申请</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:stuent:import']" type="info" plain icon="el-icon-upload2" size="mini"
|
||||
@@ -89,6 +89,7 @@
|
||||
|
||||
<script>
|
||||
import { listOwnStu as listStudent } from '@/api/stuCQS/basedata/student'
|
||||
import { batchInsert } from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -113,6 +114,8 @@ export default {
|
||||
name: null,
|
||||
stuNo: null,
|
||||
},
|
||||
// 选中的要添加的学生
|
||||
stuList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -150,8 +153,60 @@ export default {
|
||||
this.ids = selection.map(item => item.stuId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
this.stuList = selection
|
||||
},
|
||||
handleAdd() {
|
||||
this.$confirm('此操作会批量提交入伍申请,但是申请记录的民族、家长电话、家庭地址等材料需要手动去修改, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
let data = []
|
||||
for (let index = 0; index < this.stuList.length; index++) {
|
||||
const year = new Date().getFullYear();
|
||||
const randomNo = Math.floor(Math.random() * 1000000).toString().padStart(6, '0');
|
||||
data.push({
|
||||
applyNo: `RY${year}${randomNo}`,
|
||||
applyReason: '本人应征入伍,申请保留学籍从 2026-03-01 至退役后两年。',
|
||||
className: this.stuList[index].srsClass.className,
|
||||
deptName: this.stuList[index].deptName,
|
||||
familyAddress: '',
|
||||
gender: this.stuList[index].gender == '男' ? '1' : '0',
|
||||
grade: this.stuList[index].gradeName,
|
||||
major: this.stuList[index].srsMajors.majorName,
|
||||
studentName: this.stuList[index].name,
|
||||
studentNo: this.stuList[index].stuNo,
|
||||
teacherName: this.stuList[index].cphName,
|
||||
studentId: this.stuList[index].stuId,
|
||||
nation: '无',
|
||||
familyAddress: '请去修改填写家庭地址',
|
||||
parentPhone: '请去填写家长联系电话',
|
||||
createTime: Date.now()
|
||||
})
|
||||
}
|
||||
batchInsert(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
loading.close()
|
||||
this.$modal.msgSuccess(`批量申请成功,共申请${res.data}条数据`)
|
||||
this.$emit('refresh')
|
||||
} else {
|
||||
loading.close()
|
||||
}
|
||||
}).catch(() => {
|
||||
loading.close()
|
||||
})
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消申请'
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
@@ -50,7 +50,8 @@
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="openForm">发起入伍保留学籍申请</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="applicationDialogShow" v-if="this.roleGroup.includes('辅导员')">批量发起入伍保留学籍申请</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="applicationDialogShow"
|
||||
v-if="this.roleGroup.includes('辅导员')">批量发起入伍保留学籍申请</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||
@@ -59,11 +60,11 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||
v-hasPermi="['routine:enlistmentReserve:remove']">删除</el-button>
|
||||
</el-col>
|
||||
</el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['routine:enlistmentReserve:export']">导出</el-button>
|
||||
</el-col> -->
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
@@ -136,11 +137,14 @@
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['routine:enlistmentReserve:edit']" v-if="scope.row.applyStatus == 0 || getRejectInfo(scope.row.enlistmentReserveApprovalList).isReject">修改</el-button>
|
||||
v-hasPermi="['routine:enlistmentReserve:edit']"
|
||||
v-if="scope.row.applyStatus == 0 || getRejectInfo(scope.row.enlistmentReserveApprovalList).isReject">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['routine:enlistmentReserve:remove']" v-if="scope.row.applyStatus == 0 || roleGroup.includes('管理员')">删除</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-info"
|
||||
@click="detail(scope.row)">详情</el-button>
|
||||
v-hasPermi="['routine:enlistmentReserve:remove']"
|
||||
v-if="scope.row.applyStatus == 0 || roleGroup.includes('管理员')">删除</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-info" @click="detail(scope.row)">详情</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit"
|
||||
@click="openUpFlie(scope.row.affixId, scope.row)">上传附件</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -225,13 +229,17 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog title="批量申请" :visible.sync="applicationDialogOpen" width="80%" append-to-body>
|
||||
<applicationDialog></applicationDialog>
|
||||
<applicationDialog @refresh="refreshForm"></applicationDialog>
|
||||
</el-dialog>
|
||||
<el-dialog title="上传附件" :visible.sync="isOpenUpFlie" width="30%" append-to-body>
|
||||
<Affix v-model="affixIdFlie" @input="handleAffix" @fileUploaded="handleAffix" @delete-file="handleDeleteFile" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listEnlistmentReserve, getOwnInfo, delEnlistmentReserve, addEnlistmentReserve, updateEnlistmentReserve } from "@/api/routine/enlistmentReserve/enlistmentReserve";
|
||||
import { batchAddEnlistmentReserveAttach, deleteRtEnlistmentReserveAttachByFileNameAndStuName } from "@/api/routine/enlistmentReserve/enlistmentReserveAttach";
|
||||
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
|
||||
import applicationDialog from '@/views/routine/enlistmentReserve/components/applicationDialog'
|
||||
export default {
|
||||
@@ -260,6 +268,8 @@ export default {
|
||||
open: false,
|
||||
// 是否显示弹出层
|
||||
applicationDialogOpen: false,
|
||||
// 上传附件弹出层
|
||||
isOpenUpFlie: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@@ -332,7 +342,10 @@ export default {
|
||||
],
|
||||
},
|
||||
roleGroup: '',
|
||||
user: ''
|
||||
user: '',
|
||||
affixIdFlie: '',
|
||||
selectEnlistmentReserve: {},
|
||||
enlistmentReserveAttachList: [],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@@ -361,7 +374,7 @@ export default {
|
||||
this.roleGroup = response.roleGroup;
|
||||
// this.postGroup = response.postGroup;
|
||||
if (this.roleGroup) {
|
||||
if (this.roleGroup.includes("学生")) {
|
||||
if (this.roleGroup.includes("学生") && !this.roleGroup.includes("管理员")) {
|
||||
this.queryParams.studentName = this.user.nickName
|
||||
} else if (this.roleGroup.includes("辅导员")) {
|
||||
this.queryParams.teacherName = this.user.nickName
|
||||
@@ -476,7 +489,7 @@ export default {
|
||||
handleExport() {
|
||||
this.download('routine/enlistmentReserve/export', {
|
||||
...this.queryParams
|
||||
}, `enlistmentReserve_${new Date().getTime()}.xlsx`)
|
||||
}, `入伍保留学籍申请Excel_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
// 跳转申请表
|
||||
openForm() {
|
||||
@@ -521,6 +534,71 @@ export default {
|
||||
},
|
||||
applicationDialogShow() {
|
||||
this.applicationDialogOpen = true
|
||||
},
|
||||
openUpFlie(id, row) {
|
||||
this.isOpenUpFlie = true
|
||||
this.affixIdFlie = id
|
||||
this.selectEnlistmentReserve = row
|
||||
},
|
||||
handleAffix(affixId) {
|
||||
this.selectEnlistmentReserve.affixId = affixId
|
||||
},
|
||||
// 处理组件传递的文件信息
|
||||
handleAffix(fileInfo) {
|
||||
if (!fileInfo || !fileInfo.fileName || !fileInfo.filePath) {
|
||||
console.warn("无效的文件信息,跳过添加");
|
||||
return; // 不添加空数据
|
||||
}
|
||||
// 构建与后端实体匹配的data对象
|
||||
let data = {
|
||||
// id: null, // 主键(后端自增)
|
||||
applyId: this.selectEnlistmentReserve.id || null, // 关联申请表ID(从主表单获取)
|
||||
fileName: fileInfo.fileName, // 文件名(从组件传递的信息中获取)
|
||||
filePath: fileInfo.filePath, // 文件路径(相对路径,关联sys_file表)
|
||||
fileSize: fileInfo.originalFile?.size || 0, // 若需要,可从fileInfo.originalFile.size获取(单位:字节)
|
||||
fileType: fileInfo.fileType, // 文件类型(如docx、pdf)
|
||||
applyNo: this.selectEnlistmentReserve.applyNo || '', // 申请编号(从主表单获取)
|
||||
studentName: this.selectEnlistmentReserve.studentName || '', // 学生姓名(从主表单获取)
|
||||
studentNo: this.selectEnlistmentReserve.studentNo || '' // 学号(从主表单获取)
|
||||
};
|
||||
|
||||
// 避免重复添加(根据filePath去重)
|
||||
const isDuplicate = this.enlistmentReserveAttachList.some(
|
||||
item => item.filePath === data.filePath
|
||||
);
|
||||
if (!isDuplicate) {
|
||||
this.enlistmentReserveAttachList.push(data);
|
||||
console.log('附件添加成功:', this.enlistmentReserveAttachList);
|
||||
// 附件添加成功之后修改申请信息
|
||||
updateEnlistmentReserve(this.selectEnlistmentReserve).then(response => {
|
||||
// 填写附件里面的申请编号
|
||||
this.enlistmentReserveAttachList.forEach(element => {
|
||||
element.applyNo = this.selectEnlistmentReserve.applyNo
|
||||
element.applyId = this.selectEnlistmentReserve.id
|
||||
})
|
||||
// 批量新增材料附件
|
||||
if (this.enlistmentReserveAttachList && this.enlistmentReserveAttachList.length > 0) {
|
||||
batchAddEnlistmentReserveAttach(this.enlistmentReserveAttachList)
|
||||
}
|
||||
this.$modal.msgSuccess("上传成功");
|
||||
});
|
||||
} else {
|
||||
this.$message.warning('该文件已添加,请勿重复上传');
|
||||
}
|
||||
},
|
||||
// 处理子组件传递的删除文件事件
|
||||
handleDeleteFile(fileName) {
|
||||
// 接收文件名后,可执行后续逻辑,删除在数据库的数据
|
||||
if (fileName) {
|
||||
deleteRtEnlistmentReserveAttachByFileNameAndStuName({ fileName: fileName, studentName: this.selectEnlistmentReserve.studentName }).then(res => {
|
||||
this.$message.success(`成功删除文件:${fileName}`);
|
||||
})
|
||||
}
|
||||
},
|
||||
// 批量申请成功后关闭对话框,刷新列表
|
||||
refreshForm() {
|
||||
this.applicationDialogOpen = false
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['routine:relieve:export']" type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['routine:relieve:import']" type="success" plain icon="el-icon-upload2" size="mini" @click="handleImport">解除处分导入</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
|
||||
</el-row>
|
||||
|
||||
@@ -189,11 +192,40 @@
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 学生解除处分导入对话框 -->
|
||||
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:limit="1"
|
||||
accept=".xlsx, .xls"
|
||||
:headers="upload.headers"
|
||||
:action="upload.url + '?updateSupport=' + upload.updateSupport"
|
||||
:disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress"
|
||||
:on-success="handleFileSuccess"
|
||||
:auto-upload="false"
|
||||
:with-credentials="true"
|
||||
drag
|
||||
>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip text-center" slot="tip">
|
||||
<span>仅允许导入 xls、xlsx 格式文件。</span>
|
||||
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
|
||||
</div>
|
||||
</el-upload>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||||
<el-button @click="upload.open = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { addRelieve, delRelieve, getMyStuInfo, getPenaltyNumber, getRelieve, getStuInfo, getStuList, listRelieve, save } from '@/api/routine/relieve'
|
||||
import { getToken } from "@/utils/auth";
|
||||
import {
|
||||
pcaTextArr, // 省市区联动数据,纯汉字
|
||||
} from 'element-china-area-data'
|
||||
@@ -270,6 +302,21 @@ export default {
|
||||
},
|
||||
// 省市区
|
||||
areaOptions: pcaTextArr,
|
||||
// 导入参数
|
||||
upload: {
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否禁用上传
|
||||
isUploading: false,
|
||||
// 是否更新已经存在的数据
|
||||
updateSupport: 0,
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: "Bearer " + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + "/routine/relieve/importData"
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -485,6 +532,32 @@ export default {
|
||||
},
|
||||
})
|
||||
},
|
||||
/** 导入按钮操作 */
|
||||
handleImport() {
|
||||
this.upload.title = "学生解除处分导入";
|
||||
this.upload.open = true;
|
||||
},
|
||||
/** 下载模板操作 */
|
||||
importTemplate() {
|
||||
this.download('routine/relieve/importTemplate', {
|
||||
}, `relieve_template_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
// 文件上传中处理
|
||||
handleFileUploadProgress(event, file, fileList) {
|
||||
this.upload.isUploading = true;
|
||||
},
|
||||
// 文件上传成功处理
|
||||
handleFileSuccess(response, file, fileList) {
|
||||
this.upload.open = false;
|
||||
this.upload.isUploading = false;
|
||||
this.$refs.upload.clearFiles();
|
||||
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
||||
this.getList();
|
||||
},
|
||||
// 提交上传文件
|
||||
submitFileForm() {
|
||||
this.$refs.upload.submit();
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -107,6 +107,12 @@
|
||||
<dict-tag :options="dict.type.rt_filling_college" :value="scope.row.departmentName" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="班级类型" align="center" prop="classType">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.classType === 'graduate'" type="primary">毕业班</el-tag>
|
||||
<el-tag v-else-if="scope.row.classType === 'ungraduate'" type="success">非毕业班</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="自评分数" align="center" prop="selfScoring">
|
||||
<template slot-scope="scope">
|
||||
{{ handleSelfScoring(scope.row) > 100 ? 100 : handleSelfScoring(scope.row) }}
|
||||
@@ -192,8 +198,11 @@
|
||||
</div>
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane v-for="item in componentList" :key="item.name" :label="item.name">
|
||||
<div class="componentList">
|
||||
<component :is="item.value" :form="form" style="padding: 10px" />
|
||||
<div v-if="item.value === 'graduationGuidance' && form.classType === 'graduate'" class="componentList">
|
||||
<component :is="item.value" :form="form" :roleGroup="roleGroup" :audit="audit" style="padding: 10px" />
|
||||
</div>
|
||||
<div v-else-if="item.value !== 'graduationGuidance'" class="componentList">
|
||||
<component :is="item.value" :form="form" :roleGroup="roleGroup" :audit="audit" style="padding: 10px" />
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@@ -269,6 +278,8 @@ import attendanceManagement from '../components/attendanceManagement.vue'
|
||||
import negativeList from '../components/negativeList.vue'
|
||||
// 超工作量奖励绩效
|
||||
import rewardsKpi from '../components/rewardsKpi.vue'
|
||||
import bonusPoints from '../components/bonusPoints.vue'
|
||||
import graduationGuidance from '../components/graduationGuidance.vue'
|
||||
// 处理学生突发事件
|
||||
import stuEmergency from '../components/stuEmergency.vue'
|
||||
// 进度条
|
||||
@@ -289,6 +300,8 @@ export default {
|
||||
attendanceManagement,
|
||||
negativeList,
|
||||
rewardsKpi,
|
||||
bonusPoints,
|
||||
graduationGuidance,
|
||||
stuEmergency,
|
||||
auditSteps,
|
||||
},
|
||||
@@ -298,7 +311,9 @@ export default {
|
||||
{ name: '学生管理', value: 'studentManagement' },
|
||||
{ name: '业务工作', value: 'businessWord' },
|
||||
{ name: '考勤管理', value: 'attendanceManagement' },
|
||||
{ name: '加分项', value: 'bonusPoints' },
|
||||
{ name: '负面清单', value: 'negativeList' },
|
||||
{ name: '就业指导工作', value: 'graduationGuidance' },
|
||||
{ name: '超工作量奖励绩效', value: 'rewardsKpi' },
|
||||
{ name: '处理学生突发事件', value: 'stuEmergency' },
|
||||
],
|
||||
|
||||
162
src/views/teacher/kpiFilling/components/bonusPoints.vue
Normal file
162
src/views/teacher/kpiFilling/components/bonusPoints.vue
Normal file
@@ -0,0 +1,162 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="form.kpiFillingBonusPointsList && form.kpiFillingBonusPointsList.length > 0">
|
||||
<el-table :data="form.kpiFillingBonusPointsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="加分类型" align="center" prop="bonusType">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.bonusType === 'option1'">获得上级部门或学校表扬,妥善处置学生事件并形成典型案例,积极建言献策且建议被采纳,发挥模范带头作用的</span>
|
||||
<span v-else-if="scope.row.bonusType === 'option2'">在学校、学院阶段性重要任务推进过程中,主动担当作为,切实发挥作用的</span>
|
||||
<span v-else-if="scope.row.bonusType === 'option3'">协助学校开展辅导员培训、会议和学生活动,在活动中担任工作人员的</span>
|
||||
<span v-else>{{ scope.row.bonusType }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="分数" align="center" prop="bonusScoring" width="100" />
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else>
|
||||
<p>暂无加分项数据</p>
|
||||
</div>
|
||||
<div style="margin-top: 10px; padding: 10px; background-color: #f5f5f5; border-radius: 4px;">
|
||||
<p style="font-weight: bold; margin-bottom: 10px;">考评要求:</p>
|
||||
<div v-if="!isEdit">
|
||||
<p>1. 获得上级部门或学校表扬,妥善处置学生事件并形成典型案例,积极建言献策且建议被采纳,发挥模范带头作用的(10分)</p>
|
||||
<p>2. 在学校、学院阶段性重要任务推进过程中,主动担当作为,切实发挥作用的(10分)</p>
|
||||
<p>3. 协助学校开展辅导员培训、会议和学生活动,在活动中担任工作人员的(10分)</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<el-checkbox v-model="bonusForm.option1" @change="handleBonusChange('option1')">获得上级部门或学校表扬,妥善处置学生事件并形成典型案例,积极建言献策且建议被采纳,发挥模范带头作用的(10分)</el-checkbox>
|
||||
<el-checkbox v-model="bonusForm.option2" @change="handleBonusChange('option2')">在学校、学院阶段性重要任务推进过程中,主动担当作为,切实发挥作用的(10分)</el-checkbox>
|
||||
<el-checkbox v-model="bonusForm.option3" @change="handleBonusChange('option3')">协助学校开展辅导员培训、会议和学生活动,在活动中担任工作人员的(10分)</el-checkbox>
|
||||
<div style="margin-top: 10px;">
|
||||
<span>分数:</span>
|
||||
<el-input-number v-model="bonusForm.bonusScoring" :min="0" :max="10" size="mini" />
|
||||
</div>
|
||||
</div>
|
||||
<p style="font-weight: bold; margin: 10px 0;">考评方式:</p>
|
||||
<p>学务办、学工各项工作记录,按照完成情况、任务量加分,每次加2-4分。</p>
|
||||
</div>
|
||||
<div v-if="form.kpiFillingBonusPointsList && form.kpiFillingBonusPointsList.length > 0 && !(form.auditStatus === 1 && form.roleAudit === 4)" style="margin-top: 10px; text-align: right;">
|
||||
<el-button v-if="!isEdit && !roleGroup.includes('辅导员') && audit" type="warning" @click="startEdit">修 改</el-button>
|
||||
<el-button v-if="isEdit" type="primary" @click="saveBonus">保存</el-button>
|
||||
<el-button v-if="isEdit" @click="cancelEdit">取消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { addKpiFillingBonusPoints, updateKpiFillingBonusPoints, delKpiFillingBonusPoints } from '@/api/teacher/kpiFilling'
|
||||
export default {
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: []
|
||||
},
|
||||
roleGroup: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
audit: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isEdit: false,
|
||||
bonusForm: {
|
||||
option1: false,
|
||||
option2: false,
|
||||
option3: false,
|
||||
bonusScoring: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
startEdit() {
|
||||
if (this.form.kpiFillingBonusPointsList && this.form.kpiFillingBonusPointsList.length > 0) {
|
||||
const bonusType = this.form.kpiFillingBonusPointsList[0].bonusType
|
||||
this.bonusForm = {
|
||||
option1: bonusType === 'option1',
|
||||
option2: bonusType === 'option2',
|
||||
option3: bonusType === 'option3',
|
||||
bonusScoring: this.form.kpiFillingBonusPointsList[0].bonusScoring || 0
|
||||
}
|
||||
}
|
||||
this.isEdit = true
|
||||
},
|
||||
handleBonusChange(type) {
|
||||
if (type === 'option1' && this.bonusForm.option1) {
|
||||
this.bonusForm.option2 = false
|
||||
this.bonusForm.option3 = false
|
||||
this.bonusForm.bonusScoring = 10
|
||||
} else if (type === 'option2' && this.bonusForm.option2) {
|
||||
this.bonusForm.option1 = false
|
||||
this.bonusForm.option3 = false
|
||||
this.bonusForm.bonusScoring = 10
|
||||
} else if (type === 'option3' && this.bonusForm.option3) {
|
||||
this.bonusForm.option1 = false
|
||||
this.bonusForm.option2 = false
|
||||
this.bonusForm.bonusScoring = 10
|
||||
}
|
||||
},
|
||||
saveBonus() {
|
||||
let bonusType = ''
|
||||
if (this.bonusForm.option1) bonusType = 'option1'
|
||||
else if (this.bonusForm.option2) bonusType = 'option2'
|
||||
else if (this.bonusForm.option3) bonusType = 'option3'
|
||||
|
||||
if (!bonusType) {
|
||||
this.$message.warning('请选择加分类型')
|
||||
return
|
||||
}
|
||||
|
||||
const data = {
|
||||
bonusType: bonusType,
|
||||
bonusScoring: this.bonusForm.bonusScoring,
|
||||
fdyName: this.form.fdyName,
|
||||
fillingYear: this.form.fillingYear,
|
||||
fillingMonth: this.form.fillingMonth,
|
||||
classType: this.form.classType
|
||||
}
|
||||
|
||||
if (this.form.kpiFillingBonusPointsList && this.form.kpiFillingBonusPointsList.length > 0) {
|
||||
data.id = this.form.kpiFillingBonusPointsList[0].id
|
||||
updateKpiFillingBonusPoints(data).then(response => {
|
||||
this.$message.success('保存成功')
|
||||
this.isEdit = false
|
||||
this.form.kpiFillingBonusPointsList[0].bonusType = bonusType
|
||||
this.form.kpiFillingBonusPointsList[0].bonusScoring = this.bonusForm.bonusScoring
|
||||
})
|
||||
} else {
|
||||
addKpiFillingBonusPoints(data).then(response => {
|
||||
this.$message.success('保存成功')
|
||||
this.isEdit = false
|
||||
this.form.kpiFillingBonusPointsList = [{
|
||||
bonusType: bonusType,
|
||||
bonusScoring: this.bonusForm.bonusScoring
|
||||
}]
|
||||
})
|
||||
}
|
||||
},
|
||||
cancelEdit() {
|
||||
this.isEdit = false
|
||||
this.bonusForm = {
|
||||
option1: false,
|
||||
option2: false,
|
||||
option3: false,
|
||||
bonusScoring: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
p {
|
||||
margin: 5px 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
@@ -1,75 +1,201 @@
|
||||
<!-- -->
|
||||
<template>
|
||||
<div>
|
||||
<p>考核要求:严格执行学生请销假登记制度(5分)    考核方式:学工系统记录,未能按规定完成1次扣1分。</p>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div v-if="classType === 'ungraduate'">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring || "没有填写" }}
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>严格执行学生请销假登记制度(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学工系统记录,未能按规定完成1次扣1分。</p>
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring" clearable
|
||||
size="mini">
|
||||
</el-input> -->
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuLeaveRequestScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuLeaveRequestScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>按规定完成学生学籍异动、违纪处分与解除等材料(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成1次扣2分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>认真完成评优评先、资助评定工作(10分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,若存在提交率、准确率、规范性不达标的情况,每项扣1~2分,累计扣完该考核指标分值为止。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>按时、准确填报学生各项基础数据(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成1次扣1分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuBasicDataScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuBasicDataScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>认真指导学生完成各项材料填报工作(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成1次扣1分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>按程序要求处理突发事件(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成不得分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].handleEventsScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].handleEventsScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>考核要求:认真指导学生完成各项材料填报工作(10分) 考核方式:学务办、学工各项工作记录,未能按规定完成1次扣1分。</p>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<!-- 辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring || "没有填写" }} -->
|
||||
|
||||
<div v-else-if="classType === 'graduate'">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring || "没有填写" }}
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>按规定完成学生学籍异动、违纪处分与解除等材料(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成1次扣2分。</p>
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring" clearable
|
||||
size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</div>
|
||||
<p>考核要求:按时按质完成学生基础数据上报工作(10分) 考核方式:学务办、学工各项工作记录,未能按规定完成1次扣1分。</p>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<!-- 辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuBasicDataScoring || "没有填写" }} -->
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuBasicDataScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuBasicDataScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingBusinessWorksList[0].stuBasicDataScoring" clearable
|
||||
size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</div>
|
||||
<p>考核要求:按规定完成学生违纪处分材料(10分) 考核方式:学务办、学工各项工作记录,未能按规定完成1次扣2分。</p>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<!-- 辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring || "没有填写" }} -->
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring" clearable
|
||||
size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</div>
|
||||
<p>考核要求:按程序要求处理突发事件(10分) 考核方式:学务办、学工各项工作记录,未能按规定完成不得分。</p>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<!-- 辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].handleEventsScoring || "没有填写" }} -->
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].handleEventsScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].handleEventsScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingBusinessWorksList[0].handleEventsScoring" clearable
|
||||
size="mini">
|
||||
</el-input> -->
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>认真完成评优评先、资助评定工作(10分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,提交率、准确率、规范性差的,每个项目扣1~2分,扣完为止。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>按时、准确填报学生各项基础数据(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成1次扣1分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuBasicDataScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuBasicDataScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>认真指导学生完成各项材料填报工作(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成1次扣1分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>按程序要求处理突发事件(10分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成不得分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].handleEventsScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].handleEventsScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>按时按质完成学工、学院发布的各项学生工作通知、任务(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">学务办、学工各项工作记录,未能按规定完成1次扣1分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingBusinessWorksList[0].otherTaskScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingBusinessWorksList[0].otherTaskScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="form.kpiFillingBusinessWorksList[0].hasOwnProperty('id') && !(form.auditStatus === 1 && form.roleAudit === 4)" class="button">
|
||||
<el-button v-show="isShow" type="primary" @click="save">保 存</el-button>
|
||||
<el-button v-if="!roleGroup.includes('辅导员') && audit" type="warning" @click="switchIsShow">修 改</el-button>
|
||||
@@ -99,6 +225,11 @@ export default {
|
||||
isShow: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
classType() {
|
||||
return this.form.classType || 'ungraduate'
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'form.kpiFillingBusinessWorksList': {
|
||||
immediate: true,
|
||||
@@ -109,56 +240,47 @@ export default {
|
||||
stuBasicDataScoring: 0,
|
||||
stuDisciplinaryViolationScoring: 0,
|
||||
stuFillingMaterialsScoring: 0,
|
||||
stuLeaveMaterialsScoring: 0
|
||||
stuLeaveMaterialsScoring: 0,
|
||||
stuLeaveRequestScoring: 0,
|
||||
otherTaskScoring: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// 生命周期 - 创建完成(访问当前this实例)
|
||||
created() {
|
||||
|
||||
},
|
||||
// 生命周期 - 挂载完成(访问DOM元素)
|
||||
mounted() {
|
||||
|
||||
},
|
||||
// 离开当前页面时执行代码
|
||||
destroyed() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
switchIsShow() {
|
||||
this.isShow = !this.isShow
|
||||
},
|
||||
save() {
|
||||
this.$modal.loading('正在努力加载中,请稍等。。。')
|
||||
updateKpiFillingBusinessWork(this.form.kpiFillingBusinessWorksList[0]).then(response => {
|
||||
// this.$modal.msgSuccess("修改成功");
|
||||
getKpiFillingBusinessWork(this.form.kpiFillingBusinessWorksList[0].id).then(response => {
|
||||
this.form.kpiFillingBusinessWorksList[0].handleEventsScoring = response.data.handleEventsScoring,
|
||||
this.form.kpiFillingBusinessWorksList[0].stuBasicDataScoring = response.data.stuBasicDataScoring,
|
||||
this.form.kpiFillingBusinessWorksList[0].stuDisciplinaryViolationScoring = response.data.stuDisciplinaryViolationScoring,
|
||||
this.form.kpiFillingBusinessWorksList[0].stuFillingMaterialsScoring = response.data.stuFillingMaterialsScoring,
|
||||
this.form.kpiFillingBusinessWorksList[0].stuLeaveMaterialsScoring = response.data.stuLeaveMaterialsScoring,
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.switchIsShow()
|
||||
this.$modal.closeLoading()
|
||||
this.form.kpiFillingBusinessWorksList[0].stuLeaveRequestScoring = response.data.stuLeaveRequestScoring,
|
||||
this.form.kpiFillingBusinessWorksList[0].otherTaskScoring = response.data.otherTaskScoring
|
||||
})
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.isShow = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* @import url(); 引入css类 */
|
||||
.button {
|
||||
margin-top: 20px;
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
background-color: white;
|
||||
z-index: 100;
|
||||
margin-top: 10px;
|
||||
text-align: right;
|
||||
padding: 10px;
|
||||
}
|
||||
p {
|
||||
margin: 5px 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
|
||||
130
src/views/teacher/kpiFilling/components/graduationGuidance.vue
Normal file
130
src/views/teacher/kpiFilling/components/graduationGuidance.vue
Normal file
@@ -0,0 +1,130 @@
|
||||
<template>
|
||||
<div>
|
||||
<div>
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>指导审核毕业生登记表等就业核心材料(10分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">依据招就处统计数据或云就业平台记录(以招就处明确的材料清单为准)。</p>
|
||||
<p style="margin-left: 20px; color: #666;">3月底前,班级毕业生就业核心备案材料完成率<25%,扣2分;4月底前,班级毕业生就业核心备案材料完成率<50%,扣2分;5月底前,班级毕业生就业核心备案材料完成率<75%,扣3分;6月底前,班级就业核心备案材料完成率<95%,扣3分;</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingGraduationGuidanceList[0].gradFormAuditScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingGraduationGuidanceList[0].gradFormAuditScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>开展学生就业咨询服务及团体辅导工作,助力学生解决就业困惑、提升就业竞争力。(5分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">依据招就处统计数据或云就业平台数据。</p>
|
||||
<p style="margin-left: 20px; color: #666;">(1)团体辅导:每学期需组织开展至少1次就业主题团体辅导,单次服务学生人次≥20人;未按要求完成的,扣1分。</p>
|
||||
<p style="margin-left: 20px; color: #666;">(2)就业咨询:每月需完成至少2次就业咨询服务,累计服务学生不少于4人;当月未达标(未开展咨询或服务人次不足),扣1分/次</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingGraduationGuidanceList[0].stuCareerConsultScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingGraduationGuidanceList[0].stuCareerConsultScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px;">
|
||||
<p style="font-weight: bold;">考核要求:</p>
|
||||
<p>审核毕业生源信息、就业系统信息等数据及就业证明材料(含真实性、完整性、规范性)(10分)</p>
|
||||
<p style="font-weight: bold;">考核方式:</p>
|
||||
<p style="margin-left: 20px; color: #666;">招就处以云就业平台审核操作日志、教育厅反馈的问题清单为依据进行评分。</p>
|
||||
<p style="margin-left: 20px; color: #666;">(1)第五学期10月底前:完成毕业生生源信息审核,完成率<98%,扣3分;</p>
|
||||
<p style="margin-left: 20px; color: #666;">(2)第五学期12月—第六学期8月:每月需100%完成毕业生提交的就业信息数据及相关证明材料核验工作,出现1次未全额完成核验的情况,扣0.5分。经招就处、教育厅等层级核查,如发现已审核通过的就业信息存在虚假、材料缺失或填写不规范等问题,单次核查每确认1例,扣1分。</p>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-top: 10px;">
|
||||
<div>
|
||||
辅导员自评分:{{ form.kpiFillingGraduationGuidanceList[0].gradFormGuidanceScoring || "没有填写" }}
|
||||
</div>
|
||||
<div v-if="isShow" style="display: flex; align-items: center;margin-left: 50px;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingGraduationGuidanceList[0].gradFormGuidanceScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="form.kpiFillingGraduationGuidanceList[0].hasOwnProperty('id') && !(form.auditStatus === 1 && form.roleAudit === 4)" class="button">
|
||||
<el-button v-show="isShow" type="primary" @click="save">保 存</el-button>
|
||||
<el-button v-if="!roleGroup.includes('辅导员') && audit" type="warning" @click="switchIsShow">修 改</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getKpiFillingGraduationGuidance, updateKpiFillingGraduationGuidance } from '@/api/teacher/kpiFilling'
|
||||
export default {
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: []
|
||||
},
|
||||
roleGroup: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
audit: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isShow: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'form.kpiFillingGraduationGuidanceList': {
|
||||
immediate: true,
|
||||
handler() {
|
||||
if (this.form.kpiFillingGraduationGuidanceList.length === 0) {
|
||||
this.form.kpiFillingGraduationGuidanceList[0] = {
|
||||
gradFormAuditScoring: 0,
|
||||
stuCareerConsultScoring: 0,
|
||||
gradFormGuidanceScoring: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
switchIsShow() {
|
||||
this.isShow = !this.isShow
|
||||
},
|
||||
save() {
|
||||
updateKpiFillingGraduationGuidance(this.form.kpiFillingGraduationGuidanceList[0]).then(response => {
|
||||
getKpiFillingGraduationGuidance(this.form.kpiFillingGraduationGuidanceList[0].id).then(response => {
|
||||
this.form.kpiFillingGraduationGuidanceList[0].gradFormAuditScoring = response.data.gradFormAuditScoring
|
||||
this.form.kpiFillingGraduationGuidanceList[0].stuCareerConsultScoring = response.data.stuCareerConsultScoring
|
||||
this.form.kpiFillingGraduationGuidanceList[0].gradFormGuidanceScoring = response.data.gradFormGuidanceScoring
|
||||
})
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.isShow = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.button {
|
||||
margin-top: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
p {
|
||||
margin: 5px 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
@@ -1,174 +1,297 @@
|
||||
<!-- -->
|
||||
<template>
|
||||
<div>
|
||||
<!-- 班会佐证材料表格数据 -->
|
||||
<div>
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每周按时开展班会(10分)</el-col>
|
||||
<el-col :span="8">考评方式:《辅导员工作笔记》,照片记录,少1次扣2分。质量评价2分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].classScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].classScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingStuMgtList[0].classScoring" clearable size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-if="isGraduate" class="graduate-content">
|
||||
<!-- 毕业班内容 -->
|
||||
<!-- 班会佐证材料表格数据 -->
|
||||
<div>
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每月通过线上线下方式定期召开班会开展教育(10分)</el-col>
|
||||
<el-col :span="8">考评方式:学工系统填报,照片记录,少1次扣2分。质量评价2分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].classScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].classScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].classMeetingMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 谈心谈话佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].classMeetingMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:月度谈心谈话总量≥10人次,覆盖重点关注学生(困难救助、就业指导、心理危机、违纪待处理等)(10分)</el-col>
|
||||
<el-col :span="8">考评方式:抽查谈心谈话记录、学工系统填报情况等相关工作资料。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].stuTalkScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].stuTalkScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].stuTalkMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="学生名称" align="center" prop="stuName" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 每周深入学生宿舍佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每周深入学生宿舍至少2次(10分)</el-col>
|
||||
<el-col :span="8">考评方式:《辅导员工作笔记》,照片记录,少1次扣2分。质量评价2分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].visitDormitoryScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].visitDormitoryScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingStuMgtList[0].visitDormitoryScoring" clearable size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].visitDormitoryMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="走访班级名称" align="center" prop="visitClassName" />
|
||||
<el-table-column label="走访宿舍号" align="center" prop="visitDormitoryNum" />
|
||||
<el-table-column label="覆盖学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="学生交流内容/检查内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div v-else class="ungraduate-content">
|
||||
<!-- 非毕业班内容 -->
|
||||
<!-- 班会佐证材料表格数据 -->
|
||||
<div>
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每周日及节假日收假当天组织开展班会(10分)</el-col>
|
||||
<el-col :span="8">考评方式:学工系统填报开展情况,每缺报1次扣2分;工作质量评价项分值为2分,将根据实际完成质量进行评分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].classScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].classScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].classMeetingMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 每每月开展班团干部会议佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每月开展班团干部会议至少2次(5分)</el-col>
|
||||
<el-col :span="8">考评方式:《辅导员工作笔记》,照片记录,少1次扣2分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].cadreScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].cadreScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingStuMgtList[0].cadreScoring" clearable size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 每周深入学生宿舍佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].cadreMeetingMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每周深入学生宿舍走访至少2次(10分)</el-col>
|
||||
<el-col :span="8">考评方式:学工系统填报、宿舍管理员登记本信息核查,工作落实不到位或学生宿舍安全、卫生检查发现问题,经通报后未及时开展教育督促整改、复检仍不合格的,每有1次扣0.5分/间。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].visitDormitoryScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].visitDormitoryScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].visitDormitoryMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="走访班级名称" align="center" prop="visitClassName" />
|
||||
<el-table-column label="走访宿舍号" align="center" prop="visitDormitoryNum" />
|
||||
<el-table-column label="覆盖学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="学生交流内容/检查内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 每月与带班学生谈心谈话议佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每月与带班学生谈心谈话,覆盖率不低于8%(10分)</el-col>
|
||||
<el-col :span="8">考评方式∶《辅导员工作笔记》,照片记录,少1次扣1分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].stuTalkScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].stuTalkScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingStuMgtList[0].stuTalkScoring" clearable size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 谈心谈话佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].stuTalkMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="学生名称" align="center" prop="stuName" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
</el-table>
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:月度谈心谈话总量≥10人次,覆盖重点关注学生(困难救助、学业预警、心理危机、违纪待处理等)(10分)</el-col>
|
||||
<el-col :span="8">考评方式:抽查谈心谈话记录、学工系统填报情况等相关工作资料。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].stuTalkScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].stuTalkScoring" :min="0" :max="10" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].stuTalkMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="学生名称" align="center" prop="stuName" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 每月深入学生社区面向学生开展活动议佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每月深入学生社区面向学生开展活动1次(5分)</el-col>
|
||||
<el-col :span="8">考评方式:学生社区建设记录</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].stuActivityScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].stuActivityScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
<!-- <el-input placeholder="请输入自评分" v-model="form.kpiFillingStuMgtList[0].stuActivityScoring" clearable size="mini">
|
||||
</el-input> -->
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 班团干部会议佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].stuActivityMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每月开展班团干部培训、专题工作会议,频次均不少于1次(5分)</el-col>
|
||||
<el-col :span="8">考评方式:抽查工作记录、学工系统填报情况等相关工作资料。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].cadreScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].cadreScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].cadreMeetingMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 学生活动佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:每月组织或参与学生社区育人活动、思政教育活动及文化艺术体育活动,频次不少于2次(5分)</el-col>
|
||||
<el-col :span="8">考评方式:学务办相关记录、学生社区建设工作记录,每缺少1次扣2分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].stuActivityScoring }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].stuActivityScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].stuActivityMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 职业测评/就业育人佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:根据学校就业育人工作部署,第一学期需指导并组织所带班级学生参与职业测评,整体完成率需≥90%;第二学期每月需开展1次就业育人相关活动。(5分)</el-col>
|
||||
<el-col :span="8">考评方式:(1)职业测评完成率考核(第一学期):10月底前,班级职业测评完成率<20%,扣1分;11月底前,班级职业测评完成率<50%,扣1分;12月底前,班级职业测评完成率<80%,扣1分;次年1月底前,班级职业测评完成率<90%,扣2分。(2)就业育人活动考核(第二学期):活动形式需围绕就业核心,包括职业体验实践、就业主题班会、就业指导讲座等标准化就业育人场景。3月-7月期间,每月需按要求组织1次相关活动,未完成当月活动任务,扣1分/次。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].edgScoring || 0 }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].edgScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].edgMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 通知任务佐证材料表格数据 -->
|
||||
<div style="margin-top: 20px;">
|
||||
<el-row :gutter="10" style="display: flex; align-items: center;">
|
||||
<el-col :span="7">考评要求:按时按质完成学校及相关职能部门发布的与学生相关的各项工作通知、任务(5分)</el-col>
|
||||
<el-col :span="8">考评方式:学务办、职能部门各项工作记录,未能按规定完成1次扣1分。</el-col>
|
||||
<el-col :span="3">辅导员自评分: {{ form.kpiFillingStuMgtList[0].noticeScoring || 0 }}</el-col>
|
||||
<el-col v-show="isShow" :span="5">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="min-width: 70px;color: red;">调整分数:</div>
|
||||
<el-input-number v-model="form.kpiFillingStuMgtList[0].noticeScoring" :min="0" :max="5" label="调整分数" size="mini" style="width: 100%;" />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px;">
|
||||
<el-table :data="form.kpiFillingStuMgtList[0].noticeMaterialsList" border>
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="开展时间" align="center" prop="developmentTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.developmentTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="地点" align="center" prop="place" />
|
||||
<el-table-column label="班级名称" align="center" prop="className" />
|
||||
<el-table-column label="参与学生人数" align="center" prop="numberOfStudents" />
|
||||
<el-table-column label="主要内容" align="center" prop="mainContent" />
|
||||
<el-table-column label="相片" align="center" prop="photo" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.photo" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="form.kpiFillingStuMgtList[0].hasOwnProperty('id') && !(form.auditStatus === 1 && form.roleAudit === 4)" class="button">
|
||||
@@ -200,6 +323,17 @@ export default {
|
||||
isShow: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isGraduate() {
|
||||
if (this.form.classType === 'graduate') {
|
||||
return true
|
||||
}
|
||||
if (this.form.kpiFillingStuMgtList && this.form.kpiFillingStuMgtList.length > 0) {
|
||||
return this.form.kpiFillingStuMgtList[0].classType === 'graduate'
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'form.kpiFillingStuMgtList': {
|
||||
immediate: true,
|
||||
@@ -216,7 +350,11 @@ export default {
|
||||
stuTalkMaterialsList: [],
|
||||
stuTalkScoring: 0,
|
||||
visitDormitoryMaterialsList: [],
|
||||
visitDormitoryScoring: 0
|
||||
visitDormitoryScoring: 0,
|
||||
edgMaterialsList: [],
|
||||
edgScoring: 0,
|
||||
noticeMaterialsList: [],
|
||||
noticeScoring: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,8 +172,11 @@
|
||||
</div>
|
||||
<el-tabs type="border-card" style="margin-top: 20px;">
|
||||
<el-tab-pane v-for="item in componentList" :key="item.name" :label="item.name">
|
||||
<div class="componentList">
|
||||
<component :is="item.value" :form="form" :role-group="roleGroup" style="padding: 10px;" />
|
||||
<div v-if="item.value === 'graduationGuidance' && form.classType === 'graduate'" class="componentList">
|
||||
<component :is="item.value" :form="form" :roleGroup="roleGroup" :audit="false" style="padding: 10px" />
|
||||
</div>
|
||||
<div v-else-if="item.value !== 'graduationGuidance'" class="componentList">
|
||||
<component :is="item.value" :form="form" :roleGroup="roleGroup" :audit="false" style="padding: 10px" />
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@@ -206,6 +209,10 @@ import attendanceManagement from '../kpiFilling/components/attendanceManagement.
|
||||
import negativeList from '../kpiFilling/components/negativeList.vue'
|
||||
// 超工作量奖励绩效
|
||||
import rewardsKpi from '../kpiFilling/components/rewardsKpi.vue'
|
||||
// 加分项
|
||||
import bonusPoints from '../kpiFilling/components/bonusPoints.vue'
|
||||
// 就业指导工作
|
||||
import graduationGuidance from '../kpiFilling/components/graduationGuidance.vue'
|
||||
// 处理学生突发事件
|
||||
import stuEmergency from '../kpiFilling/components/stuEmergency.vue'
|
||||
// s审核进度
|
||||
@@ -215,14 +222,16 @@ import { getDeptName } from '@/api/system/dept'
|
||||
export default {
|
||||
name: 'KpiFilling',
|
||||
dicts: ['sys_commit_status', 'sys_teacher_kpi_filling_month', 'sys_teacher_kpi_filling_year', 'sys_kpi', 'rt_college', 'rt_filling_college'],
|
||||
components: { studentManagement, businessWord, attendanceManagement, negativeList, rewardsKpi, stuEmergency, auditSteps },
|
||||
components: { studentManagement, businessWord, attendanceManagement, negativeList, rewardsKpi, bonusPoints, graduationGuidance, stuEmergency, auditSteps },
|
||||
data() {
|
||||
return {
|
||||
componentList: [
|
||||
{ name: '学生管理', value: 'studentManagement' },
|
||||
{ name: '业务工作', value: 'businessWord' },
|
||||
{ name: '考勤管理', value: 'attendanceManagement' },
|
||||
{ name: '加分项', value: 'bonusPoints' },
|
||||
{ name: '负面清单', value: 'negativeList' },
|
||||
{ name: '就业指导工作', value: 'graduationGuidance' },
|
||||
{ name: '超工作量奖励绩效', value: 'rewardsKpi' },
|
||||
{ name: '处理学生突发事件', value: 'stuEmergency' },
|
||||
],
|
||||
@@ -341,11 +350,14 @@ export default {
|
||||
departmentName: null,
|
||||
selfScoring: null,
|
||||
finalRating: null,
|
||||
classType: null,
|
||||
kpiFillingStuMgtList: [],
|
||||
kpiFillingBusinessWorksList: [],
|
||||
kpiFillingAMgtList: [],
|
||||
kpiFillingNegativeLists: [],
|
||||
kpiFillingRewardsKpiList: [],
|
||||
kpiFillingBonusPointsList: [],
|
||||
kpiFillingGraduationGuidanceList: [],
|
||||
kpiFillingStuEmergencyList: []
|
||||
}
|
||||
this.resetForm('form')
|
||||
|
||||
@@ -57,6 +57,13 @@
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="值班工作分数" align="center" prop="dutyWorkScoring" />
|
||||
<el-table-column label="会议分数" align="center" prop="conferenceScoring" />
|
||||
<el-table-column label="班级类型" align="center" prop="classType">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.classType === 'graduate'" type="primary">毕业班</el-tag>
|
||||
<el-tag v-else-if="scope.row.classType === 'ungraduate'" type="success">非毕业班</el-tag>
|
||||
<span v-else>{{ scope.row.classType }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="填报人名称" align="center" prop="fdyName" />
|
||||
<el-table-column label="填报年份" align="center" prop="fillingYear">
|
||||
<template slot-scope="scope">
|
||||
@@ -70,9 +77,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['teacher:kpiFillingAMgt:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
<!-- <el-button v-hasPermi="['teacher:kpiFillingAMgt:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改</el-button>
|
||||
>修改</el-button> -->
|
||||
<el-button v-hasPermi="['teacher:kpiFillingAMgt:remove']" size="mini" type="text" icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
|
||||
@@ -140,8 +140,11 @@
|
||||
<!-- 选项卡 -->
|
||||
<el-tabs type="border-card" style="margin-top: 20px;">
|
||||
<el-tab-pane v-for="item in componentList" :key="item.name" :label="item.name">
|
||||
<div class="componentList">
|
||||
<component :is="item.value" :form="form" :audit="false" style="padding: 10px" />
|
||||
<div v-if="item.value === 'graduationGuidance' && form.classType === 'graduate'" class="componentList">
|
||||
<component :is="item.value" :form="form" :roleGroup="roleGroup" :audit="false" style="padding: 10px" />
|
||||
</div>
|
||||
<div v-else-if="item.value !== 'graduationGuidance'" class="componentList">
|
||||
<component :is="item.value" :form="form" :roleGroup="roleGroup" :audit="false" style="padding: 10px" />
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@@ -152,6 +155,7 @@
|
||||
<script>
|
||||
import { listKpiFillingAuditRecord, getKpiFillingAuditRecord, delKpiFillingAuditRecord, addKpiFillingAuditRecord, updateKpiFillingAuditRecord } from '@/api/teacher/kpiFillingAuditRecord'
|
||||
import { getByFdyNameAndYearAndMonth } from '@/api/teacher/kpiFilling'
|
||||
import { getUserProfile } from '@/api/system/user'
|
||||
// 学生管理
|
||||
import studentManagement from '../components/studentManagement/studentManagement.vue'
|
||||
// 业务工作
|
||||
@@ -162,6 +166,10 @@ import attendanceManagement from '../components/attendanceManagement.vue'
|
||||
import negativeList from '../components/negativeList.vue'
|
||||
// 超工作量奖励绩效
|
||||
import rewardsKpi from '../components/rewardsKpi.vue'
|
||||
// 加分项
|
||||
import bonusPoints from '../components/bonusPoints.vue'
|
||||
// 就业指导工作
|
||||
import graduationGuidance from '../components/graduationGuidance.vue'
|
||||
// 处理学生突发事件
|
||||
import stuEmergency from '../components/stuEmergency.vue'
|
||||
// 进度条
|
||||
@@ -176,6 +184,8 @@ export default {
|
||||
attendanceManagement,
|
||||
negativeList,
|
||||
rewardsKpi,
|
||||
bonusPoints,
|
||||
graduationGuidance,
|
||||
stuEmergency,
|
||||
auditSteps,
|
||||
},
|
||||
@@ -186,7 +196,9 @@ export default {
|
||||
{ name: '学生管理', value: 'studentManagement' },
|
||||
{ name: '业务工作', value: 'businessWord' },
|
||||
{ name: '考勤管理', value: 'attendanceManagement' },
|
||||
{ name: '加分项', value: 'bonusPoints' },
|
||||
{ name: '负面清单', value: 'negativeList' },
|
||||
{ name: '就业指导工作', value: 'graduationGuidance' },
|
||||
{ name: '超工作量奖励绩效', value: 'rewardsKpi' },
|
||||
{ name: '处理学生突发事件', value: 'stuEmergency' },
|
||||
],
|
||||
@@ -247,13 +259,20 @@ export default {
|
||||
},
|
||||
openfdy: false,
|
||||
deptNameList: [],
|
||||
roleGroup: '',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
this.getDeptNameList()
|
||||
this.getUser()
|
||||
},
|
||||
methods: {
|
||||
getUser() {
|
||||
getUserProfile().then(response => {
|
||||
this.roleGroup = response.roleGroup
|
||||
})
|
||||
},
|
||||
getDeptNameList() {
|
||||
getDeptName().then(res => {
|
||||
this.deptNameList = res.data
|
||||
|
||||
@@ -47,11 +47,20 @@
|
||||
|
||||
<el-table v-loading="loading" :data="kpiFillingBusinessWorkList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="学生请假材料分数" align="center" prop="stuLeaveMaterialsScoring" />
|
||||
<el-table-column label="学生材料填报分数" align="center" prop="stuFillingMaterialsScoring" />
|
||||
<el-table-column label="学生数据上报分数" align="center" prop="stuBasicDataScoring" />
|
||||
<el-table-column label="学生违纪处分分数" align="center" prop="stuDisciplinaryViolationScoring" />
|
||||
<el-table-column label="处理突发事件分数" align="center" prop="handleEventsScoring" />
|
||||
<el-table-column label="请销假制度分数" align="center" prop="stuLeaveRequestScoring" />
|
||||
<el-table-column label="学籍异动材料分数" align="center" prop="stuLeaveMaterialsScoring" />
|
||||
<el-table-column label="评优评先资助分数" align="center" prop="stuFillingMaterialsScoring" />
|
||||
<el-table-column label="基础数据填报分数" align="center" prop="stuBasicDataScoring" />
|
||||
<el-table-column label="指导材料填报分数" align="center" prop="stuDisciplinaryViolationScoring" />
|
||||
<el-table-column label="处理突发事件处理分数" align="center" prop="handleEventsScoring" />
|
||||
<el-table-column label="工作完成情况评分" align="center" prop="otherTaskScoring" />
|
||||
<el-table-column label="班级类型" align="center" prop="classType">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.classType === 'graduate'" type="primary">毕业班</el-tag>
|
||||
<el-tag v-else-if="scope.row.classType === 'ungraduate'" type="success">非毕业班</el-tag>
|
||||
<span v-else>{{ scope.row.classType }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="填报人名称" align="center" prop="fdyName" />
|
||||
<el-table-column label="填报年份" align="center" prop="fillingYear">
|
||||
<template slot-scope="scope">
|
||||
@@ -65,9 +74,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['teacher:kpiFillingBusinessWork:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
<!-- <el-button v-hasPermi="['teacher:kpiFillingBusinessWork:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改</el-button>
|
||||
>修改</el-button> -->
|
||||
<el-button v-hasPermi="['teacher:kpiFillingBusinessWork:remove']" size="mini" type="text" icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
@@ -155,11 +164,13 @@ export default {
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
stuLeaveRequestScoring: null,
|
||||
stuLeaveMaterialsScoring: null,
|
||||
stuFillingMaterialsScoring: null,
|
||||
stuBasicDataScoring: null,
|
||||
stuDisciplinaryViolationScoring: null,
|
||||
handleEventsScoring: null,
|
||||
otherTaskScoring: null,
|
||||
fdyName: null,
|
||||
fillingYear: null,
|
||||
fillingMonth: null
|
||||
@@ -202,11 +213,13 @@ export default {
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
stuLeaveRequestScoring: null,
|
||||
stuLeaveMaterialsScoring: null,
|
||||
stuFillingMaterialsScoring: null,
|
||||
stuBasicDataScoring: null,
|
||||
stuDisciplinaryViolationScoring: null,
|
||||
handleEventsScoring: null,
|
||||
otherTaskScoring: null,
|
||||
fdyName: null,
|
||||
fillingYear: null,
|
||||
fillingMonth: null
|
||||
|
||||
309
src/views/teacher/kpiFilling/kpiFillingGuidance/index.vue
Normal file
309
src/views/teacher/kpiFilling/kpiFillingGuidance/index.vue
Normal file
@@ -0,0 +1,309 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<!-- <el-form-item label="辅导员" prop="fdyName">
|
||||
<el-input
|
||||
v-model="queryParams.fdyName"
|
||||
placeholder="请输入辅导员名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="年份" prop="fillingYear">
|
||||
<el-select v-model="queryParams.fillingYear" placeholder="请选择年份" clearable @change="handleQuery">
|
||||
<el-option v-for="dict in dict.type.sys_teacher_kpi_filling_year" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="月份" prop="fillingMonth">
|
||||
<el-select v-model="queryParams.fillingMonth" placeholder="请选择月份" clearable @change="handleQuery">
|
||||
<el-option v-for="dict in dict.type.sys_teacher_kpi_filling_month" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="班级类型" prop="classType">
|
||||
<el-select v-model="queryParams.classType" placeholder="请选择班级类型" clearable>
|
||||
<el-option label="毕业班" value="graduate" />
|
||||
<el-option label="非毕业班" value="ungraduate" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 注释代码 -->
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['teacher:kpiFillingGuidance:add']"
|
||||
>新增</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['teacher:kpiFillingGuidance:edit']"
|
||||
>修改</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['teacher:kpiFillingGuidance:remove']"
|
||||
>删除</el-button>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['teacher:kpiFillingGuidance:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="kpiFillingGuidanceList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="毕业生就业去向登记审核分数" align="center" prop="gradFormAuditScoring" />
|
||||
<el-table-column label="学生职业咨询与辅导分数" align="center" prop="stuCareerConsultScoring" />
|
||||
<el-table-column label="毕业生就业指导与推荐分数" align="center" prop="gradFormGuidanceScoring" />
|
||||
<el-table-column label="填报人名称" align="center" prop="fdyName" />
|
||||
<el-table-column label="填报年份" align="center" prop="fillingYear">
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
type="success"
|
||||
style="background-color: #f0f9eb; border-color: #e1f3d8; color: #2ecc71;"
|
||||
v-if="scope.row.fillingYear"
|
||||
>{{ scope.row.fillingYear + '年' }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="填报月份" align="center" prop="fillingMonth">
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
type="primary"
|
||||
style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"
|
||||
v-if="scope.row.fillingMonth"
|
||||
>{{ scope.row.fillingMonth + '月' }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="班级类型" align="center" prop="classType" /> -->
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['teacher:kpiFillingGuidance:edit']"
|
||||
>修改</el-button> -->
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['teacher:kpiFillingGuidance:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改业绩考核-个人填报-就业指导工作对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="毕业生就业去向登记审核分数" prop="gradFormAuditScoring">
|
||||
<el-input v-model="form.gradFormAuditScoring" placeholder="请输入毕业生就业去向登记审核分数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学生职业咨询与辅导分数" prop="stuCareerConsultScoring">
|
||||
<el-input v-model="form.stuCareerConsultScoring" placeholder="请输入学生职业咨询与辅导分数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="毕业生就业指导与推荐分数" prop="gradFormGuidanceScoring">
|
||||
<el-input v-model="form.gradFormGuidanceScoring" placeholder="请输入毕业生就业指导与推荐分数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="填报人名称" prop="fdyName">
|
||||
<el-input v-model="form.fdyName" placeholder="请输入填报人名称" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listKpiFillingGuidance, getKpiFillingGuidance, delKpiFillingGuidance, addKpiFillingGuidance, updateKpiFillingGuidance, getByFdyNameAndYearAndMonth } from "@/api/teacher/kpiFillingGuidance";
|
||||
|
||||
export default {
|
||||
name: "KpiFillingGuidance",
|
||||
dicts: ['sys_teacher_kpi_filling_year', 'sys_teacher_kpi_filling_month'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 业绩考核-个人填报-就业指导工作表格数据
|
||||
kpiFillingGuidanceList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
fdyName: null,
|
||||
fillingYear: null,
|
||||
fillingMonth: null,
|
||||
classType: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询业绩考核-个人填报-就业指导工作列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
if (this.queryParams.fdyName && this.queryParams.fillingYear && this.queryParams.fillingMonth) {
|
||||
getByFdyNameAndYearAndMonth(this.queryParams).then(response => {
|
||||
this.kpiFillingGuidanceList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
} else {
|
||||
listKpiFillingGuidance(this.queryParams).then(response => {
|
||||
this.kpiFillingGuidanceList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
}
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
gradFormAuditScoring: null,
|
||||
stuCareerConsultScoring: null,
|
||||
gradFormGuidanceScoring: null,
|
||||
fdyName: null,
|
||||
fillingYear: null,
|
||||
fillingMonth: null,
|
||||
classType: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加业绩考核-个人填报-就业指导工作";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getKpiFillingGuidance(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改业绩考核-个人填报-就业指导工作";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateKpiFillingGuidance(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addKpiFillingGuidance(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除业绩考核-个人填报-就业指导工作编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delKpiFillingGuidance(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('teacher/kpiFillingGraduationGuidance/export', {
|
||||
...this.queryParams
|
||||
}, `kpiFillingGuidance_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -82,6 +82,13 @@
|
||||
<dict-tag :options="dict.type.sys_negative" :value="scope.row.practiceFraud" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="班级类型" align="center" prop="classType">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.classType === 'graduate'" type="primary">毕业班</el-tag>
|
||||
<el-tag v-else-if="scope.row.classType === 'ungraduate'" type="success">非毕业班</el-tag>
|
||||
<span v-else>{{ scope.row.classType }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="填报人名称" align="center" prop="fdyName" />
|
||||
<el-table-column label="填报年份" align="center" prop="fillingYear">
|
||||
<template slot-scope="scope">
|
||||
@@ -95,9 +102,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['teacher:kpiFillingNegativeList:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
<!-- <el-button v-hasPermi="['teacher:kpiFillingNegativeList:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改</el-button>
|
||||
>修改</el-button> -->
|
||||
<el-button v-hasPermi="['teacher:kpiFillingNegativeList:remove']" size="mini" type="text" icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
|
||||
347
src/views/teacher/kpiFilling/kpiFillingPoints/index.vue
Normal file
347
src/views/teacher/kpiFilling/kpiFillingPoints/index.vue
Normal file
@@ -0,0 +1,347 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="填报年份" prop="fillingYear">
|
||||
<el-select v-model="queryParams.fillingYear" placeholder="请选择填报年份" clearable @change="handleQuery">
|
||||
<el-option v-for="dict in dict.type.sys_teacher_kpi_filling_year" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="填报月份" prop="fillingMonth">
|
||||
<el-select v-model="queryParams.fillingMonth" placeholder="请选择填报月份" clearable @change="handleQuery">
|
||||
<el-option v-for="dict in dict.type.sys_teacher_kpi_filling_month" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- //注释代码 -->
|
||||
<el-row :gutter="10" class="mb8">
|
||||
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['teacher:kpiFillingPoints:add']"
|
||||
>新增</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['teacher:kpiFillingPoints:edit']"
|
||||
>修改</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['teacher:kpiFillingPoints:remove']"
|
||||
>删除</el-button>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['teacher:kpiFillingPoints:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="kpiFillingPointsList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="分数" align="center" prop="bonusScoring" />
|
||||
<el-table-column label="填报人名称" align="center" prop="fdyName" />
|
||||
<el-table-column label="填报年份" align="center" prop="fillingYear">
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
type="success"
|
||||
style="background-color: #f0f9eb; border-color: #e1f3d8; color: #2ecc71;"
|
||||
v-if="scope.row.fillingYear"
|
||||
>{{ scope.row.fillingYear + '年' }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="填报月份" align="center" prop="fillingMonth">
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
type="primary"
|
||||
style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"
|
||||
v-if="scope.row.fillingMonth"
|
||||
>{{ scope.row.fillingMonth + '月' }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="班级类型" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
v-if="scope.row.classType === 'ungraduate'"
|
||||
type="success"
|
||||
size="small">
|
||||
非毕业班
|
||||
</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.classType === 'graduate'"
|
||||
type="primary"
|
||||
size="small">
|
||||
毕业班
|
||||
</el-tag>
|
||||
<el-tag
|
||||
v-else
|
||||
type="warning"
|
||||
size="small">
|
||||
{{ scope.row.classType }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="加分类型" align="center" prop="bonusType">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-view"
|
||||
@click="showDetails(scope.row.bonusType)"
|
||||
>详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['teacher:kpiFillingPoints:edit']"
|
||||
>修改</el-button> -->
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['teacher:kpiFillingPoints:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改业绩考核-个人填报-加分项对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="填报人名称" prop="fdyName">
|
||||
<el-input v-model="form.fdyName" placeholder="请输入填报人名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="填报年份" prop="fillingYear">
|
||||
<el-input v-model="form.fillingYear" placeholder="请输入填报年份" />
|
||||
</el-form-item>
|
||||
<el-form-item label="填报月份" prop="fillingMonth">
|
||||
<el-input v-model="form.fillingMonth" placeholder="请输入填报月份" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分数" prop="bonusScoring">
|
||||
<el-input v-model="form.bonusScoring" placeholder="请输入分数" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 加分项详情对话框 -->
|
||||
<el-dialog
|
||||
title="加分项详情"
|
||||
:visible.sync="detailsOpen"
|
||||
width="600px"
|
||||
append-to-body
|
||||
>
|
||||
<div style="font-size: 16px; line-height: 1.8; padding: 20px;">
|
||||
{{ detailsContent }}
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="detailsOpen = false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listKpiFillingPoints, getKpiFillingPoints, delKpiFillingPoints, addKpiFillingPoints, updateKpiFillingPoints } from "@/api/teacher/kpiFillingPoints";
|
||||
|
||||
export default {
|
||||
name: "KpiFillingPoints",
|
||||
dicts: ['sys_teacher_kpi_filling_year', 'sys_teacher_kpi_filling_month'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 业绩考核-个人填报-加分项表格数据
|
||||
kpiFillingPointsList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 详情弹窗是否显示
|
||||
detailsOpen: false,
|
||||
// 详情内容
|
||||
detailsContent: "",
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
fillingYear: null,
|
||||
fillingMonth: null,
|
||||
classType: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询业绩考核-个人填报-加分项列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listKpiFillingPoints(this.queryParams).then(response => {
|
||||
this.kpiFillingPointsList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 显示加分项详情
|
||||
showDetails(type) {
|
||||
if (type === 'option1') {
|
||||
this.detailsContent = "1.获得上级部门或学校表扬,妥善处置学生事件并形成典型案例,积极建言献策且建议被采纳,发挥模范带头作用。(+10分)";
|
||||
} else if (type === 'option2') {
|
||||
this.detailsContent = "2.在学校、学院阶段性重要任务推进过程中,主动担当作为,切实发挥作用。(+10分)";
|
||||
} else if (type === 'option3') {
|
||||
this.detailsContent = "3.协助学校开展辅导员培训、会议和学生活动,在活动中担任工作人员。(+10分)";
|
||||
} else {
|
||||
this.detailsContent = "暂无详情";
|
||||
}
|
||||
this.detailsOpen = true;
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
bonusType: null,
|
||||
fdyName: null,
|
||||
fillingYear: null,
|
||||
fillingMonth: null,
|
||||
classType: null,
|
||||
bonusScoring: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加业绩考核-个人填报-加分项";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getKpiFillingPoints(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改业绩考核-个人填报-加分项";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateKpiFillingPoints(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addKpiFillingPoints(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除业绩考核-个人填报-加分项编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delKpiFillingPoints(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('teacher/kpiFillingBonusPoints/export', {
|
||||
...this.queryParams
|
||||
}, `kpiFillingPoints_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -75,9 +75,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['teacher:kpiFillingRewardsKpi:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
<!-- <el-button v-hasPermi="['teacher:kpiFillingRewardsKpi:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改</el-button>
|
||||
>修改</el-button> -->
|
||||
<el-button v-hasPermi="['teacher:kpiFillingRewardsKpi:remove']" size="mini" type="text" icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
|
||||
@@ -93,9 +93,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['teacher:kpiFillingStuEmergency:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
<!-- <el-button v-hasPermi="['teacher:kpiFillingStuEmergency:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改</el-button>
|
||||
>修改</el-button> -->
|
||||
<el-button v-hasPermi="['teacher:kpiFillingStuEmergency:remove']" size="mini" type="text" icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['teacher:teacherKpiFillingMgt:add']">新增</el-button>
|
||||
</el-col>
|
||||
@@ -41,7 +41,7 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||
v-hasPermi="['teacher:teacherKpiFillingMgt:remove']">删除</el-button>
|
||||
</el-col> -->
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['teacher:teacherKpiFillingMgt:export']" type="warning" plain icon="el-icon-download" size="mini"
|
||||
@click="handleExport"
|
||||
@@ -54,9 +54,18 @@
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="班会材料分数" align="center" prop="classScoring" />
|
||||
<el-table-column label="班团干部会议材料分数" align="center" prop="cadreScoring" />
|
||||
<el-table-column label="学生开展活动材料分数" align="center" prop="stuActivityScoring" />
|
||||
<el-table-column label="学生开展活动材料分数" align="center" prop="stuActivityScoring" />
|
||||
<el-table-column label="学生谈话分数" align="center" prop="stuTalkScoring" />
|
||||
<el-table-column label="每周深入学生宿舍材料分数" align="center" prop="visitDormitoryScoring" />
|
||||
<el-table-column label="职业测评分数" align="center" prop="edgScoring" />
|
||||
<el-table-column label="工作完成情况评分" align="center" prop="noticeScoring" />
|
||||
<el-table-column label="班级类型" align="center" prop="classType">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.classType === 'graduate'" type="primary">毕业班</el-tag>
|
||||
<el-tag v-else-if="scope.row.classType === 'ungraduate'" type="success">非毕业班</el-tag>
|
||||
<span v-else>{{ scope.row.classType }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="填报人名称" align="center" prop="fdyName" />
|
||||
<el-table-column label="学院" align="center" prop="departmentName">
|
||||
<template slot-scope="scope">
|
||||
@@ -75,9 +84,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['teacher:teacherKpiFillingMgt:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
<!-- <el-button v-hasPermi="['teacher:teacherKpiFillingMgt:edit']" size="mini" type="text" icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改</el-button>
|
||||
>修改</el-button> -->
|
||||
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="examineFdy(scope.row)"
|
||||
v-hasPermi="['teacher:teacherKpiFillingMgt:edit']">查看辅导员自评</el-button> -->
|
||||
<el-button v-hasPermi="['teacher:teacherKpiFillingMgt:remove']" size="mini" type="text" icon="el-icon-delete"
|
||||
|
||||
@@ -60,6 +60,17 @@ module.exports = {
|
||||
'@': resolve('src')
|
||||
}
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
include: [/node_modules[\\/](domify|min-dom)[\\/]/],
|
||||
use: {
|
||||
loader: 'babel-loader'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
// http://doc.baidu.vip/baidu-vue/other/faq.html#使用gzip解压缩静态文件
|
||||
new CompressionPlugin({
|
||||
|
||||
Reference in New Issue
Block a user