综合素质评价

This commit is contained in:
MDSMO
2025-08-29 19:51:59 +08:00
parent 3027834baf
commit 1573c9f4e1
2 changed files with 247 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
import request from '@/utils/request'
// 查询辅导员综合评价完成状态列表
export function getTeacherEvaluationStatus(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/list',
method: 'get',
params: query
})
}
// 导出辅导员综合评价完成状态
export function exportTeacherEvaluationStatus(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 查询辅导员待办事项数量
export function getTeacherTodoCount(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/todoCount',
method: 'get',
params: query
})
}
// 查询综合评价成绩导入状态
export function getScoreImportStatus(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/scoreImportStatus',
method: 'get',
params: query
})
}
// 获取辅导员详细信息
export function getTeacherDetail(teacherId) {
return request({
url: '/comprehensive/teacherEvaluationStatus/' + teacherId,
method: 'get'
})
}
// 批量更新辅导员评价状态
export function batchUpdateStatus(data) {
return request({
url: '/comprehensive/teacherEvaluationStatus/batchUpdate',
method: 'post',
data: data
})
}
// 获取学院列表
export function getDeptNameList(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/deptList',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,183 @@
<template>
<div class="app-container" v-loading.fullscreen.lock="fullLoading">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
<el-form-item label="学院" prop="deptId">
<el-select v-model="queryParams.deptId" placeholder="请选择学院" clearable @keyup.enter.native="handleQuery">
<el-option v-for="(dept, index) in deptList" :key="index" :label="dept.label" :value="dept.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="辅导员姓名" prop="teacherName">
<el-input v-model="queryParams.teacherName" placeholder="请输入辅导员姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="工号" prop="employeeId">
<el-input v-model="queryParams.employeeId" placeholder="请输入工号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学年" prop="stuYearId">
<el-select v-model="queryParams.stuYearId" placeholder="请选择学年" clearable @keyup.enter.native="handleQuery">
<el-option v-for="year in yearList" :key="year.id" :label="year.stuYearName" :value="year.id">
</el-option>
</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="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="teacherStatusList">
<el-table-column label="学院" align="center" prop="deptName" width="150" />
<el-table-column label="辅导员姓名" align="center" prop="teacherName" width="120" />
<el-table-column label="工号" align="center" prop="employeeId" width="120" />
<el-table-column label="学年" align="center" prop="stuYearName" width="120" />
<el-table-column label="是否完成综合测评" align="center" prop="isCompleted" width="150">
<template slot-scope="scope">
<el-tag :type="scope.row.isCompleted ? 'success' : 'danger'">
{{ scope.row.isCompleted ? '已完成' : '未完成' }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="待办事项数量" align="center" prop="todoCount" width="120" />
<el-table-column label="成绩导入状态" align="center" prop="scoreImported" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.scoreImported ? 'success' : 'warning'">
{{ scope.row.scoreImported ? '已导入' : '未导入' }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remarks" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</div>
</template>
<script>
import { getTeacherEvaluationStatus, exportTeacherEvaluationStatus, getDeptNameList } from "@/api/stuCQS/teacher-evaluation-status";
import { listAllYear } from "@/api/stuCQS/basedata/year";
import { fullLoading } from "@/api/helpFunc";
export default {
name: "TeacherEvaluationStatus",
data() {
return {
fullLoading: false,
// 遮罩层
loading: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 辅导员评价状态表格数据
teacherStatusList: [],
// 学院列表
deptList: [],
// 学年列表
yearList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 50,
deptId: null,
teacherName: null,
employeeId: null,
stuYearId: null
}
};
},
created() {
this.getList();
this.getDeptList();
this.getYearList();
},
methods: {
/** 查询辅导员评价状态列表 */
async getList() {
this.loading = true;
try {
const response = await getTeacherEvaluationStatus(this.queryParams);
this.teacherStatusList = response.rows;
this.total = response.total;
} catch (error) {
this.$modal.msgError("查询失败");
} finally {
this.loading = false;
}
},
/** 获取学院列表 */
async getDeptList() {
try {
const response = await getDeptNameList({});
console.log("学院数据响应:", response);
this.deptList = response.data;
} catch (error) {
console.error("获取学院列表失败", error);
}
},
/** 获取学年列表 */
async getYearList() {
try {
const response = await listAllYear();
if (response.code === 200) {
this.yearList = response.data;
}
} catch (error) {
console.error("获取学年列表失败", error);
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 导出按钮操作 */
async handleExport() {
try {
const loading = fullLoading(this);
await exportTeacherEvaluationStatus(this.queryParams);
this.$modal.msgSuccess("导出成功");
} catch (error) {
this.$modal.msgError("导出失败");
} finally {
this.fullLoading = false;
}
}
}
};
</script>
<style scoped>
.app-container {
padding: 20px;
color: #333;
}
.el-table {
color: #333;
}
.el-form-item label {
color: #333;
}
.el-input input {
color: #333;
}
.el-select .el-input input {
color: #333;
}
</style>