Commit 314e1aee by zhaopanyu

zpy 12.13 教师电子档案

parent 5034f015
......@@ -50,3 +50,11 @@ export function exportInformation(data) {
data: data,
});
}
//学生照片导入
export function filesUpload(files) {
return request({
url: "/teacher/basiclnformation/importTeacherPicture",
method: "post",
data: files,
});
}
......@@ -8,6 +8,14 @@ export function listHonors(query) {
params: query,
});
}
//查看综合荣誉列表(个人)
export function listHonorsgr(query) {
return request({
url: "/system/honors/listGr",
method: "get",
params: query,
});
}
// 查询综合荣誉详细
export function getHonors(id) {
......@@ -42,3 +50,20 @@ export function delHonors(id) {
method: "delete",
});
}
//获取用户
export function getUserList(data) {
return request({
url: "/system/achievements/getUserList",
method: "get",
params: data,
});
}
//审核
export function audit(data) {
return request({
url: "/system/honors/audit",
method: "post",
data: data,
});
}
......@@ -42,3 +42,11 @@ export function delWorks(id) {
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/system/works/audit",
method: "post",
data: data,
});
}
......@@ -42,3 +42,11 @@ export function delAwards(id) {
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/system/awards/audit",
method: "post",
data: data,
});
}
......@@ -3,7 +3,7 @@ import request from "@/utils/request";
// 查询教师获奖列表
export function listAwards(query) {
return request({
url: "/system/awards/list",
url: "/school/teacherAwards/list",
method: "get",
params: query,
});
......@@ -12,7 +12,7 @@ export function listAwards(query) {
// 查询教师获奖详细
export function getAwards(id) {
return request({
url: "/system/awards/" + id,
url: "/school/teacherAwards/" + id,
method: "get",
});
}
......@@ -20,7 +20,7 @@ export function getAwards(id) {
// 新增教师获奖
export function addAwards(data) {
return request({
url: "/system/awards",
url: "/school/teacherAwards",
method: "post",
data: data,
});
......@@ -29,7 +29,7 @@ export function addAwards(data) {
// 修改教师获奖
export function updateAwards(data) {
return request({
url: "/system/awards",
url: "/school/teacherAwards",
method: "put",
data: data,
});
......@@ -38,7 +38,15 @@ export function updateAwards(data) {
// 删除教师获奖
export function delAwards(id) {
return request({
url: "/system/awards/" + id,
url: "/school/teacherAwards/" + id,
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/school/teacherAwards/audit",
method: "post",
data: data,
});
}
import request from "@/utils/request";
// 查询班主任考核列表
export function listAssessment(query) {
return request({
url: "/assessment/list",
method: "get",
params: query,
});
}
// 查询班主任考核详细
export function getAssessment(id) {
return request({
url: "/assessment/" + id,
method: "get",
});
}
// 新增班主任考核
export function addAssessment(data) {
return request({
url: "/assessment",
method: "post",
data: data,
});
}
// 修改班主任考核
export function updateAssessment(data) {
return request({
url: "/assessment",
method: "put",
data: data,
});
}
// 删除班主任考核
export function delAssessment(id) {
return request({
url: "/assessment/" + id,
method: "delete",
});
}
import request from "@/utils/request";
// 查询工作量信息列表
export function listAworkload(query) {
return request({
url: "/aworkload/list",
method: "get",
params: query,
});
}
// 查询工作量信息详细
export function getAworkload(id) {
return request({
url: "/aworkload/" + id,
method: "get",
});
}
// 新增工作量信息
export function addAworkload(data) {
return request({
url: "/aworkload",
method: "post",
data: data,
});
}
// 修改工作量信息
export function updateAworkload(data) {
return request({
url: "/aworkload",
method: "put",
data: data,
});
}
// 删除工作量信息
export function delAworkload(id) {
return request({
url: "/aworkload/" + id,
method: "delete",
});
}
......@@ -82,6 +82,7 @@ export default {
// 添加选中导出判断
isSelectedData(path) {
console.log('path', path)
if (this.exportType === ExportType.SELECT) {
const params = path.slice(path.lastIndexOf("/") + 1);
if (!params) {
......
......@@ -105,7 +105,7 @@
</el-button>
</el-col>
<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="single" @click="handleDelete"
v-hasPermi="['system:student:remove']">删除
</el-button>
</el-col>
......@@ -847,7 +847,8 @@
</div>
</el-dialog>
<!-- 导出对话框 -->
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
<ExportTableNew :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile">
</ExportTableNew>
</div>
</template>
......@@ -857,6 +858,7 @@ import {
getInformation,
delInformation,
addInformation,
filesUpload,
updateInformation,
} from "@/api/smartSchool/electronicArchives/basicInformation";
import { uploadImage as commonUpload } from "@/api/common";
......@@ -903,6 +905,7 @@ export default {
},
uploadForm: {},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadLoading: false,
uploadFileLoading: false,
// 遮罩层
loading: true,
......@@ -1258,8 +1261,9 @@ export default {
handleSelectionChange(selection) {
this.selection = selection;
this.ids = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
this.single = selection.length == 1;
this.multiple = selection.length > 1;
// 先定义 isMultiple 变量为 false
let isMultiple = false;
if (this.selection.length === 1) {
......@@ -1291,6 +1295,7 @@ export default {
const id = row.id || this.ids;
getInformation(id).then((response) => {
this.form = response.data;
this.pictureUrl = this.pev + response.url;
console.log(this.form, "this.form ");
this.title = "修改教师基础信息";
});
......@@ -1303,7 +1308,7 @@ export default {
updateInformation(this.form).then((response) => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess("修改成功");
this.open = false;
this.look = false;
this.getList();
});
} else {
......@@ -1333,36 +1338,44 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.exportOptions.open = true;
this.download('teacher/basiclnformation/export', {
...this.queryParams
}, `data_${Date.now()}.xlsx`)
// this.exportOptions.open = true;
// this.download('/teacher/basiclnformation/export', {
// ...this.queryParams
// }, `information_${new Date().getTime()}.xlsx`)
},
/** 导出 */
exportFile(callback) {
// 获取当前选中的多选项的 ids 和单选项的 id
const ids = this.ids;
const id = this.id;
console.log(ids, id);
const options = [
{
type: ExportType.TOTAL,
path: "/teacher/basiclnformation/export",
params: {},
},
{
type: ExportType.SELECT,
path: "/teacher/basiclnformation/export/",
params: { ids, id },
},
{
type: ExportType.QUERY,
path: "/teacher/basiclnformation/export",
params: this.queryParams,
},
];
callback(options, `教师基础信息${Date.now()}.xlsx`);
// let exportId = ''
// if (this.multiple == true) {
// exportId = this.ids
// } else {
// exportId = this.id
// }
// console.log('exportId', exportId);
// const options = [
// {
// type: ExportType.TOTAL,
// path: "/teacher/basiclnformation/export",
// params: {},
// },
// {
// type: ExportType.SELECT,
// path: "/teacher/basiclnformation/export/",
// params: { exportId },
// },
// {
// type: ExportType.QUERY,
// path: "/teacher/basiclnformation/export",
// params: this.queryParams,
// },
// ];
// callback(options, `教师基础信息${Date.now()}.xlsx`);
},
......
<template>
<div>
<h2>教师个人信息汇总</h2>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped></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,25 +2,29 @@
<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="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.teachingSubject" 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="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<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_categoriesjs" :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-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>
......@@ -34,6 +38,7 @@
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>
......@@ -43,31 +48,31 @@
<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:honors:add']">新增</el-button>
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:honors:edit']">修改</el-button>
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:honors:remove']">删除</el-button>
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:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<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="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">
......@@ -90,8 +95,8 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog 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-row>
<el-col :span="12">
......@@ -105,8 +110,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -186,11 +194,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,26 +216,26 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
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: "",
......@@ -296,18 +304,15 @@ export default {
// this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
......@@ -396,16 +401,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +418,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +436,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +445,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${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="68px">
<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.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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<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;" />
</el-form-item>
<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"
: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-select v-model="queryParams.awardLevel" placeholder="请选择">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -29,9 +29,14 @@
<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.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<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>
......@@ -62,11 +67,27 @@
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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="type">
<template>
<span>综合荣誉</span>
</template>
</el-table-column>
<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="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -78,11 +99,13 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['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)"
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)"
v-hasPermi="['system:honors:remove']">审核</el-button>
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -96,7 +119,7 @@
<el-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -105,7 +128,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
......@@ -138,7 +161,9 @@
</el-col>
<el-col :span="12">
<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-col>
</el-row>
......@@ -165,11 +190,12 @@
</el-row>
<el-row>
<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/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
: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="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -182,17 +208,128 @@
<el-button @click="cancel"> </el-button>
</div>
</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"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { listHonors, getHonors, delHonors, addHonors, updateHonors, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Honors",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
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],
......@@ -209,45 +346,24 @@ export default {
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
}],
honorsList: [],
// 弹出层标题
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,
sub: "",
awardType: "",
awardRank: "",
awardLevel: "",
userName: "",
startTime: "",
endTime: "",
},
// 表单参数
form: {},
......@@ -268,9 +384,6 @@ export default {
resultName: [
{ required: true, message: "成果名称不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "获奖人不能为空", trigger: "blur" }
],
......@@ -280,20 +393,15 @@ export default {
awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
pictureName: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" }
],
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
{ required: true, message: "证书图片不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询综合荣誉列表 */
......@@ -305,12 +413,51 @@ export default {
this.loading = false;
});
},
handleExamine() {
//审核
handleExamine(row) {
const id = row.id || this.ids;
getHonors(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()
}
})
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -340,8 +487,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -350,6 +497,7 @@ export default {
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 表单重置
......@@ -405,11 +553,68 @@ export default {
const id = row.id || this.ids
getHonors(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 选择处理人:打开对话框
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;
}
},
// openSelect(title, method, type) {
// console.log(1);
// console.log('form.userName', this.form.userName);
// if (!this.form.id) {
// console.log('新增操作');
// if (Object.keys(this.form).some(key => this.form[key])) {
// 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;
// }
// } else {
// console.log('修改操作');
// 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;
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
......@@ -440,9 +645,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('/system/honors/export', {
...this.queryParams
}, `honors_${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>
......@@ -3,28 +3,28 @@
<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="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<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="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :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="form.awardRank" placeholder="请选择" style="width: 100%;">
<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="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"
:value="dict.value">
</el-option>
......@@ -67,11 +67,31 @@
<el-table :data="worksList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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">
<template>
<span>论文论著</span>
</template>
</el-table-column>
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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">
<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" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -101,7 +121,7 @@
<el-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -145,8 +165,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-form-item label="获奖人">
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -177,7 +198,7 @@
<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.photoUrl" :src="baseUrl + form.photoUrl"
<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>
......@@ -190,17 +211,34 @@
<el-button @click="cancel"> </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 { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/system/works";
import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";;
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Works",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 遮罩层
loading: true,
// 选中数组
......@@ -216,26 +254,7 @@ export default {
// 图片上传遮罩层
uploadLoading: false,
// 论文著作表格数据
worksList: [{
id: 1,
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
}],
worksList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -305,7 +324,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询论文著作列表 */
......@@ -317,6 +336,31 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
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;
......@@ -324,7 +368,7 @@ export default {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -354,8 +398,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -449,9 +493,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/works/export', {
this.download('/system/works/export', {
...this.queryParams
}, `works_${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="68px">
<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="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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px">
<el-option v-for="dict in dict.type.award_categoriesjk" :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="form.awardRank" placeholder="请选择" style="width: 100%;">
<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>
......@@ -24,7 +24,7 @@
</el-form-item>
<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"
:value="dict.value">
</el-option>
......@@ -33,9 +33,14 @@
<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.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<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>
......@@ -66,11 +71,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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">
<template>
<span>讲课获奖</span>
</template>
</el-table-column>
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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">
<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" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -100,7 +125,7 @@
<el-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -147,7 +172,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -178,7 +204,7 @@
<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.photoUrl" :src="baseUrl + form.photoUrl"
<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>
......@@ -191,17 +217,32 @@
<el-button @click="cancel"> </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 { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'],
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],
......@@ -218,26 +259,7 @@ export default {
// 总条数
total: 0,
// 讲课获奖表格数据
awardsList: [{
id: 1,
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,
upateBy: null,
updateTime: null,
delFlag: null
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -303,7 +325,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
......@@ -316,10 +338,36 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
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.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
......@@ -348,8 +396,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -448,9 +496,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/system/awards/export', {
...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`)
}, `讲课获奖_${new Date().getTime()}.xlsx`)
}
}
};
......
......@@ -2,25 +2,29 @@
<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="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.teachingSubject" 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="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<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-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.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"
:value="dict.value">
</el-option>
......@@ -34,6 +38,7 @@
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>
......@@ -43,31 +48,31 @@
<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:honors:add']">新增</el-button>
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:honors:edit']">修改</el-button>
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:honors:remove']">删除</el-button>
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:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<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="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">
......@@ -90,8 +95,8 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog 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-row>
<el-col :span="12">
......@@ -105,8 +110,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<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>
......@@ -186,11 +194,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'project_research', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,26 +216,26 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
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: "",
......@@ -296,18 +304,15 @@ export default {
// this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
......@@ -396,16 +401,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +418,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +436,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +445,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${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="68px">
<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="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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<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>
......@@ -33,9 +33,14 @@
<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.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<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>
......@@ -67,11 +72,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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">
<template>
<span>教学获奖</span>
</template>
</el-table-column>
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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">
<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" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -83,11 +108,13 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['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)"
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)"
v-hasPermi="['system:honors:remove']">审核</el-button>
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -101,7 +128,7 @@
<el-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -146,7 +173,9 @@
</el-col>
<el-col :span="12">
<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-col>
</el-row>
......@@ -173,11 +202,12 @@
</el-row>
<el-row>
<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/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
: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="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -189,18 +219,127 @@
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</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"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
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],
......@@ -217,26 +356,7 @@ export default {
// 总条数
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
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -294,14 +414,12 @@ export default {
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询教师获奖列表 */
......@@ -313,9 +431,81 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
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;
},
//审核
handleExamine(row) {
const id = row.id || this.ids;
getHonors(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()
}
})
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -345,8 +535,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -416,6 +606,7 @@ export default {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.form.auditState = '2';
if (valid) {
if (this.form.id != null) {
updateAwards(this.form).then(response => {
......@@ -445,9 +636,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/school/teacherAwards/export', {
...this.queryParams
}, `awards_${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="69px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="姓名" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入" clearable @keyup.enter.native="handleQuery"
style="width: 200px;" />
<el-input v-model="queryParams.userName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学年" prop="year">
<el-input v-model="queryParams.year" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<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="semster">
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semster" 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="rank">
<el-input v-model="queryParams.rank" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<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%;">
......@@ -25,26 +30,31 @@
</el-select>
</el-form-item>
<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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="queryParams.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 200px;">
<el-form-item label="考试开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
<el-form-item label="考试类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择" style="width: 100%;">
<el-form-item label="考试结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
<el-form-item label="考试类型" prop="examType">
<el-select v-model="queryParams.examType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.exam_typeda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="class">
<el-input v-model="queryParams.class" placeholder="请输入班级" clearable @keyup.enter.native="handleQuery" />
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" placeholder="请选择" style="width: 100%;">
......@@ -91,19 +101,45 @@
<el-table :data="achievementsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester" />
<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="examTime" width="180">
<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" />
<el-table-column label="考试类型" align="center" prop="examType">
<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" />
<el-table-column label="年级" align="center" prop="grade" />
<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="userName" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="班级" align="center" prop="class" />
<el-table-column label="班级类型" align="center" prop="classType" />
<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="className">
</el-table-column>
<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="assessmentScore" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
......@@ -117,19 +153,44 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改教学成绩对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="year">
<el-input v-model="form.year" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<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="semster">
<el-select v-model="form.semster" placeholder="请选择" style="width: 100%;">
<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>
......@@ -145,10 +206,11 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考试类型" prop="type">
<el-select v-model="form.type" placeholder="请选择" style="width: 100%;">
<el-form-item label="考试类型" prop="examType">
<el-select v-model="form.examType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.exam_typeda" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -156,14 +218,19 @@
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-input v-model="form.year" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<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>
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -191,15 +258,15 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级" prop="class">
<el-input v-model="form.class" placeholder="请输入班级" />
<el-form-item label="班级" prop="className">
<el-input v-model="form.className" placeholder="请输入班级" />
</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" 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"
:value="dict.value">
</el-option>
......@@ -208,7 +275,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="考核分" prop="assessmentScore">
<el-input v-model="form.assessmentScore" placeholder="请输入考核分" />
<el-input v-model="form.assessmentScore" placeholder="请输入考核分" type="number" />
</el-form-item>
</el-col>
</el-row>
......@@ -225,13 +292,34 @@
</template>
<script>
// import { listAchievements, getAchievements, delAchievements, addAchievements, updateAchievements } from "@/api/system/achievements";
import { listAchievements, getAchievements, delAchievements, addAchievements, updateAchievements } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teachingAchievements";
import { checkIdcard } from "@/utils/utilLibrary/validate";
import { getToken } from '@/utils/auth'
export default {
name: "Achievements",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type'],
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/system/achievements/importData",
},
uploadForm: {
},
// 遮罩层
loading: true,
// 选中数组
......@@ -246,9 +334,7 @@ export default {
total: 0,
// 教学成绩表格数据
achievementsList: [
{
year: 2015
}
],
// 弹出层标题
title: "",
......@@ -258,19 +344,18 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
examTime: null,
examType: null,
year: null,
grade: null,
userId: null,
userName: null,
idCard: null,
sub: null,
class: null,
classType: null,
assessmentScore: null,
userName: "",
schoolYear: "",
semester: "",
year: "",
grade: "",
sub: "",
startTime: "",
endTime: "",
examType: "",
className: "",
classType: "",
assessmentScore: "",
},
// 表单参数
form: {},
......@@ -304,7 +389,7 @@ export default {
sub: [
{ required: true, message: "学科不能为空", trigger: "change" }
],
class: [
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
......@@ -320,7 +405,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询教学成绩列表 */
......@@ -351,26 +436,75 @@ export default {
userName: null,
idCard: null,
sub: null,
class: null,
className: null,
classType: null,
assessmentScore: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit()
},
//下载模版
importTemplate() {
this.download(
"/system/achievements/importTemplate",
{},
`教学成绩_${Date.now()}.xlsx`
);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString()));
},
/** 导入按钮操作 */
handleImport(row) {
this.reset();
this.title = "导入"
this.uploadOpen = true
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
// console.log(event, file, fileList);
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })
this.getList()
},
cancelFile() {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams = {
pageNum: 1,
pageSize: 10,
userName: "",
schoolYear: "",
semester: "",
year: "",
grade: "",
sub: "",
startTime: "",
endTime: "",
examType: "",
className: "",
classType: "",
assessmentScore: "",
},
this.resetForm("queryParams");
this.handleQuery();
},
// 多选框选中数据
......@@ -392,21 +526,24 @@ export default {
const id = row.id || this.ids
getAchievements(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.title = "修改教学成绩";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAchievements(this.form).then(response => {
updateAchievements({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAchievements(this.form).then(response => {
addAchievements({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -427,9 +564,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/achievements/export', {
this.download('/system/achievements/export', {
...this.queryParams
}, `achievements_${new Date().getTime()}.xlsx`)
}, `教学成绩${new Date().getTime()}.xlsx`)
}
}
};
......
......@@ -2,25 +2,29 @@
<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="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.teachingSubject" 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="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<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_categoriesjs" :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-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>
......@@ -34,6 +38,7 @@
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>
......@@ -43,31 +48,31 @@
<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:honors:add']">新增</el-button>
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:honors:edit']">修改</el-button>
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:honors:remove']">删除</el-button>
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:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<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="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">
......@@ -90,8 +95,8 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog 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-row>
<el-col :span="12">
......@@ -105,8 +110,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -186,11 +194,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,27 +216,8 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
}],
// 教师获奖表格数据
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -293,21 +282,18 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
......@@ -396,16 +382,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +399,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +417,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +426,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${new Date().getTime()}.xlsx`)
}
}
};
......
......@@ -2,16 +2,12 @@
<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="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<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="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</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"
......@@ -19,6 +15,13 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :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"
......@@ -29,9 +32,14 @@
<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.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<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>
......@@ -39,35 +47,38 @@
<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:honors:add']">新增</el-button>
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:honors:edit']">修改</el-button>
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:honors:remove']">删除</el-button>
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:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="成长类型" align="center">
<template>
<span>讲课获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<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="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">
......@@ -90,13 +101,13 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog 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-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -105,8 +116,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -169,7 +183,7 @@
<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.photoUrl" :src="baseUrl + form.photoUrl"
<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>
......@@ -186,11 +200,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,26 +222,26 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
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: "",
......@@ -296,21 +310,18 @@ export default {
// this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -340,8 +351,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -396,16 +407,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +424,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +442,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +451,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${new Date().getTime()}.xlsx`)
}
}
};
......
<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="teacherName">
<el-input v-model="queryParams.teacherName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<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="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="semester">
<el-select v-model="queryParams.semster" 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="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 label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" 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="className">
<el-input v-model="queryParams.className" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="德育考核成绩" prop="moralEduCheckAchievement">
<el-input v-model="queryParams.moralEduCheckAchievement" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="智育考核成绩" prop="intellEduCheckAchievement">
<el-input v-model="queryParams.intellEduCheckAchievement" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:assessment: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:assessment: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:assessment:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['system:student:export']">导入
</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:assessment:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="assessmentList" @selection-change="handleSelectionChange">
<el-table-column type="selection" 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">
<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" />
<el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" />
<el-table-column label="总考核成绩" align="center" prop="totalCheckAchievement" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:assessment:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:assessment:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改班主任考核对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-row>
<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-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-row>
<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="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="className">
<el-input v-model="form.className" placeholder="请输入" />
</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="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="德育考核成绩" prop="moralEduCheckAchievement">
<el-input v-model="form.moralEduCheckAchievement" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="智育考核成绩" prop="intellEduCheckAchievement">
<el-input v-model="form.intellEduCheckAchievement" placeholder="请输入" />
</el-form-item>
</el-col>
<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-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="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-row>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="cancelFile">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAssessment, getAssessment, delAssessment, addAssessment, updateAssessment } from "@/api/smartSchool/electronicArchives/teacherAssessment";
import { getToken } from "@/utils/auth";
export default {
name: "Assessment",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/assessment/importData",
},
uploadForm: {},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 班主任考核表格数据
assessmentList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
semester: null,
year: null,
schoolYear: null,
grade: null,
className: null,
teacherName: null,
idCard: null,
moralEduCheckAchievement: null,
intellEduCheckAchievement: null,
totalCheckAchievement: null,
classType: null,
sub: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
teacherName: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" }
],
moralEduCheckAchievement: [
{ required: true, message: "德育考核成绩不能为空", trigger: "blur" }
],
intellEduCheckAchievement: [
{ required: true, message: "智育考核成绩不能为空", trigger: "blur" }
],
totalCheckAchievement: [
{ required: true, message: "总成绩考核不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询班主任考核列表 */
getList() {
this.loading = true;
listAssessment(this.queryParams).then(response => {
this.assessmentList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString()));
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/assessment/download",
{},
`班主任考核_${Date.now()}.xlsx`
);
},
// 表单重置
reset() {
this.form = {
id: null,
semester: null,
year: null,
schoolYear: null,
grade: null,
className: null,
teacherName: null,
idCard: null,
moralEduCheckAchievement: null,
intellEduCheckAchievement: null,
totalCheckAchievement: null,
classType: null,
sub: null,
remark: 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.title = "添加班主任考核";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAssessment(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.open = true;
this.title = "修改班主任考核";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAssessment({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAssessment({ ...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 delAssessment(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/assessment/export', {
...this.queryParams
}, `班主任考核_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="89px">
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<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.semster" 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 label="聘任岗位" prop="appointmentPost">
<el-select v-model="queryParams.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="聘任职务" prop="appointmentPosition">
<el-input v-model="queryParams.appointmentPosition" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</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="userName">
<el-input v-model="queryParams.userName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="queryParams.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :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:aworkload: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:aworkload: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:aworkload:remove']">删除</el-button>
</el-col>
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['system:student:export']">导入
</el-button>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:aworkload:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="aworkloadList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'schoolYear', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="90px" fixed="left" sortable />
<el-table-column label="学期" align="center" prop="semester" fixed="left" 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" fixed="left" sortable />
<el-table-column label="年级" align="center" prop="grade" fixed="left" 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="name" 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="appointmentPost" sortable 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" 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="classType" width="120px" 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="earlyReading" sortable />
<el-table-column label="正课" align="center" prop="requiredCourses" sortable />
<el-table-column label="晚自习" align="center" prop="eveningSelfStudy" sortable width="120px" />
<el-table-column label="合计" align="center" prop="amountTo" sortable />
<el-table-column label="证明人" align="center" prop="userName" width="120px" fixed="right" sortable />
<el-table-column label="备注" align="center" prop="remark" fixed="right" sortable />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
v-hasPermi="['system:aworkload:edit']">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)"
v-hasPermi="['system:aworkload:edit']">详情</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:aworkload:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改工作量信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<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="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<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-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任岗位" prop="appointmentPost">
<el-select v-model="form.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :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="appointmentPosition">
<el-input v-model="form.appointmentPosition" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="form.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :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="className">
<el-input v-model="form.className" placeholder="请输入" />
</el-form-item>
</el-col>
<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-row>
<el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入早读" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="正课" prop="requiredCourses">
<el-input v-model="form.requiredCourses" placeholder="请输入正课" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入晚自习" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证明人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入证明人" />
</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" type="textarea" 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="edit" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<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="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<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-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任岗位" prop="appointmentPost">
<el-select v-model="form.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :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="appointmentPosition">
<el-input v-model="form.appointmentPosition" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="form.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :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="className">
<el-input v-model="form.className" placeholder="请输入" />
</el-form-item>
</el-col>
<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-row>
<el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入早读" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="正课" prop="requiredCourses">
<el-input v-model="form.requiredCourses" placeholder="请输入正课" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入晚自习" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合计" prop="amountTo">
<el-input v-model="form.amountTo" 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-form-item>
</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-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="90px" :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="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<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-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任岗位" prop="appointmentPost">
<el-select v-model="form.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :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="appointmentPosition">
<el-input v-model="form.appointmentPosition" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="form.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :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="className">
<el-input v-model="form.className" placeholder="请输入" />
</el-form-item>
</el-col>
<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-row>
<el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入早读" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="正课" prop="requiredCourses">
<el-input v-model="form.requiredCourses" placeholder="请输入正课" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入晚自习" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合计" prop="amountTo">
<el-input v-model="form.amountTo" 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-form-item>
</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-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="cancelFile">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAworkload, getAworkload, delAworkload, addAworkload, updateAworkload } from "@/api/smartSchool/electronicArchives/workloadInformation";;
import { getToken } from "@/utils/auth";
export default {
name: "Aworkload",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/aworkload/importData",
},
uploadForm: {},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 工作量信息表格数据
aworkloadList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
edit: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
name: null,
sub: null,
idCard: null,
appointmentPost: null,
appointmentPosition: null,
appointmentSituation: null,
className: null,
classType: null,
earlyReading: null,
requiredCourses: null,
eveningSelfStudy: null,
userId: null,
userName: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
idCard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" }
],
appointmentPost: [
{ required: true, message: "聘任岗位不能为空", trigger: "blur" }
],
earlyReading: [
{ required: true, message: "早读不能为空", trigger: "blur" }
],
requiredCourses: [
{ required: true, message: "正读不能为空", trigger: "blur" }
],
eveningSelfStudy: [
{ required: true, message: "晚自习不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "证明人不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询工作量信息列表 */
getList() {
listAworkload(this.queryParams).then(response => {
this.aworkloadList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString()));
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/aworkload/download",
{},
`教师基础信息_${Date.now()}.xlsx`
);
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.edit = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
name: null,
sub: null,
idCard: null,
appointmentPost: null,
appointmentPosition: null,
appointmentSituation: null,
className: null,
classType: null,
earlyReading: null,
requiredCourses: null,
eveningSelfStudy: null,
userId: null,
userName: null,
remark: 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.title = "添加工作量信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAworkload(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.edit = true;
this.title = "修改工作量信息";
});
},
/** 查看按钮操作 */
handleLook(row) {
this.reset();
const id = row.id || this.ids
this.isEdit = true;
getAworkload(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.look = true;
this.title = "查看工作量信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAworkload({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.edit = false;
this.getList();
});
} else {
addAworkload({ ...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 delAworkload(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/aworkload/download', {
...this.queryParams
}, `工作量信息_${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="68px">
<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.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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<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;" />
</el-form-item>
<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"
: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-select v-model="queryParams.awardLevel" placeholder="请选择">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -29,9 +29,14 @@
<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.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<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>
......@@ -39,17 +44,12 @@
<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:honors: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:honors: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:honors:remove']">删除</el-button>
</el-col>
......@@ -62,11 +62,27 @@
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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="type">
<template>
<span>综合荣誉</span>
</template>
</el-table-column>
<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="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -77,10 +93,16 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<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>
......@@ -90,11 +112,11 @@
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog 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-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -103,7 +125,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
......@@ -136,7 +158,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -163,11 +185,12 @@
</el-row>
<el-row>
<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/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
: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="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -176,21 +199,42 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<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 { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { listHonorsgr, getHonors, delHonors, addHonors, updateHonors, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Honors",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
isEdit: false,
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
......@@ -207,45 +251,23 @@ export default {
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
}],
honorsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: 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,
sub: "",
awardType: "",
awardRank: "",
awardLevel: "",
userName: "",
startTime: "",
endTime: "",
},
// 表单参数
form: {},
......@@ -266,9 +288,6 @@ export default {
resultName: [
{ required: true, message: "成果名称不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "获奖人不能为空", trigger: "blur" }
],
......@@ -278,37 +297,49 @@ export default {
awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
pictureName: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" }
],
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
{ required: true, message: "证书图片不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询综合荣誉列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
listHonorsgr(this.queryParams).then(response => {
this.honorsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
//提交
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.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -338,8 +369,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -348,6 +379,7 @@ export default {
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 表单重置
......@@ -393,6 +425,9 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.isEdit = false;
this.form.userName = this.$store.state.user.name;
this.open = true;
this.title = "添加综合荣誉";
},
......@@ -400,14 +435,83 @@ export default {
handleUpdate(row) {
this.reset();
this.open = true;
this.isEdit = false;
const id = row.id || this.ids
getHonors(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getHonors(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
// 选择处理人:打开对话框
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;
}
},
// openSelect(title, method, type) {
// console.log(1);
// console.log('form.userName', this.form.userName);
// if (!this.form.id) {
// console.log('新增操作');
// if (Object.keys(this.form).some(key => this.form[key])) {
// 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;
// }
// } else {
// console.log('修改操作');
// 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;
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
......@@ -438,9 +542,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('/system/honors/exportGr', {
...this.queryParams
}, `honors_${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>
......@@ -3,28 +3,28 @@
<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="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<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="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :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="form.awardRank" placeholder="请选择" style="width: 100%;">
<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="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"
:value="dict.value">
</el-option>
......@@ -67,11 +67,31 @@
<el-table :data="worksList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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">
<template>
<span>论文论著</span>
</template>
</el-table-column>
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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">
<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" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -86,6 +106,8 @@
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -99,7 +121,7 @@
<el-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -143,8 +165,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-form-item label="获奖人">
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -175,7 +198,7 @@
<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.photoUrl" :src="baseUrl + form.photoUrl"
<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>
......@@ -188,17 +211,34 @@
<el-button @click="cancel"> </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 { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/system/works";
import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";;
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Works",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 遮罩层
loading: true,
// 选中数组
......@@ -214,26 +254,7 @@ export default {
// 图片上传遮罩层
uploadLoading: false,
// 论文著作表格数据
worksList: [{
id: 1,
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
}],
worksList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -303,7 +324,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询论文著作列表 */
......@@ -315,6 +336,31 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
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;
......@@ -322,7 +368,7 @@ export default {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -352,8 +398,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -447,9 +493,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/works/export', {
this.download('/system/works/export', {
...this.queryParams
}, `works_${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="68px">
<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="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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px">
<el-option v-for="dict in dict.type.award_categoriesjk" :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="form.awardRank" placeholder="请选择" style="width: 100%;">
<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>
......@@ -24,7 +24,7 @@
</el-form-item>
<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"
:value="dict.value">
</el-option>
......@@ -33,9 +33,14 @@
<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.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<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>
......@@ -66,11 +71,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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">
<template>
<span>讲课获奖</span>
</template>
</el-table-column>
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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">
<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" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -85,6 +110,8 @@
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -98,7 +125,7 @@
<el-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -145,7 +172,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -176,7 +204,7 @@
<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.photoUrl" :src="baseUrl + form.photoUrl"
<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>
......@@ -189,17 +217,32 @@
<el-button @click="cancel"> </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 { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'],
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],
......@@ -216,26 +259,7 @@ export default {
// 总条数
total: 0,
// 讲课获奖表格数据
awardsList: [{
id: 1,
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,
upateBy: null,
updateTime: null,
delFlag: null
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -301,7 +325,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
......@@ -314,10 +338,36 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
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.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
......@@ -346,8 +396,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -446,9 +496,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/system/awards/export', {
...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>
<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-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"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<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>
......@@ -33,9 +33,14 @@
<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.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<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>
......@@ -67,11 +72,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<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">
<template>
<span>教学获奖</span>
</template>
</el-table-column>
<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="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<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">
<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" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -86,6 +111,8 @@
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -99,7 +126,7 @@
<el-row>
<el-col :span="12">
<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"
:value="dict.value">
</el-option>
......@@ -144,7 +171,9 @@
</el-col>
<el-col :span="12">
<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-col>
</el-row>
......@@ -175,7 +204,7 @@
<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.photoUrl" :src="baseUrl + form.photoUrl"
<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>
......@@ -188,17 +217,32 @@
<el-button @click="cancel"> </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 { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
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],
......@@ -215,26 +259,7 @@ export default {
// 总条数
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
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -299,7 +324,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询教师获奖列表 */
......@@ -311,9 +336,34 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
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.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -343,8 +393,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -443,9 +493,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/school/teacherAwards/export', {
...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`)
}, `教师获奖_${new Date().getTime()}.xlsx`)
}
}
};
......
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