From 0b25ddd8815f90a3f16c7900c624823298c7c0b0 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Fri, 08 Sep 2023 15:44:17 +0800
Subject: [PATCH] 修改
---
src/views/form.vue | 149 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 104 insertions(+), 45 deletions(-)
diff --git a/src/views/form.vue b/src/views/form.vue
index 0992b33..da77340 100644
--- a/src/views/form.vue
+++ b/src/views/form.vue
@@ -1,9 +1,11 @@
<template>
<div class="app-container home">
+ <div class="main-title">专家信息录入</div>
+<!-- <el-divider>专家信息录入</el-divider>-->
<div class="main_form">
- <el-form :model="form" :rules="rules" ref="ruleForm" label-width="200px">
+ <el-form :model="form" :rules="rules" ref="ruleForm" label-width="200px" :label-position="labelPosition">
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="专业类别" prop="profession">
<el-cascader
style="width: 100%"
@@ -15,7 +17,7 @@
</el-col>
</el-row>
<!-- <el-row>-->
-<!-- <el-col :span="16">-->
+<!-- <el-col :span="20">-->
<!-- <el-form-item label="填报日期" prop="date">-->
<!-- <el-date-picker-->
<!-- style="width: 100%"-->
@@ -27,14 +29,14 @@
<!-- </el-col>-->
<!-- </el-row>-->
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="性别" prop="sex">
<el-radio-group v-model="form.sex">
<el-radio :label="0">男</el-radio>
@@ -44,7 +46,7 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="出生日期" prop="birthday">
<el-date-picker
style="width: 100%"
@@ -57,14 +59,14 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="职称" prop="title">
<!-- <el-select v-model="form.title" placeholder="请选择" style="width: 100%">-->
<!-- <el-option-->
@@ -79,7 +81,7 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="证件照" prop="electronicPhoto">
<el-upload
action=""
@@ -99,14 +101,14 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="在岗情况" prop="dutyStatus">
<el-radio-group v-model="form.dutyStatus">
<el-radio :label="0">在岗</el-radio>
@@ -116,84 +118,84 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="单位全称" prop="companyName">
<el-input v-model="form.companyName"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="单位地址">
<el-input v-model="form.companyAddress"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="所在部门">
<el-input v-model="form.deptName"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="职务">
<el-input v-model="form.job"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="单位电话">
<el-input v-model="form.companyTelephone"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="传真号码">
<el-input v-model="form.faxNum"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="电子邮箱">
<el-input v-model="form.email"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="毕业学校">
<el-input v-model="form.graduationSchool"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="最高学历" prop="degree">
<el-input v-model="form.degree"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="所学专业">
<el-input v-model="form.speciality"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="现从事的专业及方向">
<el-input v-model="form.currentProfession"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="支撑方向_安全生产" prop="supportDirectionSafety">
<!-- <el-radio-group v-model="form.supportDirectionSafety">-->
<!-- <el-radio v-for="item in directionList" :label="item.value" :key="item.value">{{ item.label }}</el-radio>-->
@@ -205,7 +207,7 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="支撑方向_防灾减灾救灾" prop="supportDirectionPrevention">
<!-- <el-radio-group v-model="form.supportDirectionPrevention">-->
<!-- <el-radio v-for="item in directionList" :label="item.value" :key="item.value">{{ item.label }}</el-radio>-->
@@ -217,7 +219,7 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="支撑方向_应急救援" prop="supportDirectionEmergency">
<!-- <el-radio-group v-model="form.supportDirectionEmergency">-->
<!-- <el-radio v-for="item in directionList" :label="item.value" :key="item.value">{{ item.label }}</el-radio>-->
@@ -229,10 +231,13 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="工作简历">
<el-upload
action="#"
+ multiple
+ :limit="20"
+ :on-exceed="overLimit"
:auto-upload="false"
accept="image/*,.pdf"
:file-list="resumeList"
@@ -247,10 +252,13 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="发明、著作、学术论文情况(何时、何地出版或发表)">
<el-upload
action=""
+ multiple
+ :limit="20"
+ :on-exceed="overLimit"
:auto-upload="false"
accept="image/*,.pdf"
list-type="picture-card"
@@ -265,10 +273,13 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="受过何种奖励">
<el-upload
action=""
+ multiple
+ :limit="20"
+ :on-exceed="overLimit"
:auto-upload="false"
accept="image/*,.pdf"
list-type="picture-card"
@@ -283,10 +294,13 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="应急管理相关工作主要业绩及研究成果">
<el-upload
action=""
+ multiple
+ :limit="20"
+ :on-exceed="overLimit"
:auto-upload="false"
accept="image/*,.pdf"
list-type="picture-card"
@@ -301,10 +315,13 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="专家本人意见">
<el-upload
action=""
+ multiple
+ :limit="20"
+ :on-exceed="overLimit"
:auto-upload="false"
accept="image/*,.pdf"
list-type="picture-card"
@@ -319,10 +336,13 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="推荐单位意见">
<el-upload
action=""
+ multiple
+ :limit="20"
+ :on-exceed="overLimit"
:auto-upload="false"
accept="image/*,.pdf"
list-type="picture-card"
@@ -337,7 +357,7 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="16">
+ <el-col :span="20">
<el-form-item label="补充说明">
<el-input v-model="form.remark" type="textarea" :autosize="{ minRows: 2}"></el-input>
</el-form-item>
@@ -355,19 +375,42 @@
</template>
<script>
-import {expertsTree,addExpertInfo,uploadFile} from '@/api/system/form'
+import {getExpertTypes,addExpertInfo,uploadFile} from '@/api/system/form'
+import { verifySimplePhone, verifyIdCard } from "@/utils/validate";
export default {
name: "Index",
data() {
var validatePass = (rule, value, callback) => {
- console.log(this.form,this.fileList,'校验')
if (this.fileList.length == 0) {
callback(new Error('请上传证件照'));
} else {
callback();
}
- };
+ }
+ let validatePhone = (rule, value, callback)=>{
+ if(value === ''){
+ callback(new Error('请输入手机号'))
+ }else{
+ if(!verifySimplePhone(value)){
+ callback(new Error('手机号格式有误'))
+ }else{
+ callback()
+ }
+ }
+ }
+ let verifyId = (rule, value, callback)=>{
+ if(value === ''){
+ callback(new Error('请输入身份证号'))
+ }else{
+ if(!verifyIdCard(value)){
+ callback(new Error('身份证号格式有误'))
+ }else{
+ callback()
+ }
+ }
+ }
return {
+ labelPosition: 'right',
form:{
name:'',
sex:'',
@@ -400,7 +443,8 @@
achievementKey: '',
personalOpinionKey: '',
recommendUnitOpinionKey: '',
- remark: ''
+ remark: '',
+ source: 1
},
expertsType: [],
directionList: [
@@ -439,27 +483,25 @@
sex:[{ required: true, message: '请选择性别', trigger: 'blur' }],
profession: [{ required: true, message: '请选择专业类别', trigger: 'blur' }],
birthday: [{ required: true, message: '请选择出生日期', trigger: 'blur' }],
- phone:[{ required: true, message: '请填写联系电话', trigger: 'blur' }],
+ phone:[{ required: true, validator: validatePhone, trigger: 'blur' }],
title: [{ required: true, message: '请填写职称', trigger: 'blur' }],
electronicPhoto: [{ required: true,validator: validatePass, trigger: 'blur' }],
- idCard: [{ required: true, message: '请填写身份证号', trigger: 'blur' }],
+ idCard: [{ required: true, validator: verifyId, trigger: 'blur' }],
dutyStatus: [{ required: true, message: '请选择在岗情况', trigger: 'blur' }],
companyName: [{ required: true, message: '请填写单位全称', trigger: 'blur' }],
- degree: [{ required: true, message: '请填写最高学历', trigger: 'blur' }],
- supportDirectionSafety: [{ required: true, message: '请选择支撑方向', trigger: 'blur' }],
- supportDirectionPrevention: [{ required: true, message: '请选择支撑方向', trigger: 'blur' }],
- supportDirectionEmergency: [{ required: true, message: '请选择支撑方向', trigger: 'blur' }]
+ degree: [{ required: true, message: '请填写最高学历', trigger: 'blur' }]
},
};
},
created() {
const t = this
+ const width = document.documentElement.clientWidth
+ if(width < 750){t.labelPosition = 'top'}
t.getExpertsType()
},
methods: {
async getExpertsType(){
- const res = await expertsTree()
- console.log(res)
+ const res = await getExpertTypes()
if(res.code == 200){
this.expertsType = res.data
}else{
@@ -560,6 +602,13 @@
console.log(file, fileList);
},
async submit(){
+ if(this.form.supportDirectionSafety.length == 0 && this.form.supportDirectionPrevention.length == 0 && this.form.supportDirectionEmergency.length == 0){
+ this.$message({
+ type:'warning',
+ message: '请至少选择一种支撑方向'
+ })
+ return
+ }
this.$refs["ruleForm"].validate(async(valid) =>{
if(valid) {
await this.submitUpload()
@@ -571,12 +620,12 @@
data.smallClassify = data.profession[1]
delete data.profession
const res= await addExpertInfo(data)
- console.log(res,'res')
if(res.code == 200){
this.$message({
type:'success',
message: res.msg
})
+ this.$emit('closeDialog')
this.$refs.ruleForm.resetFields()
this.fileList = []
this.resumeList = []
@@ -599,12 +648,22 @@
}
})
},
+ changeSource(num){
+ this.form.source = num
+ }
}
};
</script>
<style scoped lang="scss">
.home {
+ .main-title{
+ font-size: 24px;
+ font-weight: bolder;
+ text-align: center;
+ margin-bottom: 20px;
+ color: #333;
+ }
blockquote {
padding: 10px 20px;
margin: 0 0 20px;
--
Gitblit v1.9.2