Commit b1203c9f by zhaopanyu

zpy 12.18

parent 31d79280
import request from "@/utils/request";
// 查询高考成绩列表
export function listAchievement(query) {
return request({
url: "/achievement/list",
method: "get",
params: query,
});
}
// 查询高考成绩列表(个人)
export function listAchievementgr(query) {
return request({
url: "/achievement/teacher/list",
method: "get",
params: query,
});
}
//审核
export function audit(data) {
return request({
url: "/achievement",
method: "put",
data: data,
});
}
// 查询高考成绩详细
export function getAchievement(id) {
return request({
url: "/achievement/" + id,
method: "get",
});
}
// 新增高考成绩
export function addAchievement(data) {
return request({
url: "/achievement",
method: "post",
data: data,
});
}
// 修改高考成绩
export function updateAchievement(data) {
return request({
url: "/achievement",
method: "put",
data: data,
});
}
// 删除高考成绩
export function delAchievement(id) {
return request({
url: "/achievement/" + id,
method: "delete",
});
}
import request from "@/utils/request";
// 综合查询接口
export function listAward(query) {
return request({
url: "/teacher/basiclnformation/comprehensive",
method: "get",
params: query,
});
}
import request from "@/utils/request";
// 查看辅导学生获奖列表
export function listAward(query) {
return request({
url: "/school/fudaos/studentlist",
method: "get",
params: query,
});
}
//查看辅导教师列表(个人)
export function listAwardgr(query) {
return request({
url: "/school/fudaos/studentlistGr",
method: "get",
params: query,
});
}
// 查询辅导教师获奖详细
export function getAward(id) {
return request({
url: "/school/fudaos/" + id,
method: "get",
});
}
// 新增辅导教师获奖
export function addAward(data) {
return request({
url: "/school/fudaos/addgl",
method: "post",
data: data,
});
}
// 新增辅导教师获奖(个人)
export function addAwardgr(data) {
return request({
url: "/school/fudaos/add",
method: "post",
data: data,
});
}
// 修改辅导教师获奖
export function updateAward(data) {
return request({
url: "/school/fudaos/edit",
method: "put",
data: data,
});
}
// 删除辅导教师获奖
export function delAward(id) {
return request({
url: "/school/fudaos/delete/" + id,
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/school/fudaos/submit",
method: "put",
data: data,
});
}
...@@ -8,6 +8,14 @@ export function listWorks(query) { ...@@ -8,6 +8,14 @@ export function listWorks(query) {
params: query, params: query,
}); });
} }
// 查询论文著作列表个人
export function listWorksgr(query) {
return request({
url: "/system/works/listGr",
method: "get",
params: query,
});
}
// 查询论文著作详细 // 查询论文著作详细
export function getWorks(id) { export function getWorks(id) {
......
...@@ -9,6 +9,14 @@ export function listAwards(query) { ...@@ -9,6 +9,14 @@ export function listAwards(query) {
}); });
} }
// 查询讲课获奖列表
export function listAwardsgr(query) {
return request({
url: "/system/awards/listGr",
method: "get",
params: query,
});
}
// 查询讲课获奖详细 // 查询讲课获奖详细
export function getAwards(id) { export function getAwards(id) {
return request({ return request({
......
import request from "@/utils/request";
// 查询课题研究列表
export function listResearch(query) {
return request({
url: "/system/research/list",
method: "get",
params: query,
});
}
// 查询课题研究列表个人
export function listResearchgr(query) {
return request({
url: "/system/research/listGr",
method: "get",
params: query,
});
}
// 查询课题研究详细
export function getResearch(id) {
return request({
url: "/system/research/" + id,
method: "get",
});
}
// 新增课题研究
export function addResearch(data) {
return request({
url: "/system/research",
method: "post",
data: data,
});
}
// 修改课题研究
export function updateResearch(data) {
return request({
url: "/system/research",
method: "put",
data: data,
});
}
// 删除课题研究
export function delResearch(id) {
return request({
url: "/system/research/" + id,
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/system/research/audit",
method: "post",
data: data,
});
}
...@@ -8,7 +8,14 @@ export function listAwards(query) { ...@@ -8,7 +8,14 @@ export function listAwards(query) {
params: query, params: query,
}); });
} }
// 查询教师获奖列表个人
export function listAwardsgr(query) {
return request({
url: "/school/teacherAwards/listGr",
method: "get",
params: query,
});
}
// 查询教师获奖详细 // 查询教师获奖详细
export function getAwards(id) { export function getAwards(id) {
return request({ return request({
......
import request from "@/utils/request";
// 查询辅导教师获奖列表
export function listAward(query) {
return request({
url: "/school/fudaot/teacher",
method: "get",
params: query,
});
}
//查看辅导教师列表(个人)
export function listAwardgr(query) {
return request({
url: "/school/fudaot/teacherGr",
method: "get",
params: query,
});
}
// 查询辅导教师获奖详细
export function getAward(id) {
return request({
url: "/school/fudaot/" + id,
method: "get",
});
}
// 新增辅导教师获奖
export function addAward(data) {
return request({
url: "/school/fudaot/addgl",
method: "post",
data: data,
});
}
// 新增辅导教师获奖(个人)
export function addAwardgr(data) {
return request({
url: "/school/fudaot/add",
method: "post",
data: data,
});
}
// 修改辅导教师获奖
export function updateAward(data) {
return request({
url: "/school/fudaot/edit",
method: "put",
data: data,
});
}
// 删除辅导教师获奖
export function delAward(id) {
return request({
url: "/school/fudaot/delete/" + id,
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/school/fudaot/submit",
method: "put",
data: data,
});
}
import request from "@/utils/request";
// 查询团队获奖列表
export function listAward(query) {
return request({
url: "/school/award/list",
method: "get",
params: query,
});
}
// 查询团队获奖详细
export function getAward(id) {
return request({
url: "/school/award/" + id,
method: "get",
});
}
// 新增团队获奖
export function addAward(data) {
return request({
url: "/school/award",
method: "post",
data: data,
});
}
// 修改团队获奖
export function updateAward(data) {
return request({
url: "/school/award",
method: "put",
data: data,
});
}
// 审核
export function audit(data) {
return request({
url: "/school/award",
method: "put",
data: data,
});
}
// 删除团队获奖
export function delAward(id) {
return request({
url: "/school/award/" + id,
method: "delete",
});
}
<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="year">
<el-select v-model="queryParams.year" placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.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="teachingClassName">
<el-select v-model="queryParams.teachingClassName" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="高考评优" prop="gkAppraising">
<el-select v-model="queryParams.gkAppraising" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.gk_appraising" :key="dict.value" :label="dict.label"
:value="dict.value">
</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="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:achievement: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="['system:achievement: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="['system:achievement: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="['system:achievement:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="achievementList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'year', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" sortable />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="届别" align="center" prop="year" sortable />
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="教师姓名" align="center" prop="teacherName" sortable />
<el-table-column label="授课班级" align="center" prop="teachingClassName" sortable />
<el-table-column label="班级类型" align="center" prop="classType" sortable>
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="高考评优" align="center" prop="gkAppraising" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.gk_appraising" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="尖子生培养" align="center" prop="topStudentsCulture" sortable />
<el-table-column label="增量情况" align="center" prop="incrementSituation" sortable />
<el-table-column label="有效数情况" align="center" prop="effectiveNumSituation" sortable />
<el-table-column label="其他" align="center" prop="other" sortable />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</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="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="92px">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教师姓名" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入教师姓名" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授课班级" prop="teachingClassName">
<el-select v-model="form.teachingClassName" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="高考评优" prop="gkAppraising">
<el-select v-model="form.gkAppraising" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.gk_appraising" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="尖子生培养" prop="topStudentsCulture">
<el-input v-model="form.topStudentsCulture" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="增量情况" prop="incrementSituation">
<el-input v-model="form.incrementSituation" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="有效数情况" prop="effectiveNumSituation">
<el-input v-model="form.effectiveNumSituation" placeholder="请输入有效数情况" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="其他" prop="other">
<el-input v-model="form.other" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</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="title" :visible.sync="look" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="92px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教师姓名" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入教师姓名" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授课班级" prop="teachingClassName">
<el-select v-model="form.teachingClassName" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="高考评优" prop="gkAppraising">
<el-select v-model="form.gkAppraising" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.gk_appraising" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="尖子生培养" prop="topStudentsCulture">
<el-input v-model="form.topStudentsCulture" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="增量情况" prop="incrementSituation">
<el-input v-model="form.incrementSituation" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="有效数情况" prop="effectiveNumSituation">
<el-input v-model="form.effectiveNumSituation" placeholder="请输入有效数情况" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="其他" prop="other">
<el-input v-model="form.other" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAchievement, getAchievement, delAchievement, addAchievement, updateAchievement, audit, listAchievementgr } from "@/api/smartSchool/electronicArchives/examinationScore";;
export default {
name: "Achievement",
dicts: ["teaching_subjects", 'class_type', 'rankda', 'gk_appraising', 'class_num'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 高考成绩表格数据
achievementList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
isEdit: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
sub: null,
teacherName: null,
year: null,
teachingClassName: null,
classType: null,
gkAppraising: null,
topStudentsCulture: null,
incrementSituation: null,
effectiveNumSituation: null,
other: null,
auditState: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
teacherName: [
{ required: true, message: "教师姓名不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "blur" }
],
teachingClassName: [
{ required: true, message: "授课班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
gkAppraising: [
{ required: true, message: "高考评优不能为空", trigger: "blur" }
],
topStudentsCulture: [
{ required: true, message: "尖子生培养不能为空", trigger: "blur" }
],
incrementSituation: [
{ required: true, message: "增量情况不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询高考成绩列表 */
getList() {
this.loading = true;
listAchievement(this.queryParams).then(response => {
this.achievementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getSelectedTypes(classType) {
const selectedTypes = classType.split(','); // 将逗号分隔的字符串转换为数组
return this.dict.type.class_type.filter(option => selectedTypes.includes(option.value.toString()));
},
//审核
handleExamine(row) {
const id = row.id || this.ids;
getAchievement(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "审核";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
sub: null,
teacherName: null,
year: null,
teachingClassName: null,
classType: null,
gkAppraising: null,
topStudentsCulture: null,
incrementSituation: null,
effectiveNumSituation: null,
other: null,
auditState: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: 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.isEdit = false,
this.title = "添加高考成绩";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
this.isEdit = false,
getAchievement(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.open = true;
this.title = "修改高考成绩";
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getAchievement(id).then(response => {
this.form = response.data;
this.title = "查看";
});
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAchievement({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAchievement({ ...this.form, classType: classTypeStr }).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 delAchievement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/achievement/export', {
...this.queryParams
}, `高考成绩_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<template>
<div class="app-container">
<div class="seach">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
<el-form-item label="教师信息" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入教师姓名" clearable @keyup.enter.native="handleQuery"
style="width: 600px;" />
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="queryParams.idCard" placeholder="请输入身份证号" clearable @keyup.enter.native="handleQuery"
style="width: 600px;" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button type="warning" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="danger" icon="el-icon-refresh" size="mini" @click="resetQuery">导出</el-button>
</el-form-item>
</el-form>
</div>
<div class="title">
— 教师个人信息汇总 —
</div>
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">基本信息</div>
<div style="margin: 3px 10px 15px;">
<el-form :v-model="data" ref="data">
<!-- 距离 -->
<div style="height: 12px;"></div>
<div class="userinfo">
<el-col :span="20">
<!-- f1 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>性别</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f2 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>性别</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f3 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>性别</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f4 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>性别</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f5 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>性别</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f6 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>性别</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-col>
<el-col :span="4">
<el-card>
<div style="height:143px">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia
esse,
odit modi nesciunt
quaerat necessitatibus eius nisi quis accusantium, quo obcaecati perferendis ab tempore
quos, perspiciatis repudiandae sed mollitia iure!
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Beatae quod recusandae quaerat
veniam officia tenetur dicta laborum atque incidunt esse et quos sit, animi impedit
ipsum
error repellendus repellat magnam!</div>
</el-card>
</el-col>
<!-- f1 -->
<el-row>
<el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="2" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="2" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="2" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="2" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="2" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="2" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="2" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f2 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f3 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f4 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f5 -->
<el-row>
<el-col :span="24">
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item></el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ data.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</div>
</el-form>
</div>
</div>
<!--工作量信息 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">工作量信息</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="aworkloadList">
<el-table-column label="学年" align="center" prop="schoolYear" width="90px" fixed="left" />
<el-table-column label="学期" align="center" prop="semester" fixed="left">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" fixed="left" />
<el-table-column label="年级" align="center" prop="grade" fixed="left">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="聘任岗位" align="center" prop="appointmentPost" width="120px">
<template slot-scope="scope">
<dict-tag :options="dict.type.appointment_positions" :value="scope.row.appointmentPost" />
</template>
</el-table-column>
<el-table-column label="聘任职务" align="center" prop="appointmentPosition" width="120px" />
<el-table-column label="聘任情况" align="center" prop="appointmentSituation" width="120px" />
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="班级类型" align="center">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="早读" align="center" prop="earlyReading" />
<el-table-column label="正课" align="center" prop="requiredCourses" />
<el-table-column label="晚自习" align="center" prop="eveningSelfStudy" width="120px" />
<el-table-column label="合计" align="center" prop="amountTo" />
<el-table-column label="证明人" align="center" prop="userName" width="120px" fixed="right" />
<el-table-column label="备注" align="center" prop="remark" fixed="right" />
</el-table>
</div>
</div>
<!--班主任考核信息 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">班主任考核</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="assessmentList">
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" />
<el-table-column label="年级" align="center" prop="grade">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="班级类型" align="center" prop="classType" width="180px">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="teacherName" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="德育考核成绩" align="center" prop="moralEduCheckAchievement" width="130px" />
<el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" width="130px" />
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
</div>
</div>
<!--专业成长 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">专业成长</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="assessmentList">
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" />
<el-table-column label="年级" align="center" prop="grade">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="班级类型" align="center" prop="classType" width="180px">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="teacherName" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="德育考核成绩" align="center" prop="moralEduCheckAchievement" width="130px" />
<el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" width="130px" />
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
data: { name: 11, },
queryParams: { name: 11, idCard: 123456789012345678 },
showSearch: true,
}
},
methods: {
getSelectedTypes(classType) {
const selectedTypes = classType.split(','); // 将逗号分隔的字符串转换为数组
return this.dict.type.class_type.filter(option => selectedTypes.includes(option.value.toString()));
},
},
}
</script>
<style>
.el-form-item {
margin-bottom: 0;
}
/* ::v-deep .el-form-item--medium .el-form-item__content {
line-height: 32px;
text-align: center;
color: pink;
} */
.userinfo {
border: 1px solid #e0dfdf;
}
.border_right {
border-right: 1px solid #e0dfdf;
}
.border_left {
border-left: 1px solid #e0dfdf;
}
.border_top {
border-top: 1px solid #e0dfdf;
}
.border_bottom {
border-bottom: 1px solid #e0dfdf;
}
.table_cell {
height: 30px;
line-height: 30px;
text-align: center;
border-top: 1px solid #e0dfdf;
border-bottom: 1px solid #e0dfdf;
}
.table_cell:last-child {
border-bottom: 1px solid #e0dfdf;
}
.el-input--medium .el-input__inner {
line-height: 20px;
}
.card_title {
background-color: #f3f3f3;
padding: 12px;
border-radius: 13px 13px 0 0;
}
.title {
border: 1px solid #e0dfdf;
text-align: center;
padding: 10px;
margin: 15px 0;
font-size: 30px;
}
.seach {
background-color: #f3f3f3;
padding: 10px;
border-radius: 30px;
}
</style>
\ No newline at end of file
<template> <template>
<div> <div class="app-container">
<h2>教师个人信息汇总</h2> <div class="seach">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
<el-form-item label="教师信息" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入教师姓名" clearable @keyup.enter.native="handleQuery"
style="width: 600px;" />
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="queryParams.idCard" placeholder="请输入身份证号" clearable @keyup.enter.native="handleQuery"
style="width: 600px;" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">查询</el-button>
<el-button type="warning" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="danger" icon="el-icon-refresh" size="mini" @click="resetQuery">导出</el-button>
</el-form-item>
</el-form>
</div>
<div class="title">
— 教师个人信息汇总 —
</div>
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">基本信息</div>
<div style="margin: 3px 10px 15px;">
<el-form :v-model="form" ref="form">
<!-- 距离 -->
<div style="height: 12px;"></div>
<div class="userinfo">
<el-col :span="18">
<!-- f1 -->
<el-row>
<el-col :span="24">
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>姓名</span>
</el-form-item></el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ form.name }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>性别</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="sex">
<span>{{ form.sex }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="age">
<span>年龄</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="age">
<span>{{ form.age }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f2 -->
<el-row>
<el-col :span="24">
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="birthDate">
<span>出生年月</span>
</el-form-item></el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="birthDate">
<span>{{ form.birthDate }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="hometown">
<span>籍贯</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="hometown">
<span>{{ form.hometown }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="nation">
<span>民族</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="nation">
<span>{{ form.nation }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
<!-- f3 -->
<el-row>
<el-col :span="24">
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="idCard">
<span>身份证号</span>
</el-form-item></el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="idCard">
<span>{{ form.idCard }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="fileBirthDate">
<span>档案出生年月</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="fileBirthDate">
<span>{{ form.fileBirthDate }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="politicalLandscape">
<span>政治面貌</span>
</el-form-item>
</el-col>
<el-col :span="4" class="border_right border-bottom table_cell">
<el-form-item prop="politicalLandscape">
<span>{{ form.politicalLandscape }}</span>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-col>
<el-col :span="6">
<el-card>
<div style="height:143px">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia
esse,
odit modi nesciunt
quaerat necessitatibus eius nisi quis accusantium, quo obcaecati perferendis ab tempore
quos, perspiciatis repudiandae sed mollitia iure!
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Beatae quod recusandae quaerat
veniam officia tenetur dicta laborum atque incidunt esse et quos sit, animi impedit
ipsum
error repellendus repellat magnam!</div>
</el-card>
</el-col>
<!-- f1 -->
<el-row>
<el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>职务</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>{{ form.name }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>教师资格种类</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ form.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>教师资格号码</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ form.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<span>参加工作时间</span>
</el-form-item>
</el-col>
<el-col :span="3" class="border_right border-bottom table_cell">
<el-form-item prop="name">
<el-form-item prop="name">
<span>{{ form.name }}</span>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</div>
</el-form>
</div>
</div>
<!--工作量信息 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">工作量信息</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="schoolAworkload">
<el-table-column label="学年" align="center" prop="schoolYear" width="90px" fixed="left" />
<el-table-column label="学期" align="center" prop="semester" fixed="left">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" fixed="left" />
<el-table-column label="年级" align="center" prop="grade" fixed="left">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="聘任岗位" align="center" prop="appointmentPost" width="120px">
<template slot-scope="scope">
<dict-tag :options="dict.type.appointment_positions" :value="scope.row.appointmentPost" />
</template>
</el-table-column>
<el-table-column label="聘任职务" align="center" prop="appointmentPosition" width="120px" />
<el-table-column label="聘任情况" align="center" prop="appointmentSituation" width="120px" />
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="班级类型" align="center">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="早读" align="center" prop="earlyReading" />
<el-table-column label="正课" align="center" prop="requiredCourses" />
<el-table-column label="晚自习" align="center" prop="eveningSelfStudy" width="120px" />
<el-table-column label="合计" align="center" prop="amountTo" />
<el-table-column label="证明人" align="center" prop="userName" width="120px" fixed="right" />
<el-table-column label="备注" align="center" prop="remark" fixed="right" />
</el-table>
</div>
</div>
<!--班主任考核信息 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">班主任考核</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="schoolAclassTeacherAssessments">
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" />
<el-table-column label="年级" align="center" prop="grade">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="班级类型" align="center" prop="classType" width="180px">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="teacherName" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="德育考核成绩" align="center" prop="moralEduCheckAchievement" width="130px" />
<el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" width="130px" />
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
</div>
</div>
<!--专业成长 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">专业成长</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="specialityVos">
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" />
<el-table-column label="年级" align="center" prop="grade">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="班级类型" align="center" prop="classType" width="180px">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="teacherName" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="德育考核成绩" align="center" prop="moralEduCheckAchievement" width="130px" />
<el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" width="130px" />
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
</div>
</div>
<!--高考成绩 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">高考成绩 </div>
<div style="margin: 3px 10px 15px;">
<el-table :data="schoolGkAchievement">
<el-table-column label="届别" align="center" prop="year" sortable />
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="教师姓名" align="center" prop="teacherName" sortable />
<el-table-column label="授课班级" align="center" prop="teachingClassName" sortable />
<el-table-column label="班级类型" align="center" prop="classType" sortable>
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="高考评优" align="center" prop="gkAppraising" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.gk_appraising" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="尖子生培养" align="center" prop="topStudentsCulture" sortable />
<el-table-column label="增量情况" align="center" prop="incrementSituation" sortable />
<el-table-column label="有效数情况" align="center" prop="effectiveNumSituation" sortable />
<el-table-column label="其他" align="center" prop="other" sortable />
</el-table>
</div>
</div>
<!--教学成绩 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">教学成绩</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="schoolXteachingAchievements">
<el-table-column label="学年" align="center" prop="schoolYear" sortable />
<el-table-column label="学期" align="center" prop="semester" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="考试时间" align="center" prop="examTime" width="180" sortable>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.examTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="考试类型" align="center" prop="examType" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.exam_typeda" :value="scope.row.examType" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" sortable />
<el-table-column label="年级" align="center" prop="grade" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="userName" sortable />
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" sortable>
</el-table-column>
<el-table-column label="班级类型" align="center" sortable>
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="考核分" align="center" prop="assessmentScore" sortable />
</el-table>
</div>
</div>
<!--辅导教师获奖 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">辅导老师获奖</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="fudaoTeacher">
<el-table-column label="成长类型" align="center">
<template>
<span>辅导老师获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardtype" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_type_fdjs" :value="scope.row.awardtype" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardlevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardlevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardrank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardrank" />
</template>
</el-table-column>
<el-table-column label="比赛名称" align="center" prop="competitionname" sortable />
<el-table-column label="获奖人" align="center" prop="username" sortable />
<el-table-column label="指导教师" align="center" prop="guidanceteacher" sortable />
<el-table-column label="辅导职责" align="center" prop="coachingr" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.coachingr" :value="scope.row.coachingr" />
</template>
</el-table-column>
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardtime" width="180" sortable>
<!-- <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> -->
</el-table-column>
</el-table>
</div>
</div>
<!--辅导学生获奖 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">辅导学生获奖</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="fudaoStudent">
<el-table-column label="成长类型" align="center">
<template>
<span>辅导学生获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardtype" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_type_fdxs" :value="scope.row.awardtype" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardlevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardlevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardrank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardrank" />
</template>
</el-table-column>
<el-table-column label="比赛名称" align="center" prop="resultname" sortable />
<el-table-column label="获奖人" align="center" prop="username" sortable />
<el-table-column label="指导教师" align="center" prop="guidanceteacher" sortable />
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardtime" width="180" sortable>
<!-- <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> -->
</el-table-column>
</el-table>
</div>
</div>
<!--年度考核 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">年度考核</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="schoolAnnualAssessment">
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="年度" align="center" prop="year" />
<el-table-column label="考核结果" align="center" prop="checkResult">
<template slot-scope="scope">
<dict-tag :options="dict.type.check_result" :value="scope.row.checkResult" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { listAward } from "@/api/smartSchool/electronicArchives/personalInformation";
export default { export default {
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda'],
data() {
return {
//工作量信息
schoolAworkload: [],
//班主任考核
schoolAclassTeacherAssessments: [],
//年度考核
schoolAnnualAssessment: [],
//教学成绩
schoolXteachingAchievements: [],
// 高考成绩
schoolGkAchievement: [],
//辅导老师获奖
fudaoTeacher: [],
//辅导学生获奖
fudaoStudent: [],
//专业成长
specialityVos: [],
form: {},
queryParams: {},
showSearch: true,
}
},
created() {
this.getList();
},
methods: {
getSelectedTypes(classType) {
const selectedTypes = classType.split(','); // 将逗号分隔的字符串转换为数组
return this.dict.type.class_type.filter(option => selectedTypes.includes(option.value.toString()));
},
//查询
getList() {
this.loading = true;
listAward(this.queryParams).then(response => {
console.log(response, response.data);
this.form = response.data.basicInformation;
this.schoolAworkload = response.data.schoolAworkload;
this.schoolAclassTeacherAssessments = response.data.schoolAclassTeacherAssessments;
this.schoolXteachingAchievements = response.data.schoolXteachingAchievements;
this.schoolAnnualAssessment = response.data.schoolAnnualAssessment;
this.schoolXteachingAchievements = response.data.schoolXteachingAchievements;
this.schoolGkAchievement = response.data.schoolGkAchievement;
this.fudaoTeacher = response.data.fudaoTeacher
this.fudaoStudent = response.data.fudaoStudent
this.specialityVos = response.data.specialityVos
this.total = response.total;
this.loading = false;
});
},
resetQuery() {
this.queryParams = {
name: '',
idCard: '',
};
this.getList();
},
},
} }
</script> </script>
<style lang="scss" scoped></style> <style>
\ No newline at end of file .el-form-item {
margin-bottom: 0;
}
/* ::v-deep .el-form-item--medium .el-form-item__content {
line-height: 32px;
text-align: center;
color: pink;
} */
.userinfo {
border: 1px solid #e0dfdf;
}
.border_right {
border-right: 1px solid #e0dfdf;
}
.border_left {
border-left: 1px solid #e0dfdf;
}
.border_top {
border-top: 1px solid #e0dfdf;
}
.border_bottom {
border-bottom: 1px solid #e0dfdf;
}
.table_cell {
height: 30px;
line-height: 30px;
text-align: center;
border-top: 1px solid #e0dfdf;
border-bottom: 1px solid #e0dfdf;
}
.table_cell:last-child {
border-bottom: 1px solid #e0dfdf;
}
.el-input--medium .el-input__inner {
line-height: 20px;
}
.card_title {
background-color: #f3f3f3;
padding: 12px;
border-radius: 13px 13px 0 0;
}
.title {
border: 1px solid #e0dfdf;
text-align: center;
padding: 10px;
margin: 15px 0;
font-size: 30px;
}
.seach {
background-color: #f3f3f3;
padding: 10px;
border-radius: 30px;
}
</style>
\ No newline at end of file
<template>
<div>
<h2></h2>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped></style>
\ No newline at end of file
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="年度" prop="year"> <el-form-item label="年度" prop="year">
<el-input v-model="queryParams.year" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" /> <el-select v-model="queryParams.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="考核结果" prop="checkResult"> <el-form-item label="考核结果" prop="checkResult">
<el-select v-model="queryParams.checkResult" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.checkResult" placeholder="请选择" style="width: 100%;">
...@@ -94,7 +97,11 @@ ...@@ -94,7 +97,11 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <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 ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="年度" prop="year"> <el-form-item label="年度" prop="year">
<el-input v-model="form.year" placeholder="请输入年度" /> <el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" /> <el-input v-model="form.name" placeholder="请输入姓名" />
...@@ -129,7 +136,7 @@ import { uploadImage as commonUpload } from '@/api/common' ...@@ -129,7 +136,7 @@ import { uploadImage as commonUpload } from '@/api/common'
import { checkIdcard } from '@/utils/utilLibrary/validate' import { checkIdcard } from '@/utils/utilLibrary/validate'
export default { export default {
name: "Assessment", name: "Assessment",
dicts: ["check_result"], dicts: ["check_result", 'rankda'],
data() { data() {
return { return {
uploadOpen: false, uploadOpen: false,
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.sub" placeholder="请选择">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardtype" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_type_fdxs" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardrank" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖等级" prop="awardlevel">
<el-form-item label="获奖等级" prop="awardLevel"> <el-select v-model="queryParams.awardlevel" placeholder="请选择" style="width:220px;">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="username">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.username" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="指导教师" prop="guidanceteacher">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd" <el-input v-model="queryParams.guidanceteacher" placeholder="请输入内容" style="width: 192px;" />
placeholder="请选择获奖时间"> </el-form-item>
<el-form-item label="获奖开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <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-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <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" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
...@@ -65,33 +70,57 @@ ...@@ -65,33 +70,57 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardtime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" /> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="学科" align="center" prop="sub" /> <el-table-column label="成长类型" align="center">
<el-table-column label="获奖类别" align="center" prop="awardType" /> <template>
<el-table-column label="获奖等级" align="center" prop="awardLevel" /> <span>辅导学生获奖</span>
<el-table-column label="获奖级别" align="center" prop="awardRank" /> </template>
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" /> </el-table-column>
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="学科" align="center" prop="sub" sortable>
<el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardtype" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_type_fdxs" :value="scope.row.awardtype" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardlevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardlevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="获奖级别" align="center" prop="awardrank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardrank" />
</template>
</el-table-column>
<el-table-column label="比赛名称" align="center" prop="resultname" sortable />
<el-table-column label="获奖人" align="center" prop="username" sortable />
<el-table-column label="指导教师" align="center" prop="guidanceteacher" sortable />
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardtime" width="180" sortable>
<!-- <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> -->
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button> v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditstate === '1' || scope.row.auditstate === '2' || scope.row.auditstate === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditstate === '1' || scope.row.auditstate === '2' || scope.row.auditstate === '3'">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']" v-if="scope.row.auditstate === '1'">审核</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
...@@ -101,7 +130,7 @@ ...@@ -101,7 +130,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -109,10 +138,10 @@ ...@@ -109,10 +138,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.awardtype" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" <el-option v-for="dict in dict.type.award_type_fdxs" :key="dict.value" :label="dict.label"
:label="dict.label" :value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -120,8 +149,8 @@ ...@@ -120,8 +149,8 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.awardrank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -129,8 +158,8 @@ ...@@ -129,8 +158,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel"> <el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.awardlevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -140,31 +169,39 @@ ...@@ -140,31 +169,39 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultname">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultname" placeholder="请输入成果名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="form.userName" placeholder="请输入获奖人" /> <el-input v-model="form.guidanceteacher" placeholder="请输入内容" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12">
<el-form-item label="获奖人" prop="username">
<el-input v-model="form.username" placeholder="请选择分管领导"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入主办单位" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardtime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardtime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入备注" />
...@@ -173,11 +210,11 @@ ...@@ -173,11 +210,11 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureurl">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl" <img v-if="form.pictureurl" :src="baseUrl + form.pictureurl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" /> style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
...@@ -190,17 +227,140 @@ ...@@ -190,17 +227,140 @@
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 审核 -->
<el-dialog :title="title" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="form.awardtype" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_type_fdxs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="form.awardrank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="form.awardlevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultname">
<el-input v-model="form.resultname" placeholder="请输入成果名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="form.guidanceteacher" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="username">
<el-input v-model="form.username" placeholder="请选择分管领导"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardtime">
<el-date-picker clearable v-model="form.awardtime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureurl">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureurl" :src="baseUrl + form.pictureurl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div> </div>
</template> </template>
<script> <script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards"; import { listAward, listAwardgr, getAward, addAward, updateAward, delAward, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/awardTutoringstu";
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default { export default {
name: "Awards", name: "tutorAward",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'], dicts: ["teaching_subjects", 'award_type_fdxs', 'awards_level', 'award_rank', 'coachingr'],
components: {
SelectUser,
},
data() { data() {
return { return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层 // 图片上传遮罩层
uploadLoading: false, uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API], baseUrl: [process.env.VUE_APP_BASE_API],
...@@ -225,12 +385,12 @@ export default { ...@@ -225,12 +385,12 @@ export default {
awardLevel: null, awardLevel: null,
resultName: null, resultName: null,
userId: null, userId: null,
userName: null, username: null,
org: null, org: null,
awardTime: null, awardTime: null,
remark: null, remark: null,
pictureName: null, pictureName: null,
pictureUrl: null, pictureurl: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
...@@ -241,6 +401,8 @@ export default { ...@@ -241,6 +401,8 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -251,11 +413,11 @@ export default { ...@@ -251,11 +413,11 @@ export default {
awardLevel: null, awardLevel: null,
resultName: null, resultName: null,
userId: null, userId: null,
userName: null, username: null,
org: null, org: null,
awardTime: null, awardTime: null,
pictureName: null, pictureName: null,
pictureUrl: null, pictureurl: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -264,58 +426,128 @@ export default { ...@@ -264,58 +426,128 @@ export default {
sub: [ sub: [
{ required: true, message: "学科不能为空", trigger: "change" } { required: true, message: "学科不能为空", trigger: "change" }
], ],
awardType: [ awardtype: [
{ required: true, message: "获奖类别不能为空", trigger: "change" } { required: true, message: "获奖类别不能为空", trigger: "change" }
], ],
awardRank: [ awardrank: [
{ required: true, message: "获奖级别不能为空", trigger: "change" } { required: true, message: "获奖级别不能为空", trigger: "change" }
], ],
awardLevel: [ awardlevel: [
{ required: true, message: "获奖等级不能为空", trigger: "change" } { required: true, message: "获奖等级不能为空", trigger: "change" }
], ],
resultName: [ competitionname: [
{ required: true, message: "成果名称不能为空", trigger: "blur" } { required: true, message: "成果名称不能为空", trigger: "blur" }
], ],
userId: [ username: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "获奖人不能为空", trigger: "blur" } { required: true, message: "获奖人不能为空", trigger: "blur" }
], ],
coachingr: [
{ required: true, message: "辅导指责不能为空", trigger: "change" }
],
guidanceteacher: [
{ required: true, message: "指导老师不能为空", trigger: "blur" }
],
org: [ org: [
{ required: true, message: "主办单位不能为空", trigger: "blur" } { required: true, message: "主办单位不能为空", trigger: "blur" }
], ],
awardTime: [ awardtime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" } { required: true, message: "获奖时间不能为空", trigger: "blur" }
], ],
pictureName: [ pictureurl: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" } { required: true, message: "证书图片不能为空", trigger: "blur" }
], ],
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
} }
}; };
}, },
created() { created() {
// this.getList(); this.getList();
}, },
methods: { methods: {
/** 查询教师获奖列表 */ /** 查询教师获奖列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listAwards(this.queryParams).then(response => { listAward(this.queryParams).then(response => {
this.awardsList = response.rows; this.awardsList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
//审核
handleExamine(row) {
const id = row.id || this.ids;
getAward(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureurl = this.pev + this.form.pictureurl
this.title = "修改综合荣誉";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditstate: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditstate: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.username', this.form.username);
if (this.form.username) {
console.log('有值', this.form.username == "");
} else {
console.log('没值', this.form.username);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `username${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 username 和 userId 字段
this.form.username = select.name;
console.log(124, this.form.username);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 上传成功回调 // 上传成功回调
handleAvatarSuccess(res, file) { handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url; this.pictureurl = res.data.url;
this.commonUpload(file); this.commonUpload(file);
}, },
...@@ -345,8 +577,8 @@ export default { ...@@ -345,8 +577,8 @@ export default {
.then((response) => { .then((response) => {
this.uploadLoading = false; this.uploadLoading = false;
this.$modal.msgSuccess("上传成功"); this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url; this.pictureurl = this.pev + response.url;
this.form.photoUrl = response.url; this.form.pictureurl = response.url;
}) })
.catch((error) => { .catch((error) => {
this.uploadLoading = false; this.uploadLoading = false;
...@@ -367,12 +599,12 @@ export default { ...@@ -367,12 +599,12 @@ export default {
awardLevel: null, awardLevel: null,
resultName: null, resultName: null,
userId: null, userId: null,
userName: null, username: null,
org: null, org: null,
awardTime: null, awardTime: null,
remark: null, remark: null,
pictureName: null, pictureName: null,
pictureUrl: null, pictureurl: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
...@@ -408,23 +640,24 @@ export default { ...@@ -408,23 +640,24 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
const id = row.id || this.ids const id = row.id || this.ids
getAwards(id).then(response => { getAward(id).then(response => {
this.form = response.data; this.form = response.data;
this.title = "修改教师获奖"; this.title = "修改教师获奖";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateAwards(this.form).then(response => { updateAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addAwards(this.form).then(response => { addAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
...@@ -437,7 +670,7 @@ export default { ...@@ -437,7 +670,7 @@ export default {
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () { this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids); return delAward(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
...@@ -445,9 +678,9 @@ export default { ...@@ -445,9 +678,9 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/awards/export', { this.download('/school/fudaos/export', {
...this.queryParams ...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`) }, `辅导教师获奖_${new Date().getTime()}.xlsx`)
} }
} }
}; };
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable @keyup.enter.native="handleQuery" <el-input v-model="queryParams.awardType" placeholder="请输入" clearable @keyup.enter.native="handleQuery"
style="width: 220px;" /> style="width: 220px;" />
</el-form-item> </el-form-item>
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="获奖级别" prop="awardRank">
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.userName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="获奖开始时间" prop="startTime"> <el-form-item label="获奖开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
...@@ -65,33 +65,35 @@ ...@@ -65,33 +65,35 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange"> <el-table :data="honorsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="type"> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" prop="type" sortable>
<template> <template>
<span>综合荣誉</span> <span>综合荣誉</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType" /> <el-table-column label="获奖类别" align="center" prop="awardType" sortable />
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardType"> <el-table-column label="获奖级别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" /> <el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
...@@ -128,7 +130,7 @@ ...@@ -128,7 +130,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable <el-input v-model="form.awardType" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -156,12 +158,12 @@ ...@@ -156,12 +158,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)" @input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input> @focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
...@@ -170,13 +172,13 @@ ...@@ -170,13 +172,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -184,7 +186,7 @@ ...@@ -184,7 +186,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -223,7 +225,7 @@ ...@@ -223,7 +225,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable <el-input v-model="form.awardType" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -256,7 +258,7 @@ ...@@ -256,7 +258,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)" @input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input> @focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
...@@ -265,13 +267,13 @@ ...@@ -265,13 +267,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -279,7 +281,7 @@ ...@@ -279,7 +281,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -614,7 +616,7 @@ export default { ...@@ -614,7 +616,7 @@ export default {
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '2'; this.form.auditState = '2';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardType">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardRank" placeholder="请选择">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -33,9 +33,14 @@ ...@@ -33,9 +33,14 @@
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间"> placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
...@@ -65,37 +70,39 @@ ...@@ -65,37 +70,39 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="worksList" @selection-change="handleSelectionChange"> <el-table :data="worksList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center"> <el-table-column label="成长类型" align="center">
<template> <template>
<span>论文论著</span> <span>论文论著</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType"> <el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" /> <dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank"> <el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="成果名称" align="center" prop="resultName" /> <el-table-column label="成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
...@@ -103,11 +110,13 @@ ...@@ -103,11 +110,13 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button> v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -161,12 +170,13 @@ ...@@ -161,12 +170,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input> @focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -174,13 +184,13 @@ ...@@ -174,13 +184,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -188,13 +198,14 @@ ...@@ -188,13 +198,14 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
...@@ -206,11 +217,107 @@ ...@@ -206,11 +217,107 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 审核综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 --> <!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title" <SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser> :width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
...@@ -219,7 +326,7 @@ ...@@ -219,7 +326,7 @@
</template> </template>
<script> <script>
import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";; import { listWorks, getWorks, delWorks, addWorks, updateWorks, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";;
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser"; import SelectUser from "./components/SelectUser";
export default { export default {
...@@ -259,6 +366,7 @@ export default { ...@@ -259,6 +366,7 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -336,14 +444,61 @@ export default { ...@@ -336,14 +444,61 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
//审核
handleExamine(row) {
const id = row.id || this.ids;
getWorks(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 选择处理人:打开对话框 // 选择处理人:打开对话框
openSelect(title, method, type) { openSelect(title, method, type) {
console.log(1); console.log('form.userName', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
}, },
// 选择处理人 // 选择处理人
selectUser(select) { selectUser(select) {
...@@ -364,6 +519,7 @@ export default { ...@@ -364,6 +519,7 @@ export default {
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false;
this.look = false;
this.reset(); this.reset();
}, },
// 上传成功回调 // 上传成功回调
...@@ -463,6 +619,7 @@ export default { ...@@ -463,6 +619,7 @@ export default {
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
......
...@@ -69,37 +69,39 @@ ...@@ -69,37 +69,39 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center"> <el-table-column label="成长类型" align="center">
<template> <template>
<span>讲课获奖</span> <span>讲课获奖</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType"> <el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" /> <dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank"> <el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="讲课获奖-成果名称" align="center" prop="resultName" /> <el-table-column label="讲课获奖-成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
...@@ -107,11 +109,13 @@ ...@@ -107,11 +109,13 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button> v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -167,12 +171,13 @@ ...@@ -167,12 +171,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input> @focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -180,13 +185,13 @@ ...@@ -180,13 +185,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -194,13 +199,14 @@ ...@@ -194,13 +199,14 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
...@@ -217,13 +223,108 @@ ...@@ -217,13 +223,108 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 审核综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title" <SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser> :width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div> </div>
</template> </template>
<script> <script>
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards"; import { listAwards, getAwards, delAwards, addAwards, updateAwards, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards";
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser"; import SelectUser from "./components/SelectUser";
export default { export default {
...@@ -264,6 +365,8 @@ export default { ...@@ -264,6 +365,8 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -318,9 +421,7 @@ export default { ...@@ -318,9 +421,7 @@ export default {
pictureUrl: [ pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" } { required: true, message: "证书图片地址不能为空", trigger: "blur" }
], ],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
} }
}; };
}, },
...@@ -338,14 +439,61 @@ export default { ...@@ -338,14 +439,61 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
//审核
handleExamine(row) {
const id = row.id || this.ids;
getAwards(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 选择处理人:打开对话框 // 选择处理人:打开对话框
openSelect(title, method, type) { openSelect(title, method, type) {
console.log(1); console.log('form.userName', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
}, },
// 选择处理人 // 选择处理人
selectUser(select) { selectUser(select) {
...@@ -466,6 +614,7 @@ export default { ...@@ -466,6 +614,7 @@ export default {
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.project_research" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.project_research" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖等级" prop="awardLevel"> <el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -33,9 +33,14 @@ ...@@ -33,9 +33,14 @@
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间"> placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
...@@ -48,34 +53,54 @@ ...@@ -48,34 +53,54 @@
<el-row :gutter="10" class="mb8"> <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" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:awards:add']">新增</el-button> v-hasPermi="['system:works:add']">新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:awards:edit']">修改</el-button> v-hasPermi="['system:works:edit']">修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:awards:remove']">删除</el-button> v-hasPermi="['system:works:remove']">删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:awards:export']">导出</el-button> v-hasPermi="['system:works:export']">导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table :data="worksList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" /> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="学科" align="center" prop="sub" /> <el-table-column label="成长类型" align="center" sortable>
<el-table-column label="获奖类别" align="center" prop="awardType" /> <span>课题研究</span>
<el-table-column label="获奖等级" align="center" prop="awardLevel" /> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank" /> <el-table-column label="学科" align="center" prop="sub" sortable>
<el-table-column label="课题研究-成果名称" align="center" prop="resultName" /> <template slot-scope="scope">
<el-table-column label="获奖人" align="center" prop="userName" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
<el-table-column label="主办单位" align="center" prop="org" /> </template>
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.project_research" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="课题研究-成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
...@@ -83,11 +108,13 @@ ...@@ -83,11 +108,13 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button> v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -95,13 +122,13 @@ ...@@ -95,13 +122,13 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 添加或修改教师获奖对话框 --> <!-- 添加或修改论文著作对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -141,25 +168,27 @@ ...@@ -141,25 +168,27 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" /> <el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -167,17 +196,18 @@ ...@@ -167,17 +196,18 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl" <img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" /> style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
...@@ -185,25 +215,139 @@ ...@@ -185,25 +215,139 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 审核综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.project_research" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*,.pdf"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div> </div>
</template> </template>
<script> <script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listResearch, getResearch, delResearch, addResearch, updateResearch, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/projectResearch";
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default { export default {
name: "Awards", name: "projectResearch",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'project_research', 'awards_level', 'award_rank'], dicts: ["teaching_subjects", 'project_research', 'awards_level', 'award_rank'],
data() { data() {
return { return {
// 图片上传遮罩层 // 选择对应处理人
uploadLoading: false, selectHandles: {
baseUrl: [process.env.VUE_APP_BASE_API], id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
...@@ -216,31 +360,15 @@ export default { ...@@ -216,31 +360,15 @@ export default {
showSearch: true, showSearch: true,
// 总条数 // 总条数
total: 0, total: 0,
// 教师获奖表格数据 // 图片上传遮罩层
awardsList: [{ uploadLoading: false,
id: 1, // 论文著作表格数据
sub: 1, worksList: [],
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -257,6 +385,8 @@ export default { ...@@ -257,6 +385,8 @@ export default {
pictureName: null, pictureName: null,
pictureUrl: null, pictureUrl: null,
}, },
baseUrl: [process.env.VUE_APP_BASE_API],
uploadFileLoading: false,
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
...@@ -288,6 +418,9 @@ export default { ...@@ -288,6 +418,9 @@ export default {
awardTime: [ awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" } { required: true, message: "获奖时间不能为空", trigger: "blur" }
], ],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
],
pictureName: [ pictureName: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" } { required: true, message: "证书图片名称不能为空", trigger: "blur" }
], ],
...@@ -301,21 +434,99 @@ export default { ...@@ -301,21 +434,99 @@ export default {
}; };
}, },
created() { created() {
// this.getList(); this.getList();
}, },
methods: { methods: {
/** 查询教师获奖列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listAwards(this.queryParams).then(response => { listResearch(this.queryParams).then(response => {
this.awardsList = response.rows; this.worksList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
//审核
handleExamine(row) {
const id = row.id || this.ids;
getResearch(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.userName', this.form.userName);
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 上传成功回调 // 上传成功回调
handleAvatarSuccess(res, file) { handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url; this.pictureUrl = res.data.url;
this.commonUpload(file); this.commonUpload(file);
}, },
...@@ -345,18 +556,13 @@ export default { ...@@ -345,18 +556,13 @@ export default {
.then((response) => { .then((response) => {
this.uploadLoading = false; this.uploadLoading = false;
this.$modal.msgSuccess("上传成功"); this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url; this.pictureUrl = this.pev + response.url;
this.form.photoUrl = response.url; this.form.pictureUrl = response.url;
}) })
.catch((error) => { .catch((error) => {
this.uploadLoading = false; this.uploadLoading = false;
}); });
}, },
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
...@@ -401,30 +607,31 @@ export default { ...@@ -401,30 +607,31 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "添加教师获奖"; this.title = "添加课题研究";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.open = true; this.open = true;
const id = row.id || this.ids const id = row.id || this.ids
getAwards(id).then(response => { getResearch(id).then(response => {
this.form = response.data; this.form = response.data;
this.title = "修改教师获奖"; this.title = "修改课题研究";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateAwards(this.form).then(response => { updateResearch(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addAwards(this.form).then(response => { addResearch(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
...@@ -436,8 +643,8 @@ export default { ...@@ -436,8 +643,8 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () { this.$modal.confirm('是否确认删除课题研究编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids); return delResearch(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
...@@ -445,9 +652,9 @@ export default { ...@@ -445,9 +652,9 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/awards/export', { this.download('/system/research/export', {
...this.queryParams ...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`) }, `课题研究_${new Date().getTime()}.xlsx`)
} }
} }
}; };
......
...@@ -70,37 +70,39 @@ ...@@ -70,37 +70,39 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center"> <el-table-column label="成长类型" align="center">
<template> <template>
<span>教学获奖</span> <span>教学获奖</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType"> <el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" /> <dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank"> <el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" /> <el-table-column label="教学获奖-成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
...@@ -168,12 +170,12 @@ ...@@ -168,12 +170,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)" @input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input> @focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
...@@ -182,13 +184,13 @@ ...@@ -182,13 +184,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -196,7 +198,7 @@ ...@@ -196,7 +198,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -219,7 +221,8 @@ ...@@ -219,7 +221,8 @@
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog><!-- 审核综合荣誉对话框 --> </el-dialog>
<!-- 审核综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="1000px" append-to-body> <el-dialog title="详细信息" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit"> <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row> <el-row>
...@@ -234,7 +237,7 @@ ...@@ -234,7 +237,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable <el-input v-model="form.awardType" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -262,12 +265,12 @@ ...@@ -262,12 +265,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)" @input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input> @focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
...@@ -276,13 +279,13 @@ ...@@ -276,13 +279,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -290,7 +293,7 @@ ...@@ -290,7 +293,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -361,6 +364,8 @@ export default { ...@@ -361,6 +364,8 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -464,12 +469,12 @@ export default { ...@@ -464,12 +469,12 @@ export default {
//审核 //审核
handleExamine(row) { handleExamine(row) {
const id = row.id || this.ids; const id = row.id || this.ids;
getHonors(id).then(response => { getAwards(id).then(response => {
this.look = true; this.look = true;
this.isEdit = true, this.isEdit = true,
this.form = response.data; this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉"; this.title = "综合荣誉";
}); });
}, },
// 同意 // 同意
......
...@@ -98,39 +98,41 @@ ...@@ -98,39 +98,41 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="achievementsList" @selection-change="handleSelectionChange"> <el-table :data="achievementsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'examTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" /> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="学期" align="center" prop="semester"> <el-table-column label="学年" align="center" prop="schoolYear" sortable />
<el-table-column label="学期" align="center" prop="semester" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" /> <dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="考试时间" align="center" prop="examTime" width="180"> <el-table-column label="考试时间" align="center" prop="examTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.examTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.examTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="考试类型" align="center" prop="examType"> <el-table-column label="考试类型" align="center" prop="examType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.exam_typeda" :value="scope.row.examType" /> <dict-tag :options="dict.type.exam_typeda" :value="scope.row.examType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="届别" align="center" prop="year" /> <el-table-column label="届别" align="center" prop="year" sortable />
<el-table-column label="年级" align="center" prop="grade"> <el-table-column label="年级" align="center" prop="grade" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" /> <dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="姓名" align="center" prop="userName" /> <el-table-column label="姓名" align="center" prop="userName" sortable />
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="班级" align="center" prop="className"> <el-table-column label="班级" align="center" prop="className" sortable>
</el-table-column> </el-table-column>
<el-table-column label="班级类型" align="center"> <el-table-column label="班级类型" align="center" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0"> <span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index"> <span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
...@@ -140,7 +142,7 @@ ...@@ -140,7 +142,7 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="考核分" align="center" prop="assessmentScore" /> <el-table-column label="考核分" align="center" prop="assessmentScore" sortable />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
...@@ -461,7 +463,8 @@ export default { ...@@ -461,7 +463,8 @@ export default {
this.getList(); this.getList();
}, },
getSelectedTypes(classType) { getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString())); const selectedTypes = classType.split(','); // 将逗号分隔的字符串转换为数组
return this.dict.type.class_type.filter(option => selectedTypes.includes(option.value.toString()));
}, },
/** 导入按钮操作 */ /** 导入按钮操作 */
handleImport(row) { handleImport(row) {
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub"> <el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.schoolYear" placeholder="请选择" style="width: 190px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label" :value="dict.value">
:value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="学期" prop="semester">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.semester" placeholder="请选择">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="届别" prop="year">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.year" placeholder="请选择">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
:value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="年级" prop="grade">
<el-form-item label="获奖等级" prop="awardLevel"> <el-select v-model="queryParams.grade" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;"> <el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label" :value="dict.value">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖人" prop="userName"> <el-form-item label="学科" prop="sub">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" /> <el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;">
</el-form-item> <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
<el-form-item label="获奖时间" prop="awardTime"> :value="dict.value">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd" </el-option>
placeholder="请选择获奖时间"> </el-select>
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <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-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
...@@ -48,46 +42,60 @@ ...@@ -48,46 +42,60 @@
<el-row :gutter="10" class="mb8"> <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" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:awards:add']">新增</el-button> v-hasPermi="['system:award:add']">新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:awards:edit']">修改</el-button> v-hasPermi="['system:award:edit']">修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:awards:remove']">删除</el-button> v-hasPermi="['system:award:remove']">删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:awards:export']">导出</el-button> v-hasPermi="['system:award:export']">导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="awardList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'schoolYear', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" /> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="学科" align="center" prop="sub" /> <el-table-column label="学年" align="center" prop="schoolYear" sortable />
<el-table-column label="获奖类别" align="center" prop="awardType" /> <el-table-column label="学期" align="center" prop="semester" sortable>
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="届别" align="center" prop="year" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <dict-tag :options="dict.type.rankda" :value="scope.row.year" />
v-hasPermi="['system:honors:edit']">修改</el-button> </template>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" </el-table-column>
v-hasPermi="['system:honors:remove']">删除</el-button> <el-table-column label="年级" align="center" prop="grade" sortable>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <template slot-scope="scope">
v-hasPermi="['system:honors:remove']">审核</el-button> <dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖情况" align="center" prop="awardSituation" sortable />
<el-table-column label="团队成员贡献情况" align="center" prop="teamMembersContribution" sortable />
<el-table-column label="备注" align="center" prop="remark" sortable />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -95,24 +103,24 @@ ...@@ -95,24 +103,24 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 添加或修改教师获奖对话框 --> <!-- 添加或修改团队获奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="140px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学科" prop="sub"> <el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="学期" prop="semester">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" <el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:label="dict.label" :value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -120,18 +128,18 @@ ...@@ -120,18 +128,18 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="届别" prop="year">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel"> <el-form-item label="年级" prop="grade">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
...@@ -140,70 +148,125 @@ ...@@ -140,70 +148,125 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="学科" prop="sub">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖情况" prop="awardSituation">
<el-input v-model="form.userName" placeholder="请输入获奖人" /> <el-input v-model="form.awardSituation" placeholder="请输入获奖情况" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="团队成员贡献情况" prop="teamMembersContribution">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.teamMembersContribution" placeholder="请输入内容" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="备注" prop="remark">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-input v-model="form.remark" placeholder="请输入内容" />
placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</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="title" :visible.sync="look" width="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="140px" :disabled="isEdit">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="学年" prop="schoolYear">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="学科" prop="sub">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
:show-file-list="false" :on-success="handleAvatarSuccess" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :value="dict.value">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl" </el-option>
style="max-width: 100%; max-height: 100%" class="avatar" alt="" /> </el-select>
<i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-form-item>
</el-upload> </el-col>
<el-col :span="12">
<el-form-item label="获奖情况" prop="awardSituation">
<el-input v-model="form.awardSituation" placeholder="请输入获奖情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="团队成员贡献情况" prop="teamMembersContribution">
<el-input v-model="form.teamMembersContribution" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入内容" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button type="primary" @click="submitForm"> </el-button> <el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards"; import { listAward, getAward, delAward, addAward, updateAward, audit } from "@/api/smartSchool/electronicArchives/teamAward";
import { uploadImage as commonUpload } from "@/api/common";
export default { export default {
name: "Awards", name: "Award",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'], dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda'],
data() { data() {
return { return {
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
...@@ -216,68 +279,52 @@ export default { ...@@ -216,68 +279,52 @@ export default {
showSearch: true, showSearch: true,
// 总条数 // 总条数
total: 0, total: 0,
// 教师获奖表格数据 // 团队获奖表格数据
awardsList: [], awardList: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null, sub: null,
awardType: null, awardSituation: null,
awardRank: null, teamMembersContribution: null,
awardLevel: null, auditState: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
pictureName: null,
pictureUrl: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
sub: [ schoolYear: [
{ required: true, message: "学科不能为空", trigger: "change" } { required: true, message: "学年不能为空", trigger: "blur" }
],
awardType: [
{ required: true, message: "获奖类别不能为空", trigger: "change" }
],
awardRank: [
{ required: true, message: "获奖级别不能为空", trigger: "change" }
],
awardLevel: [
{ required: true, message: "获奖等级不能为空", trigger: "change" }
], ],
resultName: [ semester: [
{ required: true, message: "成果名称不能为空", trigger: "blur" } { required: true, message: "学期不能为空", trigger: "blur" }
], ],
userId: [ year: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" } { required: true, message: "届别不能为空", trigger: "blur" }
], ],
userName: [ grade: [
{ required: true, message: "获奖人不能为空", trigger: "blur" } { required: true, message: "年级不能为空", trigger: "blur" }
], ],
org: [ sub: [
{ required: true, message: "主办单位不能为空", trigger: "blur" } { required: true, message: "学科不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
], ],
pictureName: [ awardSituation: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" } { required: true, message: "获奖情况不能为空", trigger: "blur" }
], ],
pictureUrl: [ teamMembersContribution: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" } { required: true, message: "团队成员贡献情况不能为空", trigger: "blur" }
], ],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
} }
}; };
}, },
...@@ -285,53 +332,56 @@ export default { ...@@ -285,53 +332,56 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
/** 查询教师获奖列表 */ /** 查询团队获奖列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listAwards(this.queryParams).then(response => { listAward(this.queryParams).then(response => {
this.awardsList = response.rows; this.awardList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
// 上传成功回调 //审核
handleAvatarSuccess(res, file) { handleExamine(row) {
this.photoUrl = res.data.url; const id = row.id || this.ids;
this.commonUpload(file); getAward(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "审核";
});
}, },
// 同意
// 上传前格式和图片大小限制 handleAgree() {
beforeAvatarUpload(file) { const params = {
const type = id: this.form.id,
file.type === "image/jpeg" || auditState: '2' // 表示同意
"image/jpg" || };
"image/webp" || audit(params).then(({ code }) => {
"image/png"; console.log(this.form, 'this.form');
const isLt2M = file.size / 1024 / 1024 < 2; if (code == 200) {
if (!type) { this.$modal.msgSuccess('操作成功')
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)"); this.look = false;
} this.getList()
if (!isLt2M) { }
this.$message.error("上传图片大小不能超过 2MB!"); })
}
return type && isLt2M;
}, },
// 上传图片
uploadImage(file) { // 不同意
const fileData = file.file; handleDisagree() {
const formData = new FormData(); const params = {
formData.append("file", fileData); id: this.form.id,
this.uploadLoading = true; auditState: '3' // 表示不同意
commonUpload(formData) };
.then((response) => { audit(params).then(({ code }) => {
this.uploadLoading = false; console.log(this.form, 'this.form');
this.$modal.msgSuccess("上传成功"); if (code == 200) {
this.photoUrl = this.pev + response.url; this.$modal.msgSuccess('操作成功')
this.form.photoUrl = response.url; this.look = false
}) this.getList()
.catch((error) => { }
this.uploadLoading = false; })
});
}, },
// 取消按钮 // 取消按钮
cancel() { cancel() {
...@@ -342,18 +392,15 @@ export default { ...@@ -342,18 +392,15 @@ export default {
reset() { reset() {
this.form = { this.form = {
id: null, id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null, sub: null,
awardType: null, awardSituation: null,
awardRank: null, teamMembersContribution: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null, remark: null,
pictureName: null, auditState: null,
pictureUrl: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
...@@ -382,30 +429,33 @@ export default { ...@@ -382,30 +429,33 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "添加教师获奖"; this.isEdit = false;
this.title = "添加团队获奖";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.open = true; this.isEdit = false;
const id = row.id || this.ids const id = row.id || this.ids
getAwards(id).then(response => { getAward(id).then(response => {
this.form = response.data; this.form = response.data;
this.title = "修改教师获奖"; this.open = true;
this.title = "修改团队获奖";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateAwards(this.form).then(response => { updateAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addAwards(this.form).then(response => { addAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
...@@ -417,8 +467,8 @@ export default { ...@@ -417,8 +467,8 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () { this.$modal.confirm('是否确认删除团队获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids); return delAward(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
...@@ -426,9 +476,9 @@ export default { ...@@ -426,9 +476,9 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/awards/export', { this.download('/school/award/export', {
...this.queryParams ...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`) }, `团队获奖_${new Date().getTime()}.xlsx`)
} }
} }
}; };
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.sub" placeholder="请选择">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardtype" placeholder="请选择">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_type_fdjs" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardrank" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖等级" prop="awardLevel"> <el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardlevel" placeholder="请选择" style="width:220px;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="username">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.username" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="queryParams.guidanceteacher" placeholder="请输入内容" style="width: 192px;" />
</el-form-item> </el-form-item>
<el-form-item label="获奖开始时间" prop="awardTime"> <el-form-item label="辅导职责" prop="coachingr">
<el-select v-model="queryParams.coachingr" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.coachingr" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择"> placeholder="请选择">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime"> <el-form-item label="获奖结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择"> placeholder="请选择">
</el-date-picker> </el-date-picker>
...@@ -67,37 +77,62 @@ ...@@ -67,37 +77,62 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardtime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center"> <el-table-column label="成长类型" align="center">
<template> <template>
<span>讲课获奖</span> <span>辅导老师获奖</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub" /> <el-table-column label="学科" align="center" prop="sub" sortable>
<el-table-column label="获奖类别" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardtype" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_type_fdjs" :value="scope.row.awardtype" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardlevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardlevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardrank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardrank" />
</template>
</el-table-column>
<el-table-column label="比赛名称" align="center" prop="competitionname" sortable />
<el-table-column label="获奖人" align="center" prop="username" sortable />
<el-table-column label="指导教师" align="center" prop="guidanceteacher" sortable />
<el-table-column label="辅导职责" align="center" prop="coachingr" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.coachingr" :value="scope.row.coachingr" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardtime" width="180" sortable>
<!-- <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> -->
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button> v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditstate === '1' || scope.row.auditstate === '2' || scope.row.auditstate === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditstate === '1' || scope.row.auditstate === '2' || scope.row.auditstate === '3'">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']" v-if="scope.row.auditstate === '1'">审核</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
...@@ -115,10 +150,10 @@ ...@@ -115,10 +150,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.awardtype" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" <el-option v-for="dict in dict.type.award_type_fdjs" :key="dict.value" :label="dict.label"
:label="dict.label" :value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -126,8 +161,8 @@ ...@@ -126,8 +161,8 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank"> <el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.awardrank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -135,8 +170,8 @@ ...@@ -135,8 +170,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel"> <el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;"> <el-select v-model="form.awardlevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -146,26 +181,45 @@ ...@@ -146,26 +181,45 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="辅导职责" prop="coachingr">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-select v-model="form.coachingr" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.coachingr" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="比赛名称" prop="competitionname">
<el-input v-model="form.competitionname" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="form.guidanceteacher" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="username">
<el-input v-model="form.userName" placeholder="请输入获奖人" /> <el-input v-model="form.username" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardtime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardtime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -173,17 +227,17 @@ ...@@ -173,17 +227,17 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureurl">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl" <img v-if="form.pictureurl" :src="baseUrl + form.pictureurl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" /> style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
...@@ -196,17 +250,149 @@ ...@@ -196,17 +250,149 @@
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 审核 -->
<el-dialog :title="title" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="form.awardtype" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_type_fdjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="form.awardrank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="form.awardlevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="辅导职责" prop="coachingr">
<el-select v-model="form.coachingr" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.coachingr" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="比赛名称" prop="competitionname">
<el-input v-model="form.competitionname" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="form.guidanceteacher" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="username">
<el-input v-model="form.username" placeholder="请选择"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardtime">
<el-date-picker clearable v-model="form.awardtime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureurl">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureurl" :src="baseUrl + form.pictureurl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div> </div>
</template> </template>
<script> <script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards"; import { listAward, listAwardgr, getAward, addAward, updateAward, delAward, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/tutorAward";
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default { export default {
name: "Awards", name: "tutorAward",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'], dicts: ["teaching_subjects", 'award_type_fdjs', 'awards_level', 'award_rank', 'coachingr'],
components: {
SelectUser,
},
data() { data() {
return { return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层 // 图片上传遮罩层
uploadLoading: false, uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API], baseUrl: [process.env.VUE_APP_BASE_API],
...@@ -231,12 +417,12 @@ export default { ...@@ -231,12 +417,12 @@ export default {
awardLevel: null, awardLevel: null,
resultName: null, resultName: null,
userId: null, userId: null,
userName: null, username: null,
org: null, org: null,
awardTime: null, awardTime: null,
remark: null, remark: null,
pictureName: null, pictureName: null,
pictureUrl: null, pictureurl: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
...@@ -247,6 +433,8 @@ export default { ...@@ -247,6 +433,8 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -257,11 +445,11 @@ export default { ...@@ -257,11 +445,11 @@ export default {
awardLevel: null, awardLevel: null,
resultName: null, resultName: null,
userId: null, userId: null,
userName: null, username: null,
org: null, org: null,
awardTime: null, awardTime: null,
pictureName: null, pictureName: null,
pictureUrl: null, pictureurl: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -270,58 +458,128 @@ export default { ...@@ -270,58 +458,128 @@ export default {
sub: [ sub: [
{ required: true, message: "学科不能为空", trigger: "change" } { required: true, message: "学科不能为空", trigger: "change" }
], ],
awardType: [ awardtype: [
{ required: true, message: "获奖类别不能为空", trigger: "change" } { required: true, message: "获奖类别不能为空", trigger: "change" }
], ],
awardRank: [ awardrank: [
{ required: true, message: "获奖级别不能为空", trigger: "change" } { required: true, message: "获奖级别不能为空", trigger: "change" }
], ],
awardLevel: [ awardlevel: [
{ required: true, message: "获奖等级不能为空", trigger: "change" } { required: true, message: "获奖等级不能为空", trigger: "change" }
], ],
resultName: [ competitionname: [
{ required: true, message: "成果名称不能为空", trigger: "blur" } { required: true, message: "成果名称不能为空", trigger: "blur" }
], ],
userId: [ username: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "获奖人不能为空", trigger: "blur" } { required: true, message: "获奖人不能为空", trigger: "blur" }
], ],
coachingr: [
{ required: true, message: "辅导指责不能为空", trigger: "change" }
],
guidanceteacher: [
{ required: true, message: "指导老师不能为空", trigger: "blur" }
],
org: [ org: [
{ required: true, message: "主办单位不能为空", trigger: "blur" } { required: true, message: "主办单位不能为空", trigger: "blur" }
], ],
awardTime: [ awardtime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" } { required: true, message: "获奖时间不能为空", trigger: "blur" }
], ],
pictureName: [ pictureurl: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" } { required: true, message: "证书图片不能为空", trigger: "blur" }
],
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
], ],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
} }
}; };
}, },
created() { created() {
// this.getList(); this.getList();
}, },
methods: { methods: {
/** 查询教师获奖列表 */ /** 查询教师获奖列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listAwards(this.queryParams).then(response => { listAward(this.queryParams).then(response => {
this.awardsList = response.rows; this.awardsList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
//审核
handleExamine(row) {
const id = row.id || this.ids;
getAward(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureurl = this.pev + this.form.pictureurl
this.title = "修改综合荣誉";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditstate: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditstate: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.username', this.form.username);
if (this.form.username) {
console.log('有值', this.form.username == "");
} else {
console.log('没值', this.form.username);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `username${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userid${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 username 和 userId 字段
this.form.username = select.name;
console.log(124, this.form.username);
console.log(select);
this.form.userid = select.id;
console.log(this.form.userid, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 上传成功回调 // 上传成功回调
handleAvatarSuccess(res, file) { handleAvatarSuccess(res, file) {
this.pictureUrl = res.data.url; this.pictureurl = res.data.url;
this.commonUpload(file); this.commonUpload(file);
}, },
...@@ -351,8 +609,8 @@ export default { ...@@ -351,8 +609,8 @@ export default {
.then((response) => { .then((response) => {
this.uploadLoading = false; this.uploadLoading = false;
this.$modal.msgSuccess("上传成功"); this.$modal.msgSuccess("上传成功");
this.pictureUrl = this.pev + response.url; this.pictureurl = this.pev + response.url;
this.form.pictureUrl = response.url; this.form.pictureurl = response.url;
}) })
.catch((error) => { .catch((error) => {
this.uploadLoading = false; this.uploadLoading = false;
...@@ -373,12 +631,12 @@ export default { ...@@ -373,12 +631,12 @@ export default {
awardLevel: null, awardLevel: null,
resultName: null, resultName: null,
userId: null, userId: null,
userName: null, username: null,
org: null, org: null,
awardTime: null, awardTime: null,
remark: null, remark: null,
pictureName: null, pictureName: null,
pictureUrl: null, pictureurl: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
...@@ -414,23 +672,24 @@ export default { ...@@ -414,23 +672,24 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
const id = row.id || this.ids const id = row.id || this.ids
getAwards(id).then(response => { getAward(id).then(response => {
this.form = response.data; this.form = response.data;
this.title = "修改教师获奖"; this.title = "修改教师获奖";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateAwards(this.form).then(response => { updateAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addAwards(this.form).then(response => { addAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
...@@ -443,7 +702,7 @@ export default { ...@@ -443,7 +702,7 @@ export default {
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () { this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids); return delAward(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
...@@ -451,9 +710,9 @@ export default { ...@@ -451,9 +710,9 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/awards/export', { this.download('/school/fudaot/export', {
...this.queryParams ...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`) }, `辅导教师获奖_${new Date().getTime()}.xlsx`)
} }
} }
}; };
......
...@@ -83,22 +83,24 @@ ...@@ -83,22 +83,24 @@
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="assessmentList" @selection-change="handleSelectionChange"> <el-table :data="assessmentList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'schoolYear', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" /> <el-table-column type="index" label="序号" width="55" align="center" sortable fixed="left" />
<el-table-column label="学期" align="center" prop="semester"> <el-table-column label="学年" align="center" prop="schoolYear" sortable fixed="left" />
<el-table-column label="学期" align="center" prop="semester" sortable fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" /> <dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="届别" align="center" prop="year" /> <el-table-column label="届别" align="center" prop="year" sortable fixed="left" />
<el-table-column label="年级" align="center" prop="grade"> <el-table-column label="年级" align="center" prop="grade" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" /> <dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="班级" align="center" prop="className" /> <el-table-column label="班级" align="center" prop="className" sortable />
<el-table-column label="班级类型" align="center" prop="classType"> <el-table-column label="班级类型" align="center" prop="classType" sortable width="180px">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0"> <span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index"> <span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
...@@ -108,17 +110,18 @@ ...@@ -108,17 +110,18 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="姓名" align="center" prop="teacherName" /> <el-table-column label="姓名" align="center" prop="teacherName" sortable />
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="德育考核成绩" align="center" prop="moralEduCheckAchievement" /> <el-table-column label="德育考核成绩" align="center" prop="moralEduCheckAchievement" sortable fixed="right"
<el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" /> width="130px" />
<el-table-column label="总考核成绩" align="center" prop="totalCheckAchievement" /> <el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" sortable fixed="right"
<el-table-column label="备注" align="center" prop="remark" /> width="130px" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="备注" align="center" prop="remark" sortable fixed="right" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:assessment:edit']">修改</el-button> v-hasPermi="['system:assessment:edit']">修改</el-button>
...@@ -207,14 +210,6 @@ ...@@ -207,14 +210,6 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="总考核成绩" prop="totalCheckAchievement">
<el-input v-model="form.totalCheckAchievement" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType"> <el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%"> <el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
...@@ -223,6 +218,10 @@ ...@@ -223,6 +218,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%"> <el-select v-model="form.sub" placeholder="请选择" style="width: 100%">
...@@ -232,11 +231,14 @@ ...@@ -232,11 +231,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row> </el-row>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入" />
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
......
...@@ -98,6 +98,7 @@ ...@@ -98,6 +98,7 @@
<el-table :data="aworkloadList" @selection-change="handleSelectionChange" <el-table :data="aworkloadList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'schoolYear', order: 'descending' }"> :default-sort="{ prop: 'schoolYear', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable fixed="left" />
<el-table-column label="学年" align="center" prop="schoolYear" width="90px" fixed="left" sortable /> <el-table-column label="学年" align="center" prop="schoolYear" width="90px" fixed="left" sortable />
<el-table-column label="学期" align="center" prop="semester" fixed="left" sortable> <el-table-column label="学期" align="center" prop="semester" fixed="left" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -124,7 +125,7 @@ ...@@ -124,7 +125,7 @@
<el-table-column label="聘任职务" align="center" prop="appointmentPosition" sortable width="120px" /> <el-table-column label="聘任职务" align="center" prop="appointmentPosition" sortable width="120px" />
<el-table-column label="聘任情况" align="center" prop="appointmentSituation" sortable width="120px" /> <el-table-column label="聘任情况" align="center" prop="appointmentSituation" sortable width="120px" />
<el-table-column label="班级" align="center" prop="className" sortable /> <el-table-column label="班级" align="center" prop="className" sortable />
<el-table-column label="班级类型" align="center" prop="classType" width="120px" sortable> <el-table-column label="班级类型" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0"> <span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index"> <span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
...@@ -748,7 +749,8 @@ export default { ...@@ -748,7 +749,8 @@ export default {
}); });
}, },
getSelectedTypes(classType) { getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString())); const selectedTypes = classType.split(','); // 将逗号分隔的字符串转换为数组
return this.dict.type.class_type.filter(option => selectedTypes.includes(option.value.toString()));
}, },
handleImport() { handleImport() {
this.reset(); this.reset();
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="queryParams.awardtype" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.award_type_fdxs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="queryParams.awardrank" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="queryParams.awardlevel" placeholder="请选择" style="width:220px;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖人" prop="username">
<el-input v-model="queryParams.username" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="queryParams.guidanceteacher" placeholder="请输入内容" style="width: 192px;" />
</el-form-item>
<el-form-item label="获奖开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</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="['system:awards: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="['system:awards: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="['system:awards: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="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardtime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" sortable>
<template>
<span>辅导学生获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardtype" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_type_fdxs" :value="scope.row.awardtype" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardlevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardlevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardrank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardrank" />
</template>
</el-table-column>
<el-table-column label="比赛名称" align="center" prop="resultname" sortable />
<el-table-column label="获奖人" align="center" prop="username" sortable />
<el-table-column label="指导教师" align="center" prop="guidanceteacher" sortable />
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardtime" width="180" sortable>
<!-- <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</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" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditstate === '0' || scope.row.auditstate === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditstate === '0' || scope.row.auditstate === '1' || scope.row.auditstate === '3' || scope.row.auditstate === '2'">查看</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditstate === '0' || scope.row.auditstate === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditstate === '0'">提交</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="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="form.awardtype" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_type_fdxs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="form.awardrank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="form.awardlevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultname">
<el-input v-model="form.resultname" placeholder="请输入成果名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="form.guidanceteacher" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖人" prop="username">
<el-input v-model="form.username" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardtime">
<el-date-picker clearable v-model="form.awardtime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureurl">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureurl" :src="baseUrl + form.pictureurl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="isEdit === false" type="primary" @click="submitForm">确定</el-button>
<el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
import { listAward, listAwardgr, getAward, addAward, addAwardgr, updateAward, delAward, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/awardTutoringstu";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "tutorAward",
dicts: ["teaching_subjects", 'award_type_fdxs', 'awards_level', 'award_rank', 'coachingr'],
components: {
SelectUser,
},
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: 1,
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
username: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureurl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
username: null,
org: null,
awardTime: null,
pictureName: null,
pictureurl: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
sub: [
{ required: true, message: "学科不能为空", trigger: "change" }
],
awardtype: [
{ required: true, message: "获奖类别不能为空", trigger: "change" }
],
awardrank: [
{ required: true, message: "获奖级别不能为空", trigger: "change" }
],
awardlevel: [
{ required: true, message: "获奖等级不能为空", trigger: "change" }
],
competitionname: [
{ required: true, message: "成果名称不能为空", trigger: "blur" }
],
username: [
{ required: true, message: "获奖人不能为空", trigger: "blur" }
],
coachingr: [
{ required: true, message: "辅导指责不能为空", trigger: "change" }
],
guidanceteacher: [
{ required: true, message: "指导老师不能为空", trigger: "blur" }
],
org: [
{ required: true, message: "主办单位不能为空", trigger: "blur" }
],
awardtime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
pictureurl: [
{ required: true, message: "证书图片不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listAwardgr(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getAward(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditstate: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.pictureurl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.pictureurl = this.pev + response.url;
this.form.pictureurl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
username: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureurl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: 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.isEdit = false;
this.form.username = this.$store.state.user.name;
this.form.userid = this.$store.state.user.userId;
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
this.isEdit = false;
const id = row.id || this.ids
getAward(id).then(response => {
this.form = response.data;
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAwardgr(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 delAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/fudaos/delete/exportGr', {
...this.queryParams
}, `辅导学生获奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
...@@ -60,33 +60,35 @@ ...@@ -60,33 +60,35 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange"> <el-table :data="honorsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" prop="type"> <el-table-column label="成长类型" align="center" prop="type">
<template> <template>
<span>综合荣誉</span> <span>综合荣誉</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType" /> <el-table-column label="获奖类别" align="center" prop="awardType" sortable />
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardType"> <el-table-column label="获奖级别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" /> <el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
...@@ -125,7 +127,7 @@ ...@@ -125,7 +127,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable <el-input v-model="form.awardType" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -153,7 +155,7 @@ ...@@ -153,7 +155,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成果名称" prop="resultName"> <el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" /> <el-input v-model="form.resultName" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -165,13 +167,13 @@ ...@@ -165,13 +167,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主办单位" prop="org"> <el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" /> <el-input v-model="form.org" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;"> placeholder="请选择" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -427,7 +429,7 @@ export default { ...@@ -427,7 +429,7 @@ export default {
this.reset(); this.reset();
this.isEdit = false; this.isEdit = false;
this.form.userName = this.$store.state.user.name; this.form.userName = this.$store.state.user.name;
this.form.userId = this.$store.state.user.userId;
this.open = true; this.open = true;
this.title = "添加综合荣誉"; this.title = "添加综合荣誉";
}, },
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="获奖类别" prop="awardType"> <el-form-item label="获奖类别" prop="awardType">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;"> <el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
...@@ -33,9 +33,14 @@ ...@@ -33,9 +33,14 @@
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="获奖时间" prop="awardTime"> <el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间"> placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
...@@ -65,49 +70,55 @@ ...@@ -65,49 +70,55 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="worksList" @selection-change="handleSelectionChange"> <el-table :data="worksList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center"> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" sortable>
<template> <template>
<span>论文论著</span> <span>论文论著</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType"> <el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" /> <dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank"> <el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="成果名称" align="center" prop="resultName" /> <el-table-column label="成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-hasPermi="['system:honors:edit']">修改</el-button> v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-hasPermi="['system:honors:remove']">删除</el-button> v-if="scope.row.auditState === '0' || scope.row.auditState === '1' || scope.row.auditState === '3' || scope.row.auditState === '2'">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '0'">提交</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -117,7 +128,7 @@ ...@@ -117,7 +128,7 @@
<!-- 添加或修改论文著作对话框 --> <!-- 添加或修改论文著作对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
...@@ -165,9 +176,8 @@ ...@@ -165,9 +176,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请输入"></el-input>
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -194,7 +204,8 @@ ...@@ -194,7 +204,8 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
...@@ -207,19 +218,18 @@ ...@@ -207,19 +218,18 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button v-if="isEdit === false" type="primary" @click="submitForm"></el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div> </div>
</template> </template>
<script> <script>
import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";; import { listWorksgr, getWorks, delWorks, addWorks, updateWorks, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";;
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser"; import SelectUser from "./components/SelectUser";
export default { export default {
...@@ -259,6 +269,8 @@ export default { ...@@ -259,6 +269,8 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -330,20 +342,37 @@ export default { ...@@ -330,20 +342,37 @@ export default {
/** 查询论文著作列表 */ /** 查询论文著作列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listWorks(this.queryParams).then(response => { listWorksgr(this.queryParams).then(response => {
this.worksList = response.rows; this.worksList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getWorks(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
// 选择处理人:打开对话框 // 选择处理人:打开对话框
openSelect(title, method, type) { openSelect(title, method, type) {
console.log(1); console.log('form.userName', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
}, },
// 选择处理人 // 选择处理人
selectUser(select) { selectUser(select) {
...@@ -364,6 +393,7 @@ export default { ...@@ -364,6 +393,7 @@ export default {
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false;
this.look = false;
this.reset(); this.reset();
}, },
// 上传成功回调 // 上传成功回调
...@@ -449,20 +479,45 @@ export default { ...@@ -449,20 +479,45 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.isEdit = false;
this.form.userName = this.$store.state.user.name;
this.form.userId = this.$store.state.user.userId;
this.title = "添加论文著作"; this.title = "添加论文著作";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.open = true; this.open = true;
this.isEdit = false;
const id = row.id || this.ids const id = row.id || this.ids
getWorks(id).then(response => { getWorks(id).then(response => {
this.form = response.data; this.form = response.data;
this.title = "修改论文著作"; this.title = "修改论文著作";
}); });
}, },
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
...@@ -493,7 +548,7 @@ export default { ...@@ -493,7 +548,7 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('/system/works/export', { this.download('/system/works/exportGr', {
...this.queryParams ...this.queryParams
}, `论文论著_${new Date().getTime()}.xlsx`) }, `论文论著_${new Date().getTime()}.xlsx`)
} }
......
<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="year">
<el-select v-model="queryParams.year" placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.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="teachingClassName">
<el-select v-model="queryParams.teachingClassName" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="高考评优" prop="gkAppraising">
<el-select v-model="queryParams.gkAppraising" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.gk_appraising" :key="dict.value" :label="dict.label"
:value="dict.value">
</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="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:achievement: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="['system:achievement: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="['system:achievement: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="['system:achievement:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="achievementList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'year', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="届别" align="center" prop="year" sortable />
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="教师姓名" align="center" prop="teacherName" sortable />
<el-table-column label="授课班级" align="center" prop="teachingClassName" sortable />
<el-table-column label="班级类型" align="center" prop="classType" sortable>
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="高考评优" align="center" prop="gkAppraising" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.gk_appraising" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="尖子生培养" align="center" prop="topStudentsCulture" sortable />
<el-table-column label="增量情况" align="center" prop="incrementSituation" sortable />
<el-table-column label="有效数情况" align="center" prop="effectiveNumSituation" sortable />
<el-table-column label="其他" align="center" prop="other" sortable />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '1' || scope.row.auditState === '3' || scope.row.auditState === '2'">查看</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '0'">提交</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="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="92px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教师姓名" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入教师姓名" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授课班级" prop="teachingClassName">
<el-select v-model="form.teachingClassName" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="高考评优" prop="gkAppraising">
<el-select v-model="form.gkAppraising" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.gk_appraising" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="尖子生培养" prop="topStudentsCulture">
<el-input v-model="form.topStudentsCulture" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="增量情况" prop="incrementSituation">
<el-input v-model="form.incrementSituation" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="有效数情况" prop="effectiveNumSituation">
<el-input v-model="form.effectiveNumSituation" placeholder="请输入有效数情况" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="其他" prop="other">
<el-input v-model="form.other" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="isEdit === false" type="primary" @click="submitForm">确定</el-button>
<el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAchievement, getAchievement, delAchievement, addAchievement, updateAchievement, audit, listAchievementgr } from "@/api/smartSchool/electronicArchives/examinationScore";;
export default {
name: "Achievement",
dicts: ["teaching_subjects", 'class_type', 'rankda', 'gk_appraising', 'class_num'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 高考成绩表格数据
achievementList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
sub: null,
teacherName: null,
year: null,
teachingClassName: null,
classType: null,
gkAppraising: null,
topStudentsCulture: null,
incrementSituation: null,
effectiveNumSituation: null,
other: null,
auditState: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
teacherName: [
{ required: true, message: "教师姓名不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "blur" }
],
teachingClassName: [
{ required: true, message: "授课班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
gkAppraising: [
{ required: true, message: "高考评优不能为空", trigger: "blur" }
],
topStudentsCulture: [
{ required: true, message: "尖子生培养不能为空", trigger: "blur" }
],
incrementSituation: [
{ required: true, message: "增量情况不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询高考成绩列表 */
getList() {
this.loading = true;
const userId = this.$store.state.user.userId;
const params = Object.assign({}, this.queryParams, { userId }); // 将 userId 添加到 queryParams 中
listAchievementgr(params).then(response => {
this.achievementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getSelectedTypes(classType) {
const selectedTypes = classType.split(','); // 将逗号分隔的字符串转换为数组
return this.dict.type.class_type.filter(option => selectedTypes.includes(option.value.toString()));
},
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
sub: null,
teacherName: null,
year: null,
teachingClassName: null,
classType: null,
gkAppraising: null,
topStudentsCulture: null,
incrementSituation: null,
effectiveNumSituation: null,
other: null,
auditState: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: 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.isEdit = false;
this.form.userId = this.$store.state.user.userId;
this.title = "添加高考成绩";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.isEdit = false;
const id = row.id || this.ids
getAchievement(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.open = true;
this.title = "修改高考成绩";
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getAchievement(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.title = "查看";
});
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAchievement({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAchievement({ ...this.form, classType: classTypeStr }).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 delAchievement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
const userId = this.$store.state.user.userId;
this.download('/achievement/export', {
...this.queryParams,
userId: userId
}, `高考成绩_${new Date().getTime()}.xlsx`)
}
}
};
</script>
...@@ -69,49 +69,55 @@ ...@@ -69,49 +69,55 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center"> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" sortable>
<template> <template>
<span>讲课获奖</span> <span>讲课获奖</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType"> <el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" /> <dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank"> <el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="讲课获奖-成果名称" align="center" prop="resultName" /> <el-table-column label="讲课获奖-成果名称" align="center" prop="resultName" sortable/>
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" sortable/>
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" sortable/>
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-hasPermi="['system:honors:edit']">修改</el-button> v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-hasPermi="['system:honors:remove']">删除</el-button> v-if="scope.row.auditState === '0' || scope.row.auditState === '1' || scope.row.auditState === '3' || scope.row.auditState === '2'">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '0'">提交</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -121,7 +127,7 @@ ...@@ -121,7 +127,7 @@
<!-- 添加或修改讲课获奖对话框 --> <!-- 添加或修改讲课获奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
...@@ -172,8 +178,7 @@ ...@@ -172,8 +178,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请输入"></el-input>
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -200,7 +205,8 @@ ...@@ -200,7 +205,8 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
...@@ -213,17 +219,19 @@ ...@@ -213,17 +219,19 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button v-if="isEdit === false" type="primary" @click="submitForm"></el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title" <SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser> :width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div> </div>
</template> </template>
<script> <script>
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards"; import { listAwardsgr, getAwards, delAwards, addAwards, updateAwards, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards";
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser"; import SelectUser from "./components/SelectUser";
export default { export default {
...@@ -234,6 +242,7 @@ export default { ...@@ -234,6 +242,7 @@ export default {
dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'], dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'],
data() { data() {
return { return {
isEdit: false,
// 选择对应处理人 // 选择对应处理人
selectHandles: { selectHandles: {
id: null, id: null,
...@@ -264,6 +273,8 @@ export default { ...@@ -264,6 +273,8 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -318,9 +329,7 @@ export default { ...@@ -318,9 +329,7 @@ export default {
pictureUrl: [ pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" } { required: true, message: "证书图片地址不能为空", trigger: "blur" }
], ],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
} }
}; };
}, },
...@@ -332,20 +341,57 @@ export default { ...@@ -332,20 +341,57 @@ export default {
/** 查询讲课获奖列表 */ /** 查询讲课获奖列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listAwards(this.queryParams).then(response => { listAwardsgr(this.queryParams).then(response => {
this.awardsList = response.rows; this.awardsList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getAwards(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 选择处理人:打开对话框 // 选择处理人:打开对话框
openSelect(title, method, type) { openSelect(title, method, type) {
console.log(1); console.log('form.userName', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
}, },
// 选择处理人 // 选择处理人
selectUser(select) { selectUser(select) {
...@@ -452,12 +498,16 @@ export default { ...@@ -452,12 +498,16 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.form.userName = this.$store.state.user.name;
this.form.userId = this.$store.state.user.userId;
this.isEdit = false;
this.title = "添加讲课获奖"; this.title = "添加讲课获奖";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.open = true; this.open = true;
this.isEdit = false;
const id = row.id || this.ids const id = row.id || this.ids
getAwards(id).then(response => { getAwards(id).then(response => {
this.form = response.data; this.form = response.data;
...@@ -466,6 +516,7 @@ export default { ...@@ -466,6 +516,7 @@ export default {
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
...@@ -496,7 +547,7 @@ export default { ...@@ -496,7 +547,7 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('/system/awards/export', { this.download('/system/awards/exportGr', {
...this.queryParams ...this.queryParams
}, `讲课获奖_${new Date().getTime()}.xlsx`) }, `讲课获奖_${new Date().getTime()}.xlsx`)
} }
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.project_research" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</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="['system:works: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="['system:works: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="['system:works: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="['system:works:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="worksList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" sortable>
<span>课题研究</span>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.project_research" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="课题研究-成果名称" align="center" prop="resultName" sortable />
<el-table-column label="获奖人" align="center" prop="userName" sortable />
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</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" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '1' || scope.row.auditState === '3' || scope.row.auditState === '2'">查看</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '0'">提交</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="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.project_research" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="isEdit === false" type="primary" @click="submitForm">确定</el-button>
<el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
import { listResearchgr, getResearch, delResearch, addResearch, updateResearch, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/projectResearch";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "projectResearch",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'project_research', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 图片上传遮罩层
uploadLoading: false,
// 论文著作表格数据
worksList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
pictureName: null,
pictureUrl: null,
},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadFileLoading: false,
// 表单参数
form: {},
// 表单校验
rules: {
sub: [
{ required: true, message: "学科不能为空", trigger: "change" }
],
awardType: [
{ required: true, message: "获奖类别不能为空", trigger: "change" }
],
awardRank: [
{ required: true, message: "获奖级别不能为空", trigger: "change" }
],
awardLevel: [
{ required: true, message: "获奖等级不能为空", trigger: "change" }
],
resultName: [
{ required: true, message: "成果名称不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "获奖人不能为空", trigger: "blur" }
],
org: [
{ required: true, message: "主办单位不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
],
pictureName: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" }
],
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
listResearchgr(this.queryParams).then(response => {
this.worksList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getResearch(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.userName', this.form.userName);
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 表单重置
reset() {
this.form = {
id: null,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: 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.isEdit = false;
this.form.userName = this.$store.state.user.name;
this.form.userId = this.$store.state.user.userId;
this.title = "添加课题研究";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
this.isEdit = false;
const id = row.id || this.ids
getResearch(id).then(response => {
this.form = response.data;
this.title = "修改课题研究";
});
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateResearch(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addResearch(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 delResearch(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/system/research/exportGr', {
...this.queryParams
}, `课题研究_${new Date().getTime()}.xlsx`)
}
}
};
</script>
...@@ -70,29 +70,31 @@ ...@@ -70,29 +70,31 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"> <el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardTime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center"> <el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" sortable>
<template> <template>
<span>教学获奖</span> <span>教学获奖</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="学科" align="center" prop="sub"> <el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" /> <dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType"> <el-table-column label="获奖类别" align="center" prop="awardType" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" /> <dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel"> <el-table-column label="获奖等级" align="center" prop="awardLevel" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" /> <dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank"> <el-table-column label="获奖级别" align="center" prop="awardRank" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" /> <dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template> </template>
...@@ -100,19 +102,23 @@ ...@@ -100,19 +102,23 @@
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" /> <el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" /> <el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" /> <el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180"> <el-table-column label="获奖时间" align="center" prop="awardTime" width="180" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-hasPermi="['system:honors:edit']">修改</el-button> v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-hasPermi="['system:honors:remove']">删除</el-button> v-if="scope.row.auditState === '0' || scope.row.auditState === '1' || scope.row.auditState === '3' || scope.row.auditState === '2'">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)" <el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button> v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '0'">提交</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -122,7 +128,7 @@ ...@@ -122,7 +128,7 @@
<!-- 添加或修改教师获奖对话框 --> <!-- 添加或修改教师获奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学科" prop="sub"> <el-form-item label="学科" prop="sub">
...@@ -171,9 +177,7 @@ ...@@ -171,9 +177,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="获奖人" prop="userName"> <el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导" <el-input v-model="form.userName" placeholder="请输入"></el-input>
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -200,7 +204,8 @@ ...@@ -200,7 +204,8 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" class="custom-margin"> <el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo"> <el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> :before-upload="beforeAvatarUpload" :http-request="uploadImage">
...@@ -213,17 +218,21 @@ ...@@ -213,17 +218,21 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button v-if="isEdit === false" type="primary" @click="submitForm"></el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title" <SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser> :width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div> </div>
</template> </template>
<script> <script>
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards"; import { listAwardsgr, getAwards, delAwards, addAwards, updateAwards, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards";
import { uploadImage as commonUpload } from "@/api/common"; import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser"; import SelectUser from "./components/SelectUser";
export default { export default {
...@@ -264,6 +273,8 @@ export default { ...@@ -264,6 +273,8 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
look: false,
isEdit: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -317,9 +328,7 @@ export default { ...@@ -317,9 +328,7 @@ export default {
pictureUrl: [ pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" } { required: true, message: "证书图片地址不能为空", trigger: "blur" }
], ],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
} }
}; };
}, },
...@@ -330,20 +339,45 @@ export default { ...@@ -330,20 +339,45 @@ export default {
/** 查询教师获奖列表 */ /** 查询教师获奖列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listAwards(this.queryParams).then(response => { listAwardsgr(this.queryParams).then(response => {
this.awardsList = response.rows; this.awardsList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 选择处理人:打开对话框 // 选择处理人:打开对话框
openSelect(title, method, type) { openSelect(title, method, type) {
console.log(1); console.log('form.userName', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
}, },
// 选择处理人 // 选择处理人
selectUser(select) { selectUser(select) {
...@@ -361,6 +395,7 @@ export default { ...@@ -361,6 +395,7 @@ export default {
// 重新赋值选中的 id // 重新赋值选中的 id
this.selectUser.id = select.id; this.selectUser.id = select.id;
}, },
// 上传成功回调 // 上传成功回调
handleAvatarSuccess(res, file) { handleAvatarSuccess(res, file) {
this.pictureUrl = res.data.url; this.pictureUrl = res.data.url;
...@@ -448,6 +483,9 @@ export default { ...@@ -448,6 +483,9 @@ export default {
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.isEdit = false;
this.form.userName = this.$store.state.user.name;
this.form.userId = this.$store.state.user.userId;
this.open = true; this.open = true;
this.title = "添加教师获奖"; this.title = "添加教师获奖";
}, },
...@@ -455,15 +493,29 @@ export default { ...@@ -455,15 +493,29 @@ export default {
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.open = true; this.open = true;
this.isEdit = false;
const id = row.id || this.ids const id = row.id || this.ids
getAwards(id).then(response => { getAwards(id).then(response => {
this.form = response.data; this.form = response.data;
this.title = "修改教师获奖"; this.title = "修改教师获奖";
}); });
}, },
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getAwards(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
this.form.auditState = '0';
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateAwards(this.form).then(response => { updateAwards(this.form).then(response => {
...@@ -493,7 +545,7 @@ export default { ...@@ -493,7 +545,7 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('/school/teacherAwards/export', { this.download('/school/teacherAwards/exportGr', {
...this.queryParams ...this.queryParams
}, `教师获奖_${new Date().getTime()}.xlsx`) }, `教师获奖_${new Date().getTime()}.xlsx`)
} }
......
<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="schoolYear">
<el-select v-model="queryParams.schoolYear" placeholder="请选择" style="width: 190px;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</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="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:award: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="['system:award: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="['system:award: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="['system:award:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="awardList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'schoolYear', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="学年" align="center" prop="schoolYear" sortable />
<el-table-column label="学期" align="center" prop="semester" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.rankda" :value="scope.row.year" />
</template>
</el-table-column>
<el-table-column label="年级" align="center" prop="grade" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖情况" align="center" prop="awardSituation" sortable />
<el-table-column label="团队成员贡献情况" align="center" prop="teamMembersContribution" sortable />
<el-table-column label="备注" align="center" prop="remark" sortable />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '1' || scope.row.auditState === '3' || scope.row.auditState === '2'">查看</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '0'">提交</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="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="140px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖情况" prop="awardSituation">
<el-input v-model="form.awardSituation" placeholder="请输入获奖情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="团队成员贡献情况" prop="teamMembersContribution">
<el-input v-model="form.teamMembersContribution" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="isEdit === false" type="primary" @click="submitForm">确定</el-button>
<el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAward, getAward, delAward, addAward, updateAward, audit } from "@/api/smartSchool/electronicArchives/teamAward";
export default {
name: "Award",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 团队获奖表格数据
awardList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
awardSituation: null,
teamMembersContribution: null,
auditState: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
awardSituation: [
{ required: true, message: "获奖情况不能为空", trigger: "blur" }
],
teamMembersContribution: [
{ required: true, message: "团队成员贡献情况不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询团队获奖列表 */
getList() {
this.loading = true;
const userId = this.$store.state.user.userId;
const params = Object.assign({}, this.queryParams, { userId }); // 将 userId 添加到 queryParams 中
listAward(params).then(response => {
this.awardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getAward(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.title = "查看";
});
},
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
}, handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
awardSituation: null,
teamMembersContribution: null,
remark: null,
auditState: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: 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.isEdit = false;
this.form.userId = this.$store.state.user.userId;
this.title = "添加团队获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
this.isEdit = false;
getAward(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改团队获奖";
});
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAward(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 delAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
const userId = this.$store.state.user.userId;
this.download('/school/award/export', {
...this.queryParams,
userId: userId
}, `团队获奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="queryParams.awardtype" placeholder="请选择">
<el-option v-for="dict in dict.type.award_type_fdjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="queryParams.awardrank" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="queryParams.awardlevel" placeholder="请选择" style="width:220px;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖人" prop="username">
<el-input v-model="queryParams.username" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="queryParams.guidanceteacher" placeholder="请输入内容" style="width: 192px;" />
</el-form-item>
<el-form-item label="辅导职责" prop="coachingr">
<el-select v-model="queryParams.coachingr" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.coachingr" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</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="['system:awards: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="['system:awards: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="['system:awards: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="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="awardsList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'awardtime', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" sortable />
<el-table-column label="成长类型" align="center" sortable>
<template>
<span>辅导老师获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardtype" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_type_fdjs" :value="scope.row.awardtype" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardlevel" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardlevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardrank" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardrank" />
</template>
</el-table-column>
<el-table-column label="比赛名称" align="center" prop="competitionname" sortable />
<el-table-column label="获奖人" align="center" prop="username" sortable />
<el-table-column label="指导教师" align="center" prop="guidanceteacher" sortable />
<el-table-column label="辅导职责" align="center" prop="coachingr" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.coachingr" :value="scope.row.coachingr" />
</template>
</el-table-column>
<el-table-column label="主办单位" align="center" prop="org" sortable />
<el-table-column label="获奖时间" align="center" prop="awardtime" width="180" sortable>
<!-- <template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</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" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditstate === '0' || scope.row.auditstate === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditstate === '0' || scope.row.auditstate === '1' || scope.row.auditstate === '3' || scope.row.auditstate === '2'">查看</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditstate === '0' || scope.row.auditstate === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditstate === '0'">提交</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="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardtype">
<el-select v-model="form.awardtype" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_type_fdjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardrank">
<el-select v-model="form.awardrank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardlevel">
<el-select v-model="form.awardlevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="辅导职责" prop="coachingr">
<el-select v-model="form.coachingr" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.coachingr" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="比赛名称" prop="competitionname">
<el-input v-model="form.competitionname" placeholder="请输入成果名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="指导教师" prop="guidanceteacher">
<el-input v-model="form.guidanceteacher" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="username">
<el-input v-model="form.username" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardtime">
<el-date-picker clearable v-model="form.awardtime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureurl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureurl" :src="baseUrl + form.pictureurl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="isEdit === false" type="primary" @click="submitForm">确定</el-button>
<el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
import { listAwardgr, getAward, addAwardgr, updateAward, delAward, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/tutorAward";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "tutorAward",
dicts: ["teaching_subjects", 'award_type_fdjs', 'awards_level', 'award_rank', 'coachingr'],
components: {
SelectUser,
},
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: 1,
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
username: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureurl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
username: null,
org: null,
awardTime: null,
pictureName: null,
pictureurl: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
sub: [
{ required: true, message: "学科不能为空", trigger: "change" }
],
awardtype: [
{ required: true, message: "获奖类别不能为空", trigger: "change" }
],
awardrank: [
{ required: true, message: "获奖级别不能为空", trigger: "change" }
],
awardlevel: [
{ required: true, message: "获奖等级不能为空", trigger: "change" }
],
competitionname: [
{ required: true, message: "成果名称不能为空", trigger: "blur" }
],
username: [
{ required: true, message: "获奖人不能为空", trigger: "blur" }
],
coachingr: [
{ required: true, message: "辅导指责不能为空", trigger: "change" }
],
guidanceteacher: [
{ required: true, message: "指导老师不能为空", trigger: "blur" }
],
org: [
{ required: true, message: "主办单位不能为空", trigger: "blur" }
],
awardtime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
pictureurl: [
{ required: true, message: "证书图片不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listAwardgr(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getAward(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditstate: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.userName', this.form.userName);
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.pictureurl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.pictureurl = this.pev + response.url;
this.form.pictureurl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
username: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureurl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: 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.isEdit = false;
this.form.username = this.$store.state.user.name;
this.form.userid = this.$store.state.user.userId;
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
this.isEdit = false;
const id = row.id || this.ids
getAward(id).then(response => {
this.form = response.data;
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
submitForm() {
this.form.auditstate = '0';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAwardgr(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 delAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/fudaot/exportGr', {
...this.queryParams
}, `辅导教师获奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment