Files
zhxg_pc/src/views/teacher/kpiFilling/kpiFillingPoints/index.vue
林尉华666 c7b4834e74 辅导员管理-业绩考核-填报信息-“就业指导工作“和”加分项“
添加了就业指导页面,和加分项页面
2026-03-18 11:30:03 +08:00

352 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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-input
v-model="queryParams.fillingYear"
placeholder="请输入填报年份"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="填报月份" prop="fillingMonth">
<el-input
v-model="queryParams.fillingMonth"
placeholder="请输入填报月份"
clearable
@keyup.enter.native="handleQuery"
/>
</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",
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>