Commit a99331fe by zhaopanyu

zpy 2.1

parent 0f88a905
import request from "@/utils/request";
// 查询青年教师成长档案列表
export function listYouthTeacher(query) {
return request({
url: "/school/youthTeacher/list",
method: "get",
params: query,
});
}
// 查询青年教师成长档案详细
export function getYouthTeacher(id) {
return request({
url: "/school/youthTeacher/" + id,
method: "get",
});
}
// 新增青年教师成长档案
export function addYouthTeacher(data) {
return request({
url: "/school/youthTeacher",
method: "post",
data: data,
});
}
// 修改青年教师成长档案
export function updateYouthTeacher(data) {
return request({
url: "/school/youthTeacher",
method: "put",
data: data,
});
}
// 删除青年教师成长档案
export function delYouthTeacher(id) {
return request({
url: "/school/youthTeacher/" + id,
method: "delete",
});
}
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1706602940595" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5249" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M371.147454 531.610275A284.3219 284.3219 0 0 1 227.564326 284.435674C227.564326 127.341851 354.906177 0 512 0s284.435674 127.341851 284.435674 284.435674-127.341851 284.435674-284.435674 284.435675C270.229677 568.871349 72.461552 757.452201 57.756228 995.52486h-0.085331a28.443567 28.443567 0 1 1-56.68803-3.327897c13.453807-219.868776 165.68378-402.192044 370.164587-460.586688zM512 511.984214a227.548539 227.548539 0 1 0 0-455.097079 227.548539 227.548539 0 0 0 0 455.097079z" fill="#0a78c8" p-id="5250"></path><path d="M678.08199 641.203341a28.443567 28.443567 0 0 0-50.857098 25.51388l171.372493 341.550357a28.443567 28.443567 0 0 0 50.857099 0l171.372494-341.550357a28.443567 28.443567 0 0 0-50.857099-25.51388L824.025935 932.095705l-145.943945-290.892364z" fill="#0a78c8" p-id="5251"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1706602940595" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5249" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M371.147454 531.610275A284.3219 284.3219 0 0 1 227.564326 284.435674C227.564326 127.341851 354.906177 0 512 0s284.435674 127.341851 284.435674 284.435674-127.341851 284.435674-284.435674 284.435675C270.229677 568.871349 72.461552 757.452201 57.756228 995.52486h-0.085331a28.443567 28.443567 0 1 1-56.68803-3.327897c13.453807-219.868776 165.68378-402.192044 370.164587-460.586688zM512 511.984214a227.548539 227.548539 0 1 0 0-455.097079 227.548539 227.548539 0 0 0 0 455.097079z" fill="#0a78c8" p-id="5250"></path><path d="M678.08199 641.203341a28.443567 28.443567 0 0 0-50.857098 25.51388l171.372493 341.550357a28.443567 28.443567 0 0 0 50.857099 0l171.372494-341.550357a28.443567 28.443567 0 0 0-50.857099-25.51388L824.025935 932.095705l-145.943945-290.892364z" fill="#0a78c8" p-id="5251"></path></svg>
\ No newline at end of file
<template>
<div class="upload-file">
<el-upload multiple :action="uploadFileUrl" :before-upload="handleBeforeUpload" :file-list="fileList" :limit="limit"
:on-error="handleUploadError" :on-exceed="handleExceed" :on-success="handleUploadSuccess"
:show-file-list="false" :headers="headers" class="upload-file-uploader" ref="fileUpload">
<!-- 上传按钮 -->
<el-button size="mini" type="primary">上传附件</el-button>
<!-- 上传提示 -->
<!-- <div class="el-upload__tip" slot="tip" v-if="showTip">-->
<!-- 请上传-->
<!-- <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>-->
<!-- <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>-->
<!-- 的文件-->
<!-- </div>-->
</el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.url" class="el-upload-list__item ele-upload-list__item-content"
v-for="(file, index) in fileList">
<el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document">{{ file.name }}</span>
</el-link>
<div class="ele-upload-list__item-content-action" style="float: right">
<el-link style="margin-left: 10px; color: #1890ff" :href="`${baseUrl}${file.url}`" :underline="false"
target="_blank">下载</el-link>
<el-link style="margin-left: 15px" :underline="false" @click="handleDelete(index)"
type="danger">删除</el-link>
</div>
</li>
</transition-group>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {
name: "UploadFileNew",
props: {
// 值
value: [String, Object, Array],
// 数量限制
limit: {
type: Number,
default: 1,
},
// 大小限制(MB)
fileSize: {
type: Number,
default: 5,
},
// 文件类型, 例如['png', 'jpg', 'jpeg']
fileType: {
type: Array,
default: () => ["doc", "xls", "ppt", "txt", "pdf"],
},
// 是否显示提示
isShowTip: {
type: Boolean,
default: true
}
},
data() {
return {
number: 0,
uploadList: [],
baseUrl: process.env.VUE_APP_BASE_API,
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传文件服务器地址
headers: {
Authorization: "Bearer " + getToken(),
},
fileList: [],
};
},
watch: {
value: {
handler(val) {
if (val) {
let temp = 1;
// 首先将值转为数组
const list = Array.isArray(val) ? val : this.value.split(',');
// 然后将数组转为对象数组
this.fileList = list.map(item => {
if (typeof item === "string") {
item = { name: item, url: item };
}
item.uid = item.uid || new Date().getTime() + temp++;
return item;
});
} else {
this.fileList = [];
return [];
}
},
deep: true,
immediate: true
}
},
computed: {
// 是否显示提示
showTip() {
return this.isShowTip && (this.fileType || this.fileSize);
},
},
methods: {
// 上传前校检格式和大小
handleBeforeUpload(file) {
// 校检文件类型
// if (this.fileType) {
// const fileName = file.name.split('.');
// const fileExt = fileName[fileName.length - 1];
// const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
// if (!isTypeOk) {
// this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
// return false;
// }
// }
// 校检文件大小
// if (this.fileSize) {
// const isLt = file.size / 1024 / 1024 < this.fileSize;
// if (!isLt) {
// this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
// return false;
// }
// }
this.$modal.loading("正在上传文件,请稍候...");
this.number++;
return true;
},
// 文件个数超出
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
// 上传失败
handleUploadError(err) {
this.$modal.msgError("上传文件失败,请重试");
this.$modal.closeLoading()
},
// 上传成功回调
handleUploadSuccess(res, file) {
console.log('handleUploadSuccess', res)
console.log('file', file)
if (res.code === 200) {
this.uploadList.push({ name: res.newFileName, url: res.fileName });
this.uploadedSuccessfully();
} else {
this.number--;
this.$modal.closeLoading();
this.$modal.msgError(res.msg);
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
},
// 删除文件
handleDelete(index) {
this.fileList.splice(index, 1);
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
},
// 上传结束处理
uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
this.$modal.closeLoading();
}
},
// 获取文件名称
getFileName(name) {
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
return "";
}
},
// 对象转成指定字符串分隔
// listToString(list, separator) {
// let strs = "";
// separator = separator || ",";
// for (let i in list) {
// strs += list[i].url + separator;
// }
// return strs != '' ? strs.substr(0, strs.length - 1) : '';
// }
}
};
</script>
<style scoped lang="scss">
.upload-file {
vertical-align: center;
width: 100%;
text-align: right;
position: relative;
}
::v-deep .el-upload {
position: absolute;
right: 0px;
top: 0px;
}
.upload-file-uploader {
margin-bottom: 5px;
}
.upload-file-list {
width: 85%;
position: relative !important;
top: 0px !important;
}
.upload-file-list .el-upload-list__item {
// border: 1px solid #e4e7ed;
line-height: 2;
margin-bottom: 10px;
position: relative;
}
.upload-file-list .ele-upload-list__item-content {
display: flex;
justify-content: flex-start;
;
align-items: center;
color: inherit;
}
.ele-upload-list__item-content-action .el-link {
margin-right: 10px;
}
</style>
......@@ -69,7 +69,11 @@
<div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="remark" label="备注" width="150" show-overflow-tooltip />
<el-table-column align="center" prop="remark" label="公布形式" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.announcement, row.remark) }}</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope">
<div>
......@@ -166,17 +170,19 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" clearable type="textarea" :rows="2"
:style="{ width: '100%' }"></el-input>
<el-col :span="12">
<el-form-item label="公布形式" prop="remark">
<el-select v-model="form.remark" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.announcement" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="证书图片" prop="schoolAccessoryList">
<el-upload v-loading="uploadLoading" class="avatar-uploader" :action="uploadFileUrl"
<el-upload v-loading="uploadLoading" class="avatar-uploader" multiple :action="uploadFileUrl"
accept="image/*" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :on-remove="handleRemove">
<div v-if="form.schoolAccessoryList.length === 0">
......@@ -268,17 +274,19 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" clearable type="textarea" :rows="2"
:style="{ width: '100%' }"></el-input>
<el-col :span="12">
<el-form-item label="公布形式" prop="remark">
<el-select v-model="form.remark" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.announcement" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="证书图片" prop="schoolAccessoryList">
<el-upload v-loading="uploadLoading" class="avatar-uploader" :action="uploadFileUrl"
<el-upload v-loading="uploadLoading" class="avatar-uploader" multiple :action="uploadFileUrl"
accept="image/*" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :on-remove="handleRemove">
<div v-if="form.schoolAccessoryList.length === 0">
......@@ -326,7 +334,7 @@ import picAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/pro
export default {
name: 'index',
components: { Treeselect, picAvatar },
dicts: ['awards_type', 'awards_level', 'audit_state'],
dicts: ['awards_type', 'awards_level', 'audit_state', 'announcement'],
data() {
return {
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
......@@ -672,6 +680,7 @@ export default {
color: #1a74be;
font-size: 16px;
}
.custom-blue-button {
background: #409eff;
/* 蓝色 */
......
......@@ -58,12 +58,9 @@
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="违纪类别">
<el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="queryForm.violateType" placeholder="输入"></el-input>
</el-form-item>
<el-form-item label="违纪次数">
<el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
......@@ -126,11 +123,11 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<el-table-column align="center" prop="violateType" sortable label="违纪行为" width="120" show-overflow-tooltip>
<!-- <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column> -->
</template> -->
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
......@@ -261,21 +258,22 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
......@@ -283,7 +281,10 @@
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分时间" prop="punishTime">
<el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
......@@ -430,9 +431,9 @@ export default {
violateNum: [
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
// violateType: [
// { required: true, message: "违纪类别不能为空", trigger: "change" }
// ],
violateType: [
{ required: true, message: "违纪行为不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
],
......
......@@ -58,12 +58,9 @@
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="违纪类别">
<el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select> -->
<!-- </el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="queryForm.violateType" placeholder="输入"></el-input>
</el-form-item>
<el-form-item label="违纪次数">
<el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
......@@ -135,11 +132,11 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120">
<template slot-scope="{ row }">
<el-table-column align="center" prop="violateType" sortable label="违纪行为" width="120">
<!-- <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column> -->
</template> -->
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
......@@ -318,21 +315,28 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<!-- <el-form-item label="违纪行为" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为" prop="violateType">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
......@@ -340,7 +344,10 @@
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分时间" prop="punishTime">
<el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
......@@ -475,21 +482,22 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为" prop="violateType">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
......@@ -497,8 +505,11 @@
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="处分时间" prop="punishTime">
<el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" clearable :style="{ width: '100%' }">
......@@ -633,21 +644,22 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为" prop="violateType">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
......@@ -655,8 +667,11 @@
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="处分时间" prop="punishTime">
<el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" clearable :style="{ width: '100%' }">
......@@ -824,9 +839,9 @@ export default {
violateNum: [
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
// violateType: [
// { required: true, message: "违纪类别不能为空", trigger: "change" }
// ],
violateType: [
{ required: true, message: "违纪行为不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
],
......
......@@ -58,12 +58,9 @@
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="违纪类别">
<el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="queryForm.violateType" placeholder="输入"></el-input>
</el-form-item>
<el-form-item label="违纪次数">
<el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
......@@ -136,11 +133,11 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<el-table-column align="center" prop="violateType" sortable label="违纪行为" width="120" show-overflow-tooltip>
<!-- <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column> -->
</template> -->
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
......@@ -280,21 +277,21 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="queryForm.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
......@@ -302,6 +299,7 @@
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处分时间" prop="punishTime">
......@@ -436,12 +434,14 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
......@@ -449,8 +449,6 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
......@@ -664,9 +662,9 @@ export default {
violateNum: [
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
// violateType: [
// { required: true, message: "违纪类别不能为空", trigger: "change" }
// ],
violateType: [
{ required: true, message: "违纪行为不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
],
......
......@@ -58,12 +58,9 @@
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="违纪类别">
<el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="queryForm.violateType" placeholder="输入"></el-input>
</el-form-item>
<el-form-item label="违纪次数">
<el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
......@@ -126,11 +123,11 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<el-table-column align="center" prop="violateType" sortable label="违纪行为" width="120" show-overflow-tooltip>
<!-- <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column> -->
</template> -->
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
......@@ -261,21 +258,21 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for=" dict in dict.type.violate_num "
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
......@@ -283,7 +280,10 @@
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分时间" prop="punishTime">
<el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
......@@ -432,7 +432,7 @@ export default {
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
violateType: [
{ required: true, message: "违纪类别不能为空", trigger: "change" }
{ required: true, message: "违纪行为不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
......
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="130px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable 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-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable 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-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable 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="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" :style="{ width: '100%' }">
</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="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
<el-row>
<div style="display: flex; justify-content: center;">
<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>
</div>
</el-row>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:youthTeacher: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="['school:youthTeacher: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="['school:youthTeacher: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="['school:youthTeacher: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="['school:youthTeacher:export']">导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="youthTeacherList" @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="grade" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="青年教师培养期" align="center" prop="incubationPeriod" />
<el-table-column label="师生同考成绩" align="center" prop="sameExamResults" />
<el-table-column label="研做高考题情况" align="center" prop="situation" />
<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="handleLook(scope.row)"
v-hasPermi="['school:youthTeacher:edit']">详情</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['school:youthTeacher:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['school:youthTeacher: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="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable 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" clearable 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" clearable 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" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" clearable 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="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="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="青年教师培养期" prop="incubationPeriod">
<el-input v-model="form.incubationPeriod" placeholder="请输入青年教师培养期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="师生同考成绩" prop="sameExamResults">
<el-input v-model="form.sameExamResults" placeholder="请输入师生同考成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="研做高考题情况" prop="situation">
<el-input v-model="form.situation" placeholder="请输入研做高考题情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item v-if="this.title == '添加青年教师成长档案'" label="优质课比赛" prop="classCompetitionName">
<el-upload ref="upload" class="upload-demo" action="#" :before-remove="beforeRemove"
:before-upload="beforeUpload" multiple :limit="1" :on-exceed="handleExceed"
:http-request="uploadFile">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<el-form-item v-if="this.title == '修改青年教师成长档案'" label="优质课比赛" prop="classCompetitionName">
<div style="display:flex ;">
<div v-if="isShow">
<li class="el-upload-list__item ele-upload-list__item-content">
<el-link :href="`${baseUrl}${form.classCompetitionUrl}`" :underline="false"
target="_blank">
<span class="el-icon-document"> {{ form.classCompetitionName }} </span>
</el-link>
</li>
<el-upload ref="upload" class="upload-demo" action="#" :before-remove="beforeRemove"
multiple :limit="1" :on-exceed="handleExceed" :before-upload="beforeUpload"
:http-request="uploadFile">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</div>
</div>
</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="900px" append-to-body>
<el-form ref="form" :model="form" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable 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" clearable 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" clearable 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" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" clearable 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="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="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="青年教师培养期" prop="incubationPeriod">
<el-input v-model="form.incubationPeriod" placeholder="请输入青年教师培养期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="师生同考成绩" prop="sameExamResults">
<el-input v-model="form.sameExamResults" placeholder="请输入师生同考成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="研做高考题情况" prop="situation">
<el-input v-model="form.situation" placeholder="请输入研做高考题情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="优质课比赛">
<li class="el-upload-list__item ele-upload-list__item-content">
<el-link :href="`${baseUrl}${form.classCompetitionUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ form.classCompetitionName }} </span>
</el-link>
</li>
</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>
</div>
</template>
<script>
import {
listYouthTeacher, getYouthTeacher, delYouthTeacher, addYouthTeacher, updateYouthTeacher
} from "@/api/smartSchool/electronicArchives/electronicRecords";
import FileUploadNewstu from "@/components/FileUploadNewstu";
import { commonUpload } from "@/api/common";
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: "YouthTeacher",
components: {
FileUploadNewstu,
},
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
isUpload: false,
baseUrl: process.env.VUE_APP_BASE_API,
query: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
fileList: [],
// 青年教师成长档案表格数据
youthTeacherList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
className: null,
name: null,
idCard: null,
incubationPeriod: null,
sameExamResults: null,
situation: null,
highQuality: null,
classCompetition: null,
},
// 是否显示附件名称
isShow: true,
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
incubationPeriod: [
{ required: true, message: "青年教师培养期不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 搜索按钮操作 */
handleQuerycx() {
this.query = true;
},
/** 查询青年教师成长档案列表 */
getList() {
this.loading = true;
listYouthTeacher(this.queryParams).then(response => {
this.youthTeacherList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查看按钮操作 */
handleLook(row) {
this.reset();
const id = row.id || this.ids
getYouthTeacher(id).then(response => {
this.form = response.data;
this.form.classCompetitionUrl = response.data.classCompetitionUrl;
console.log(this.form.classCompetitionUrl, 'this.form.classCompetitionUrl');
this.form.classCompetitionName = response.data.classCompetitionName;
console.log(this.form.classCompetitionName, 'this.form.classCompetitionName');
this.look = true;
this.title = "查看青年教师成长档案";
});
},
beforeRemove(file, fileList) {
if (this.isUpload) {
this.isUpload = false
return this.$confirm(`确定移除 ${file.name}?`);
}
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件`);
},
/** 上传前 */
beforeUpload(file) {
// //1MB=1024*1024(1MB=1024KB 1KB=1024MB)
// const is1M = file.size / 1024 / 1024 < 1;
// //限制文件上传大小
// if (!is1M) {
// this.$message.error("上传文件大小不能超过 1MB!");
// return false
// }
// this.isUpload = true
// return is1M
},
uploadFile(file) {
const fileData = file.file
const formData = new FormData()
formData.append('file', fileData)
this.uploadLoading = true
commonUpload(formData)
.then(response => {
console.log(response)
this.uploadLoading = false
this.$modal.msgSuccess('上传成功')
this.form.classCompetitionUrl = response.fileName
this.form.classCompetitionName = response.newFileName
this.fileList.push({
id: response.id,
classCompetitionUrl: response.fileName,
classCompetitionName: response.newFileName
});
console.log(fileList, 'fileList');
this.isShow = false
})
.catch(error => {
this.uploadLoading = false
})
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
className: null,
name: null,
idCard: null,
incubationPeriod: null,
sameExamResults: null,
situation: null,
highQuality: null,
classCompetition: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
// 附件上传回调函数
getFileList(data) {
console.log('getFileList', data)
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.query = false;
},
/** 重置按钮操作 */
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
getYouthTeacher(id).then(response => {
this.form = response.data;
this.form.classCompetitionUrl = response.data.classCompetitionUrl;
console.log(this.form.classCompetitionUrl, 'this.form.classCompetitionUrl');
this.form.classCompetitionName = response.data.classCompetitionName;
console.log(this.form.classCompetitionName, ' this.form.classCompetitionName ');
this.open = true;
this.title = "修改青年教师成长档案";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
// this.fileList.classCompetitionName = this.form.classCompetitionName;
// this.fileList.classCompetitionUrl = this.form.classCompetitionUrl;
// console.log(this.form.fileList, 'this.form.fileList');
if (this.form.id != null) {
updateYouthTeacher(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addYouthTeacher(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除青年教师成长档案编号为"' + ids + '"的数据项?').then(function () {
return delYouthTeacher(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('school/youthTeacher/export', {
...this.queryParams
}, `youthTeacher_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="130px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable 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-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable 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-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable 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="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" :style="{ width: '100%' }">
</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="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
<el-row>
<div style="display: flex; justify-content: center;">
<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>
</div>
</el-row>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:youthTeacher: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="['school:youthTeacher: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="['school:youthTeacher: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="['school:youthTeacher:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['school:youthTeacher:export']">导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="youthTeacherList" @selection-change="handleSelectionChange"
:row-style="{ height: '1px' }" :cell-style="{ padding: '0px' }"
:header-cell-style="{ height: '0px', fontSize: '12px', padding: '0 0' }">
<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="grade" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="青年教师培养期" align="center" prop="incubationPeriod" />
<el-table-column label="师生同考成绩" align="center" prop="sameExamResults" />
<el-table-column label="研做高考题情况" align="center" prop="situation" />
<el-table-column label="操作" width="180px" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)"
v-hasPermi="['school:youthTeacher:edit']">详情</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['school:youthTeacher:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['school:youthTeacher: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="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable 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" clearable 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" clearable 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" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" clearable 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="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="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="青年教师培养期" prop="incubationPeriod">
<el-input v-model="form.incubationPeriod" placeholder="请输入青年教师培养期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="师生同考成绩" prop="sameExamResults">
<el-input v-model="form.sameExamResults" placeholder="请输入师生同考成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="研做高考题情况" prop="situation">
<el-input v-model="form.situation" placeholder="请输入研做高考题情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="优质课比赛:" prop="classCompetitionName">
<FileUploadNewstu @input="getFileList" :limit="1" :value="fileList"></FileUploadNewstu>
</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="900px" append-to-body>
<el-form ref="form" :model="form" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable 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" clearable 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" clearable 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" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" clearable 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="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="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="青年教师培养期" prop="incubationPeriod">
<el-input v-model="form.incubationPeriod" placeholder="请输入青年教师培养期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="师生同考成绩" prop="sameExamResults">
<el-input v-model="form.sameExamResults" placeholder="请输入师生同考成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="研做高考题情况" prop="situation">
<el-input v-model="form.situation" placeholder="请输入研做高考题情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="优质课比赛:">
<li class="el-upload-list__item ele-upload-list__item-content">
<el-link :href="`${baseUrl}${form.classCompetitionUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ form.classCompetitionName }} </span>
</el-link>
</li>
</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="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 class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<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 {
listYouthTeacher, getYouthTeacher, delYouthTeacher, addYouthTeacher, updateYouthTeacher
} from "@/api/smartSchool/electronicArchives/electronicRecords";
import FileUploadNewstu from "@/components/FileUploadNewstu";
import { commonUpload } from "@/api/common";
import { getToken } from '@/utils/auth'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: "YouthTeacher",
components: {
FileUploadNewstu,
},
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/school/youthTeacher/importData",
},
uploadForm: {},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadLoading: false,
uploadFileLoading: false,
importing: false,
isUpload: false,
baseUrl: process.env.VUE_APP_BASE_API,
query: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
fileList: [],
// 青年教师成长档案表格数据
youthTeacherList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
className: null,
name: null,
idCard: null,
incubationPeriod: null,
sameExamResults: null,
situation: null,
highQuality: null,
classCompetition: null,
},
// 是否显示附件名称
isShow: true,
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
incubationPeriod: [
{ required: true, message: "青年教师培养期不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 导入按钮操作 */
handleImport(row) {
this.reset();
this.title = "导入"
this.uploadOpen = true
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
this.importing = true;
// console.log(event, file, fileList);
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false
this.upload.isUploading = false
this.importing = false;
this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })
this.getList()
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit()
},
//下载模版
importTemplate() {
this.download(
"/school/youthTeacher/download",
{},
`青年教师成长档案_${Date.now()}.xlsx`
);
},
cancelFile() {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
},
/** 搜索按钮操作 */
handleQuerycx() {
this.query = true;
},
/** 查询青年教师成长档案列表 */
getList() {
this.loading = true;
listYouthTeacher(this.queryParams).then(response => {
this.youthTeacherList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查看按钮操作 */
handleLook(row) {
this.reset();
const id = row.id || this.ids
getYouthTeacher(id).then(response => {
this.form = response.data;
this.form.classCompetitionUrl = response.data.classCompetitionUrl;
console.log(this.form.classCompetitionUrl, 'this.form.classCompetitionUrl');
this.form.classCompetitionName = response.data.classCompetitionName;
console.log(this.form.classCompetitionName, 'this.form.classCompetitionName');
this.look = true;
this.title = "查看青年教师成长档案";
});
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
className: null,
name: null,
idCard: null,
incubationPeriod: null,
sameExamResults: null,
situation: null,
highQuality: null,
classCompetition: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.fileList = []; // 清空附件列表
this.resetForm("form");
},
// 附件上传回调函数
getFileList(data) {
console.log('data', data);
this.fileList = data;
if (this.fileList.length != 0) {
this.form.classCompetitionUrl = data[0].url;
console.log(this.form.classCompetitionUrl, 'this.form.classCompetitionUrl');
this.form.classCompetitionName = data[0].name;
console.log(this.form.classCompetitionName, 'this.form.classCompetitionName');
} else {
this.form.classCompetitionUrl = '';
this.form.classCompetitionName = '';
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.query = false;
},
/** 重置按钮操作 */
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) {
const id = row.id || this.ids;
getYouthTeacher(id).then(response => {
this.form = response.data;
if (this.form.classCompetitionUrl == '' || this.form.classCompetitionUrl == undefined || this.form.classCompetitionUrl == null) {
this.fileList = [];
} else {
this.fileList = [{
url: this.form.classCompetitionUrl,
name: this.form.classCompetitionName,
}];
}
this.open = true;
this.title = "修改青年教师成长档案";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
// this.fileList.classCompetitionName = this.form.classCompetitionName;
// this.fileList.classCompetitionUrl = this.form.classCompetitionUrl;
// console.log(this.form.fileList, 'this.form.fileList');
if (this.form.id != null) {
updateYouthTeacher(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addYouthTeacher(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除青年教师成长档案编号为"' + ids + '"的数据项?').then(function () {
return delYouthTeacher(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/youthTeacher/export', {
...this.queryParams
}, `青年教师成长档案_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style lang="scss" scoped>
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
::v-deep .el-form-item {
margin-bottom: 0px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
......@@ -816,6 +816,25 @@
</el-table>
</div>
</div>
<!--青年教成长档案 -->
<div style="border: 1px solid #f3f3f3;border-radius: 13px 13px 0 0 ; margin: 20px 0;">
<div class="card_title">青年教成长档案</div>
<div style="margin: 3px 10px 15px;">
<el-table :data="youthTeacherList">
<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="grade" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="青年教师培养期" align="center" prop="incubationPeriod" />
<el-table-column label="师生同考成绩" align="center" prop="sameExamResults" />
<el-table-column label="研做高考题情况" align="center" prop="situation" />
</el-table>
</div>
</div>
</div>
</template>
......@@ -861,6 +880,7 @@ export default {
fudaoStudent: [],
//专业成长
specialityVos: [],
youthTeacherList: [],
form: {
},
......@@ -910,6 +930,8 @@ export default {
this.fudaoStudent = response.data.fudaoStudent
// console.log(this.fudaoStudent, 'this.fudaoStudent');
this.specialityVos = response.data.specialityVos
this.youthTeacherList = response.data.schoolXsyouthTeachers
console.log(this.youthTeacherList, 'this.youthTeacherList');
// console.log(this.specialityVos, 'this.specialityVos');
this.total = response.total;
this.loading = false;
......
......@@ -103,8 +103,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考核分" prop="assessmentScore">
<el-input v-model="queryParams.assessmentScore" placeholder="请输入考核分" clearable
<el-form-item label="增量分" prop="assessmentScore">
<el-input v-model="queryParams.assessmentScore" placeholder="请输入增量分" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
......@@ -147,7 +147,7 @@
:default-sort="{ prop: 'examTime', order: 'descending' }" :row-style="{ height: '1px' }"
:cell-style="{ padding: '0px' }" :header-cell-style="{ height: '50px', fontSize: '12px', padding: '0 0' }">
<el-table-column type="selection" width="30" align="center" />
<el-table-column type="index" label="序号" width="30" align="center" sortable fixed="left" />
<el-table-column type="index" label="序号" width="30" align="center" sortable />
<el-table-column label="学年" align="center" prop="schoolYear" sortable fixed="left" width="80px"
show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" sortable fixed="left" width="80px"
......@@ -190,7 +190,7 @@
</span>
</template>
</el-table-column>
<el-table-column label="考核分" align="center" prop="assessmentScore" sortable show-overflow-tooltip />
<el-table-column label="增量分" align="center" prop="assessmentScore" sortable show-overflow-tooltip />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
......@@ -330,8 +330,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考核分" prop="assessmentScore">
<el-input v-model="form.assessmentScore" placeholder="请输入考核分" type="number" clearable />
<el-form-item label="增量分" prop="assessmentScore">
<el-input v-model="form.assessmentScore" placeholder="请输入增量分" type="number" clearable />
</el-form-item>
</el-col>
</el-row>
......@@ -454,7 +454,7 @@ export default {
{ required: true, message: "班级类型不能为空", trigger: "change" }
],
assessmentScore: [
{ required: true, message: "考核分不能为空", trigger: "blur" }
{ required: true, message: "增量分不能为空", trigger: "blur" }
],
}
......
......@@ -195,13 +195,15 @@
</span>
</template>
</el-table-column>
<el-table-column label="早读" align="center" prop="earlyReading" sortable width="60px" show-overflow-tooltip />
<!-- <el-table-column label="早读" align="center" prop="earlyReading" sortable width="60px" show-overflow-tooltip />
<el-table-column label="正课" align="center" prop="requiredCourses" sortable width="60px" show-overflow-tooltip />
<el-table-column label="晚自习" align="center" prop="eveningSelfStudy" sortable width="70px"
show-overflow-tooltip /> -->
<el-table-column label="周课时量" align="center" prop="weeklyClassHours" sortable width="80px"
show-overflow-tooltip />
<el-table-column label="合计" align="center" prop="amountTo" sortable show-overflow-tooltip />
<!-- <el-table-column label="合计" align="center" prop="amountTo" sortable show-overflow-tooltip /> -->
<el-table-column label="证明人" align="center" prop="userName" width="80px" sortable show-overflow-tooltip />
<el-table-column label="备注" align="center" prop="remark" sortable show-overflow-tooltip />
<el-table-column label="备注" align="center" prop="remark" sortable show-overflow-tooltip />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
......@@ -322,7 +324,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- <el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" type="number" clearable placeholder="请输入" />
......@@ -333,11 +335,15 @@
<el-input v-model="form.requiredCourses" type="number" clearable placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
</el-row> -->
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<!-- <el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" type="number" clearable placeholder="请输入" />
</el-form-item> -->
<!-- weeklyClassHours -->
<el-form-item label="周课时量" prop="weeklyClassHours">
<el-input v-model="form.weeklyClassHours" type="number" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -466,8 +472,8 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<!-- <el-row> -->
<!-- <el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入" clearable />
</el-form-item>
......@@ -476,26 +482,27 @@
<el-form-item label="正课" prop="requiredCourses">
<el-input v-model="form.requiredCourses" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
</el-col> -->
<!-- </el-row> -->
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入" clearable />
<el-form-item label="周课时量" prop="weeklyClassHours">
<el-input v-model="form.weeklyClassHours" type="number" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证明人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入证明人" clearable />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="合计" prop="amountTo">
<el-input v-model="form.amountTo" placeholder="请输入合计" clearable />
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="证明人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入证明人" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" clearable />
......@@ -615,7 +622,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- <el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入早读" />
......@@ -626,25 +633,29 @@
<el-input v-model="form.requiredCourses" placeholder="请输入正课" />
</el-form-item>
</el-col>
</el-row>
</el-row> -->
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<!-- <el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入晚自习" />
</el-form-item> -->
<el-form-item label="周课时量" prop="weeklyClassHours">
<el-input v-model="form.weeklyClassHours" type="number" placeholder="请输入" clearable />
</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-col :span="12">
<el-form-item label="合计" prop="amountTo">
<el-input v-model="form.amountTo" placeholder="请输入合计" />
</el-form-item>
</el-col>
</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="请输入内容" />
......@@ -790,15 +801,15 @@ export default {
appointmentPost: [
{ required: true, message: "聘任岗位不能为空", trigger: "blur" }
],
earlyReading: [
{ required: true, message: "早读不能为空", trigger: "blur" }
],
requiredCourses: [
{ required: true, message: "正读不能为空", trigger: "blur" }
],
eveningSelfStudy: [
{ required: true, message: "晚自习不能为空", trigger: "blur" }
weeklyClassHours: [
{ required: true, message: "周课时量不能为空", trigger: "blur" }
],
// requiredCourses: [
// { required: true, message: "正读不能为空", trigger: "blur" }
// ],
// eveningSelfStudy: [
// { required: true, message: "晚自习不能为空", trigger: "blur" }
// ],
userName: [
{ required: true, message: "证明人不能为空", trigger: "blur" }
]
......
......@@ -58,12 +58,9 @@
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="违纪类别">
<el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="queryForm.violateType" placeholder="输入"></el-input>
</el-form-item>
<el-form-item label="违纪次数">
<el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
......@@ -126,11 +123,11 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<el-table-column align="center" prop="violateType" sortable label="违纪行为" width="120" show-overflow-tooltip>
<!-- <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column> -->
</template> -->
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
......@@ -261,12 +258,9 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for=" dict in dict.type.violate_num "
......@@ -432,7 +426,7 @@ export default {
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
violateType: [
{ required: true, message: "违纪类别不能为空", trigger: "change" }
{ required: true, message: "违纪行为不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
......
......@@ -841,8 +841,6 @@ export default {
fjmc: this.postForm.fjmc,
}]
}
console.log('postForm', this.postForm);
this.postForm.leadershipName = response.data.leadershipName
console.log(1111, response.data);
......
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="130px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable 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-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable 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-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable 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="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" :style="{ width: '100%' }">
</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="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
<el-row>
<div style="display: flex; justify-content: center;">
<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>
</div>
</el-row>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:youthTeacher: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="['school:youthTeacher: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="['school:youthTeacher: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="['school:youthTeacher:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['school:youthTeacher:export']">导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="youthTeacherList" @selection-change="handleSelectionChange"
:row-style="{ height: '1px' }" :cell-style="{ padding: '0px' }"
:header-cell-style="{ height: '0px', fontSize: '12px', padding: '0 0' }">
<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="grade" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="青年教师培养期" align="center" prop="incubationPeriod" />
<el-table-column label="师生同考成绩" align="center" prop="sameExamResults" />
<el-table-column label="研做高考题情况" align="center" prop="situation" />
<el-table-column label="操作" width="180px" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)"
v-hasPermi="['school:youthTeacher:edit']">详情</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['school:youthTeacher:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['school:youthTeacher: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="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable 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" clearable 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" clearable 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" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" clearable 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="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="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="青年教师培养期" prop="incubationPeriod">
<el-input v-model="form.incubationPeriod" placeholder="请输入青年教师培养期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="师生同考成绩" prop="sameExamResults">
<el-input v-model="form.sameExamResults" placeholder="请输入师生同考成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="研做高考题情况" prop="situation">
<el-input v-model="form.situation" placeholder="请输入研做高考题情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="优质课比赛:" prop="classCompetitionName">
<FileUploadNewstu @input="getFileList" :limit="1" :value="fileList"></FileUploadNewstu>
</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="900px" append-to-body>
<el-form ref="form" :model="form" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable 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" clearable 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" clearable 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" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" clearable 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="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="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="青年教师培养期" prop="incubationPeriod">
<el-input v-model="form.incubationPeriod" placeholder="请输入青年教师培养期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="师生同考成绩" prop="sameExamResults">
<el-input v-model="form.sameExamResults" placeholder="请输入师生同考成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="研做高考题情况" prop="situation">
<el-input v-model="form.situation" placeholder="请输入研做高考题情况" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="优质课比赛:">
<li class="el-upload-list__item ele-upload-list__item-content">
<el-link :href="`${baseUrl}${form.classCompetitionUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ form.classCompetitionName }} </span>
</el-link>
</li>
</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="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 class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<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 {
listYouthTeacher, getYouthTeacher, delYouthTeacher, addYouthTeacher, updateYouthTeacher
} from "@/api/smartSchool/electronicArchives/electronicRecords";
import FileUploadNewstu from "@/components/FileUploadNewstu";
import { commonUpload } from "@/api/common";
import { getToken } from '@/utils/auth'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: "YouthTeacher",
components: {
FileUploadNewstu,
},
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/school/youthTeacher/importData",
},
uploadForm: {},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadLoading: false,
uploadFileLoading: false,
importing: false,
isUpload: false,
baseUrl: process.env.VUE_APP_BASE_API,
query: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
fileList: [],
// 青年教师成长档案表格数据
youthTeacherList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
className: null,
name: null,
idCard: null,
incubationPeriod: null,
sameExamResults: null,
situation: null,
highQuality: null,
classCompetition: null,
},
// 是否显示附件名称
isShow: true,
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
incubationPeriod: [
{ required: true, message: "青年教师培养期不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 导入按钮操作 */
handleImport(row) {
this.reset();
this.title = "导入"
this.uploadOpen = true
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
this.importing = true;
// console.log(event, file, fileList);
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false
this.upload.isUploading = false
this.importing = false;
this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })
this.getList()
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit()
},
//下载模版
importTemplate() {
this.download(
"/school/youthTeacher/download",
{},
`青年教师成长档案_${Date.now()}.xlsx`
);
},
cancelFile() {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
},
/** 搜索按钮操作 */
handleQuerycx() {
this.query = true;
},
/** 查询青年教师成长档案列表 */
getList() {
this.loading = true;
listYouthTeacher(this.queryParams).then(response => {
this.youthTeacherList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查看按钮操作 */
handleLook(row) {
this.reset();
const id = row.id || this.ids
getYouthTeacher(id).then(response => {
this.form = response.data;
this.form.classCompetitionUrl = response.data.classCompetitionUrl;
console.log(this.form.classCompetitionUrl, 'this.form.classCompetitionUrl');
this.form.classCompetitionName = response.data.classCompetitionName;
console.log(this.form.classCompetitionName, 'this.form.classCompetitionName');
this.look = true;
this.title = "查看青年教师成长档案";
});
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
sub: null,
className: null,
name: null,
idCard: null,
incubationPeriod: null,
sameExamResults: null,
situation: null,
highQuality: null,
classCompetition: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.fileList = []; // 清空附件列表
this.resetForm("form");
},
// 附件上传回调函数
getFileList(data) {
console.log('data', data);
this.fileList = data;
if (this.fileList.length != 0) {
this.form.classCompetitionUrl = data[0].url;
console.log(this.form.classCompetitionUrl, 'this.form.classCompetitionUrl');
this.form.classCompetitionName = data[0].name;
console.log(this.form.classCompetitionName, 'this.form.classCompetitionName');
} else {
this.form.classCompetitionUrl = '';
this.form.classCompetitionName = '';
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.query = false;
},
/** 重置按钮操作 */
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) {
const id = row.id || this.ids;
getYouthTeacher(id).then(response => {
this.form = response.data;
if (this.form.classCompetitionUrl == '' || this.form.classCompetitionUrl == undefined || this.form.classCompetitionUrl == null) {
this.fileList = [];
} else {
this.fileList = [{
url: this.form.classCompetitionUrl,
name: this.form.classCompetitionName,
}];
}
this.open = true;
this.title = "修改青年教师成长档案";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
// this.fileList.classCompetitionName = this.form.classCompetitionName;
// this.fileList.classCompetitionUrl = this.form.classCompetitionUrl;
// console.log(this.form.fileList, 'this.form.fileList');
if (this.form.id != null) {
updateYouthTeacher(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addYouthTeacher(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除青年教师成长档案编号为"' + ids + '"的数据项?').then(function () {
return delYouthTeacher(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/youthTeacher/export', {
...this.queryParams
}, `青年教师成长档案_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style lang="scss" scoped>
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.mask-content {
display: flex;
align-items: center;
justify-content: center;
color: #1a74be;
font-size: 16px;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
::v-deep .el-form-item {
margin-bottom: 0px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
......@@ -58,12 +58,9 @@
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="违纪类别">
<el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="queryForm.violateType" placeholder="输入"></el-input>
</el-form-item>
<el-form-item label="违纪次数">
<el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
......@@ -126,11 +123,11 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<!-- <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<el-table-column align="center" prop="violateType" sortable label="违纪行为" width="120" show-overflow-tooltip>
<!-- <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column> -->
</template> -->
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
......@@ -261,29 +258,32 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item> -->
<el-form-item label="违纪行为">
<el-input v-model="form.violateType" placeholder="输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for=" dict in dict.type.violate_num "
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for=" dict in dict.type.punish_result "
:key="dict.value" :label="dict.label" :value="dict.value" />
<el-option v-for=" dict in dict.type.punish_result" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="处分时间" prop="punishTime">
<el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
......@@ -432,7 +432,7 @@ export default {
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
violateType: [
{ required: true, message: "违纪类别不能为空", trigger: "change" }
{ required: true, message: "违纪行为不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
......
......@@ -413,7 +413,6 @@ export default {
handleSubmit(row) {
const id = row.id
this.$modal.confirm('确认提交学生关键信息变更?').then(function () {
// return submit(id);
}).then(() => {
this.$modal.confirm('再次确认提交学生关键信息变更?').then(function () {
......
......@@ -21,9 +21,9 @@ export default {
},
created() {
// 钉钉code码,正式时打开
this.getCode()
// this.getCode()
// token,测试用
// this.csToken()
this.csToken()
},
methods: {
// 获取code
......@@ -63,11 +63,13 @@ export default {
// 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes) // 动态添加可访问路由表
// this.init()
})
})
} else {
this.$message.error(res.message)
this.$router.push({
path: '/dd'
})
}
})
......
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