guhongwei 5 years ago
parent
commit
787b0f4de7
2 changed files with 55 additions and 32 deletions
  1. 2 2
      src/pages/corp/store/index.js
  2. 53 30
      src/pages/corp/views/jobs/detail.vue

+ 2 - 2
src/pages/corp/store/index.js

@@ -9,8 +9,8 @@ import * as resumes from '@m/store/resumes';
 import * as letters from '@m/store/letters';
 import * as letters from '@m/store/letters';
 import * as jobfair from '@m/store/jobfair';
 import * as jobfair from '@m/store/jobfair';
 import * as school from '@m/store/schoolList';
 import * as school from '@m/store/schoolList';
-import * as otherList from '@m/store/otherList';
 import * as user from '@m/store/user';
 import * as user from '@m/store/user';
+import * as dictionary from '@m/store/dictionary';
 
 
 Vue.use(Vuex);
 Vue.use(Vuex);
 
 
@@ -25,7 +25,7 @@ export default new Vuex.Store({
     letters: letters,
     letters: letters,
     jobfair: jobfair,
     jobfair: jobfair,
     school: school,
     school: school,
-    otherList: otherList,
     user: user,
     user: user,
+    dictionary: dictionary,
   },
   },
 });
 });

+ 53 - 30
src/pages/corp/views/jobs/detail.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <div id="detail" style="background:#fff;">
+  <div id="detail" style="background:#fff;" v-if="loading">
     <el-form ref="form" :model="info" label-position="right" label-width="auto" :rules="rules" style="padding:0.4rem;">
     <el-form ref="form" :model="info" label-position="right" label-width="auto" :rules="rules" style="padding:0.4rem;">
       <el-form-item label="职位名称" prop="job_name">
       <el-form-item label="职位名称" prop="job_name">
         <el-input v-model="info.job_name" placeholder="请填写职位名称" style="margin:5px 0px"></el-input>
         <el-input v-model="info.job_name" placeholder="请填写职位名称" style="margin:5px 0px"></el-input>
@@ -159,8 +159,10 @@ export default {
   },
   },
   data() {
   data() {
     return {
     return {
+      loading: false,
       info: {
       info: {
         salary: {},
         salary: {},
+        city: [],
       },
       },
       dateVis: false,
       dateVis: false,
       endDate: `${new Date().getFullYear() + 1}-${new Date().getMonth() + 1}-${new Date().getDate()}`,
       endDate: `${new Date().getFullYear() + 1}-${new Date().getMonth() + 1}-${new Date().getDate()}`,
@@ -168,10 +170,9 @@ export default {
       praList: [{ value: 0, label: '校招' }, { value: 1, label: '实习' }, { value: 2, label: '社招' }],
       praList: [{ value: 0, label: '校招' }, { value: 1, label: '实习' }, { value: 2, label: '社招' }],
       edu_list: [],
       edu_list: [],
       cityList: [],
       cityList: [],
-      xcfl_list: [],
-      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: [],
+      secondList: [],
+      secondList1: [],
       subjectList: [
       subjectList: [
         { label: '不限专业', value: '0' },
         { label: '不限专业', value: '0' },
         { label: '哲学', value: '1' },
         { label: '哲学', value: '1' },
@@ -238,24 +239,23 @@ export default {
         this.$set(this, `info`, infos);
         this.$set(this, `info`, infos);
         this.returnData(this.info);
         this.returnData(this.info);
       }
       }
+      this.$set(this, `loading`, true);
     },
     },
     selectChange({ type, value }) {
     selectChange({ type, value }) {
-      console.log(type, value);
       this.$set(this.info, `${type}`, value);
       this.$set(this.info, `${type}`, value);
     },
     },
     selectDate(date) {
     selectDate(date) {
       this.$set(this.info, `end_date`, date[3]);
       this.$set(this.info, `end_date`, date[3]);
       this.dateVis = false;
       this.dateVis = false;
     },
     },
-    listChange({ value, type }) {
+    listChange({ val, type }) {
       //此方法是更换子列表的
       //此方法是更换子列表的
-      if (value.value === '220000') {
-        this.$set(this, `cityList`, this.secondList);
-      } else if (value.value === '210000') {
-        this.$set(this, `cityList`, this.secondList1);
+      if (type === 'city') {
+        let res = this.provinceList.filter(fil => fil.code === val);
+        this.getCityList(res[0].name);
       } else if (type === 'zy_req') {
       } else if (type === 'zy_req') {
         //专业查询模拟
         //专业查询模拟
-        this.$set(this, `subjectSubList`, value === '1' ? this.subjectSub : this.subjectSub2);
+        this.$set(this, `subjectSubList`, val === '1' ? this.subjectSub : this.subjectSub2);
       }
       }
     },
     },
     toSubmit() {
     toSubmit() {
@@ -302,27 +302,17 @@ export default {
         this.$message.error(result.errmsg);
         this.$message.error(result.errmsg);
       }
       }
     },
     },
-    returnData(data) {
+    async returnData(data) {
       if (data.city) {
       if (data.city) {
-        let mid = data.city.split(',');
+        let ind = data.expect.city.split(',');
         let selected = [];
         let selected = [];
-        for (const select of mid) {
-          let res = this.provinceList.filter(item => item.label === select);
-          if (res.length > 0) {
-            selected = [...selected, ...res];
-          } else {
-            let res = this.secondList.filter(item => item.label === select);
-            if (res.length > 0) {
-              selected = [...selected, ...res];
-            } else {
-              let res = this.secondList1.filter(item => item.label === select);
-              if (res.length > 0) {
-                selected = [...selected, ...res];
-              }
-            }
+        for (const select of ind) {
+          let result = await this.dicOperation({ name: select });
+          if (`${result.errcode}` === '0') {
+            selected.push(result.data);
           }
           }
         }
         }
-        this.$set(this.info, `city`, selected);
+        this.$set(this.expect, `city`, selected);
       }
       }
       if (data.zy_req) {
       if (data.zy_req) {
         let mid = data.zy_req.split(',');
         let mid = data.zy_req.split(',');
@@ -361,10 +351,10 @@ export default {
       if (`${result.errcode}` === '0') {
       if (`${result.errcode}` === '0') {
         var enticeNew = result.data.map(item => ({ value: item.code, label: item.name }));
         var enticeNew = result.data.map(item => ({ value: item.code, label: item.name }));
         this.$set(this, `entice_list`, enticeNew);
         this.$set(this, `entice_list`, enticeNew);
-        console.log(enticeNew);
       } else {
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
       }
+      //缺少薪酬福利
       result = await this.dicOperation('xcfl');
       result = await this.dicOperation('xcfl');
       if (`${result.errcode}` === '0') {
       if (`${result.errcode}` === '0') {
         this.$set(this, `welfare_list`, result.data);
         this.$set(this, `welfare_list`, result.data);
@@ -383,6 +373,39 @@ export default {
       } else {
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
       }
+      result = await this.dicOperation({ level: 1 });
+      if (`${result.errcode}` === '0') {
+        this.$set(this, `provinceList`, result.data);
+      } else {
+        this.$message.error(result.errmsg ? result.errmsg : 'error');
+      }
+    },
+    async getCityList(name) {
+      let arr = await this.provinceList.filter(item => item.name === name && this.filterCity(name));
+      if (arr.length > 0) {
+        let pro = arr[0];
+        let result = await this.dicOperation({ level: 2, parent: pro.code });
+        if (`${result.errcode}` === '0') {
+          this.$set(this, `cityList`, result.data);
+        }
+      } else {
+        this.$set(this.info, `city`, '');
+        this.$set(this, `cityList`, [{ name: '无选项', code: 0, disabled: true }]);
+      }
+    },
+    filterCity(name) {
+      if (
+        name.includes('特别行政区') ||
+        name.includes('北京市') ||
+        name.includes('天津市') ||
+        name.includes('上海市') ||
+        name.includes('重庆市') ||
+        name.includes('台湾省')
+      ) {
+        return false;
+      } else {
+        return true;
+      }
     },
     },
   },
   },
 };
 };