Commit 0ca51a08 by zhaopanyu

zpy 12.8 教师电子档案

parent 2487251e
<template>
<el-dialog
:visible.sync="open"
:title="title"
width="300px"
>
<el-dialog :visible.sync="open" :title="title" width="300px">
<el-radio-group v-model="exportType">
<el-radio
v-for="item in ExportOptions"
:key="item.type"
:label="item.type"
style="display: block; margin-bottom: 10px"
>{{ item.label }}
<el-radio v-for="item in ExportOptions" :key="item.type" :label="item.type"
style="display: block; margin-bottom: 10px">{{ item.label }}
</el-radio>
</el-radio-group>
<div slot="footer">
<el-button
type="primary"
@click="exportFile"
>导 出
<el-button type="primary" @click="exportFile">导 出
</el-button>
<el-button
plain
@click="closeExport"
>取 消
<el-button plain @click="closeExport">取 消
</el-button>
</div>
</el-dialog>
</template>
<script>
import {ExportType, ExportTypes} from "@/enums/common";
import { ExportType, ExportTypes } from "@/enums/common";
export default {
name: "ExportTable",
......@@ -80,10 +66,11 @@ export default {
exportFile() {
this.$emit('export', (exportOptions = [], fileName) => {
const result = exportOptions.find(item => item.type === this.exportType);
console.log('result', result);
if (result) {
// 添加校验
if (result.path && this.isSelectedData(result.path)) {
this.download(result.path, {...result.params}, fileName);
this.download(result.path, { ...result.params }, fileName);
}
this.open = false;
}
......@@ -109,6 +96,4 @@ export default {
}
</script>
<style scoped>
</style>
<style scoped></style>
......@@ -49,8 +49,9 @@
</el-col>
<el-col :span="12">
<el-form-item label="参加工作时间" prop="workingHours">
<el-input v-model="queryParams.workingHours" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
<el-date-picker clearable v-model="queryParams.workingHours" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
......@@ -108,16 +109,6 @@
v-hasPermi="['system:student:remove']">删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:student:edit']">修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" size="mini" plain icon="el-icon-view" :disabled="single" @click="handleView">查看
</el-button>
</el-col>
<el-col :offset="1" :span="1.5">
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['system:student:export']">导入
......@@ -140,15 +131,19 @@
:default-sort="{ prop: 'age', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" fixed="left" />
<el-table-column label="姓名" align="center" prop="name" sortable fixed="left" />
<el-table-column label="性别" align="center" prop="sex" sortable fixed="left">
<el-table-column label="姓名" align="center" prop="name" sortable fixed="left" width="100" />
<el-table-column label="性别" align="center" prop="sex" sortable fixed="left" width="80">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
</template>
</el-table-column>
<el-table-column label="年龄" align="center" prop="age" sortable fixed="left" />
<el-table-column label="档案年龄" align="center" prop="fileAge" sortable width="100px" />
<el-table-column label="政治面貌" align="center" prop="politicalLandscape" sortable width="100px" />
<el-table-column label="年龄" align="center" prop="age" sortable fixed="left" width="80" />
<el-table-column label="档案年龄" align="center" prop="fileAge" sortable width="120px" />
<el-table-column label="政治面貌" align="center" prop="politicalLandscape" sortable width="100px">
<template slot-scope="scope">
<dict-tag :options="dict.type.politics_tatusls" :value="scope.row.politicalLandscape" />
</template>
</el-table-column>
<el-table-column label="档案生日" align="center" prop="fileBirthDate" sortable width="100px">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.fileBirthDate, "{y}-{m}-{d}") }}</span>
......@@ -156,10 +151,18 @@
</el-table-column>
<el-table-column label="到市二中工作时间" align="center" prop="toSecondMiddleSchoolTime" sortable width="148px" />
<el-table-column label="到市二中工作年限" align="center" prop="toSecondAge" sortable width="148px" />
<el-table-column label="现职称" align="center" prop="currentProfessionalTitle" sortable width="100px" />
<el-table-column label="现职称" align="center" prop="currentProfessionalTitle" sortable width="100px">
<template slot-scope="scope">
<dict-tag :options="dict.type.current_professional" :value="scope.row.currentProfessionalTitle" />
</template>
</el-table-column>
<el-table-column label="毕业院校" align="center" prop="graduationInstitution1" sortable width="100px" />
<el-table-column label="学历" align="center" prop="firstDegree" sortable />
<el-table-column label="在岗情况" align="center" prop="onDutySituation" sortable width="100px" />
<el-table-column label="在岗情况" align="center" prop="onDutySituation" sortable width="100px">
<template slot-scope="scope">
<dict-tag :options="dict.type.duty_situation" :value="scope.row.onDutySituation" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width ">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
......@@ -198,7 +201,7 @@
</div>
</el-dialog>
<!-- 添加对话框 -->
<el-dialog title="详细信息" :visible.sync="open" width="950px">
<el-dialog title="详细信息" :visible.sync="open" width="980px">
<el-form ref="form" :model="form" :rules="rules" label-width="138px">
<el-row type="flex" justify="space-between">
<el-col :span="16">
......@@ -210,7 +213,7 @@
<el-col :span="12" class="custom-margin">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入"
clearable></el-input>
clearable style="width: 190px;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" class="custom-margin">
......@@ -224,8 +227,8 @@
<el-col :span="12" class="custom-margin">
<el-form-item label="档案出生日期" prop="fileBirthDate">
<el-date-picker v-model="form.fileBirthDate" type="date" placeholder="选择日期"
:default-value="form.fileBirthDate" style="width: 100%"
value-format="yyyy-MM-dd"></el-date-picker>
:default-value="form.fileBirthDate" style="width: 190px;"
value-format=" yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12" class="custom-margin">
......@@ -237,7 +240,7 @@
</el-col>
<el-col :span="12" class="custom-margin">
<el-form-item label="籍贯" prop="hometown">
<el-input v-model="form.hometown" placeholder="请输入籍贯"></el-input>
<el-input v-model="form.hometown" placeholder="请输入籍贯" style="width: 190px;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" class="custom-margin">
......@@ -247,7 +250,7 @@
</el-col>
<el-col :span="12" class="custom-margin">
<el-form-item label="政治面貌" prop="politicalLandscape">
<el-select v-model="form.politicalLandscape" style="width: 100%" placeholder="请选择">
<el-select v-model="form.politicalLandscape" style="width: 190px;" placeholder="请选择">
<el-option v-for="dict in dict.type.politics_tatusls" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
......@@ -263,7 +266,7 @@
</el-col>
<el-col :span="12" class="custom-margin">
<el-form-item label="任教学科" prop="teachingSubject">
<el-select v-model="form.teachingSubject" style="width: 100%" placeholder="请选择">
<el-select v-model="form.teachingSubject" style="width: 190px;" placeholder="请选择">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
......@@ -302,7 +305,7 @@
<el-col :span="8" class="custom-margin">
<el-form-item label="现职称取得资格时间" prop="currentProfessionalTitleTime">
<el-date-picker clearable v-model="form.currentProfessionalTitleTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
value-format="yyyy-MM-dd" placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -326,7 +329,7 @@
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="现聘岗位" prop="currentPosition">
<el-select v-model="form.currentPosition" style="width: 100%" placeholder="请选择">
<el-select v-model="form.currentPosition" style="width: 190px;" placeholder="请选择">
<el-option v-for="dict in dict.type.current_position" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -353,7 +356,7 @@
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="职务" prop="duties">
<el-input v-model="form.duties" placeholder="请输入" />
<el-input v-model="form.duties" placeholder="请输入" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
......@@ -371,7 +374,7 @@
<el-col :span="8" class="custom-margin">
<el-form-item label="参加工作时间" prop="workingHours">
<el-date-picker clearable v-model="form.workingHours" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" :style="{ width: '100%' }">
placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -386,12 +389,16 @@
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="教龄起算时间" prop="lengthOfTeacherTime">
<el-input v-model="form.lengthOfTeacherTime" placeholder="请输入" />
<el-date-picker clearable v-model="form.lengthOfTeacherTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="工龄起算时间" prop="lengthOfServiceTime">
<el-input v-model="form.lengthOfServiceTime" placeholder="请输入" />
<el-date-picker clearable v-model="form.lengthOfTeacherTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
......@@ -416,7 +423,7 @@
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校1" prop="graduationInstitution1">
<el-input v-model="form.graduationInstitution1" placeholder="请输入" />
<el-input v-model="form.graduationInstitution1" placeholder="请输入" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
......@@ -433,7 +440,7 @@
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校2" prop="graduationInstitution2">
<el-input v-model="form.graduationInstitution2" placeholder="请输入" />
<el-input v-model="form.graduationInstitution2" placeholder="请输入" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
......@@ -450,7 +457,7 @@
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校3" prop="graduationInstitution3">
<el-input v-model="form.graduationInstitution3" placeholder="请输入" />
<el-input v-model="form.graduationInstitution3" placeholder="请输入" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
......@@ -467,7 +474,7 @@
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="第一学历" prop="firstDegree">
<el-input v-model="form.firstDegree" placeholder="请输入" />
<el-input v-model="form.firstDegree" placeholder="请输入" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
......@@ -484,7 +491,7 @@
</el-col>
<el-col :span="8" class="custom-margin">
<el-form-item label="工作经历" prop="workExperience">
<el-input v-model="form.workExperience" placeholder="请输入" />
<el-input v-model="form.workExperience" placeholder="请输入" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8" class="custom-margin">
......@@ -494,7 +501,7 @@
</el-col>
</el-row>
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="16" class="custom-margin">
<el-col :span="24" class="custom-margin">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" />
</el-form-item>
......@@ -506,72 +513,72 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 查看对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="60%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
<el-row :gutter="20">
<!-- 修改对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="950px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="138px">
<el-row type="flex" justify="space-between">
<el-col :span="16">
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入"
clearable></el-input>
clearable style="width: 190px;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="年龄" prop="age">
<el-input v-model="form.age" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择" :style="{ width: '100%' }">
<el-select v-model="form.sex" placeholder="请选择" style="width: 190px;">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="档案出生日期" prop="fileBirthDate">
<el-date-picker v-model="form.fileBirthDate" type="date" placeholder="请选择"
:default-value="form.fileBirthDate" style="width: 100%"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="档案年龄" prop="fileAge">
<el-input v-model="form.fileAge" placeholder="请输入"></el-input>
<el-input v-model="form.fileAge" placeholder="请输入" style="width: 190px;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="出生年月" prop="birthDate">
<el-date-picker clearable v-model="form.birthDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="籍贯" prop="hometown">
<el-input v-model="form.hometown" placeholder="请输入"></el-input>
<el-input v-model="form.hometown" placeholder="请输入" style="width: 190px;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="民族" prop="nation">
<el-input v-model="form.nation" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="政治面貌" prop="politicalLandscape">
<el-select v-model="form.politicalLandscape" style="width: 100%" placeholder="请选择">
<el-select v-model="form.politicalLandscape" style="width: 190px;" placeholder="请选择">
<el-option v-for="dict in dict.type.politics_tatusls" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
......@@ -579,16 +586,16 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="入党时间" prop="partyMembershipTime">
<el-date-picker clearable v-model="form.partyMembershipTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" class="custom-margin">
<el-form-item label="任教学科" prop="teachingSubject">
<el-select v-model="form.teachingSubject" style="width: 100%" placeholder="请选择">
<el-select v-model="form.teachingSubject" style="width: 190px;" placeholder="请选择">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
......@@ -596,20 +603,23 @@
</el-form-item>
</el-col>
</el-col>
<el-col :span="8">
<el-card style="height: 325px">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl" style="width: 350px; height: 280px"
class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-card>
<el-col :span="6">
<el-col :span="6" class="custom-margin">
<el-card
style="height: 200px;width: 220px; display: flex; align-items: center; justify-content: center; ">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-card>
</el-col>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="6" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="现职称" prop="currentProfessionalTitle">
<el-select v-model="form.currentProfessionalTitle" style="width: 100%" placeholder="请选择">
<el-option v-for="dict in dict.type.current_professional" :key="dict.value"
......@@ -618,14 +628,14 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="现职称取得资格时间" prop="currentProfessionalTitleTime">
<el-date-picker clearable v-model="form.currentProfessionalTitleTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
value-format="yyyy-MM-dd" placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="现聘职称" prop="currentHiringProfessionalTitle">
<el-select v-model="form.currentHiringProfessionalTitle" style="width: 100%" placeholder="请选择">
<el-option v-for="dict in dict.type.current_professional" :key="dict.value"
......@@ -635,24 +645,24 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="6" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="现职称聘任时间" prop="currentHiringProfessionalTitleTime">
<el-date-picker clearable v-model="form.currentHiringProfessionalTitleTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="现聘岗位" prop="currentPosition">
<el-select v-model="form.currentPosition" style="width: 100%" placeholder="请选择">
<el-select v-model="form.currentPosition" style="width: 190px;" placeholder="请选择">
<el-option v-for="dict in dict.type.current_position" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="现岗位等级" prop="currentJobLevel">
<el-select v-model="form.currentJobLevel" style="width: 100%" placeholder="请选择">
<el-option v-for="level in filteredJobLevels" :key="level.value" :label="level.label"
......@@ -662,79 +672,84 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="6" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="现岗位等级聘任时间" prop="currentJobLevelAppointmentTime">
<el-date-picker clearable v-model="form.currentJobLevelAppointmentTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="职务" prop="duties">
<el-input v-model="form.duties" placeholder="请输入" />
<el-input v-model="form.duties" placeholder="请输入" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="教师资格种类" prop="teacherQualificationType">
<el-input v-model="form.teacherQualificationType" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="6" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="教师资格证号码" prop="teacherQualificationCertificateNum">
<el-input v-model="form.teacherQualificationCertificateNum" placeholder="请输入教师资格证号码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="参加工作时间" prop="workingHours">
<el-date-picker clearable v-model="form.workingHours" type="date" value-format="yyyy-MM-dd"
placeholder="请选择参加工作时间" :style="{ width: '100%' }">
placeholder="请选择参加工作时间" style="width: 190px;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="工作年限" prop="seniority">
<el-input v-model="form.seniority" placeholder="请输入教龄" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="到二中工作时间" prop="toSecondMiddleSchoolTime">
<el-date-picker clearable v-model="form.toSecondMiddleSchoolTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择到二中工作时间" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="到市二中工作年限" prop="toSecondAge">
<el-input v-model="form.toSecondAge" placeholder="请输入到市二中工作年限" />
<el-input v-model="form.toSecondAge" placeholder="请输入到市二中工作年限" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="教龄起算时间" prop="lengthOfTeacherTime">
<el-input v-model="form.lengthOfTeacherTime" placeholder="请输入教龄起算时间" />
<el-date-picker clearable v-model="form.lengthOfTeacherTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="工龄起算时间" prop="lengthOfServiceTime">
<el-input v-model="form.lengthOfServiceTime" placeholder="请输入工龄起算时间" />
<el-date-picker clearable v-model="form.lengthOfTeacherTime" type="date"
value-format="yyyy-MM-dd" placeholder="请选择" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="在岗情况" prop="onDutySituation">
<el-select v-model="form.onDutySituation" style="width: 100%" placeholder="请选择">
<el-select v-model="form.onDutySituation" style="width: 190px;" placeholder="请选择">
<el-option v-for="dict in dict.type.duty_situation" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="在编情况" prop="currentSituation">
<el-select v-model="form.currentSituation" style="width: 100%" placeholder="请选择">
<el-option v-for="dict in dict.type.current_situation" :key="dict.value" :label="dict.label"
......@@ -744,93 +759,93 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校1" prop="graduationInstitution1">
<el-input v-model="form.graduationInstitution1" placeholder="请输入毕业院校1" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="专业1" prop="major1">
<el-input v-model="form.major1" placeholder="请输入专业1" />
<el-input v-model="form.major1" placeholder="请输入专业1" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业时间1" prop="graduationTime1">
<el-input v-model="form.graduationTime1" placeholder="请输入毕业时间1" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校2" prop="graduationInstitution2">
<el-input v-model="form.graduationInstitution2" placeholder="请输入毕业院校2" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="专业2" prop="major2">
<el-input v-model="form.major2" placeholder="请输入专业2" />
<el-input v-model="form.major2" placeholder="请输入专业2" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业时间2" prop="graduationTime2">
<el-input v-model="form.graduationTime2" placeholder="请输入毕业时间2" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校3" prop="graduationInstitution3">
<el-input v-model="form.graduationInstitution3" placeholder="请输入毕业院校3" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="专业3" prop="major3">
<el-input v-model="form.major3" placeholder="请输入专业3" />
<el-input v-model="form.major3" placeholder="请输入专业3" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业时间3" prop="graduationTime3">
<el-input v-model="form.graduationTime3" placeholder="请输入毕业时间3" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="第一学历" prop="firstDegree">
<el-input v-model="form.firstDegree" placeholder="请输入第一学历" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="最后学历" prop="lastDegree">
<el-input v-model="form.lastDegree" placeholder="请输入最后学历" />
<el-input v-model="form.lastDegree" placeholder="请输入最后学历" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="学位" prop="degree">
<el-input v-model="form.degree" placeholder="请输入学位" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="工作经历" prop="workExperience">
<el-input v-model="form.workExperience" placeholder="请输入工作经历" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
<el-input v-model="form.remark" placeholder="请输入备注" style="width: 190px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="钉钉手机号" prop="ddPhone">
<el-input v-model="form.ddPhone" placeholder="请输入钉钉手机号" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<div slot="footer" class="dialog-footer custom-evenly">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
......@@ -896,6 +911,7 @@ export default {
loading: true,
// 选中数组
ids: [],
id: '',
// 非单个禁用
single: true,
// 非多个禁用
......@@ -1043,6 +1059,8 @@ export default {
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
console.log(this.form.photoUr, 'this.form.photoUr');
console.log(response.url, 'response.url');
})
.catch((error) => {
this.uploadLoading = false;
......@@ -1104,7 +1122,7 @@ export default {
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
// console.log(event, file, fileList);
},
// 提交上传文件
submitFileForm() {
......@@ -1240,10 +1258,26 @@ export default {
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.selection = selection;
this.ids = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
// 先定义 isMultiple 变量为 false
let isMultiple = false;
if (this.selection.length === 1) {
// 单选逻辑
this.id = this.selection[0].id;
// console.log('this.id', this.id);
} else if (this.selection.length > 1) {
// 多选逻辑
isMultiple = true;
const ids = this.selection.map((item) => item.id);
this.ids = ids;
// console.log('this.ids', this.ids);
}
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
......@@ -1268,12 +1302,14 @@ export default {
if (valid) {
if (this.form.id != null) {
updateInformation(this.form).then((response) => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInformation(this.form).then((response) => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -1305,7 +1341,10 @@ export default {
},
/** 导出 */
exportFile(callback) {
// 获取当前选中的多选项的 ids 和单选项的 id
const ids = this.ids;
const id = this.id;
console.log(ids, id);
const options = [
{
type: ExportType.TOTAL,
......@@ -1314,17 +1353,20 @@ export default {
},
{
type: ExportType.SELECT,
path: "/teacher/basiclnformation/export/" + ids,
params: {},
path: "/teacher/basiclnformation/export/",
params: { ids, id },
},
{
type: ExportType.QUERY,
path: "/teacher/basiclnformation/export",
params: this.queryForm,
params: this.queryParams,
},
];
callback(options, `教师基础信息${Date.now()}.xlsx`);
},
},
};
</script>
......
......@@ -2,28 +2,25 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -108,11 +105,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
......@@ -168,9 +162,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -185,12 +187,15 @@
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
......@@ -303,6 +308,45 @@ export default {
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
......
......@@ -170,9 +170,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -187,7 +195,7 @@
<script>
// import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/system/works";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Works",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
......@@ -205,6 +213,8 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 图片上传遮罩层
uploadLoading: false,
// 论文著作表格数据
worksList: [{
id: 1,
......@@ -246,6 +256,8 @@ export default {
pictureName: null,
pictureUrl: null,
},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadFileLoading: false,
// 表单参数
form: {},
// 表单校验
......@@ -310,6 +322,45 @@ export default {
this.open = false;
this.reset();
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 表单重置
reset() {
this.form = {
......
......@@ -10,7 +10,7 @@
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
<el-option v-for="dict in dict.type.award_categoriesjk" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -110,8 +110,8 @@
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for="dict in dict.type.award_categoriesjk" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -171,9 +171,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -188,12 +196,15 @@
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Awards",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
......@@ -295,6 +306,7 @@ export default {
// this.getList();
},
methods: {
/** 查询讲课获奖列表 */
getList() {
this.loading = true;
......@@ -304,6 +316,45 @@ export default {
this.loading = false;
});
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
......
......@@ -8,16 +8,16 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -69,7 +69,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
......@@ -111,8 +111,8 @@
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -170,9 +170,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -187,12 +195,15 @@
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Awards",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
......@@ -302,6 +313,45 @@ export default {
this.loading = false;
});
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
......
......@@ -277,7 +277,7 @@ export default {
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年(下拉框)不能为空", trigger: "change" }
{ required: true, message: "学年不能为空", trigger: "change" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
......@@ -289,7 +289,7 @@ export default {
{ required: true, message: "考试类型不能为空", trigger: "change" }
],
year: [
{ required: true, message: "届别(下拉框)不能为空", trigger: "change" }
{ required: true, message: "届别不能为空", trigger: "change" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "change" }
......
......@@ -2,28 +2,25 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -106,11 +103,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
......@@ -166,9 +160,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -183,12 +185,15 @@
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
......@@ -301,6 +306,45 @@ export default {
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
......
......@@ -168,9 +168,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -185,7 +193,7 @@
<script>
// import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/system/works";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Works",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
......@@ -203,6 +211,8 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 图片上传遮罩层
uploadLoading: false,
// 论文著作表格数据
worksList: [{
id: 1,
......@@ -244,6 +254,8 @@ export default {
pictureName: null,
pictureUrl: null,
},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadFileLoading: false,
// 表单参数
form: {},
// 表单校验
......@@ -308,6 +320,45 @@ export default {
this.open = false;
this.reset();
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 表单重置
reset() {
this.form = {
......
......@@ -10,7 +10,7 @@
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
<el-option v-for="dict in dict.type.award_categoriesjk" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -108,8 +108,8 @@
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for="dict in dict.type.award_categoriesjk" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -169,9 +169,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -186,12 +194,15 @@
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Awards",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
......@@ -293,6 +304,7 @@ export default {
// this.getList();
},
methods: {
/** 查询讲课获奖列表 */
getList() {
this.loading = true;
......@@ -302,6 +314,45 @@ export default {
this.loading = false;
});
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
......
......@@ -8,16 +8,16 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -69,7 +69,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
......@@ -109,8 +109,8 @@
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -168,9 +168,17 @@
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证书图片" prop="pictureName">
<el-input v-model="form.pictureName" placeholder="请输入证书图片名称" />
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
......@@ -185,12 +193,15 @@
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Awards",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
// 遮罩层
loading: true,
// 选中数组
......@@ -300,6 +311,45 @@ export default {
this.loading = false;
});
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type =
file.type === "image/jpeg" ||
"image/jpg" ||
"image/webp" ||
"image/png";
const isLt2M = file.size / 1024 / 1024 < 2;
if (!type) {
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
......
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