Browse Source

Merge branch 'master' of http://git.cc-lotus.info/smart-jobs/web-bench

guhongwei 5 năm trước cách đây
mục cha
commit
d3c662b745
5 tập tin đã thay đổi với 93 bổ sung78 xóa
  1. 2 0
      README.md
  2. 9 2
      src/store.js
  3. 12 13
      src/views/info/base/auth.vue
  4. 45 22
      src/views/info/base/info.vue
  5. 25 41
      src/views/jobs/school/index.vue

+ 2 - 0
README.md

@@ -27,3 +27,5 @@ npm run lint
 
 ### Customize configuration
 See [Configuration Reference](https://cli.vuejs.org/config/).
+
+test

+ 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;
     },
   },

+ 12 - 13
src/views/info/base/auth.vue

@@ -4,17 +4,17 @@
       <el-form :model="identitys" :rules="rules" ref="form">
         <form-item label="所属行业" type="select" prop="industry">
           <el-select v-model="identity.industry" placeholder="请选择所属行业">
-            <el-option v-for="(item, index) in selectList1" :key="index" :label="item.name" :value="item.name"></el-option>
+            <el-option v-for="(item, index) in hylbList" :key="index" :label="item.name" :value="item.name"></el-option>
           </el-select>
         </form-item>
         <form-item label="单位性质" prop="nature">
           <el-select v-model="identity.nature" placeholder="请选择单位性质">
-            <el-option v-for="(item, index) in selectList2" :key="index" :label="item.name" :value="item.name"></el-option>
+            <el-option v-for="(item, index) in dwxzList" :key="index" :label="item.name" :value="item.name"></el-option>
           </el-select>
         </form-item>
         <form-item label="注册资金" prop="reg_capital">
           <el-select v-model="identity.reg_capital" placeholder="请输入注册资金">
-            <el-option v-for="(item, index) in selectList3" :key="index" :label="item.name" :value="item.name"></el-option>
+            <el-option v-for="(item, index) in zczjList" :key="index" :label="item.name" :value="item.name"></el-option>
           </el-select>
         </form-item>
         <form-item label="信用代码" prop="org_code">
@@ -22,7 +22,7 @@
         </form-item>
         <form-item label="单位标签(选填)" prop="tags">
           <el-select v-model="identity.tags" placeholder="请选择单位标签" multiple>
-            <el-option v-for="(item, index) in selectList4" :key="index" :label="item.name" :value="item.name"></el-option>
+            <el-option v-for="(item, index) in dwbqList" :key="index" :label="item.name" :value="item.name"></el-option>
           </el-select>
         </form-item>
         <form-item label="企业LOGO">
@@ -91,10 +91,10 @@ export default {
     },
     imgs: {},
     corp2: {},
-    selectList1: [],
-    selectList2: [],
-    selectList3: [],
-    selectList4: [],
+    hylbList: [],
+    dwxzList: [],
+    zczjList: [],
+    dwbqList: [],
     rules: {
       value1: [{ required: true, message: '选择测试', trigger: 'change' }],
       // value3: [{ required: true, message: '输入测试', trigger: 'blur' }],
@@ -130,32 +130,31 @@ export default {
       let result = await this.dicOperation('hylb');
       if (`${result.errcode}` === '0') {
         //给this=>vue的实例下在中的list属性,赋予result。data的值
-        this.$set(this, `selectList1`, result.data);
+        this.$set(this, `hylbList`, result.data);
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
       result = await this.dicOperation('dwxz');
       if (`${result.errcode}` === '0') {
         //给this=>vue的实例下在中的list属性,赋予result。data的值
-        this.$set(this, `selectList2`, result.data);
+        this.$set(this, `dwxzList`, result.data);
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
       result = await this.dicOperation('zczj');
       if (`${result.errcode}` === '0') {
         //给this=>vue的实例下在中的list属性,赋予result。data的值
-        this.$set(this, `selectList3`, result.data);
+        this.$set(this, `zczjList`, result.data);
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
       result = await this.dicOperation('dwbq');
       if (`${result.errcode}` === '0') {
         //给this=>vue的实例下在中的list属性,赋予result。data的值
-        this.$set(this, `selectList4`, result.data);
+        this.$set(this, `dwbqList`, result.data);
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
-      console.log(result);
     },
     onSubmits() {
       let keys = Object.keys(this.imgs);

+ 45 - 22
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">
@@ -98,25 +104,8 @@ 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' }],
+    provinceList: [],
+    cityList: [],
     scaleList: [],
   }),
   created() {
@@ -133,8 +122,16 @@ export default {
         this.$set(this, `corp`, val);
       },
     },
+    'info.province': {
+      handler(val) {
+        if (val) {
+          this.getCityList(val);
+        }
+      },
+      immediate: true,
+      deep: true,
+    },
   },
-  mounted() {},
   computed: {},
   methods: {
     ...mapActions(['dicOperation']),
@@ -146,6 +143,12 @@ export default {
       } else {
         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');
+      }
     },
     uploadPic() {
       console.log(this.$refs.picUpload.$refs.upload);
@@ -153,6 +156,26 @@ export default {
     onSubmit() {
       this.$emit(`onSubmit`, { data: this.info, type: 'info' });
     },
+    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>