guhongwei 4 rokov pred
rodič
commit
8827c04b78
1 zmenil súbory, kde vykonal 110 pridanie a 67 odobranie
  1. 110 67
      src/views/manager/jobs/detail.vue

+ 110 - 67
src/views/manager/jobs/detail.vue

@@ -6,19 +6,19 @@
       </template>
       <template #main>
         <el-row v-loading="loading">
-          <el-form :model="info">
+          <el-form :model="info" :rules="rules" ref="info" class="demo-ruleForm">
             <form-item label="企业名称">
               {{ user.corpname }}
             </form-item>
             <form-item label="职位名称" prop="job_name">
               <el-input placeholder="每个职位职能录入一个岗位" v-model="info.job_name"></el-input>
             </form-item>
-            <form-item label="职位分类">
+            <form-item label="职位分类" prop="category">
               <el-select v-model="info.category" placeholder="点击选择职位" multiple style="width:100%;">
                 <el-option v-for="(item, index) in jobTypeList" :key="index" :label="item.name" :value="item.name"></el-option>
               </el-select>
             </form-item>
-            <form-item label="工作城市">
+            <form-item label="工作城市" prop="city">
               <tag-all-select
                 placeholder="点击选择城市"
                 :firstList="provinceList"
@@ -29,17 +29,17 @@
                 type="city"
               ></tag-all-select>
             </form-item>
-            <form-item label="工作性质">
+            <form-item label="工作性质" prop="is_practice">
               <el-radio-group v-model="info.is_practice" size="small">
                 <el-radio v-for="(item, index) in type_list" :key="index" :label="item.type_value" border>{{ item.type_label }}</el-radio>
               </el-radio-group>
             </form-item>
-            <form-item label="学历要求">
+            <form-item label="学历要求" prop="xl_req">
               <el-select v-model="info.xl_req" placeholder="请选择学历要求">
                 <el-option v-for="(item, index) in edu_list" :key="index" :label="item.name" :value="item.name"></el-option>
               </el-select>
             </form-item>
-            <form-item label="职位诱惑">
+            <form-item label="职位诱惑" prop="job_tag">
               <tagCheckbox
                 placeholder="点击选择职位诱惑"
                 :firstList="entice_list"
@@ -49,14 +49,14 @@
                 type="job_tag"
               ></tagCheckbox>
             </form-item>
-            <form-item label="招聘人数">
+            <form-item label="招聘人数" prop="job_number">
               <el-input-number v-model="info.job_number" :min="1" placeholder="添加需要招聘的人数" style="width:100%"></el-input-number>
             </form-item>
-            <form-item label="截止日期">
+            <form-item label="截止日期" prop="end_date">
               <el-date-picker v-model="info.end_date" type="date" placeholder="选择日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd">
               </el-date-picker>
             </form-item>
-            <form-item label="薪资">
+            <form-item label="薪资" prop="">
               <el-col :span="6">
                 <el-input type="number" v-model="info.salary.min">
                   <template #append>
@@ -75,14 +75,14 @@
                 </el-input>
               </el-col>
             </form-item>
-            <form-item label="薪酬福利">
+            <form-item label="薪酬福利" prop="welfare">
               <el-col :span="8" v-for="(item, index) in welfare_list" :key="index">
                 <el-radio v-model="info.welfare" :label="item.name" :border="true" size="small">
                   {{ item.name }}
                 </el-radio>
               </el-col>
             </form-item>
-            <form-item label="职位相关专业">
+            <form-item label="职位相关专业" prop="zy_req">
               <!-- <tagSecSelect
                 placeholder="点击选择相关专业"
                 :selected="info.zy_req"
@@ -95,22 +95,24 @@
               <el-input type="text" :rows="5" placeholder="请输入职位相关专业" v-model="info.zy_req"> </el-input>
               <span style="color:red;">职位要求多专业时,用;分号相隔</span>
             </form-item>
-            <form-item label="职位描述">
+            <form-item label="职位描述" prop="job_desc">
               <el-input type="textarea" :rows="5" placeholder="请输入职位描述" v-model="info.job_desc"> </el-input>
             </form-item>
-            <form-item label="简历投递说明">
+            <form-item label="简历投递说明" prop="apply_intro">
               <el-input type="textarea" :rows="5" placeholder="请输入简历投递说明" v-model="info.apply_intro"> </el-input>
             </form-item>
-            <form-item label="岗位要求">
+            <form-item label="岗位要求" prop="job_req">
               <el-input type="textarea" :rows="5" placeholder="请输入岗位要求" v-model="info.job_req"> </el-input>
             </form-item>
-            <form-item label="其他描述">
+            <form-item label="其他描述" prop="other">
               <el-input type="textarea" :rows="5" placeholder="请输入其他描述" v-model="info.other"> </el-input>
             </form-item>
 
             <el-row type="flex" align="middle" justify="center">
               <el-col :span="6">
-                <el-button type="success" style="width:100%; margin: 1rem 0;" @click="toSubmit">提&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;交</el-button>
+                <el-button type="success" style="width:100%; margin: 1rem 0;" @click="toSubmit('info')"
+                  >提&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;交</el-button
+                >
               </el-col>
             </el-row>
           </el-form>
@@ -153,11 +155,24 @@ export default {
     jobType: '',
     drawer: false,
     jobTypeList: [],
-    provinceList: [{ label: '北京市', value: '110000' }, { label: '吉林省', value: '220000' }, { label: '沈阳省', value: '210000' }],
-    secondList: [{ label: '长春市', value: '220100' }, { label: '吉林市', value: '220200' }],
-    secondList1: [{ label: '沈阳市', value: '210100' }, { label: '大连市', value: '210200' }],
+    provinceList: [
+      { label: '北京市', value: '110000' },
+      { label: '吉林省', value: '220000' },
+      { label: '沈阳省', value: '210000' },
+    ],
+    secondList: [
+      { label: '长春市', value: '220100' },
+      { label: '吉林市', value: '220200' },
+    ],
+    secondList1: [
+      { label: '沈阳市', value: '210100' },
+      { label: '大连市', value: '210200' },
+    ],
     cityList: [],
-    type_list: [{ type_value: 0, type_label: '全职' }, { type_value: 1, type_label: '实习' }],
+    type_list: [
+      { type_value: 0, type_label: '全职' },
+      { type_value: 1, type_label: '实习' },
+    ],
     edu_list: [],
     entice_list: [
       { value: '1', label: '年底双薪' },
@@ -202,7 +217,27 @@ export default {
       { label: '宗教类', value: '14' },
       { label: '伦理类', value: '15' },
     ],
-    subjectSub2: [{ label: '社会经济学', value: '16' }, { label: '国际经济学', value: '17' }, { label: '资本主义经济学', value: '18' }],
+    subjectSub2: [
+      { label: '社会经济学', value: '16' },
+      { label: '国际经济学', value: '17' },
+      { label: '资本主义经济学', value: '18' },
+    ],
+    rules: {
+      job_name: [{ required: true, message: '请输入职位名称', trigger: 'blur' }],
+      category: [{ required: false, message: '请输入职位分类', trigger: 'change' }],
+      city: [{ required: false, message: '请输入城市', trigger: 'blur' }],
+      is_practice: [{ required: true, message: '请输入工作性质', trigger: 'change' }],
+      xl_req: [{ required: true, message: '请输入学历要求', trigger: 'change' }],
+      job_tag: [{ required: false, message: '请输入职位标签', trigger: 'blur' }],
+      job_number: [{ required: true, message: '请输入招聘人数', trigger: 'blur' }],
+      end_date: [{ required: true, message: '请选择截止日期', trigger: 'blur' }],
+      welfare: [{ required: false, message: '请输入福利待遇', trigger: 'blur' }],
+      zy_req: [{ required: true, message: '请输入专业要求', trigger: 'blur' }],
+      job_desc: [{ required: true, message: '请输入职位描述', trigger: 'blur' }],
+      apply_intro: [{ required: true, message: '请输入简历投递说明', trigger: 'blur' }],
+      job_req: [{ required: false, message: '请输入岗位要求', trigger: 'blur' }],
+      other: [{ required: false, message: '请输入其他说明', trigger: 'blur' }],
+    },
   }),
   created() {
     this.otherList();
@@ -249,55 +284,63 @@ export default {
         this.$set(this, `cityList`, res);
       }
     },
-    async toSubmit() {
-      let result;
-      let infos = JSON.parse(JSON.stringify(this.info));
-      let mid = '';
-      infos.salary.text = infos.salary.min + 'k-' + infos.salary.max + 'k/月';
-      if (typeof infos.city === 'object') {
-        infos.city.map(item => {
-          mid === '' ? (mid = item.label) : (mid += `,${item.label}`);
-        });
-        infos.city = mid;
-        mid = '';
-      }
-      if (typeof infos.job_tag === 'object') {
-        infos.job_tag.map(item => {
-          mid === '' ? (mid = item.label) : (mid += `,${item.label}`);
-        });
-        infos.job_tag = mid;
-        mid = '';
-      }
-      if (typeof infos.zy_req === 'object') {
-        infos.zy_req.map(item => {
-          mid === '' ? (mid = item.label) : (mid += `,${item.label}`);
-        });
-        infos.zy_req = mid;
-        mid = '';
-      }
-      if (typeof infos.category === 'object') {
-        infos.category.map(item => {
-          mid === '' ? (mid = item) : (mid += `,${item}`);
-        });
-        infos.category = mid;
-      }
-      if (this.info.id) {
-        result = await this.postOperation({ type: 'update', data: { info: infos, id: this.$route.query.id } });
-      } else {
-        result = await this.postOperation({ type: 'add', data: { info: infos, corpname: this.user.corpname, corpid: this.user.corpid } });
-      }
-      if (`${result.errcode}` === '0') {
-        this.$message.success('操作成功');
-        if (this.isDialog) {
-          this.$emit('jobSubmit', true);
-          return;
+    async toSubmit(formName) {
+      this.$refs[formName].validate(async valid => {
+        if (valid) {
+          let result;
+          let infos = JSON.parse(JSON.stringify(this.info));
+          let mid = '';
+          infos.salary.text = infos.salary.min + 'k-' + infos.salary.max + 'k/月';
+          if (typeof infos.city === 'object') {
+            infos.city.map(item => {
+              mid === '' ? (mid = item.label) : (mid += `,${item.label}`);
+            });
+            infos.city = mid;
+            mid = '';
+          }
+          if (typeof infos.job_tag === 'object') {
+            infos.job_tag.map(item => {
+              mid === '' ? (mid = item.label) : (mid += `,${item.label}`);
+            });
+            infos.job_tag = mid;
+            mid = '';
+          }
+          if (typeof infos.zy_req === 'object') {
+            infos.zy_req.map(item => {
+              mid === '' ? (mid = item.label) : (mid += `,${item.label}`);
+            });
+            infos.zy_req = mid;
+            mid = '';
+          }
+          if (typeof infos.category === 'object') {
+            infos.category.map(item => {
+              mid === '' ? (mid = item) : (mid += `,${item}`);
+            });
+            infos.category = mid;
+          }
+          if (this.info.id) {
+            result = await this.postOperation({ type: 'update', data: { info: infos, id: this.$route.query.id } });
+          } else {
+            result = await this.postOperation({ type: 'add', data: { info: infos, corpname: this.user.corpname, corpid: this.user.corpid } });
+          }
+          if (`${result.errcode}` === '0') {
+            this.$message.success('操作成功');
+            if (this.isDialog) {
+              this.$emit('jobSubmit', true);
+              return;
+            } else {
+              this.$router.push('/manager/jobs/index');
+            }
+          } else {
+            this.$message.error(result.errmsg);
+          }
         } else {
-          this.$router.push('/manager/jobs/index');
+          console.log('error submit!!');
+          return false;
         }
-      } else {
-        this.$message.error(result.errmsg);
-      }
+      });
     },
+
     selectJobs(item) {
       this.$set(this.info, `category`, item.label);
       this.drawer = false;