ソースを参照

简历城市修改完毕

lrf402788946 5 年 前
コミット
c9d575217b
3 ファイル変更38 行追加46 行削除
  1. 17 16
      src/components/tag-all-select.vue
  2. 7 3
      src/store.js
  3. 14 27
      src/views/want/resume/index.vue

+ 17 - 16
src/components/tag-all-select.vue

@@ -80,7 +80,6 @@ export default {
     selected: {
       handler(val, oval) {
         let dif = _.difference(val, oval);
-        let key = Object.keys(val[0]);
         if (dif.length > 0) {
           this.defaultProcess();
         }
@@ -100,7 +99,7 @@ export default {
     //处理直辖/省份
     processProvince(val) {
       //1对比出哪个是新选的,如果没有新选的,那就是取消
-      let is_selected = this.selected.map(item => item.value); //将选择前的结果的value整理出来
+      let is_selected = this.selected.map(item => item.code); //将选择前的结果的value整理出来
       let different = _.difference(val, is_selected); //对比出新选的value是哪个
       if (different.length > 0) {
         //新选的情况
@@ -115,7 +114,7 @@ export default {
           this.$set(this, `selectList`, _.dropRight(this.selectList));
           let code = '';
           if (typeof haveCityList[0] === 'object') {
-            code = haveCityList[0].value;
+            code = haveCityList[0].code;
           } else {
             code = haveCityList[0];
           }
@@ -132,19 +131,19 @@ export default {
     processCity() {
       let newArr = [];
       this.selectList.map(item => {
-        let result = this.firstList.filter(fil => fil.value === item);
+        let result = this.firstList.filter(fil => fil.code === item);
         if (result.length > 0) {
           result.forEach(res => {
             newArr.push(res);
           });
         } else {
-          result = this.secondList.filter(fil => fil.value === item);
+          result = this.secondList.filter(fil => fil.code === item);
           if (result.length > 0) {
             result.forEach(res => {
               newArr.push(res);
             });
           } else {
-            result = this.displayList.filter(fil => fil.value === item);
+            result = this.displayList.filter(fil => fil.code === item);
             if (result.length > 0) {
               result.forEach(res => {
                 newArr.push(res);
@@ -158,23 +157,22 @@ export default {
     //关闭标签方法
     tagClose(val) {
       //取消选择
-      let leastList = this.selectList.filter(item => item !== val.value);
-      let leastDisplayList = this.displayList.filter(item => item.value !== val.value);
+      let leastList = this.selectList.filter(item => item !== val.code);
+      let leastDisplayList = this.displayList.filter(item => item.code !== val.code);
       this.$set(this, `selectList`, leastList);
       this.disFilter(leastDisplayList);
     },
     //是不是直辖市
     haveCity(item) {
-      console.log(item);
-      let value;
+      let code;
       if (typeof item === 'object') {
-        value = item.value;
+        code = item.code;
       } else {
-        value = item;
+        code = item;
       }
-      if (value === '110000' || value === '120000' || value === '310000' || value === '500000' || value === '810000' || value === '820000') {
+      if (code === '110000' || code === '120000' || code === '310000' || code === '500000' || code === '810000' || code === '820000') {
         return false;
-      } else if (value.indexOf('0000') > 0) {
+      } else if (code.indexOf('0000') > 0) {
         return true;
       } else {
         return false;
@@ -191,9 +189,10 @@ export default {
     //初始化处理
     defaultProcess() {
       //处理复选框
-      let select = this.selected.filter(item => item.value !== undefined);
+      if (!_.isObject(this.selected)) return;
+      let select = this.selected.filter(item => item.code !== undefined);
       if (select.length > 0) {
-        let result = this.selected.map(item => item.value);
+        let result = this.selected.map(item => item.code);
         this.$set(this, `selectList`, result);
         //处理显示
         this.$set(this, `displayList`, this.selected);
@@ -231,6 +230,8 @@ export default {
 .firstMenu {
   background: #c9cacf;
   border: 1px solid #e7e8ec;
+  height: 15rem;
+  overflow-y: scroll;
 }
 /deep/.el-collapse-item__header {
   height: 0;

+ 7 - 3
src/store.js

@@ -25,6 +25,7 @@ const api = {
   studBind: '/api/stud/bind', //post=>query;corpid;body:mobile,wxtoken
   studLogin: '/api/stud/login',
   dictionary: '/api/code/{type}/items', //type === xzqh:query:level(1/2);parent(无/code)
+  findOne: '/api/code/xzqh/findOne', //query:name
 };
 export default new Vuex.Store({
   state: {
@@ -192,10 +193,13 @@ export default new Vuex.Store({
       if (!_.isObject(type)) {
         result = await this.$axios.$get(api.dictionary, { type: type });
       } else {
-        let { level, parent } = type;
-        result = await this.$axios.$get(api.dictionary, { type: 'xzqh' }, { level: level, parent: parent });
+        let { level, parent, name } = type;
+        if (name) {
+          result = await this.$axios.$get(api.findOne, {}, { name: name });
+        } else {
+          result = await this.$axios.$get(api.dictionary, { type: 'xzqh' }, { level: level, parent: parent });
+        }
       }
-
       return result;
     },
   },

+ 14 - 27
src/views/want/resume/index.vue

@@ -447,7 +447,6 @@ export default {
     selectChange({ val, type }) {
       //此方法是同步选择
       if (type === 'category' || type === 'city' || type === 'salary') {
-        console.log(val);
         this.$set(this.expect, type, val);
       } else {
         this.$set(this.info, type, val);
@@ -528,9 +527,9 @@ export default {
       mid = '';
       data.city.map(item => {
         if (mid === '') {
-          mid = item.label;
+          mid = item.name;
         } else {
-          mid += `,${item.label}`;
+          mid += `,${item.name}`;
         }
       });
       data.city = mid;
@@ -552,36 +551,13 @@ export default {
       data.attachments = _.get(this.uploads, `attachments`) === undefined ? [] : _.get(this.uploads, `attachments`);
       return data;
     },
-    returnData(data) {
+    async returnData(data) {
       if (data.expect.industry) {
         let ind = data.expect.industry.split(',');
         this.$set(this.expect, `industry`, ind);
       }
-      if (data.expect.city) {
-        let ind = data.expect.city.split(',');
-        let selected = [];
-        for (const select of ind) {
-          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];
-              }
-            }
-          }
-        }
-        console.log(selected);
-        this.$set(this.expect, `city`, selected);
-      }
       if (data.expect.category) {
         let ind = data.expect.category.split(',');
-        console.log(ind);
         let arr = [];
         for (const select of ind) {
           let result = this.zwlbList.filter(item => item.name === select);
@@ -590,6 +566,17 @@ export default {
         arr = arr.map(item => item.name);
         this.$set(this.expect, `category`, arr);
       }
+      if (data.expect.city) {
+        let ind = data.expect.city.split(',');
+        let selected = [];
+        for (const select of ind) {
+          let result = await this.dicOperation({ name: select });
+          if (`${result.errcode}` === '0') {
+            selected.push(result.data);
+          }
+        }
+        this.$set(this.expect, `city`, selected);
+      }
       if (data.expect.salary) {
         this.$set(this.expect, `salary`, data.expect.salary);
       }