|
@@ -1,13 +1,28 @@
|
|
<template>
|
|
<template>
|
|
<div id="jobfair">
|
|
<div id="jobfair">
|
|
- <jobfair-detail :info="info" :backColor="backColor" :Color="Color" :jobfairInfo="jobfairInfo" :jobslist="jobslist"></jobfair-detail>
|
|
|
|
|
|
+ <jobfair-detail
|
|
|
|
+ :menuList="menu"
|
|
|
|
+ :sideMenu="sideMenu"
|
|
|
|
+ :info="site"
|
|
|
|
+ :backColor="backColor"
|
|
|
|
+ :Color="Color"
|
|
|
|
+ :jobfairInfo="jobfairInfo"
|
|
|
|
+ :corpList="corpList"
|
|
|
|
+ :jobsList="jobsList"
|
|
|
|
+ ></jobfair-detail>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import jobfairDetail from '@/components/jobfair.vue';
|
|
import jobfairDetail from '@/components/jobfair.vue';
|
|
import { mapActions, mapState } from 'vuex';
|
|
import { mapActions, mapState } from 'vuex';
|
|
|
|
+import _ from 'lodash';
|
|
export default {
|
|
export default {
|
|
|
|
+ metaInfo() {
|
|
|
|
+ return {
|
|
|
|
+ title: this.siteTitle ? this.siteTitle : '就业信息网',
|
|
|
|
+ };
|
|
|
|
+ },
|
|
name: 'jobfair',
|
|
name: 'jobfair',
|
|
props: {},
|
|
props: {},
|
|
components: {
|
|
components: {
|
|
@@ -26,7 +41,8 @@ export default {
|
|
copyright: '吉ICP备09006292号-1 Copyright 2013 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
|
|
copyright: '吉ICP备09006292号-1 Copyright 2013 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
|
|
},
|
|
},
|
|
jobfairInfo: {},
|
|
jobfairInfo: {},
|
|
- jobslist: [
|
|
|
|
|
|
+ corpList: [],
|
|
|
|
+ jobsList: [
|
|
{
|
|
{
|
|
job_name: '测试测试测试',
|
|
job_name: '测试测试测试',
|
|
salary: '测试测试测试',
|
|
salary: '测试测试测试',
|
|
@@ -36,12 +52,122 @@ export default {
|
|
city: '长春市',
|
|
city: '长春市',
|
|
},
|
|
},
|
|
],
|
|
],
|
|
|
|
+ list: [],
|
|
|
|
+ menu: [],
|
|
|
|
+ site: {},
|
|
|
|
+ sideMenu: [],
|
|
|
|
+ siteTitle: '',
|
|
backColor: '#0457c7',
|
|
backColor: '#0457c7',
|
|
Color: '#0457c7',
|
|
Color: '#0457c7',
|
|
}),
|
|
}),
|
|
- created() {},
|
|
|
|
|
|
+ async created() {
|
|
|
|
+ await this.toGetSite(); //获取主站信息
|
|
|
|
+ await this.loadMenu(); //获取菜单信息
|
|
|
|
+ this.search();
|
|
|
|
+ },
|
|
computed: {},
|
|
computed: {},
|
|
- methods: {},
|
|
|
|
|
|
+ methods: {
|
|
|
|
+ ...mapActions(['getSite', 'getMenu', 'getColumn', 'getJobfair', 'fairInfoOperation']),
|
|
|
|
+ async search() {
|
|
|
|
+ //1直接拿着参数发送请求
|
|
|
|
+ let result = await this.getJobfair({ type: 'fetch', data: { id: this.$route.query.id } });
|
|
|
|
+ if (`${result.errcode}` === '0') {
|
|
|
|
+ this.$set(this, `jobfairInfo`, result.data);
|
|
|
|
+ this.searchCorps();
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error(result.errmsg ? result.errmsg : 'error');
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ async searchCorps() {
|
|
|
|
+ let result = await this.fairInfoOperation({ type: 'searchCorp', data: { fairid: this.$route.query.id, skip: 0, limit: this.$limit } });
|
|
|
|
+ if (`${result.errcode}` === '0') {
|
|
|
|
+ this.$set(this, `corpList`, result.data);
|
|
|
|
+ this.searchJobs();
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ async searchJobs() {
|
|
|
|
+ let jobsList = [];
|
|
|
|
+ if (this.corpList.length > 0) {
|
|
|
|
+ for (const item of this.corpList) {
|
|
|
|
+ let result = await this.fairInfoOperation({ type: `searchJobs`, data: { id: item.id } });
|
|
|
|
+ if (`${result.errcode}` === '0') {
|
|
|
|
+ result.data.map(item => jobsList.push(item));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.$set(this, `jobsList`, jobsList);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //站点信息
|
|
|
|
+ async toGetSite() {
|
|
|
|
+ let site = sessionStorage.getItem('site');
|
|
|
|
+ if (!site) {
|
|
|
|
+ let result = await this.getSite({ type: 'search' });
|
|
|
|
+ if (result.errcode === 0) {
|
|
|
|
+ sessionStorage.setItem('site', JSON.stringify(result.data));
|
|
|
|
+ if (_.get(result.data, `custom`)) {
|
|
|
|
+ let item = result.custom;
|
|
|
|
+ }
|
|
|
|
+ this.$set(this, `site`, result.data);
|
|
|
|
+ this.$set(this, `siteTitle`, this.site.name);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ this.$set(this, `site`, JSON.parse(site));
|
|
|
|
+ this.$set(this, `siteTitle`, this.site.name);
|
|
|
|
+ let arr = this.site;
|
|
|
|
+ if (arr.custom) {
|
|
|
|
+ let item = arr.custom;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //菜单
|
|
|
|
+ async loadMenu() {
|
|
|
|
+ let menu = sessionStorage.getItem('menu');
|
|
|
|
+ if (menu) {
|
|
|
|
+ this.$set(this, `menu`, JSON.parse(menu));
|
|
|
|
+ await this.finishedMenu();
|
|
|
|
+ } else this.toGetMenu();
|
|
|
|
+ },
|
|
|
|
+ async toGetMenu() {
|
|
|
|
+ let result = await this.getMenu({ type: `list` });
|
|
|
|
+ if (result.errcode === 0) {
|
|
|
|
+ sessionStorage.setItem('menu', JSON.stringify(result.data));
|
|
|
|
+ this.$set(this, `menu`, result.data);
|
|
|
|
+ this.finishedMenu();
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ async finishedMenu() {
|
|
|
|
+ let menus = JSON.parse(JSON.stringify(this.menu));
|
|
|
|
+ for (const item of menus) {
|
|
|
|
+ if (item.type === 'content') {
|
|
|
|
+ item.path = `/detail/${item.content_id}`;
|
|
|
|
+ } else if (item.type !== 'url') {
|
|
|
|
+ let res = await this.completeMenu(item);
|
|
|
|
+ item.children = res;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.$set(this, `menu`, menus);
|
|
|
|
+ },
|
|
|
|
+ async completeMenu(item) {
|
|
|
|
+ let result = await this.getColumn({
|
|
|
|
+ type: `list`,
|
|
|
|
+ data: { parent_id: item.id },
|
|
|
|
+ });
|
|
|
|
+ if (result.errcode === 0) {
|
|
|
|
+ let columns = result.data;
|
|
|
|
+ for (const col of columns) {
|
|
|
|
+ if (col.type === 'content') {
|
|
|
|
+ col.path = `/detail/${col.content_id}`;
|
|
|
|
+ } else if (col.type !== 'url') {
|
|
|
|
+ col.path = `/newsList/menu/${col.id}?title=${col.title}`;
|
|
|
|
+ if (col.parent.includes('党员')) {
|
|
|
|
+ col.path = `/memberList/menu/${col.id}?title=${col.title}`;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return columns;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ },
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
|