Commit 0ca51a08 by zhaopanyu

zpy 12.8 教师电子档案

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