Prechádzať zdrojové kódy

增加提示,避免500报错bug

lrf402788946 5 rokov pred
rodič
commit
24c74d3832

+ 46 - 22
src/views/registerEnt/basic.vue

@@ -3,25 +3,25 @@
     <el-row>
       <el-col :span="24" class="mainLeftInfo">
         <h4 class="form-title">注册信息<span class="text-red">*</span></h4>
-        <el-form ref="form" :model="form" label-width="150px">
-          <el-form-item label="入驻学校">
+        <el-form ref="form" :model="form" label-width="150px" :rules="rules">
+          <el-form-item label="入驻学校" prop="sch" :required="true">
             <el-select v-model="form.sch" filterable placeholder="入驻学校" value-key="code">
               <el-option v-for="item in schnameList" :key="item.code" :label="item.name" :value="item"></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="企业名称">
+          <el-form-item label="企业名称" prop="corpname" :required="true">
             <el-input v-model="form.corpname" placeholder="请输入企业全称(与组织机构代码证上一致)"></el-input>
           </el-form-item>
-          <el-form-item label="用户姓名">
+          <el-form-item label="用户姓名" prop="hr" :required="true">
             <el-input v-model="form.hr" placeholder="请输入您的真实姓名"></el-input>
           </el-form-item>
-          <el-form-item label="联系手机">
+          <el-form-item label="联系手机" prop="mobile" :required="true">
             <el-input v-model="form.mobile" placeholder="请输入手机(同时可用于账号登录)"></el-input>
           </el-form-item>
-          <el-form-item label="登录密码">
+          <el-form-item label="登录密码" prop="passwd" :required="true">
             <el-input v-model="form.passwd" type="password" placeholder="请输入登录密码" show-password></el-input>
           </el-form-item>
-          <el-form-item label="图形验证码">
+          <el-form-item label="图形验证码" :required="true">
             <el-row>
               <el-col :span="6">
                 <el-input v-model="verifyForm.code" placeholder="图形验证码"></el-input>
@@ -31,7 +31,7 @@
               </el-col>
             </el-row>
           </el-form-item>
-          <el-form-item label="手机验证码">
+          <el-form-item label="手机验证码" :required="true">
             <el-row>
               <el-col :span="6">
                 <el-input v-model="verifyForm.mobile_code" placeholder="请输入手机验证码"></el-input>
@@ -41,43 +41,43 @@
               </el-col>
             </el-row>
           </el-form-item>
-        </el-form>
-        <h4 class="form-title">基本资料<span class="text-red">*</span></h4>
-        <el-form ref="form" :model="form" label-width="150px">
-          <el-form-item label="所在省份">
+          <!-- </el-form> -->
+          <h4 class="form-title">基本资料<span class="text-red">*</span></h4>
+          <!-- <el-form ref="form" :model="form" label-width="150px"> -->
+          <el-form-item label="所在省份" prop="info.province" :required="true">
             <el-select v-model="form.info.province" placeholder="选择省份" @change="getCityList">
               <el-option v-for="item in provinceList" :key="item.code" :label="item.name" :value="item.name"> </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="所在城市">
+          <el-form-item label="所在城市" prop="info.city" :required="true">
             <el-select v-model="form.info.city" placeholder="选择城市">
               <el-option v-for="item in cityList" :key="item.code" :label="item.name" :value="item.name"> </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="企业主页">
+          <el-form-item label="企业主页" prop="info.url" :required="true">
             <el-input v-model="form.info.url" placeholder="请输入企业主页"></el-input>
           </el-form-item>
-          <el-form-item label="企业地址">
+          <el-form-item label="企业地址" prop="info.address" :required="true">
             <el-input v-model="form.info.address" placeholder="必填,请输入企业地址"></el-input>
           </el-form-item>
-          <el-form-item label="企业规模">
+          <el-form-item label="企业规模" prop="info.scale" :required="true">
             <el-select v-model="form.info.scale" placeholder="必填,请输入企业规模">
               <el-option v-for="(item, index) in scaleList" :key="index" :label="item.name" :value="item.name"></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="固定电话">
+          <el-form-item label="固定电话" prop="info.tel" :required="true">
             <el-input v-model="form.info.tel" placeholder="必填,如:0755-88888888"></el-input>
           </el-form-item>
-          <el-form-item label="企业邮箱">
+          <el-form-item label="企业邮箱" prop="info.email" :required="true">
             <el-input v-model="form.info.email" placeholder="必填,须企业官方邮箱 如:yunyan@bibibi.net"></el-input>
           </el-form-item>
-          <el-form-item label="招聘邮箱">
+          <el-form-item label="招聘邮箱" prop="info.job_email" :required="true">
             <el-input v-model="form.info.job_email" placeholder="必填,如:zhaopin@bibibi.net"></el-input>
           </el-form-item>
-          <el-form-item label="招聘电话">
+          <el-form-item label="招聘电话" prop="info.job_tel" :required="true">
             <el-input v-model="form.info.job_tel" placeholder="必填,11位手机号"></el-input>
           </el-form-item>
-          <el-form-item label="企业介绍">
+          <el-form-item label="企业介绍" prop="info.intro" :required="true">
             <el-input type="textarea" v-model="form.info.intro" placeholder="字数不超过400,请输入公司介绍"></el-input>
           </el-form-item>
         </el-form>
@@ -111,6 +111,23 @@ export default {
     scaleList: [],
     schnameList: [],
     verifyForm: {},
+    rules: {
+      sch: [{ required: true, message: '请选择入驻学校', trigger: 'blur' }],
+      corpname: [{ required: true, message: '请输入企业名称', trigger: 'blur' }],
+      hr: [{ required: true, message: '请输入用户姓名', trigger: 'blur' }],
+      mobile: [{ required: true, message: '请输入联系手机', trigger: 'blur' }],
+      passwd: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
+      'info.province': [{ required: true, message: '请选择所在省份', trigger: 'blur' }],
+      'info.city': [{ required: true, message: '请选择所在城市', trigger: 'blur' }],
+      'info.url': [{ required: true, message: '请输入企业主页', trigger: 'blur' }],
+      'info.address': [{ required: true, message: '请输入企业地址', trigger: 'blur' }],
+      'info.scale': [{ required: true, message: '请选择企业规模', trigger: 'blur' }],
+      'info.tel': [{ required: true, message: '请输入固定电话', trigger: 'blur' }],
+      'info.email': [{ required: true, message: '请输入企业邮箱', trigger: 'blur' }],
+      'info.job_email': [{ required: true, message: '请输入招聘邮箱', trigger: 'blur' }],
+      'info.job_tel': [{ required: true, message: '请输入招聘电话', trigger: 'blur' }],
+      'info.intro': [{ required: true, message: '请输入企业介绍', trigger: 'blur' }],
+    },
   }),
   created() {
     this.otherList();
@@ -119,7 +136,14 @@ export default {
   methods: {
     ...mapActions(['dicOperation']),
     next() {
-      this.$emit('next', JSON.parse(JSON.stringify({ ...this.form, verifyForm: this.verifyForm })));
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          this.$emit('next', JSON.parse(JSON.stringify({ ...this.form, verifyForm: this.verifyForm })));
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
     },
     async otherList() {
       let result = await this.dicOperation('dwgm');

+ 29 - 10
src/views/registerEnt/business.vue

@@ -2,33 +2,33 @@
   <div id="business">
     <el-row>
       <el-col :span="24" class="mainLeftInfo">
-        <el-form ref="form" :model="form" label-width="150px">
-          <el-form-item label="所属行业">
+        <el-form ref="form" :model="form" label-width="150px" :rules="rules">
+          <el-form-item label="所属行业" prop="identity.industry" :required="true">
             <el-select v-model="form.identity.industry" placeholder="必填,请选择" style="width:100%">
               <el-option v-for="item in hylbList" :key="item.value" :label="item.name" :value="item.name"> </el-option>
             </el-select>
             <span class="label-desc">影响到招聘信息的精准推送,学生邀约精准匹配</span>
           </el-form-item>
-          <el-form-item label="单位性质">
+          <el-form-item label="单位性质" prop="identity.nature" :required="true">
             <el-select v-model="form.identity.nature" placeholder="必填,请选择" style="width:100%">
               <el-option v-for="item in dwxzList" :key="item.value" :label="item.name" :value="item.name"> </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="注册资金">
+          <el-form-item label="注册资金" prop="identity.reg_capital" :required="true">
             <el-select v-model="form.identity.reg_capital" placeholder="必填,请选择" style="width:100%">
               <el-option v-for="item in zczjList" :key="item.value" :label="item.name" :value="item.name"> </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="单位标签(非必填)" type="info">
+          <el-form-item label="单位标签(非必填)">
             <el-checkbox-group v-model="form.identity.tags">
               <el-checkbox v-for="(item, index) in dwbqList" :key="index" :label="item.name"></el-checkbox>
             </el-checkbox-group>
           </el-form-item>
-          <el-form-item label="统一社会信用代码">
+          <el-form-item label="统一社会信用代码" prop="identity.org_code" :required="true">
             <el-input v-model="form.identity.org_code" placeholder="必填,18位统一社会信用代码 / 9位组织机构代码"></el-input>
           </el-form-item>
           <div class="zj_tip">提示:若三证合一的单位,请在【营业执照】和【组织机构代码证】处<b>同时</b>上传完整的三证合一的营业执照。</div>
-          <el-form-item label="营业执照(最大支持2M)" class="zhizhao">
+          <el-form-item label="营业执照(最大支持2M)" class="zhizhao" :required="true">
             <el-upload
               action="/files/corp/identity/yyzz/upload"
               list-type="picture-card"
@@ -41,7 +41,7 @@
               <i class="el-icon-plus"></i>
             </el-upload>
           </el-form-item>
-          <el-form-item label="组织机构代码证(最大支持2M)" class="zhizhao">
+          <el-form-item label="组织机构代码证(最大支持2M)" class="zhizhao" :required="true">
             <el-upload
               action="/files/corp/identity/zzjgdm/upload"
               list-type="picture-card"
@@ -54,7 +54,7 @@
               <i class="el-icon-plus"></i>
             </el-upload>
           </el-form-item>
-          <el-form-item label="企业LOGO 最大支持100KB)" class="zhizhao">
+          <el-form-item label="企业LOGO 最大支持100KB)" class="zhizhao" :required="true">
             <el-upload
               action="/files/corp/identity/upload"
               list-type="picture-card"
@@ -84,6 +84,7 @@
 
 <script>
 import { mapActions, mapState } from 'vuex';
+import _ from 'lodash';
 export default {
   name: 'business',
   props: {},
@@ -104,6 +105,12 @@ export default {
     dwxzList: [],
     zczjList: [],
     dwbqList: [],
+    rules: {
+      'identity.industry': [{ required: true, message: '请选择所属行业', trigger: 'blur' }],
+      'identity.nature': [{ required: true, message: '请选择单位性质', trigger: 'blur' }],
+      'identity.reg_capital': [{ required: true, message: '请选择注册资金', trigger: 'blur' }],
+      'identity.org_code': [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }],
+    },
   }),
   created() {
     this.otherList();
@@ -119,7 +126,19 @@ export default {
       this.dialogVisible = true;
     },
     onSubmit() {
-      this.$emit(`onSubmit`, this.form);
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          let pics = _.get(this.form, `identity.ident_pics`, []);
+          let logo = _.get(this.form, `identity.logo_url`, undefined);
+          console.log(pics);
+          if (pics.length !== 2) this.$message.error('请上传所需证件');
+          else if (logo === undefined) this.$message.error('请上传logo');
+          else this.$emit(`onSubmit`, this.form);
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
     },
     onSuccess(response, type) {
       if (this.form.identity.ident_pics) {