123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- <template>
- <div id="index">
- <index-detail
- :info="site"
- :newsList="newsList"
- :backColor="backColor"
- :Color="Color"
- :noticeList="noticeList"
- :recruitList="jobinfoList"
- :companyList="corpList"
- :nativeList="linkList"
- :menuList="menu"
- ></index-detail>
- </div>
- </template>
- <script>
- import indexDetail from '@/components/index.vue';
- import { mapActions, mapState } from 'vuex';
- import _ from 'lodash';
- export default {
- metaInfo() {
- return {
- title: this.siteTitle ? this.siteTitle : '就业信息网',
- };
- },
- name: 'index',
- props: {},
- components: {
- indexDetail,
- },
- data: () => ({
- info: {
- src: require('@/assets/logo.png'),
- phone: '0431-12345678',
- banner: require('@/assets/banner.png'),
- address: '办公地址:长春市经济技术开发区金川街151号吉林省高等学校毕业生就业指导中心2楼一站式办公大厅',
- email: '邮编:130012',
- gongjiao: '公交线路:乘坐120路、227路、20路、260路、80路、130路、281路、154路、190路、125路公交北方市场下车,北方市场南门南行200米。',
- mobile: '业务咨询电话:0431-84657570 0431-84657571;',
- date: '办公时间:周一至周五,法定假日不对外办公。',
- footTitle: '吉ICP备09006292号-1 Copyright 2013 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
- },
- site: {}, //站点信息
- siteTitle: {}, //站点标题
- menu: [], //菜单
- modules: [], //模块
- newsList: [], //新闻模块
- noticeList: [], //公告模块
- self1List: [], //自定义模块现在没用
- self2List: [], //自定义模块现在没用
- jobinfoList: [], //招聘信息
- linkList: [], //网站导航
- corpList: [], //招聘企业
- backColor: '#0457c7',
- Color: '#0457c7',
- }),
- async created() {
- await this.toGetSite(); //获取主站信息
- this.loadMenu(); //获取菜单信息
- this.toGetModule(); //获取模块信息
- this.toGetJobInfo(); //获取招聘信息
- this.toGetLinks(); //招聘信息+网站链接
- this.self();
- },
- computed: {},
- methods: {
- ...mapActions(['getSite', `getMenu`, 'getColumn', 'getModule', 'getNews', 'getJobInfo', 'getPosts', 'getLink']),
- //站点信息
- 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));
- this.finishedMenu();
- return;
- } 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 = `/info/detail?id=${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}`;
- }
- }
- return columns;
- }
- },
- //模块
- async loadModule() {
- let modules = sessionStorage.getItem('modules');
- if (modules) {
- this.$set(this, `modules`, JSON.parse(modules));
- return;
- }
- this.toGetMenu();
- },
- async toGetModule() {
- let result = await this.getModule({ type: `list` });
- if (result.errcode === 0) {
- sessionStorage.setItem('modules', JSON.stringify(result.data));
- this.$set(this, `modules`, result.data);
- this.finishedModule();
- }
- },
- async finishedModule() {
- let modules = JSON.parse(JSON.stringify(this.modules));
- for (const item of modules) {
- if (`${item.is_use}` === `0`) {
- let res = await this.completeModules(item);
- item.children = res;
- }
- }
- for (const item of modules) {
- this.$set(this, `${item.category}List`, item);
- }
- this.$set(this, `modules`, modules);
- },
- async completeModules(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 === `bugList`) {
- col.path = `/newsList/module/${col.content_id}`;
- col.children = await this.completeColumn(col);
- } else if (col.type === `column`) {
- col.path = `/newsList/module/${col.id}`;
- col.children = await this.completeColumn(col);
- } else if (col.type === `content`) {
- col.path = `/detail/${col.content_id}`;
- }
- }
- return columns;
- }
- },
- async completeColumn(item) {
- let data = { skip: 0, limit: 8 };
- if (item.type === `bugList`) {
- data.news_type = `0`;
- data.parent_id = item.content_id;
- } else {
- data.news_type = `1`;
- data.parent_id = item.id;
- }
- let result = await this.getNews({ type: 'bugList', data: data });
- if (result.errcode === 0) {
- return result.data;
- }
- },
- //获取招聘信息
- async toGetJobInfo() {
- let result = await this.getJobInfo({ type: 'list', data: { limit: 8 } });
- if (`${result.errcode}` === '0') {
- for (const item of result.data) {
- if (!item.jobs || !(item.jobs.length > 0)) continue;
- let jobs = [];
- for (let job of item.jobs) {
- let jobInfo = await this.toGetPosts(job);
- jobs.push(jobInfo);
- }
- item.jobs = jobs;
- }
- this.$set(this, 'jobinfoList', result.data);
- } else {
- this.$message.error(result.errmsg ? result.errmsg : 'error');
- }
- },
- async toGetPosts(id) {
- let result = await this.getPosts({ type: 'fetch', data: { id: id } });
- if (result.errcode === 0) return result.data;
- },
- //招聘单位+网站链接
- async toGetLinks() {
- let { links = [], corps = [] } = await this.getLink();
- // this.$set(this, `linkList`, links);
- this.$set(this, `corpList`, corps);
- },
- // 网站导航linkList
- async self() {
- let res = await this.$axios.$get('/linkList.json');
- this.$set(this, `linkList`, res);
- },
- },
- };
- </script>
- <style lang="less" scoped></style>
|