lrf402788946 5 年之前
父節點
當前提交
687ca786c0
共有 4 個文件被更改,包括 85 次插入71 次删除
  1. 9 2
      src/store.js
  2. 0 1
      src/views/info/base/auth.vue
  3. 51 27
      src/views/info/base/info.vue
  4. 25 41
      src/views/jobs/school/index.vue

+ 9 - 2
src/store.js

@@ -32,7 +32,7 @@ const api = {
   wxtoken: '/weixin/qrcode/{qrcode}/token',
   corpBind: '/api/corp/bind', //post=>query;corpid;body:mobile,wxtoken
   corpLogin: '/api/corp/login',
-  education: '/api/code/{type}/items',
+  dictionary: '/api/code/{type}/items', //type === xzqh:query:level(1/2);parent(无/code)
 };
 
 export default new Vuex.Store({
@@ -328,7 +328,14 @@ export default new Vuex.Store({
     },
     // 字典表
     async dicOperation({ state }, type) {
-      let result = await this.$axios.$get(api.education, { type: type });
+      let result;
+      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 });
+      }
+
       return result;
     },
   },

+ 0 - 1
src/views/info/base/auth.vue

@@ -155,7 +155,6 @@ export default {
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
-      console.log(result);
     },
     onSubmits() {
       let keys = Object.keys(this.imgs);

+ 51 - 27
src/views/info/base/info.vue

@@ -14,12 +14,18 @@
         </form-item>
         <form-item label="所在省份" prop="province">
           <el-select v-model="info.province" filterable placeholder="请选择所在省份">
-            <el-option v-for="(item, index) in provinceList" :key="index" :label="item.label" :value="item.label"></el-option>
+            <el-option v-for="(item, index) in provinceList" :key="index" :label="item.name" :value="item.name"></el-option>
           </el-select>
         </form-item>
         <form-item label="所在城市" prop="city">
           <el-select v-model="info.city" filterable placeholder="请选择所在城市">
-            <el-option v-for="(item, index) in cityList" :key="index" :label="item.label" :value="item.label"></el-option>
+            <el-option
+              v-for="(item, index) in cityList"
+              :key="index"
+              :label="item.name"
+              :value="item.name"
+              :disabled="item.disabled ? true : false"
+            ></el-option>
           </el-select>
         </form-item>
         <form-item label="单位地址" prop="company_name">
@@ -84,6 +90,7 @@
 <script>
 import upload from '@/components/upload.vue';
 import formItem from '@/components/form-item.vue';
+import { mapActions, mapState } from 'vuex';
 export default {
   name: 'info',
   props: {
@@ -97,28 +104,13 @@ export default {
   data: () => ({
     info: {},
     corp: {},
-    provinceList: [
-      {
-        label: '北京',
-        value: '1',
-      },
-      {
-        label: '上海',
-        value: '2',
-      },
-      {
-        label: '深圳',
-        value: '3',
-      },
-      {
-        label: '吉林',
-        value: '4',
-      },
-    ],
-    cityList: [{ label: '长春', value: '1' }, { label: '吉林', value: '2' }, { label: '榆树', value: '3' }, { label: '北京', value: '4' }],
-    scaleList: [{ label: '少于50人', value: `1` }, { label: '50-100人', value: `2` }, { label: '100-150人', value: `3` }, { label: '300人以上', value: `4` }],
+    provinceList: [],
+    cityList: [],
+    scaleList: [],
   }),
-  created() {},
+  created() {
+    this.otherList();
+  },
   watch: {
     original: {
       handler(val) {
@@ -130,16 +122,48 @@ export default {
         this.$set(this, `corp`, val);
       },
     },
+    'info.province': {
+      handler(val) {
+        if (val) {
+          this.getCityList(val);
+        }
+      },
+      immediate: true,
+      deep: true,
+    },
   },
-  mounted() {},
   computed: {},
   methods: {
-    uploadPic() {
-      console.log(this.$refs.picUpload.$refs.upload);
-    },
+    ...mapActions(['dicOperation']),
     onSubmit() {
       this.$emit(`onSubmit`, { data: this.info, type: 'info' });
     },
+    async otherList() {
+      let result = await this.dicOperation({ level: 1 });
+      if (`${result.errcode}` === '0') {
+        this.$set(this, `provinceList`, result.data);
+      }
+    },
+    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('重庆市')) {
+        return false;
+      } else {
+        return true;
+      }
+    },
   },
 };
 </script>

+ 25 - 41
src/views/jobs/school/index.vue

@@ -15,27 +15,19 @@
         </el-col>
       </template>
       <template #main>
-        <el-row class="Name">
-          <el-menu :default-active="activeIndex" mode="horizontal" @select="handleSelect">
-            <el-menu-item v-for="(tag, index) in tags" :key="index" :index="tag.id">
-              <p class="tab-text">{{ tag.name }}</p>
-              <p class="tab-num">{{ tag.number }}</p>
-            </el-menu-item>
-          </el-menu>
-        </el-row>
         <el-row>
-          <el-col :span="12" v-for="(tag, index) in tagsCon" :key="index" :type="tag.type">
+          <el-col :span="12" v-for="(item, index) in schoolList" :key="index">
             <ul class="nameCon">
               <li>
                 <el-col :span="24" class="nameConImg">
                   <img src="../../../assets/schoolLogo.png" />
                 </el-col>
                 <el-col :span="24" class="nameConTit">
-                  <el-link class="nameConTit-txt" @click="$router.push('/jobs/school/detail')">{{ tag.name }}</el-link>
-                  <p class="nameConTit-pla">{{ tag.place }}</p>
+                  <el-link class="nameConTit-txt" @click="$router.push('/jobs/school/detail')">{{ item.name }}</el-link>
+                  <p class="nameConTit-pla">{{ item.place }}</p>
                 </el-col>
                 <el-col :span="24" class="nameConBtn">
-                  <el-button @click="join(tag.id)">入驻</el-button>
+                  <el-button v-if="item.status === '未入驻'" @click="join(item.id)">入驻</el-button>
                 </el-col>
               </li>
             </ul>
@@ -72,46 +64,22 @@ export default {
     currentPage: 1,
     totalRow: 60,
     activeIndex: '1',
-    tags: [
-      { id: '1', name: '全国', number: '1008278' },
-      { id: '2', name: '安徽', number: '7776' },
-      { id: '3', name: '北京', number: '2177' },
-      { id: '4', name: '福建', number: '14885' },
-      { id: '5', name: '甘肃', number: '25178' },
-      { id: '6', name: '广东', number: '86858' },
-      { id: '7', name: '广西', number: '20302' },
-      { id: '8', name: '贵州', number: '21007' },
-      { id: '9', name: '河北', number: '28707' },
-      { id: '10', name: '河南', number: '15090' },
-      { id: '11', name: '黑龙江', number: '15090' },
-      { id: '12', name: '湖北', number: '45702' },
-      { id: '13', name: '湖南', number: '7689' },
-      { id: '14', name: '贵州', number: '21007' },
-      { id: '15', name: '河北', number: '28707' },
-      { id: '16', name: '河南', number: '15090' },
-      { id: '17', name: '黑龙江', number: '15090' },
-      { id: '18', name: '湖北', number: '45702' },
-      { id: '19', name: '湖南', number: '7689' },
-    ],
-    tagsCon: [
-      { name: '南昌大学', place: '江西 南昌 应届共11990人' },
-      { name: '昆明理工大学', place: '云南 昆明 应届共11253人' },
-      { name: '华南农业大学', place: '广东 广州 应届共10469人' },
-    ],
-    schList: {},
+    schoolList: [],
+    selfSch: {},
   }),
   created() {
     this.getInfo();
+    this.otherList();
   },
   computed: {
     ...mapState(['user']),
   },
   methods: {
-    ...mapActions(['corpSchInfo', 'joinSch']),
+    ...mapActions(['corpSchInfo', 'joinSch', 'dicOperation']),
     async getInfo() {
       let result = await this.corpSchInfo({ type: 'list', data: { corpid: this.user.corpid } });
       if (`${result.errcode}` === '0') {
-        this.$set(this, `schList`, result.data);
+        this.$set(this, `selfSch`, result.data);
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
@@ -132,6 +100,22 @@ export default {
       this.currentPage = val;
       this.search();
     },
+    async otherList() {
+      let result = await this.dicOperation('yx');
+      if (`${result.errcode}` === '0') {
+        let allList = result.data;
+        allList.map(item => {
+          let res = this.selfSch.filter(fil => `${fil.schid}` === `${item.code}`);
+          if (res.length > 0) {
+            item.status = res[0].status;
+          } else {
+            item.status = '未入驻';
+          }
+          return item;
+        });
+        this.$set(this, `schoolList`, result.data);
+      }
+    },
   },
 };
 </script>