Commit 2487251e by zhaopanyu

教师电子档案

parent 90e73dfa
......@@ -5,7 +5,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="任教学科" prop="teachingSubject">
<el-select v-model="queryParams.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>
......@@ -22,7 +22,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="性别" prop="sex">
<el-select v-model="queryParams.sex" placeholder="请选择" clearable style="width: 100%;">
<el-select v-model="queryParams.sex" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
......@@ -31,7 +31,7 @@
<el-col :span="12">
<el-form-item label="出生年月" prop="birthDate">
<el-date-picker clearable v-model="queryParams.birthDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" :style="{ 'width': '100%' }">
placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -40,7 +40,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="政治面貌" prop="politicalLandscape">
<el-select v-model="queryParams.politicalLandscape" placeholder="请选择政治面貌" style="width: 100%;">
<el-select v-model="queryParams.politicalLandscape" placeholder="请选择政治面貌" style="width: 100%">
<el-option v-for="dict in dict.type.politics_tatusls" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -57,8 +57,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="现职称" prop="currentProfessionalTitle">
<el-select v-model="queryParams.currentProfessionalTitle" placeholder="请选择"
style="width: 100%;">
<el-select v-model="queryParams.currentProfessionalTitle" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.current_professional" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
......@@ -67,7 +66,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="在岗情况" prop="onDutySituation">
<el-select v-model="queryParams.onDutySituation" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.onDutySituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.duty_situation" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -90,7 +89,7 @@
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style=" display: flex;justify-content: center;align-items: center;">
<div slot="footer" class="dialog-footer" style="display: flex; justify-content: center; align-items: 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>
......@@ -152,7 +151,7 @@
<el-table-column label="政治面貌" align="center" prop="politicalLandscape" sortable width="100px" />
<el-table-column label="档案生日" align="center" prop="fileBirthDate" sortable width="100px">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.fileBirthDate, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.fileBirthDate, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="到市二中工作时间" align="center" prop="toSecondMiddleSchoolTime" sortable width="148px" />
......@@ -181,7 +180,9 @@
: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__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
......@@ -197,55 +198,54 @@
</div>
</el-dialog>
<!-- 添加对话框 -->
<el-dialog title="详细信息" :visible.sync="open" width="1000px">
<el-dialog title="详细信息" :visible.sync="open" width="950px">
<el-form ref="form" :model="form" :rules="rules" label-width="138px">
<el-row :gutter="10">
<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>
</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: '100%' }">
<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%;"
: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="birthDate">
<el-date-picker clearable v-model="form.birthDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" :style="{ 'width': '100%' }">
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-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-option v-for="dict in dict.type.politics_tatusls" :key="dict.value"
......@@ -254,14 +254,14 @@
</el-select>
</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%' }">
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-option v-for="dict in dict.type.teaching_subjects" :key="dict.value"
......@@ -270,39 +270,43 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<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"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<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%' }">
</el-date-picker>
</el-form-item>
</el-col>
</el-col>
<el-col :span="8">
<el-card style=" height: 325px; ">
<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="width: 300px; height: 280px; " class="avatar" alt="" />
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-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"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<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%' }">
</el-date-picker>
</el-form-item>
</el-col>
<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"
......@@ -311,14 +315,16 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<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%' }">
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-option v-for="dict in dict.type.current_position" :key="dict.value" :label="dict.label"
......@@ -327,9 +333,7 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<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"
......@@ -338,61 +342,59 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<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%' }">
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-form-item>
</el-col>
</el-row>
<el-row>
<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-col :span="8">
</el-row>
<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: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<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%' }">
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<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-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="工龄起算时间" prop="lengthOfServiceTime">
<el-input v-model="form.lengthOfServiceTime" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<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-option v-for="dict in dict.type.duty_situation" :key="dict.value" :label="dict.label"
......@@ -401,7 +403,9 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row :gutter="2" type="flex" justify="space-between">
<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"
......@@ -410,105 +414,97 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校1" prop="graduationInstitution1">
<el-input v-model="form.graduationInstitution1" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<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="请输入" />
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业时间1" prop="graduationTime1">
<el-input v-model="form.graduationTime1" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校2" prop="graduationInstitution2">
<el-input v-model="form.graduationInstitution2" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<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="请输入" />
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业时间2" prop="graduationTime2">
<el-input v-model="form.graduationTime2" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业院校3" prop="graduationInstitution3">
<el-input v-model="form.graduationInstitution3" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<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="请输入" />
</el-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row :gutter="2" type="flex" justify="space-between">
<el-col :span="8" class="custom-margin">
<el-form-item label="毕业时间3" prop="graduationTime3">
<el-input v-model="form.graduationTime3" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="8">
<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-row>
<el-row>
<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-form-item>
</el-col>
<el-col :span="8">
</el-row>
<el-row :gutter="2" type="flex" justify="space-between">
<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-col :span="8">
<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" class="custom-margin">
<el-form-item label="钉钉手机号" prop="ddPhone">
<el-input v-model="form.ddPhone" 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="16" class="custom-margin">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="8">
<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>
</el-dialog>
<!-- 查看对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="60%" append-to-body>
......@@ -535,7 +531,7 @@
</el-col>
<el-col :span="12">
<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: '100%' }">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
......@@ -545,7 +541,7 @@
<el-col :span="12">
<el-form-item label="档案出生日期" prop="fileBirthDate">
<el-date-picker v-model="form.fileBirthDate" type="date" placeholder="请选择"
:default-value="form.fileBirthDate" style="width: 100%;"
:default-value="form.fileBirthDate" style="width: 100%"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
......@@ -558,7 +554,7 @@
<el-col :span="12">
<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%' }">
placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -586,7 +582,7 @@
<el-col :span="12">
<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%' }">
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -599,18 +595,16 @@
</el-select>
</el-form-item>
</el-col>
</el-col>
<el-col :span="8">
<el-card style=" height: 325px; ">
<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="" />
<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>
</el-row>
......@@ -627,7 +621,7 @@
<el-col :span="8">
<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: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -642,11 +636,10 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<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%' }">
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -670,13 +663,10 @@
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<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%' }">
value-format="yyyy-MM-dd" placeholder="请选择" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -692,7 +682,6 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="教师资格证号码" prop="teacherQualificationCertificateNum">
<el-input v-model="form.teacherQualificationCertificateNum" placeholder="请输入教师资格证号码" />
......@@ -701,7 +690,7 @@
<el-col :span="8">
<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: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -712,13 +701,10 @@
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<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%' }">
value-format="yyyy-MM-dd" placeholder="请选择到二中工作时间" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -734,7 +720,6 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工龄起算时间" prop="lengthOfServiceTime">
<el-input v-model="form.lengthOfServiceTime" placeholder="请输入工龄起算时间" />
......@@ -760,10 +745,6 @@
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="毕业院校1" prop="graduationInstitution1">
<el-input v-model="form.graduationInstitution1" placeholder="请输入毕业院校1" />
......@@ -798,8 +779,6 @@
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="毕业院校3" prop="graduationInstitution3">
<el-input v-model="form.graduationInstitution3" placeholder="请输入毕业院校3" />
......@@ -817,7 +796,6 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="第一学历" prop="firstDegree">
<el-input v-model="form.firstDegree" placeholder="请输入第一学历" />
......@@ -835,8 +813,6 @@
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工作经历" prop="workExperience">
<el-input v-model="form.workExperience" placeholder="请输入工作经历" />
......@@ -853,7 +829,6 @@
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
......@@ -866,22 +841,37 @@
</template>
<script>
import { listInformation, getInformation, delInformation, addInformation, updateInformation } from "@/api/smartSchool/electronicArchives/basicInformation";
import { uploadImage as commonUpload } from '@/api/common'
import { checkIdcard } from '@/utils/utilLibrary/validate'
import { getToken } from '@/utils/auth'
import { CustomCellStyle } from '@/enums/customStyle';
import {
listInformation,
getInformation,
delInformation,
addInformation,
updateInformation,
} from "@/api/smartSchool/electronicArchives/basicInformation";
import { uploadImage as commonUpload } from "@/api/common";
import { checkIdcard } from "@/utils/utilLibrary/validate";
import { getToken } from "@/utils/auth";
import { CustomCellStyle } from "@/enums/customStyle";
import { ExportType } from "@/enums/common";
import axios from "axios";
export default {
name: "Information",
dicts: ['sys_user_sex', 'politics_tatusls', 'teaching_subjects', 'current_professional', 'current_position', 'current_joblevel', 'duty_situation', 'current_situation'],
dicts: [
"sys_user_sex",
"politics_tatusls",
"teaching_subjects",
"current_professional",
"current_position",
"current_joblevel",
"duty_situation",
"current_situation",
],
data() {
return {
// 导出选项
exportOptions: {
title: '选择导出类别',
open: false
title: "选择导出类别",
open: false,
},
uploadOpen: false,
upload: {
......@@ -899,9 +889,7 @@ export default {
url:
process.env.VUE_APP_BASE_API + "/teacher/basiclnformation/importData",
},
uploadForm: {
},
uploadForm: {},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadFileLoading: false,
// 遮罩层
......@@ -917,9 +905,7 @@ export default {
// 总条数
total: 0,
// 教师基础信息表格数据
informationList: [
],
informationList: [],
// 弹出层标题
title: "",
// 图片上传遮罩层
......@@ -944,41 +930,46 @@ export default {
firstDegree: "",
},
// 表单参数
form: {
},
form: {},
// 表单校验
rules: {
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
name: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
idCard: [{ required: true, validator: checkIdcard, trigger: "blur" }],
teachingSubject: [
{ required: true, message: "任教学科不能为空", trigger: "change" }
{ required: true, message: "任教学科不能为空", trigger: "change" },
],
toSecondMiddleSchoolTime: [
{ required: true, message: "到二中工作时间不能为空", trigger: "blur" }
{
required: true,
message: "到二中工作时间不能为空",
trigger: "blur",
},
],
ddPhone: [
{ required: true, message: "钉钉手机号不能为空", trigger: "blur" }
{ required: true, message: "钉钉手机号不能为空", trigger: "blur" },
],
}
},
};
},
computed: {
//现岗位等级下拉框联动
filteredJobLevels() {
const position = this.form.currentPosition;
if (position === '1') {
if (position === "1") {
// 专业技术岗
return this.dict.type.current_joblevel.filter((level, index) => index < 12);
} else if (position === '2') {
return this.dict.type.current_joblevel.filter(
(level, index) => index < 12
);
} else if (position === "2") {
// 管理岗
return this.dict.type.current_joblevel.filter((level, index) => index === 0 || (index >= 12 && index < 17));
} else if (position === '3') {
return this.dict.type.current_joblevel.filter(
(level, index) => index === 0 || (index >= 12 && index < 17)
);
} else if (position === "3") {
// 工勤岗
return this.dict.type.current_joblevel.filter((level, index) => index === 0 || (index >= 17 && index <= 20));
return this.dict.type.current_joblevel.filter(
(level, index) => index === 0 || (index >= 17 && index <= 20)
);
}
// 如果当前职位类型不是1、2、3中的任何一个,则返回全部选项
return this.dict.type.current_joblevel;
......@@ -988,7 +979,6 @@ export default {
this.getList();
},
methods: {
//身份证校验
handleIdCardBlur() {
const idCard = this.form.idCard;
......@@ -1015,49 +1005,53 @@ export default {
getGenderFromIdCard(idCard) {
if (idCard && idCard.length === 18) {
const lastDigit = parseInt(idCard.charAt(idCard.length - 2)); // 获取倒数第二位数字
return lastDigit % 2 === 0 ? '女' : '男'; // 奇数表示男性,偶数表示女性
return lastDigit % 2 === 0 ? "女" : "男"; // 奇数表示男性,偶数表示女性
}
return ''; // 身份证号码无效或为空时返回空字符串
return ""; // 身份证号码无效或为空时返回空字符串
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url
this.commonUpload(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
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)')
this.$message.error("图片格式不正确!(只能包含jpg,png,webp,JPEG)");
}
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 2MB!')
this.$message.error("上传图片大小不能超过 2MB!");
}
return type && isLt2M
return type && isLt2M;
},
// 上传图片
uploadImage(file) {
const fileData = file.file
const formData = new FormData()
formData.append('file', fileData)
this.uploadLoading = true
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
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
});
},
/** 查询教师基础信息列表 */
getList() {
this.loading = true;
listInformation(this.queryParams).then(response => {
listInformation(this.queryParams).then((response) => {
this.informationList = response.rows;
this.total = response.total;
this.loading = false;
......@@ -1065,46 +1059,48 @@ export default {
},
// 文件压缩包上传前格式限制
beforeFileUpload(file) {
console.log(file, 1148)
const type = file.type === 'application/x-zip-compressed'
console.log(file, 1148);
const type = file.type === "application/x-zip-compressed";
// const isLt2M = file.size / 1024 / 1024 < 2
if (!type) {
this.$message.error('文件格式不正确!(只能上传zip文件)')
this.$message.error("文件格式不正确!(只能上传zip文件)");
}
// if (!isLt2M) {
// this.$message.error('上传图片大小不能超过 2MB!')
// }
return type
return type;
},
// 上传照片压缩包文件
uploadFiles(file) {
const fileData = file.file
const formData = new FormData()
formData.append('file', fileData)
this.uploadFileLoading = true
filesUpload(formData).then(response => {
this.uploadFileLoading = false
this.$modal.msg(response.msg)
this.getList()
}).catch(error => {
this.uploadFileLoading = false
})
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadFileLoading = true;
filesUpload(formData)
.then((response) => {
this.uploadFileLoading = false;
this.$modal.msg(response.msg);
this.getList();
})
.catch((error) => {
this.uploadFileLoading = false;
});
},
handleView(row) {
console.log(row);
this.look = true;
this.reset();
const id = row.id || this.ids
getInformation(id).then(response => {
const id = row.id || this.ids;
getInformation(id).then((response) => {
this.form = response.data;
console.log(this.form, 'this.form ');
console.log(this.form, "this.form ");
this.title = "查看教师基础信息";
});
},
handleImport() {
this.reset();
this.title = "导入"
this.uploadOpen = true
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
......@@ -1112,20 +1108,26 @@ export default {
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit()
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })
this.getList()
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
......@@ -1189,7 +1191,7 @@ export default {
photoName: null,
photoUrl: null,
ddPhone: null,
delFlag: null
delFlag: null,
};
this.resetForm("form");
},
......@@ -1197,8 +1199,6 @@ export default {
handleQuerycx() {
this.query = true;
this.resetcx();
},
handleQuery() {
this.query = true;
......@@ -1218,7 +1218,7 @@ export default {
onDutySituation: "",
graduationInstitution1: "",
firstDegree: "",
}
};
},
/** 重置按钮操作 */
resetQuery() {
......@@ -1235,14 +1235,14 @@ export default {
onDutySituation: "",
graduationInstitution1: "",
firstDegree: "",
}
};
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
......@@ -1255,25 +1255,25 @@ export default {
console.log(row);
this.look = true;
this.reset();
const id = row.id || this.ids
getInformation(id).then(response => {
const id = row.id || this.ids;
getInformation(id).then((response) => {
this.form = response.data;
console.log(this.form, 'this.form ');
console.log(this.form, "this.form ");
this.title = "修改教师基础信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateInformation(this.form).then(response => {
updateInformation(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInformation(this.form).then(response => {
addInformation(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -1285,12 +1285,16 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除教师基础信息编号为"' + ids + '"的数据项?').then(function () {
return delInformation(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
this.$modal
.confirm('是否确认删除教师基础信息编号为"' + ids + '"的数据项?')
.then(function () {
return delInformation(ids);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
......@@ -1303,14 +1307,25 @@ export default {
exportFile(callback) {
const ids = this.ids;
const options = [
{ type: ExportType.TOTAL, path: '/teacher/basiclnformation/export', params: {} },
{ type: ExportType.SELECT, path: '/teacher/basiclnformation/export/' + ids, params: {} },
{ type: ExportType.QUERY, path: '/teacher/basiclnformation/export', params: this.queryForm },
]
{
type: ExportType.TOTAL,
path: "/teacher/basiclnformation/export",
params: {},
},
{
type: ExportType.SELECT,
path: "/teacher/basiclnformation/export/" + ids,
params: {},
},
{
type: ExportType.QUERY,
path: "/teacher/basiclnformation/export",
params: this.queryForm,
},
];
callback(options, `教师基础信息${Date.now()}.xlsx`);
},
}
},
};
</script>
<style scoped>
......@@ -1351,4 +1366,12 @@ export default {
margin-top: -2px;
margin-bottom: -5px;
} */
.custom-margin {
margin: -8px 0px;
}
.custom-evenly {
margin-top: -40px !important;
text-align: right !important;
}
</style>
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