guhongwei 5 سال پیش
والد
کامیت
86b4148a3e
92فایلهای تغییر یافته به همراه5780 افزوده شده و 12432 حذف شده
  1. 0 11752
      package-lock.json
  2. BIN
      src/assets/banner.jpg
  3. BIN
      src/assets/bule.png
  4. BIN
      src/assets/kuaisu1.jpg
  5. BIN
      src/assets/kuaisu2.jpg
  6. BIN
      src/assets/kuaisu3.jpg
  7. BIN
      src/assets/kuaisu4.jpg
  8. BIN
      src/assets/kuaisu5.jpg
  9. BIN
      src/assets/kuaisu6.jpg
  10. BIN
      src/assets/logo.png
  11. BIN
      src/assets/memberBg.jpg
  12. BIN
      src/assets/messageLeft.jpg
  13. BIN
      src/assets/messageRight.jpg
  14. BIN
      src/assets/messages.png
  15. BIN
      src/assets/news.jpg
  16. BIN
      src/assets/noPic.png
  17. BIN
      src/assets/noPic2.png
  18. BIN
      src/assets/noPic3.png
  19. BIN
      src/assets/shuangkun.jpg
  20. BIN
      src/assets/tuji1.jpg
  21. BIN
      src/assets/tuji2.jpg
  22. BIN
      src/assets/tuji3.jpg
  23. BIN
      src/assets/tuji4.jpg
  24. BIN
      src/assets/tuji5.jpg
  25. BIN
      src/assets/tuji6.jpg
  26. BIN
      src/assets/tuji7.jpg
  27. BIN
      src/assets/tuji8.jpg
  28. BIN
      src/assets/weilai.jpg
  29. BIN
      src/assets/zhaopin.jpg
  30. BIN
      src/assets/微信.png
  31. BIN
      src/assets/微博.png
  32. 5 4
      src/components/corp.vue
  33. 39 39
      src/components/detail.vue
  34. 168 100
      src/components/index.vue
  35. 17 6
      src/components/jobfair.vue
  36. 16 6
      src/components/jobinfo.vue
  37. 16 7
      src/components/jobs.vue
  38. 15 5
      src/components/list.vue
  39. 124 0
      src/components/member.vue
  40. 35 58
      src/components/memberDetail.vue
  41. 47 53
      src/components/memberList.vue
  42. 13 4
      src/components/newsList.vue
  43. 17 6
      src/components/talk.vue
  44. 128 0
      src/layout/detail/contInfo.vue
  45. 41 2
      src/layout/index/banner.vue
  46. 117 0
      src/layout/index/daohang.vue
  47. 51 0
      src/layout/index/down.vue
  48. 143 0
      src/layout/index/huji.vue
  49. 81 0
      src/layout/index/kuaisu.vue
  50. 141 0
      src/layout/index/law.vue
  51. 5 5
      src/layout/index/login.vue
  52. 81 0
      src/layout/index/lunbo.vue
  53. 6 5
      src/layout/index/menuInfo.vue
  54. 10 10
      src/layout/index/menuInfos.vue
  55. 125 0
      src/layout/index/noticeNews.vue
  56. 184 104
      src/layout/index/recruit.vue
  57. 143 0
      src/layout/index/service.vue
  58. 38 22
      src/layout/index/top.vue
  59. 25 0
      src/layout/index/weilai.vue
  60. 117 0
      src/layout/index/xiazai.vue
  61. 143 0
      src/layout/index/zhidao.vue
  62. 5 2
      src/layout/jobs-list/jobfair.vue
  63. 4 1
      src/layout/jobs-list/jobinfo.vue
  64. 11 2
      src/layout/jobs-list/post.vue
  65. 5 2
      src/layout/jobs-list/talk.vue
  66. 58 0
      src/layout/list/listMenu.vue
  67. 58 0
      src/layout/list/listMenus.vue
  68. 143 0
      src/layout/list/mainRight.vue
  69. 3 1
      src/layout/list/newsInfo.vue
  70. 290 0
      src/layout/member/dangjian.vue
  71. 185 0
      src/layout/member/gaoceng.vue
  72. 79 0
      src/layout/member/meesage.vue
  73. 156 0
      src/layout/member/photo.vue
  74. 51 0
      src/layout/member/top.vue
  75. 273 0
      src/layout/member/xuexi.vue
  76. 1 0
      src/layout/recuit/jobfairInfo.vue
  77. 10 3
      src/layout/share.vue
  78. 17 7
      src/router/index.js
  79. 36 27
      src/views/detail.vue
  80. 1650 0
      src/views/fail.vue
  81. 35 44
      src/views/index.vue
  82. 4 8
      src/views/list.vue
  83. 243 0
      src/views/loading.vue
  84. 216 0
      src/views/member.vue
  85. 36 25
      src/views/memberDetail.vue
  86. 95 63
      src/views/memberList.vue
  87. 4 8
      src/views/newsList.vue
  88. 4 8
      src/views/recruit/corp.vue
  89. 5 18
      src/views/recruit/jobfair.vue
  90. 4 8
      src/views/recruit/jobinfo.vue
  91. 4 8
      src/views/recruit/jobs.vue
  92. 4 9
      src/views/recruit/talk.vue

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 11752
package-lock.json


BIN
src/assets/banner.jpg


BIN
src/assets/bule.png


BIN
src/assets/kuaisu1.jpg


BIN
src/assets/kuaisu2.jpg


BIN
src/assets/kuaisu3.jpg


BIN
src/assets/kuaisu4.jpg


BIN
src/assets/kuaisu5.jpg


BIN
src/assets/kuaisu6.jpg


BIN
src/assets/logo.png


BIN
src/assets/memberBg.jpg


BIN
src/assets/messageLeft.jpg


BIN
src/assets/messageRight.jpg


BIN
src/assets/messages.png


BIN
src/assets/news.jpg


BIN
src/assets/noPic.png


BIN
src/assets/noPic2.png


BIN
src/assets/noPic3.png


BIN
src/assets/shuangkun.jpg


BIN
src/assets/tuji1.jpg


BIN
src/assets/tuji2.jpg


BIN
src/assets/tuji3.jpg


BIN
src/assets/tuji4.jpg


BIN
src/assets/tuji5.jpg


BIN
src/assets/tuji6.jpg


BIN
src/assets/tuji7.jpg


BIN
src/assets/tuji8.jpg


BIN
src/assets/weilai.jpg


BIN
src/assets/zhaopin.jpg


BIN
src/assets/微信.png


BIN
src/assets/微博.png


+ 5 - 4
src/components/corp.vue

@@ -15,7 +15,7 @@
         </div>
       </el-col>
       <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -25,7 +25,7 @@
 import top from '@/layout/index/top.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
 import corpDetail from '@/layout/recuit/corpDetail.vue';
-import foot from '@/layout/index/foot.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'jobfair',
   props: {
@@ -40,7 +40,7 @@ export default {
     top, //头部
     menuInfo, //导航
     corpDetail, //企业详情
-    foot, //底部信息
+    down, //底部信息
   },
   data: () => ({}),
   created() {},
@@ -55,8 +55,9 @@ export default {
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
   overflow: hidden;
+  background: #f5f5f5;
 }
 .menu {
   height: 40px;

+ 39 - 39
src/components/detail.vue

@@ -1,23 +1,22 @@
 <template>
   <div id="detail">
     <el-row>
-      <el-col :span="24" class="top">
-        <div class="w_1200">
-          <top :info="info" :Color="Color"></top>
-        </div>
+      <el-col :sapn="24" class="top">
+        <top :info="info"></top>
+      </el-col>
+      <el-col :sapn="24" class="banner">
+        <banner :info="info"></banner>
       </el-col>
-      <el-col :span="24" class="menu">
+      <el-col :sapn="24" class="menu">
         <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
       </el-col>
-      <el-col :span="24" class="main">
-        <div class="w_1200">
-          <el-col :span="24" class="mainList">
-            <detailInfo :detailInfo="detailInfo" :Color="Color"></detailInfo>
-          </el-col>
+      <el-col :sapn="24" class="main">
+        <div class="w_1270">
+          <contInfo :contInfos="contInfos" :bordColor="bordColor" :bordBottomColor="bordBottomColor" :color="color"></contInfo>
         </div>
       </el-col>
-      <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+      <el-col :sapn="24" class="down">
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -25,27 +24,27 @@
 
 <script>
 import top from '@/layout/index/top.vue';
+import banner from '@/layout/index/banner.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
-import listLeft from '@/layout/list/listLeft.vue';
-import detailInfo from '@/layout/detail/detail.vue';
-
-import foot from '@/layout/index/foot.vue';
+import contInfo from '@/layout/detail/contInfo.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'detail',
   props: {
-    info: null, //头部信息
-    Color: null, //头部电话字体颜色
-    backColor: null, //导航菜单背景颜色
-    detailInfo: null, //详情信息
-    menuList: null, //菜单信息
-    sideMenu: null, //侧菜单
+    backColor: null, //背景颜色
+    bordColor: null, //border颜色
+    bordBottomColor: null, //border-bottom颜色
+    color: null, //字体颜色
+    menuList: null, //菜单
+    info: null, //站点信息
+    contInfos: null, //信息详细
   },
   components: {
     top, //头部
-    menuInfo, //导航
-    // listLeft, //二级左侧导航
-    foot, //底部信息
-    detailInfo, //詳情
+    banner, //banner
+    menuInfo, //菜单
+    contInfo, //内容
+    down, //底部
   },
   data: () => ({}),
   created() {},
@@ -55,29 +54,30 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.w_1200 {
-  width: 1200px;
+.w_1270 {
+  width: 1270px;
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
   overflow: hidden;
+  background: #f5f5f5;
 }
-.menu {
-  height: 40px;
+.banner {
+  height: 300px;
   overflow: hidden;
 }
-.main {
-  min-height: 1060px;
-  margin: 50px 0 20 0;
+.menu {
+  height: 50px;
   overflow: hidden;
+  border-bottom: 1px solid #ccc;
 }
-.mainList {
-  float: right;
-  // width: 930px;
+.main {
+  min-height: 900px;
+  background: #f6f6f6;
 }
-.foot {
-  height: 133px;
+.down {
+  height: 135px;
   overflow: hidden;
 }
 </style>

+ 168 - 100
src/components/index.vue

@@ -1,57 +1,70 @@
 <template>
   <div id="index">
     <el-row>
-      <el-col :span="24" class="top">
-        <div class="w_1200">
-          <top :info="info" :Color="Color"></top>
+      <el-col :sapn="24" class="top">
+        <div class="w_1270">
+          <top :info="info"></top>
         </div>
       </el-col>
-      <el-col :span="24" class="menu">
-        <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
-      </el-col>
-      <el-col :span="24" class="banner">
+      <el-col :sapn="24" class="banner">
         <banner :info="info"></banner>
       </el-col>
-      <el-col :span="24" class="newsNotice">
-        <div class="w_1200">
-          <el-col :span="16" class="news">
-            <news :newsList="newsList"></news>
+      <el-col :sapn="24" class="menu">
+        <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
+      </el-col>
+      <el-col :sapn="24" class="main">
+        <div class="w_1270">
+          <el-col class="main_1">
+            <el-col :span="11" class="lunbo">
+              <lunbo :carouselList="carouselList"></lunbo>
+            </el-col>
+            <el-col :span="9" class="noticeNews">
+              <noticeNews :noticeNewsList="noticeNewsList"></noticeNews>
+            </el-col>
+            <el-col :span="4" class="kuaisu">
+              <kuaisu></kuaisu>
+            </el-col>
           </el-col>
-          <el-col :span="7" class="notice">
-            <notice :noticeList="noticeList"></notice>
+          <el-col class="main_2">
+            <el-col :span="11" class="zhidao">
+              <zhidao :zhidaoList="zhidaoList"></zhidao>
+            </el-col>
+            <el-col :span="9" class="law">
+              <law :lawList="lawList"></law>
+            </el-col>
+            <el-col :span="4" class="daohang">
+              <daohang></daohang>
+            </el-col>
           </el-col>
-        </div>
-      </el-col>
-      <el-col :span="24" class="caleRecruit">
-        <div class="w_1200">
-          <el-col :span="8" class="calendar">
-            <calendar></calendar>
+          <el-col :span="24" class="main_3">
+            <weilai></weilai>
           </el-col>
-          <el-col :span="16" class="recruitRight">
-            <el-col :span="24" class="recruit">
-              <recruit :recruitList="recruitList"></recruit>
+          <el-col :span="24" class="main_4">
+            <el-col :span="11" class="service">
+              <service :serviceList="serviceList"></service>
+            </el-col>
+            <el-col :span="9" class="huji">
+              <huji :hujiList="hujiList"></huji>
             </el-col>
-            <el-col :span="24" class="company">
-              <company :companyList="companyList"></company>
+            <el-col :span="4" class="xiazai">
+              <xiazai :xiazaiList="xiazaiList"></xiazai>
             </el-col>
           </el-col>
         </div>
-      </el-col>
-      <el-col :span="24" class="login">
-        <div class="w_1200">
-          <login></login>
-        </div>
-      </el-col>
-      <el-col :span="24" class="naitve">
-        <div class="w_1200">
-          <naitve :nativeList="nativeList"></naitve>
+        <el-col :span="24" class="main_5">
+          <recruit :recruitList="recruitList" :zixunList="zixunList"></recruit>
+        </el-col>
+        <div class="w_1270">
+          <el-col :span="24" class="login">
+            <login></login>
+          </el-col>
+          <el-col :span="24" class="naitve">
+            <naitve :nativeList="nativeList"></naitve>
+          </el-col>
         </div>
       </el-col>
-      <el-col :span="24" class="contact">
-        <contact :info="info"></contact>
-      </el-col>
-      <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+      <el-col :sapn="24" class="down">
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -59,44 +72,57 @@
 
 <script>
 import top from '@/layout/index/top.vue';
-import menuInfo from '@/layout/index/menuInfo.vue';
 import banner from '@/layout/index/banner.vue';
-import news from '@/layout/index/news.vue';
-import notice from '@/layout/index/notice.vue';
-import calendar from '@/layout/index/calendar.vue';
+import menuInfo from '@/layout/index/menuInfo.vue';
+import lunbo from '@/layout/index/lunbo.vue';
+import noticeNews from '@/layout/index/noticeNews.vue';
+import kuaisu from '@/layout/index/kuaisu.vue';
+import zhidao from '@/layout/index/zhidao.vue';
+import law from '@/layout/index/law.vue';
+import daohang from '@/layout/index/daohang.vue';
+import weilai from '@/layout/index/weilai.vue';
+import service from '@/layout/index/service.vue';
+import huji from '@/layout/index/huji.vue';
+import xiazai from '@/layout/index/xiazai.vue';
 import recruit from '@/layout/index/recruit.vue';
-import company from '@/layout/index/company.vue';
 import login from '@/layout/index/login.vue';
 import naitve from '@/layout/index/naitve.vue';
-import contact from '@/layout/index/contact.vue';
-import foot from '@/layout/index/foot.vue';
-
+import down from '@/layout/index/down.vue';
 export default {
   name: 'index',
   props: {
-    info: null, //头部信息
-    newsList: null, //新闻信息
-    Color: null, //头部电话字体颜色
-    backColor: null, //导航菜单背景颜色
-    noticeList: null, //通知公告
-    recruitList: null, //最新招聘信息
-    companyList: null, //招聘企业
-    nativeList: null, //信息网导航
-    menuList: null, //菜单列表
+    backColor: null, //背景颜色
+    info: null, //站点信息
+    menuList: null, //菜单
+    carouselList: null, //輪播圖
+    noticeNewsList: null, //通知公告+就業動態
+    zhidaoList: null, //就業指導
+    lawList: null, //政策法规
+    serviceList: null, //档案服务
+    hujiList: null, //户籍管理
+    xiazaiList: null, //下载专区
+    recruitList: null, //最新招聘
+    zixunList: null, //就业咨询
+    nativeList: null, //网站导航
   },
   components: {
     top, //头部
-    menuInfo, //导航
     banner, //banner
-    news, //新聞
-    notice, //通告
-    calendar, //日历
-    recruit, //招聘信息
-    company, //企业
+    menuInfo, //菜单
+    lunbo, //轮播图
+    noticeNews, //通知公告+就业动态
+    kuaisu, //快速通道
+    zhidao, //就业指导
+    law, //政策法规
+    daohang, //导航
+    weilai, //未來计划
+    service, //档案服务
+    huji, //户籍管理
+    xiazai, //下载专区
+    recruit, //最新招聘
     login, //登录
-    naitve, //导航
-    contact, //联系我们
-    foot, //底部信息
+    naitve, //网站导航
+    down, //底部
   },
   data: () => ({}),
   created() {},
@@ -106,63 +132,110 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.w_1200 {
-  width: 1200px;
+.w_1270 {
+  width: 1270px;
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
+  overflow: hidden;
+}
+.banner {
+  height: 300px;
   overflow: hidden;
 }
 .menu {
-  height: 40px;
+  height: 50px;
   overflow: hidden;
 }
-.banner {
-  height: 450px;
+.main {
+  min-height: 1000px;
+  background: #f6f6f6;
+}
+.main_1 {
+  height: 304px;
   overflow: hidden;
+  margin: 10px 0 0 0;
 }
-.newsNotice {
-  height: 303px;
-  margin: 35px 0 0 0;
+.lunbo {
+  width: 540px;
+  height: 304px;
   overflow: hidden;
+  margin: 0 10px 0 0;
 }
-.news {
-  height: 303px;
+.noticeNews {
+  width: 460px;
+  height: 304px;
   overflow: hidden;
+  background-color: #fff;
+  margin: 0 10px 0 0;
 }
-.notice {
-  float: right;
-  width: 380px;
-  height: 303px;
+.kuaisu {
+  width: 247px;
+  height: 304px;
+  background-color: #fff;
+}
+.main_2 {
+  height: 369px;
   overflow: hidden;
+  margin: 10px 0 0 0;
 }
-.caleRecruit {
-  height: 476px;
-  margin: 35px 0 0 0;
+.zhidao {
+  width: 540px;
+  height: 369px;
   overflow: hidden;
+  margin: 0 10px 0 0;
+  background-color: #fff;
 }
-.calendar {
-  width: 369px;
-  height: 476px;
+.law {
+  width: 460px;
+  height: 369px;
   overflow: hidden;
+  background-color: #fff;
+  margin: 0 10px 0 0;
+}
+.daohang {
+  width: 247px;
+  height: 369px;
+  background-color: #fff;
 }
-.recruitRight {
-  float: right;
-  height: 476px;
+.main_3 {
+  height: 200px;
   overflow: hidden;
+  margin: 10px 0 0 0;
 }
-.recruit {
-  height: 303px;
+.main_4 {
+  height: 370px;
   overflow: hidden;
+  margin: 10px 0 0 0;
 }
-.company {
-  height: 173px;
+.service {
+  width: 540px;
+  height: 369px;
   overflow: hidden;
+  margin: 0 10px 0 0;
+  background-color: #fff;
+}
+.huji {
+  width: 460px;
+  height: 369px;
+  overflow: hidden;
+  background-color: #fff;
+  margin: 0 10px 0 0;
+}
+.xiazai {
+  width: 247px;
+  height: 369px;
+  background-color: #fff;
+}
+.main_5 {
+  height: 560px;
+  overflow: hidden;
+  margin: 10px 0 0 0;
 }
 .login {
   height: 50px;
-  margin: 15px 0 0 0;
+  margin: 10px 0 0 0;
   overflow: hidden;
 }
 .naitve {
@@ -170,13 +243,8 @@ export default {
   margin: 30px 0 20px 0;
   overflow: hidden;
 }
-.contact {
-  height: 265px;
-  background-color: #d5e2f8;
-  overflow: hidden;
-}
-.foot {
-  height: 133px;
+.down {
+  height: 135px;
   overflow: hidden;
 }
 </style>

+ 17 - 6
src/components/jobfair.vue

@@ -6,8 +6,11 @@
           <top :info="info" :Color="Color"></top>
         </div>
       </el-col>
+      <el-col :sapn="24" class="banner">
+        <banner :info="info"></banner>
+      </el-col>
       <el-col :span="24" class="menu">
-        <menuInfo :backColor="backColor"></menuInfo>
+        <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
       </el-col>
       <el-col :span="24" class="main">
         <div class="w_1200">
@@ -15,7 +18,7 @@
         </div>
       </el-col>
       <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -23,13 +26,15 @@
 
 <script>
 import top from '@/layout/index/top.vue';
+import banner from '@/layout/index/banner.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
 import jobfairInfo from '@/layout/recuit/jobfairInfo.vue';
-import foot from '@/layout/index/foot.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'jobfair',
   props: {
     info: null, //头部信息
+    menuList: null, //菜单
     Color: null, //头部电话字体颜色
     backColor: null, //导航菜单背景颜色
     jobfairInfo: null,
@@ -38,9 +43,10 @@ export default {
   },
   components: {
     top, //头部
+    banner, //banner
     menuInfo, //导航
     jobfairInfo, //宣讲会详情
-    foot, //底部信息
+    down, //底部信息
   },
   data: () => ({}),
   created() {},
@@ -55,11 +61,16 @@ export default {
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
+  overflow: hidden;
+  background: #f5f5f5;
+}
+.banner {
+  height: 300px;
   overflow: hidden;
 }
 .menu {
-  height: 40px;
+  height: 50px;
   overflow: hidden;
 }
 .main {

+ 16 - 6
src/components/jobinfo.vue

@@ -3,9 +3,12 @@
     <el-row>
       <el-col :span="24" class="top">
         <div class="w_1200">
-          <top :info="info" :Color="Color"></top>
+          <top :info="info"></top>
         </div>
       </el-col>
+      <el-col :sapn="24" class="banner">
+        <banner :info="info"></banner>
+      </el-col>
       <el-col :span="24" class="menu">
         <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
       </el-col>
@@ -15,7 +18,7 @@
         </div>
       </el-col>
       <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -23,9 +26,10 @@
 
 <script>
 import top from '@/layout/index/top.vue';
+import banner from '@/layout/index/banner.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
 import jobinfoInfo from '@/layout/recuit/jobinfoInfo.vue';
-import foot from '@/layout/index/foot.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'jobinfo',
   props: {
@@ -38,9 +42,10 @@ export default {
   },
   components: {
     top, //头部
+    banner, //banner
     menuInfo, //导航
     jobinfoInfo, //宣讲会详情
-    foot, //底部信息
+    down, //底部信息
   },
   data: () => ({}),
   created() {},
@@ -55,11 +60,16 @@ export default {
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
+  overflow: hidden;
+  background: #f5f5f5;
+}
+.banner {
+  height: 300px;
   overflow: hidden;
 }
 .menu {
-  height: 40px;
+  height: 50px;
   overflow: hidden;
 }
 .main {

+ 16 - 7
src/components/jobs.vue

@@ -6,6 +6,9 @@
           <top :info="info" :Color="Color"></top>
         </div>
       </el-col>
+      <el-col :sapn="24" class="banner">
+        <banner :info="info"></banner>
+      </el-col>
       <el-col :span="24" class="menu">
         <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
       </el-col>
@@ -20,7 +23,7 @@
         </div>
       </el-col>
       <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -28,27 +31,28 @@
 
 <script>
 import top from '@/layout/index/top.vue';
+import banner from '@/layout/index/banner.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
 import jobsInfo from '@/layout/recuit/jobsInfo.vue';
 import corpInfo from '@/layout/recuit/corpInfo.vue';
-
-import foot from '@/layout/index/foot.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'jobs',
   props: {
     info: null, //头部信息
+    menuList: null, //菜单
     Color: null, //头部电话字体颜色
     backColor: null, //导航菜单背景颜色
     jobInfo: null, //职位详情
     corpsInfo: null, //企业详情
-    menuList: null,
   },
   components: {
     top, //头部
+    banner, //banner
     menuInfo, //导航
     jobsInfo, //职位
     corpInfo, //企业
-    foot, //底部信息
+    down, //底部信息
   },
   data: () => ({}),
   created() {},
@@ -63,11 +67,16 @@ export default {
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
+  overflow: hidden;
+  background: #f5f5f5;
+}
+.banner {
+  height: 300px;
   overflow: hidden;
 }
 .menu {
-  height: 40px;
+  height: 50px;
   overflow: hidden;
 }
 .main {

+ 15 - 5
src/components/list.vue

@@ -6,6 +6,9 @@
           <top :info="info" :Color="Color"></top>
         </div>
       </el-col>
+      <el-col :sapn="24" class="banner">
+        <banner :info="info"></banner>
+      </el-col>
       <el-col :span="24" class="menu">
         <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
       </el-col>
@@ -20,7 +23,7 @@
         </div>
       </el-col>
       <el-col :span="24" class="foot">
-        <foot :info="info"></foot>
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -28,10 +31,11 @@
 
 <script>
 import top from '@/layout/index/top.vue';
+import banner from '@/layout/index/banner.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
 import listLeft from '@/layout/list/listLeft.vue';
 import listRight from '@/layout/list/listRight.vue';
-import foot from '@/layout/index/foot.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'list',
   props: {
@@ -44,10 +48,11 @@ export default {
   },
   components: {
     top, //头部
+    banner, //banner
     menuInfo, //导航
     listLeft, //二级左侧导航
     listRight, //二级右侧列表
-    foot, //底部信息
+    down, //底部信息
   },
   data: () => ({}),
   created() {},
@@ -62,11 +67,16 @@ export default {
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
+  overflow: hidden;
+  background: #f5f5f5;
+}
+.banner {
+  height: 300px;
   overflow: hidden;
 }
 .menu {
-  height: 40px;
+  height: 50px;
   overflow: hidden;
 }
 .main {

+ 124 - 0
src/components/member.vue

@@ -0,0 +1,124 @@
+<template>
+  <div id="member">
+    <el-row>
+      <el-col class="top">
+        <top :info="info"></top>
+      </el-col>
+      <el-col :sapn="24" class="menu">
+        <menuInfos :menuList="menuList" :backColor="backColor"></menuInfos>
+      </el-col>
+      <el-col :span="24" class="main">
+        <div class="w_1270">
+          <el-col :span="24" class="main_2">
+            <gaoceng :carouselList="carouselList" :newsList="newsList"></gaoceng>
+          </el-col>
+          <el-col :span="24" class="main_3">
+            <dangjian :rencaiList="rencaiList" :dangjianList="dangjianList" :yaowenList="yaowenList"></dangjian>
+          </el-col>
+          <el-col :span="24" class="main_4">
+            <xuexi :dangguiList="dangguiList" :zhishiList="zhishiList" :zhunti="zhunti"></xuexi>
+          </el-col>
+          <el-col :span="24" class="main_5">
+            <photo :tujiList="tujiList"></photo>
+          </el-col>
+        </div>
+      </el-col>
+      <el-col :sapn="24" class="down">
+        <down :info="info" :backColor="backColor"></down>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import top from '@/layout/member/top.vue';
+import menuInfos from '@/layout/index/menuInfos.vue';
+// import meesage from '@/layout/member/meesage.vue';
+import gaoceng from '@/layout/member/gaoceng.vue';
+import dangjian from '@/layout/member/dangjian.vue';
+import xuexi from '@/layout/member/xuexi.vue';
+import photo from '@/layout/member/photo.vue';
+import down from '@/layout/index/down.vue';
+export default {
+  name: 'member',
+  props: {
+    backColor: null, //背景颜色
+    info: null, //站点信息
+    menuList: null, //菜单
+    messageInfo: null, //最新消息
+    carouselList: null, //轮播图
+    newsList: null, //轮播图右侧新闻列表
+    rencaiList: null, //人才建设
+    dangjianList: null, //基层党建
+    yaowenList: null, //党建要闻
+    dangguiList: null, //党规党章
+    zhishiList: null, //知识问答
+    zhunti: null, //专题学习
+    tujiList: null, //活动图集
+  },
+  components: {
+    top, //头部信息
+    menuInfos, //菜单
+    // meesage, //最新消息
+    gaoceng, //高层声音
+    dangjian, //基层党建
+    xuexi, //学习园地
+    photo, //活动图集
+    down, //底部
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.w_1270 {
+  width: 1270px;
+  margin: 0 auto;
+}
+.top {
+  height: 500px;
+}
+.menu {
+  height: 50px;
+  overflow: hidden;
+  position: absolute;
+  top: 450px;
+}
+.main {
+  min-height: 500px;
+  margin: 20px 0;
+}
+.main_1 {
+  height: 170px;
+  border: 1px solid #f3f3f3;
+  border-radius: 10px;
+  box-shadow: 0 0 5px #e9eef3;
+}
+.main_2 {
+  height: 480px;
+  overflow: hidden;
+  margin: 30px 0 0 0;
+}
+.main_3 {
+  height: 400px;
+  overflow: hidden;
+  margin: 30px 0 0 0;
+}
+.main_4 {
+  height: 420px;
+  overflow: hidden;
+  margin: 30px 0 0 0;
+}
+.main_5 {
+  height: 500px;
+  overflow: hidden;
+  margin: 30px 0 0 0;
+}
+.down {
+  height: 135px;
+  overflow: hidden;
+}
+</style>

+ 35 - 58
src/components/memberDetail.vue

@@ -1,60 +1,45 @@
 <template>
-  <div id="detail">
+  <div id="memberDetail">
     <el-row>
-      <el-col :span="24" class="top">
-        <div class="w_1200">
-          <top :info="info" :Color="Color"></top>
-        </div>
-      </el-col>
-      <el-col :span="24" class="menu">
-        <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
+      <el-col class="top">
+        <top :info="info"></top>
       </el-col>
-      <el-col :span="24" class="banner">
-        <banner></banner>
+      <el-col :sapn="24" class="menu">
+        <menuInfos :menuList="menuList" :backColor="backColor"></menuInfos>
       </el-col>
-      <el-col :span="24" class="main">
-        <div class="w_1200">
-          <el-col :span="5" class="mainNav">
-            <listLeft :sideMenu="sideMenu" :Color="Color"></listLeft>
-          </el-col>
-          <el-col :span="18" class="mainList">
-            <detailInfo :detailInfo="detailInfo" :Color="Color" :title="title"></detailInfo>
-          </el-col>
+      <el-col :sapn="24" class="main">
+        <div class="w_1270">
+          <contInfo :contInfos="contInfos" :bordColor="bordColor" :bordBottomColor="bordBottomColor" :color="color"></contInfo>
         </div>
       </el-col>
-      <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+      <el-col :sapn="24" class="down">
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
-import top from '@/layout/index/top.vue';
-import menuInfo from '@/layout/index/menuInfos.vue';
-import banner from '@/layout/member/banner.vue';
-import listLeft from '@/layout/list/listLeft.vue';
-import detailInfo from '@/layout/detail/detail.vue';
-
-import foot from '@/layout/index/foot.vue';
+import top from '@/layout/member/top.vue';
+import menuInfos from '@/layout/index/menuInfos.vue';
+import contInfo from '@/layout/detail/contInfo.vue';
+import down from '@/layout/index/down.vue';
 export default {
-  name: 'detail',
+  name: 'memberDetail',
   props: {
-    info: null, //头部信息
-    Color: null, //头部电话字体颜色
-    backColor: null, //导航菜单背景颜色
-    detailInfo: null, //详情信息
+    backColor: null, //背景颜色
+    bordColor: null, //border颜色
+    bordBottomColor: null, //border-bottom颜色
+    color: null, //字体颜色
+    contInfos: null, //信息详细
     menuList: null, //菜单
-    sideMenu: null, //侧菜单
-    title: null,
+    info: null, //站点信息
   },
   components: {
-    top, //头部
-    menuInfo, //导航
-    banner, //banner,固定值在组件中
-    listLeft, //二级左侧导航
-    foot, //底部信息
-    detailInfo, //詳情
+    top, //头部信息
+    menuInfos, //菜单
+    contInfo, //内容
+    down, //底部
   },
   data: () => ({}),
   created() {},
@@ -64,33 +49,25 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.w_1200 {
-  width: 1200px;
+.w_1270 {
+  width: 1270px;
   margin: 0 auto;
 }
 .top {
-  height: 120px;
-  overflow: hidden;
+  height: 500px;
 }
 .menu {
-  height: 40px;
-  overflow: hidden;
-}
-.banner {
-  height: 450px;
+  height: 50px;
   overflow: hidden;
+  position: absolute;
+  top: 450px;
 }
 .main {
-  min-height: 1060px;
-  margin: 50px 0 0 0;
-  overflow: hidden;
-}
-.mainList {
-  float: right;
-  width: 930px;
+  min-height: 900px;
+  background: #f6f6f6;
 }
-.foot {
-  height: 133px;
+.down {
+  height: 135px;
   overflow: hidden;
 }
 </style>

+ 47 - 53
src/components/memberList.vue

@@ -1,60 +1,46 @@
 <template>
   <div id="memberList">
     <el-row>
-      <el-col :span="24" class="top">
-        <div class="w_1200">
-          <top :info="info" :Color="Color"></top>
-        </div>
-      </el-col>
-      <el-col :span="24" class="menu">
-        <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
+      <el-col class="top">
+        <top :info="info"></top>
       </el-col>
-      <el-col :span="24" class="banner">
-        <banner></banner>
+      <el-col :sapn="24" class="menu">
+        <menuInfos :menuList="menuList" :backColor="backColor"></menuInfos>
       </el-col>
-      <el-col :span="24" class="main">
-        <div class="w_1200">
-          <el-col :span="5" class="mainNav">
-            <listLeft :sideMenu="sideMenu" :Color="Color"></listLeft>
-          </el-col>
-          <el-col :span="18" class="mainList">
-            <listRight :title="title" :newsList="newsList" :Color="Color" v-on="$listeners" v-bind="$attrs"></listRight>
+      <el-col :sapn="24" class="main">
+        <div class="w_1270">
+          <el-col :span="24" class="mainRight">
+            <mainRight :rightList="rightList" :backColor="backColor" :Color="Color" :title="title" v-on="$listeners" v-bind="$attrs"></mainRight>
           </el-col>
         </div>
       </el-col>
-      <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+      <el-col :sapn="24" class="down">
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
-import top from '@/layout/index/top.vue';
-import menuInfo from '@/layout/index/menuInfos.vue';
-import banner from '@/layout/member/banner.vue';
-import listLeft from '@/layout/list/listLeft.vue';
-import listRight from '@/layout/list/newsInfo.vue';
-import foot from '@/layout/index/foot.vue';
+import top from '@/layout/member/top.vue';
+import menuInfos from '@/layout/index/menuInfos.vue';
+import mainRight from '@/layout/list/mainRight.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'memberList',
   props: {
-    info: null, //头部信息
-    Color: null, //头部电话字体颜色
-    backColor: null, //导航菜单背景颜色
-    newsList: null, //列表信息
+    Color: null, //字体颜色
+    backColor: null, //背景颜色
+    info: null, //站点信息
     menuList: null, //菜单
-    sideMenu: null, //侧菜单
+    rightList: null, //右侧列表
     title: null, //标题
-    listSpan: { type: Number, default: 18 }, //全屏还是左右
   },
   components: {
-    top, //頭部
-    menuInfo, //导航
-    banner, //banner,固定值在组件中
-    listLeft, //二级左侧导航
-    listRight, //二级右侧列表
-    foot, //底部信息
+    top, //头部信息
+    menuInfos, //菜单
+    mainRight, //列表页右侧列表
+    down, //底部
   },
   data: () => ({}),
   created() {},
@@ -64,33 +50,41 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.w_1200 {
-  width: 1200px;
+.w_1270 {
+  width: 1270px;
   margin: 0 auto;
 }
 .top {
-  height: 120px;
-  overflow: hidden;
+  height: 500px;
 }
 .menu {
-  height: 40px;
-  overflow: hidden;
-}
-.banner {
-  height: 450px;
+  height: 50px;
   overflow: hidden;
+  position: absolute;
+  top: 450px;
 }
 .main {
-  height: 1060px;
-  margin: 50px 0 0 0;
-  overflow: hidden;
+  min-height: 680px;
+  background: #f6f6f6;
+}
+.mainLeft {
+  width: 246px;
+  min-height: 600px;
+  margin: 40px 18px 0 0;
+  border: 1px solid #e6e6e6;
+}
+.listMenu {
+  min-height: 56px;
+  background-color: #f9f9f9;
+  border-bottom: 1px solid #ccc;
+  margin: 0 0 10px 0;
 }
-.mainList {
-  width: 746px;
-  margin: 0 0 0 20px;
+.mainRight {
+  min-height: 600px;
+  margin: 40px 0 0 0;
 }
-.foot {
-  height: 133px;
+.down {
+  height: 135px;
   overflow: hidden;
 }
 </style>

+ 13 - 4
src/components/newsList.vue

@@ -6,6 +6,9 @@
           <top :info="info" :Color="Color"></top>
         </div>
       </el-col>
+      <el-col :sapn="24" class="banner">
+        <banner :info="info"></banner>
+      </el-col>
       <el-col :span="24" class="menu">
         <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
       </el-col>
@@ -20,7 +23,7 @@
         </div>
       </el-col>
       <el-col :span="24" class="foot">
-        <foot :info="info"></foot>
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -28,10 +31,11 @@
 
 <script>
 import top from '@/layout/index/top.vue';
+import banner from '@/layout/index/banner.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
 import listLeft from '@/layout/list/listLeft.vue';
 import newsInfo from '@/layout/list/newsInfo.vue';
-import foot from '@/layout/index/foot.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'newsList',
   props: {
@@ -46,10 +50,11 @@ export default {
   },
   components: {
     top, //头部
+    banner, //banner
     menuInfo, //导航
     listLeft, //二级左侧导航
     newsInfo, //二级右侧新聞列表(帶有圖片)
-    foot, //底部信息
+    down, //底部信息
   },
   data: () => ({}),
   created() {},
@@ -67,8 +72,12 @@ export default {
   height: 120px;
   overflow: hidden;
 }
+.banner {
+  height: 300px;
+  overflow: hidden;
+}
 .menu {
-  height: 40px;
+  height: 50px;
   overflow: hidden;
 }
 .main {

+ 17 - 6
src/components/talk.vue

@@ -6,8 +6,11 @@
           <top :info="info" :Color="Color"></top>
         </div>
       </el-col>
+      <el-col :sapn="24" class="banner">
+        <banner :info="info"></banner>
+      </el-col>
       <el-col :span="24" class="menu">
-        <menuInfo :backColor="backColor"></menuInfo>
+        <menuInfo :menuList="menuList" :backColor="backColor"></menuInfo>
       </el-col>
       <el-col :span="24" class="main">
         <div class="w_1200">
@@ -15,7 +18,7 @@
         </div>
       </el-col>
       <el-col :span="24" class="foot">
-        <foot :info="info" :backColor="backColor"></foot>
+        <down :info="info" :backColor="backColor"></down>
       </el-col>
     </el-row>
   </div>
@@ -23,13 +26,15 @@
 
 <script>
 import top from '@/layout/index/top.vue';
+import banner from '@/layout/index/banner.vue';
 import menuInfo from '@/layout/index/menuInfo.vue';
 import talkInfo from '@/layout/recuit/talkInfo.vue';
-import foot from '@/layout/index/foot.vue';
+import down from '@/layout/index/down.vue';
 export default {
   name: 'talk',
   props: {
     info: null, //头部信息
+    menuList: null, //菜单
     Color: null, //头部电话字体颜色
     backColor: null, //导航菜单背景颜色
     talkInfo: null,
@@ -37,9 +42,10 @@ export default {
   },
   components: {
     top, //头部
+    banner, //banner
     menuInfo, //导航
     talkInfo, //宣讲会详情
-    foot, //底部信息
+    down, //底部信息
   },
   data: () => ({}),
   created() {},
@@ -54,11 +60,16 @@ export default {
   margin: 0 auto;
 }
 .top {
-  height: 120px;
+  height: 40px;
+  overflow: hidden;
+  background: #f5f5f5;
+}
+.banner {
+  height: 300px;
   overflow: hidden;
 }
 .menu {
-  height: 40px;
+  height: 50px;
   overflow: hidden;
 }
 .main {

+ 128 - 0
src/layout/detail/contInfo.vue

@@ -0,0 +1,128 @@
+<template>
+  <div id="contInfo">
+    <el-row>
+      <el-col :span="24" class="contInfo">
+        <el-col :span="24" class="top" :style="`border-color:${bordColor}`">
+          <el-col :span="18" class="topTitle">
+            <span :style="`border-color:${bordBottomColor};color:${color}`">{{ contInfos.parent }}</span>
+          </el-col>
+          <el-col :span="6" class="topBread">
+            <el-breadcrumb separator-class="el-icon-arrow-right">
+              <el-breadcrumb-item>当前位置:</el-breadcrumb-item>
+              <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+              <el-breadcrumb-item>信息详细</el-breadcrumb-item>
+            </el-breadcrumb>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="info">
+          <el-col :span="24" class="title">
+            <span>{{ contInfos.title }}</span>
+          </el-col>
+          <el-col :span="24" class="fenTime">
+            <el-col :span="12" class="fenxiang">
+              <share></share>
+            </el-col>
+            <el-col :span="12" class="date">
+              发布时间:{{ contInfos.meta && contInfos.meta.createdAt ? new Date(contInfos.meta.createdAt).toLocaleDateString() : '' || '' }}
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="images" v-if="contInfos.pic">
+            <el-image style="width:800px;height:370px;" :src="contInfos.pic"></el-image>
+          </el-col>
+          <el-col :span="24" class="content">
+            <p v-html="contInfos.content"></p>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import share from '@/layout/share.vue';
+export default {
+  name: 'contInfo',
+  props: {
+    contInfos: null,
+    bordColor: null,
+    bordBottomColor: null,
+    color: null,
+  },
+  components: {
+    share,
+  },
+  data: () => ({
+    title: '就业动态',
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.contInfo {
+  min-height: 820px;
+  margin: 40px 0 40px 0;
+  border: 1px solid #e6e6e6;
+  background-color: #ffffff;
+}
+.top {
+  height: 40px;
+  background-color: #f5f5f8;
+  margin: 2px 2px 0 2px;
+  border-bottom: 1px solid;
+  width: 1264px;
+}
+.top .topTitle span {
+  display: inline-block;
+  height: 38px;
+  line-height: 38px;
+  text-align: center;
+  font-size: 18px;
+  border-bottom: 2px solid;
+}
+.top .topBread {
+  padding: 12px 0;
+}
+.info .title {
+  height: 70px;
+  line-height: 70px;
+  text-align: center;
+}
+.info .title span {
+  font-size: 18px;
+  color: #444444;
+}
+.info .fenTime {
+  height: 38px;
+  line-height: 38px;
+  background-color: #eeeeee;
+  margin: 0 0 15px 0;
+}
+.info .fenTime .fenxiang {
+  height: 30px;
+  line-height: 30px;
+  padding: 0 20px;
+}
+.date {
+  text-align: right;
+  padding: 0 20px;
+}
+.images {
+  text-align: center;
+}
+.content {
+  padding: 10px 30px;
+}
+.content p {
+  font-size: 16px;
+  text-indent: 2rem;
+  color: #333;
+  line-height: 35px;
+}
+</style>

+ 41 - 2
src/layout/index/banner.vue

@@ -2,7 +2,17 @@
   <div id="banner">
     <el-row>
       <el-col :span="24">
-        <el-image :src="info.banner" style="height:450px;" fit="fit"></el-image>
+        <el-image :src="info.banner" style="height:300px;" fit="fit"></el-image>
+        <div class="w_1270">
+          <el-col :span="24" class="info">
+            <el-col :span="2">
+              <el-image style="width:112px;height:112px;" :src="info.logo"></el-image>
+            </el-col>
+            <el-col :span="22" style="padding:30px 10px;">
+              <p class="title">{{ info.name }}</p>
+            </el-col>
+          </el-col>
+        </div>
       </el-col>
     </el-row>
   </div>
@@ -22,4 +32,33 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.w_1270 {
+  width: 1270px;
+  margin: 0 auto;
+}
+p {
+  padding: 0;
+  margin: 0;
+}
+.info {
+  position: absolute;
+  top: 20%;
+  left: 5%;
+  width: 93%;
+}
+.info .title {
+  font-size: 42px;
+  color: #1770c4;
+  font-family: cursive;
+  text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white;
+  font-weight: 600;
+}
+.info .english {
+  font-size: 24px;
+  color: #1770c4;
+  font-family: cursive;
+  text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white;
+  font-weight: 600;
+}
+</style>

+ 117 - 0
src/layout/index/daohang.vue

@@ -0,0 +1,117 @@
+<template>
+  <div id="daohang">
+    <el-row>
+      <el-col :span="24" class="top">
+        <el-col :span="20" class="topTit">
+          <span>{{ title }}</span>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="phone">
+          <p class="tit"><i class="el-icon-phone"></i>咨询电话:</p>
+          <p class="haoma">0431-84657570</p>
+        </el-col>
+        <el-col :span="24" class="btn">
+          <el-col :span="8" class="list" v-for="(item, index) in list" :key="index">
+            <el-link :underline="false" :href="item.url" target="_blank">
+              <el-image style="width:55px;height:55px;border-radius: 10px;" :src="item.pic"></el-image>
+              <P>{{ item.title }}</P>
+            </el-link>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'daohang',
+  props: {},
+  components: {},
+  data: () => ({
+    title: '快速导航',
+    list: [
+      {
+        pic: require('@/assets/kuaisu1.jpg'),
+        title: '就业派遣',
+        url: 'http://www.jilinjobs.cn/JobSending.htm',
+      },
+      {
+        pic: require('@/assets/kuaisu2.jpg'),
+        title: '档案管理',
+        url: 'http://www.jilinjobs.cn/FileManagement.htm',
+      },
+      {
+        pic: require('@/assets/kuaisu3.jpg'),
+        title: '流动党员',
+        url: 'http://www.jilinjobs.cn/CaucusRelation.htm',
+      },
+      {
+        pic: require('@/assets/kuaisu4.jpg'),
+        title: '户籍管理',
+        url: 'http://www.jilinjobs.cn/RegisterManagement.htm',
+      },
+      {
+        pic: require('@/assets/kuaisu5.jpg'),
+        title: '学历认证',
+        url: 'http://www.jilinjobs.cn/EducationCertify.htm',
+      },
+      {
+        pic: require('@/assets/kuaisu6.jpg'),
+        title: '常见问题',
+        url:
+          'https://mp.weixin.qq.com/s?__biz=MzAxMzg2ODE0NA==&mid=100000727&idx=1&' +
+          'sn=c2a38aca7482a930ceeff01779827faa&chksm=' +
+          '1b9d4ec82ceac7dee8cf6f89701e9af1fdedeed6c7e5ecba20356b1584d6ee76b069649f5cd9&' +
+          'mpshare=1&scene=23&srcid=0917J2IHeM4fxs3dHnJBhis4#rd',
+      },
+    ],
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 39px;
+  line-height: 39px;
+  border-bottom: 1px solid #ccc;
+}
+.top .topTit span {
+  display: inline-block;
+  width: 110px;
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #000;
+  font-size: 16px;
+  border-bottom: 1px solid #176ebb;
+}
+.phone {
+  padding: 15px 20px;
+}
+.phone .tit {
+  font-size: 20px;
+}
+.phone .haoma {
+  font-size: 20px;
+  color: #176ebb;
+  padding: 10px 0px;
+}
+.list {
+  text-align: center;
+  padding: 10px 0;
+}
+</style>

+ 51 - 0
src/layout/index/down.vue

@@ -0,0 +1,51 @@
+<template>
+  <div id="down">
+    <el-row>
+      <el-col :span="24" class="down" :style="`background:${backColor}`">
+        <div class="w_1270">
+          <p class="textOver">{{ info.copyright }}</p>
+          <el-link href="http://bszs.conac.cn/sitename?method=show&id=275F0728763C767CE053022819ACA2F2" :underline="false"
+            ><el-image :src="footUrl"></el-image
+          ></el-link>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'down',
+  props: {
+    info: null,
+    backColor: null,
+  },
+  components: {},
+  data: () => ({
+    footUrl: require('@/assets/bule.png'),
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.w_1270 {
+  width: 1270px;
+  margin: 0 auto;
+}
+p {
+  padding: 0;
+  margin: 0;
+}
+.down {
+  height: 135px;
+  text-align: center;
+}
+.down p {
+  color: #fff;
+  font-size: 14px;
+  padding: 15px 0;
+}
+</style>

+ 143 - 0
src/layout/index/huji.vue

@@ -0,0 +1,143 @@
+<template>
+  <div id="huji">
+    <el-row style="width:460px;height:369px;" v-loading="loading">
+      <el-col :span="24" class="top">
+        <el-col :span="20" class="topTit">
+          <span>{{ hujiList.title || title }}</span>
+        </el-col>
+        <el-col :span="4" class="topLink">
+          <el-link :underline="false" @click="$router.push({ path: path, query: { title: hujiList.title } })"
+            >more<i class="el-icon-d-arrow-right"></i
+          ></el-link>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list" v-for="(item, index) in infoList" :key="index" @click.native="$router.push({ path: `/detail?id=${item.id}` })">
+          <el-col :span="19" class="title">
+            <p class="textOver"><i class="el-icon-caret-right icon"></i>{{ item.title }}</p>
+          </el-col>
+          <el-col :span="5" class="date">
+            {{ item.meta | getDate }}
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'huji',
+  props: {
+    hujiList: null,
+  },
+  components: {},
+  data: () => ({
+    title: '户籍管理',
+    loading: true,
+    infoList: [],
+    path: undefined,
+  }),
+  watch: {
+    hujiList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      let notice = [];
+      for (const item of columns) {
+        if (!this.path) this.path = item.path;
+        let hujiList = _.get(item, `children`);
+        if (hujiList) {
+          notice = notice.concat(notice, hujiList);
+        }
+      }
+      this.$set(this, `infoList`, notice);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 39px;
+  line-height: 39px;
+  border-bottom: 1px solid #176ebb;
+}
+.top .topTit span {
+  display: inline-block;
+  width: 110px;
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #fff;
+  font-size: 16px;
+  background-color: #176ebb;
+}
+.top .topLink {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+}
+.top .topLink .el-link {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #000;
+  font-size: 16px;
+  text-transform: uppercase;
+}
+.top .topLink:hover .el-link {
+  color: #a32324;
+}
+.list {
+  padding: 8px 10px;
+}
+.list .title {
+  font-size: 16px;
+}
+.list .title .icon {
+  float: left;
+  padding: 4px 4px;
+  // color: #176ebb;
+}
+.list .date {
+  font-size: 16px;
+}
+.list:hover {
+  cursor: pointer;
+}
+.list:hover .title {
+  color: #a32324;
+}
+.list:hover .date {
+  color: #a32324;
+}
+</style>

+ 81 - 0
src/layout/index/kuaisu.vue

@@ -0,0 +1,81 @@
+<template>
+  <div id="kuaisu">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="login">
+          <el-col :span="12">
+            <el-button type="primary" @click="turnTo('stud')">学生登录</el-button>
+          </el-col>
+          <el-col :span="12">
+            <el-button type="success" @click="turnTo('corp')">企业登录</el-button>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="info">
+          <el-link :underline="false" class="link" href="http://www.chsi.com.cn/xlrz/index.jsp" target="_blank">
+            <el-image :src="url"></el-image>
+            <span>学历认证</span>
+          </el-link>
+          <el-link :underline="false" class="link" href="http://www.gfbzb.gov.cn/" target="_blank">
+            <el-image :src="url"></el-image>
+            <span>预征入伍</span>
+          </el-link>
+          <el-link :underline="false" class="link" href="http://nit.neea.edu.cn/" target="_blank">
+            <el-image :src="url"></el-image>
+            <span>NIT考试</span>
+          </el-link>
+          <el-link :underline="false" class="link" href="http://www.jilinjobs.cn:9000" target="_blank">
+            <el-image :src="url"></el-image>
+            <span>专升本报名系统</span>
+          </el-link>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'kuaisu',
+  props: {},
+  components: {},
+  data: () => ({
+    url: require('@/assets/shuangkun.jpg'),
+  }),
+  created() {},
+  computed: {},
+  methods: {
+    turnTo(type) {
+      if (type === 'stud')
+        this.$notify({
+          message: '请进入您的分站进行登录',
+          type: 'warning',
+        });
+      else window.open('http://hr.smart.cc-lotus.info/www/login');
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.login {
+  text-align: center;
+  padding: 10px 0;
+}
+.info {
+  padding: 0 20px;
+}
+.link {
+  margin: 6px 0;
+}
+.link span {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 50px;
+  line-height: 50px;
+  text-align: center;
+  color: #fff;
+  font-weight: bold;
+}
+</style>

+ 141 - 0
src/layout/index/law.vue

@@ -0,0 +1,141 @@
+<template>
+  <div id="law">
+    <el-row style="width:460px;height:369px;" v-loading="loading">
+      <el-col :span="24" class="top">
+        <el-col :span="20" class="topTit">
+          <span> {{ lawList.title || title }}</span>
+        </el-col>
+        <el-col :span="4" class="topLink">
+          <el-link :underline="false" @click="$router.push({ path: path, query: { title: lawList.title } })">more<i class="el-icon-d-arrow-right"></i></el-link>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list" v-for="(item, index) in infoList" :key="index" @click.native="$router.push({ path: `/detail?id=${item.id}` })">
+          <el-col :span="19" class="title">
+            <p class="textOver"><i class="el-icon-caret-right icon"></i>{{ item.title }}</p>
+          </el-col>
+          <el-col :span="5" class="date">
+            {{ item.meta | getDate }}
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'law',
+  props: {
+    lawList: null,
+  },
+  components: {},
+  data: () => ({
+    title: '政策法规',
+    loading: true,
+    infoList: [],
+    path: undefined,
+  }),
+  watch: {
+    lawList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      let notice = [];
+      for (const item of columns) {
+        if (!this.path) this.path = item.path;
+        let lawList = _.get(item, `children`);
+        if (lawList) {
+          notice = notice.concat(notice, lawList);
+        }
+      }
+      this.$set(this, `infoList`, notice);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 39px;
+  line-height: 39px;
+  border-bottom: 1px solid #176ebb;
+}
+.top .topTit span {
+  display: inline-block;
+  width: 110px;
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #fff;
+  font-size: 16px;
+  background-color: #176ebb;
+}
+.top .topLink {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+}
+.top .topLink .el-link {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #000;
+  font-size: 16px;
+  text-transform: uppercase;
+}
+.top .topLink:hover .el-link {
+  color: #a32324;
+}
+.list {
+  padding: 8px 10px;
+}
+.list .title {
+  font-size: 16px;
+}
+.list .title .icon {
+  float: left;
+  padding: 4px 4px;
+  // color: #176ebb;
+}
+.list .date {
+  font-size: 16px;
+}
+.list:hover {
+  cursor: pointer;
+}
+.list:hover .title {
+  color: #a32324;
+}
+.list:hover .date {
+  color: #a32324;
+}
+</style>

+ 5 - 5
src/layout/index/login.vue

@@ -2,19 +2,19 @@
   <div id="login">
     <el-row>
       <el-col :span="24" class="login">
-        <el-link :underline="false">
+        <el-link :underline="false" target="_blank">
           <el-image style="width:294px;height:50px;padding: 0 0 0 40px;" :src="yizhanshi"></el-image>
         </el-link>
-        <el-link :underline="false" href="http://jilinbys.ncss.org.cn/login">
+        <el-link :underline="false" target="_blank" href="http://jilinbys.ncss.org.cn/login">
           <el-image style="width:112px;height:50px;padding: 0 0 0 15px;" :src="xuesheng"></el-image>
         </el-link>
-        <el-link :underline="false" href="http://jilinbys.ncss.org.cn/rec/login">
+        <el-link :underline="false" target="_blank" href="http://jilinbys.ncss.org.cn/rec/login">
           <el-image style="width:112px;height:50px;padding: 0 0 0 15px;" :src="qiye"></el-image>
         </el-link>
-        <el-link :underline="false" href="http://file.ncss.org.cn/ncsFile/ncss/guidebook/student_guide.pdf">
+        <el-link :underline="false" target="_blank" href="http://file.ncss.org.cn/ncsFile/ncss/guidebook/student_guide.pdf">
           <el-image style="width:167px;height:50px;padding: 0 0 0 190px;" :src="shouce"></el-image>
         </el-link>
-        <el-link :underline="false" href="http://file.ncss.org.cn/ncsFile/ncss/guidebook/rec_guide.pdf">
+        <el-link :underline="false" target="_blank" href="http://file.ncss.org.cn/ncsFile/ncss/guidebook/rec_guide.pdf">
           <el-image style="width:167px;height:50px;padding: 0 0 0 15px;" :src="shouces"></el-image>
         </el-link>
       </el-col>

+ 81 - 0
src/layout/index/lunbo.vue

@@ -0,0 +1,81 @@
+<template>
+  <div id="lunbo">
+    <el-row>
+      <el-col :span="24" style="width:540;height:304px;" v-loading="loading">
+        <div class="block">
+          <el-carousel height="304px">
+            <el-carousel-item class="list" v-for="(item, index) in infoList" :key="index" @click.native="$router.push({ path: `/detail?id=${item.id}` })">
+              <el-image style="width:540px;height:304px;" :src="item.pic"></el-image>
+              <span class="title textOver">{{ item.title }}</span>
+            </el-carousel-item>
+          </el-carousel>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'lunbo',
+  props: {
+    carouselList: null,
+  },
+  components: {},
+  data: () => ({
+    infoList: [],
+    loading: true,
+  }),
+  watch: {
+    carouselList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      let news = [];
+      for (const item of columns) {
+        if (!this.path) this.path = item.path;
+        let carouselList = _.get(item, `children`);
+        if (carouselList) {
+          news = news.concat(news, carouselList);
+        }
+      }
+      this.$set(this, `infoList`, news);
+      this.loading = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+/deep/.el-carousel__indicators {
+  display: none;
+}
+.list .title {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 40px;
+  line-height: 40px;
+  background-color: rgba(0, 0, 0, 0.4);
+  padding: 0 10px;
+  font-size: 16px;
+  color: #fff;
+}
+.list:hover {
+  cursor: pointer;
+}
+</style>

+ 6 - 5
src/layout/index/menuInfo.vue

@@ -12,7 +12,8 @@
             active-text-color="#fff"
             :router="true"
           >
-            <el-menu-item index="/">首页</el-menu-item>
+            <el-menu-item index="/">网站首页</el-menu-item>
+            <el-menu-item index="/member">党员之家</el-menu-item>
             <template>
               <el-submenu index="/jobs">
                 <template slot="title">
@@ -70,12 +71,12 @@ export default {
   margin: 0 auto;
 }
 /deep/.el-menu--horizontal > .el-menu-item {
-  height: 40px;
-  line-height: 40px;
+  height: 50px;
+  line-height: 50px;
 }
 /deep/.el-menu--horizontal > .el-submenu .el-submenu__title {
-  height: 40px;
-  line-height: 40px;
+  height: 50px;
+  line-height: 50px;
 }
 /deep/.el-menu--horizontal > .el-menu-item {
   border-bottom: none;

+ 10 - 10
src/layout/index/menuInfos.vue

@@ -1,18 +1,19 @@
 <template>
-  <div id="menuInfos">
-    <el-row>
+  <div id="menuInfo">
+    <el-row :style="`background-color:${backColor}`">
       <el-col :span="24" :style="`background-color:${backColor}`">
         <div class="w_1200">
           <el-menu
             :default-active="activeIndex1"
             class="el-menu-demo"
             mode="horizontal"
-            background-color="#c81b15"
+            background-color="#be0101"
             text-color="#fff"
             active-text-color="#fff"
             :router="true"
           >
-            <el-menu-item index="/">首页</el-menu-item>
+            <el-menu-item index="/">网站首页</el-menu-item>
+            <el-menu-item index="/member">党员之家</el-menu-item>
             <template>
               <el-submenu index="/jobs">
                 <template slot="title">
@@ -43,9 +44,8 @@
 
 <script>
 import { masterMenu } from '@/config/jobs-menu';
-
 export default {
-  name: 'menuInfos',
+  name: 'menuInfo',
   props: {
     menuList: null,
     backColor: null,
@@ -71,12 +71,12 @@ export default {
   margin: 0 auto;
 }
 /deep/.el-menu--horizontal > .el-menu-item {
-  height: 40px;
-  line-height: 40px;
+  height: 50px;
+  line-height: 50px;
 }
 /deep/.el-menu--horizontal > .el-submenu .el-submenu__title {
-  height: 40px;
-  line-height: 40px;
+  height: 50px;
+  line-height: 50px;
 }
 /deep/.el-menu--horizontal > .el-menu-item {
   border-bottom: none;

+ 125 - 0
src/layout/index/noticeNews.vue

@@ -0,0 +1,125 @@
+<template>
+  <div id="noticeNews">
+    <el-row>
+      <el-col :span="24" style="width:460px;height:304px;" v-loading="loading">
+        <el-tabs v-model="activeName" type="card" :before-leave="handleClick">
+          <el-tab-pane v-for="(item, index) in infoList" :key="index">
+            <span slot="label">{{ item.title }}</span>
+            <el-col :span="24" v-for="(tag, index) in item.children" :key="index" class="list" @click.native="$router.push({ path: `/detail?id=${tag.id}` })">
+              <el-col :span="18" class="title">
+                <i class="el-icon-caret-right icon"></i>
+                <p class="textOver">{{ tag.title }}</p>
+              </el-col>
+              <el-col :span="5" class="date">{{ tag.meta | getDate }}</el-col>
+            </el-col>
+          </el-tab-pane>
+        </el-tabs>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'noticeNews',
+  props: {
+    noticeNewsList: null,
+  },
+  components: {},
+  data: () => ({
+    activeName: '',
+    infoList: [],
+    loading: true,
+  }),
+  watch: {
+    noticeNewsList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    handleClick(tab, event) {},
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      // let notice = [];
+      // for (const item of columns) {
+      //   if (!this.path) this.path = item.path;
+      //   let noticeNewsList = _.get(item, `children`);
+      //   if (noticeNewsList) {
+      //     notice = notice.concat(notice, noticeNewsList);
+      //   }
+      // }
+      this.$set(this, `infoList`, columns);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+/deep/.el-tabs__item {
+  font-size: 16px;
+}
+/deep/.el-tabs--card > .el-tabs__header {
+  border-bottom: 1px solid #176ebb;
+}
+/deep/.el-tabs__header {
+  margin: 0;
+}
+/deep/.el-tabs--card > .el-tabs__header .el-tabs__item {
+  border-bottom: none;
+}
+/deep/.el-tabs--card > .el-tabs__header .el-tabs__nav {
+  border: none;
+}
+/deep/.el-tabs__item.is-active {
+  color: #fff;
+  background: #176ebb;
+}
+.list {
+  padding: 7px 10px 7px 0;
+}
+.list .title {
+  font-size: 16px;
+}
+.list .title .icon {
+  float: left;
+  padding: 4px 4px;
+  // color: #176ebb;
+}
+.list .date {
+  font-size: 16px;
+}
+.list:hover {
+  cursor: pointer;
+}
+.list:hover .title {
+  color: #a32324;
+}
+.list:hover .date {
+  color: #a32324;
+}
+</style>

+ 184 - 104
src/layout/index/recruit.vue

@@ -1,41 +1,74 @@
 <template>
   <div id="recruit">
-    <el-row v-loading="loading">
-      <el-col :span="24" class="recruit">
-        <el-col :span="24" class="newsTop">
-          <el-col :span="18" class="text">
-            {{ title }}
-          </el-col>
-          <el-col :span="6" class="link">
-            <el-link :underline="false" @click="turnTo()">
-              MORE<i class="el-icon-circle-plus-outline" style="color:#f8b024;font-weight:bold;margin:0 5px;"></i>
-            </el-link>
-          </el-col>
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="bejing">
+          <el-image style="width:100%;height:410px;" :src="url"></el-image>
         </el-col>
         <el-col :span="24" class="info">
-          <el-col :span="24" class="list">
-            <el-col :span="24" class="listTop">
-              <el-col :span="6" class="title">标题</el-col>
-              <el-col :span="6" class="jobs">职位</el-col>
-              <el-col :span="6" class="kong">功能</el-col>
-              <el-col :span="6" class="date">发布时间</el-col>
+          <div class="w_1270">
+            <el-col :span="24" class="top">
+              <span>{{ title }}</span>
             </el-col>
-          </el-col>
-          <el-col :span="24" class="listinfo" v-for="(item, index) in recruitList" :key="index">
-            <el-col :span="6" class="title" v-if="item.corpid">
-              <p class="textOver" @click="$router.push({ path: '/corp', query: { id: item.corpid } })"><span class="dian"></span>{{ item.title }}</p>
+            <el-col :span="24" class="list">
+              <el-col :span="20" class="leftList">
+                <el-col :span="24" class="noList">
+                  <el-col :span="6" class="jobs">
+                    招聘职位
+                  </el-col>
+                  <el-col :span="10" class="company">
+                    单位名称
+                  </el-col>
+                  <el-col :span="4" class="gongneng">
+                    功能
+                  </el-col>
+                  <el-col :span="4" class="date">
+                    发布时间
+                  </el-col>
+                </el-col>
+                <el-col :span="24" class="recruitList" v-for="(item, index) in recruitList" :key="index">
+                  <el-col :span="6" class="jobs">
+                    <p class="textOver">{{ item.jobs | getJobs }}</p>
+                  </el-col>
+                  <el-col :span="10" class="company" v-if="item.corpid">
+                    <p class="textOver" @click="$router.push({ path: '/corp', query: { id: item.corpid } })">{{ item.title }}</p>
+                  </el-col>
+                  <el-col :span="10" class="company" v-else>
+                    <p class="textOver">{{ item.title }}</p>
+                  </el-col>
+                  <el-col :span="4" class="btn">
+                    <el-button @click="$router.push({ path: '/jobinfoDetail', query: { id: item.id } })">[点击查看详情]</el-button>
+                  </el-col>
+                  <el-col :span="4" class="date">
+                    {{ item.meta | getDate }}
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="4" class="rightList" style="width:247px;height:416px;" v-loading="loading">
+                <el-col :span="24" class="rightTop">
+                  <el-col :span="16" class="rightTopTit">
+                    <span>{{ zixunList.title || zixunTitle }}</span>
+                  </el-col>
+                  <el-col :span="8" class="rightTopLink">
+                    <el-link :underline="false" @click="$router.push({ path: path, query: { title: zixunList.title } })"
+                      >more<i class="el-icon-d-arrow-right"></i
+                    ></el-link>
+                  </el-col>
+                </el-col>
+                <el-col :span="24">
+                  <el-col
+                    :span="24"
+                    class="zixunList"
+                    v-for="(item, index) in infoList"
+                    :key="index"
+                    @click.native="$router.push({ path: `/detail?id=${item.id}` })"
+                  >
+                    <p class="title textOver">{{ item.title }}</p>
+                  </el-col>
+                </el-col>
+              </el-col>
             </el-col>
-            <el-col :span="6" class="title" v-else>
-              <p class="textOver"><span class="dian"></span>{{ item.title }}</p>
-            </el-col>
-            <el-col :span="6" class="jobs">
-              <p class="textOver">{{ item.jobs | getJobs }}</p>
-            </el-col>
-            <el-col :span="6" class="link"
-              ><el-link :underline="false" @click="$router.push({ path: '/jobinfoDetail', query: { id: item.id } })">[点击查看详情]</el-link></el-col
-            >
-            <el-col :span="6" class="date">{{ item.meta | getDate }}</el-col>
-          </el-col>
+          </div>
         </el-col>
       </el-col>
     </el-row>
@@ -48,25 +81,44 @@ export default {
   name: 'recruit',
   props: {
     recruitList: null,
+    zixunList: null,
   },
   components: {},
   data: () => ({
-    title: '最新招聘信息',
+    url: require('@/assets/zhaopin.jpg'),
+    title: '最新招聘',
+    zixunTitle: '就业咨询',
     loading: true,
+    infoList: [],
     path: undefined,
   }),
-  created() {},
-  computed: {},
   watch: {
+    zixunList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
     recruitList: {
       handler(val) {
         if (val) this.loading = false;
       },
     },
   },
+  created() {},
+  computed: {},
   methods: {
-    turnTo() {
-      this.$router.push({ path: '/list/jobinfo' });
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      let notice = [];
+      for (const item of columns) {
+        if (!this.path) this.path = item.path;
+        let zixunList = _.get(item, `children`);
+        if (zixunList) {
+          notice = notice.concat(notice, zixunList);
+        }
+      }
+      this.$set(this, `infoList`, notice);
+      this.loading = false;
     },
   },
   filters: {
@@ -94,6 +146,10 @@ export default {
 </script>
 
 <style lang="less" scoped>
+.w_1270 {
+  width: 1270px;
+  margin: 0 auto;
+}
 p {
   padding: 0;
   margin: 0;
@@ -103,93 +159,117 @@ p {
   text-overflow: ellipsis;
   white-space: nowrap;
 }
-.newsTop {
-  height: 35px;
-  line-height: 35px;
-  border-bottom: 2px solid #0656d1;
-}
-.newsTop .text {
-  font-size: 20px;
-  color: #0874ee;
-  font-weight: 600;
-  padding: 0 10px;
+.info {
+  position: absolute;
+  top: 0;
 }
-.newsTop .link {
-  text-align: right;
-  padding: 0 5px;
+.top {
+  text-align: center;
+  margin: 60px 0 20px 0;
 }
-.list {
-  margin: 10px 0 0 0;
+.top span {
+  font-size: 25px;
+  color: #fff;
 }
-.listTop {
-  height: 35px;
-  line-height: 35px;
+.leftList {
+  width: 1010px;
+  height: 416px;
+  overflow: hidden;
+  margin: 0 10px 0 0;
+  background-color: #fff;
+  padding: 10px;
 }
-.listTop .title {
-  width: 215px;
-  margin: 0 35px 0 0;
+.noList {
+  height: 40px;
+  line-height: 40px;
+  background-color: #f5f5f5;
   font-size: 16px;
-  color: #181818;
+  color: #a01f25;
+}
+.noList .jobs {
+  text-align: left;
+  padding: 0 15px;
+}
+.noList .company {
   text-align: center;
-  border-bottom: 1px solid #a3c1f1;
 }
-.listTop .jobs {
-  width: 162px;
-  margin: 0 35px 0 0;
-  font-size: 16px;
-  color: #181818;
+.noList .gongneng {
   text-align: center;
-  border-bottom: 1px solid #a3c1f1;
 }
-.listTop .kong {
-  width: 178px;
-  margin: 0 35px 0 0;
+.noList .date {
   text-align: center;
-  border-bottom: 1px solid #a3c1f1;
 }
-.listTop .date {
-  width: 140px;
+.recruitList {
+  height: 40px;
+  line-height: 40px;
   font-size: 16px;
-  color: #181818;
+}
+.recruitList .jobs {
+  text-align: left;
+  padding: 0 15px;
+}
+.recruitList .company {
   text-align: center;
-  border-bottom: 1px solid #a3c1f1;
 }
-.listinfo {
-  height: 44px;
-  line-height: 44px;
-  border-bottom: 1px dashed #ccc;
+.recruitList .btn {
+  text-align: center;
 }
-.dian {
-  display: inline-block;
-  width: 4px;
-  height: 4px;
-  margin: 5px;
-  background-color: red;
-  border-radius: 90px;
-}
-.listinfo .title {
-  width: 215px;
-  margin: 0 35px 0 0;
-  font-size: 14px;
-  color: #181818;
-  text-align: left;
+/deep/.recruitList .btn .el-button {
+  padding: 0;
+  border: none;
+  border-radius: 0;
+  color: red;
+}
+.recruitList .date {
+  text-align: center;
+}
+.rightList {
+  width: 247px;
+  height: 416px;
+  overflow: hidden;
+  background-color: #fff;
 }
-.listinfo .jobs {
-  width: 162px;
-  margin: 0 35px 0 0;
-  font-size: 14px;
-  color: #181818;
+.rightTop {
+  height: 39px;
+  line-height: 39px;
+  border-bottom: 1px solid #ccc;
+}
+.rightTop .rightTopTit span {
+  display: inline-block;
+  width: 110px;
+  height: 39px;
+  line-height: 39px;
   text-align: center;
+  color: #000;
+  font-size: 16px;
+  border-bottom: 1px solid #176ebb;
 }
-.listinfo .link {
-  width: 178px;
-  margin: 0 35px 0 0;
+.rightTop .rightTopLink {
+  height: 39px;
+  line-height: 39px;
   text-align: center;
 }
-.listinfo .date {
-  width: 140px;
-  font-size: 14px;
-  color: #181818;
+.rightTop .rightTopLink .el-link {
+  height: 39px;
+  line-height: 39px;
   text-align: center;
+  color: #000;
+  font-size: 16px;
+  text-transform: uppercase;
+}
+.rightTop .rightTopLink:hover .el-link {
+  color: #a32324;
+}
+.zixunList {
+  padding: 10px;
+}
+.zixunList .title {
+  font-size: 16px;
+}
+.zixunList:hover {
+  cursor: pointer;
+}
+.zixunList:hover .title {
+  color: #a32324;
 }
 </style>

+ 143 - 0
src/layout/index/service.vue

@@ -0,0 +1,143 @@
+<template>
+  <div id="service">
+    <el-row style="width:540px;height:369px;" v-loading="loading">
+      <el-col :span="24" class="top">
+        <el-col :span="20" class="topTit">
+          <span> {{ serviceList.title || title }}</span>
+        </el-col>
+        <el-col :span="4" class="topLink">
+          <el-link :underline="false" @click="$router.push({ path: path, query: { title: serviceList.title } })"
+            >more<i class="el-icon-d-arrow-right"></i
+          ></el-link>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list" v-for="(item, index) in infoList" :key="index" @click.native="$router.push({ path: `/detail?id=${item.id}` })">
+          <el-col :span="19" class="title">
+            <p class="textOver"><i class="el-icon-caret-right icon"></i>{{ item.title }}</p>
+          </el-col>
+          <el-col :span="5" class="date">
+            {{ item.meta | getDate }}
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'service',
+  props: {
+    serviceList: null,
+  },
+  components: {},
+  data: () => ({
+    title: '档案服务',
+    loading: true,
+    infoList: [],
+    path: undefined,
+  }),
+  watch: {
+    serviceList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      let notice = [];
+      for (const item of columns) {
+        if (!this.path) this.path = item.path;
+        let serviceList = _.get(item, `children`);
+        if (serviceList) {
+          notice = notice.concat(notice, serviceList);
+        }
+      }
+      this.$set(this, `infoList`, notice);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 39px;
+  line-height: 39px;
+  border-bottom: 1px solid #176ebb;
+}
+.top .topTit span {
+  display: inline-block;
+  width: 110px;
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #fff;
+  font-size: 16px;
+  background-color: #176ebb;
+}
+.top .topLink {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+}
+.top .topLink .el-link {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #000;
+  font-size: 16px;
+  text-transform: uppercase;
+}
+.top .topLink:hover .el-link {
+  color: #a32324;
+}
+.list {
+  padding: 8px 10px;
+}
+.list .title {
+  font-size: 16px;
+}
+.list .title .icon {
+  float: left;
+  padding: 4px 4px;
+  // color: #176ebb;
+}
+.list .date {
+  font-size: 16px;
+}
+.list:hover {
+  cursor: pointer;
+}
+.list:hover .title {
+  color: #a32324;
+}
+.list:hover .date {
+  color: #a32324;
+}
+</style>

+ 38 - 22
src/layout/index/top.vue

@@ -1,14 +1,22 @@
 <template>
   <div id="top">
     <el-row>
-      <el-col :span="24" class="info">
-        <el-col :span="12" class="left">
-          <el-image style="height:120px;" :src="info.logo"></el-image>
-        </el-col>
-        <el-col :span="12" class="right">
-          <!-- <p class="phone" :style="`color:${Color}`"><i class="el-icon-phone-outline"></i>{{ info.tel }}</p> -->
-          <p class="day" :style="`color:${Color}`"><i class="el-icon-timer"></i>办公时间:周一至周五,法定假日不对外办公</p>
-        </el-col>
+      <el-col :span="24" class="top">
+        <el-col :span="19" class="title"> 您好,欢迎访问{{ info.name }}! </el-col>
+        <!-- <el-col :span="4" class="fenxiang">
+            <el-col :span="12" class="weibo">
+              <el-link :underline="false">
+                <el-image :src="weibo"></el-image>
+                <span>官方微博</span>
+              </el-link>
+            </el-col>
+            <el-col :span="12" class="weibo">
+              <el-link :underline="false">
+                <el-image :src="weixin"></el-image>
+                <span>官方微信</span>
+              </el-link>
+            </el-col>
+          </el-col> -->
       </el-col>
     </el-row>
   </div>
@@ -19,10 +27,12 @@ export default {
   name: 'top',
   props: {
     info: null,
-    Color: null,
   },
   components: {},
-  data: () => ({}),
+  data: () => ({
+    weibo: require('@/assets/微博.png'),
+    weixin: require('@/assets/微信.png'),
+  }),
   created() {},
   computed: {},
   methods: {},
@@ -30,21 +40,27 @@ export default {
 </script>
 
 <style lang="less" scoped>
-p {
-  padding: 0;
-  margin: 0;
+.top {
+  height: 40px;
+  overflow: hidden;
+  background: #f5f5f5;
 }
-.left {
-  height: 120px;
+.top .title {
+  height: 40px;
+  line-height: 40px;
+  color: #535362;
+  font-size: 16px;
 }
-.right {
-  text-align: right;
-  padding: 37px;
+.weibo {
+  height: 40px;
 }
-.right .phone {
-  font-size: 20px;
+.weibo .el-image {
+  float: left;
+  padding: 4px;
 }
-.right .day {
-  font-size: 14px;
+.weibo span {
+  float: left;
+  height: 40px;
+  line-height: 40px;
 }
 </style>

+ 25 - 0
src/layout/index/weilai.vue

@@ -0,0 +1,25 @@
+<template>
+  <div id="weilai">
+    <el-row>
+      <el-col :span="24" class="image">
+        <el-image style="width:100%;height:200px;" :src="url"></el-image>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'weilai',
+  props: {},
+  components: {},
+  data: () => ({
+    url: require('@/assets/weilai.jpg'),
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 117 - 0
src/layout/index/xiazai.vue

@@ -0,0 +1,117 @@
+<template>
+  <div id="xiazai">
+    <el-row style="width:247px;height:369px;" v-loading="loading">
+      <el-col :span="24" class="top">
+        <el-col :span="16" class="topTit">
+          <span>{{ xiazaiList.title || title }}</span>
+        </el-col>
+        <el-col :span="8" class="topLink">
+          <el-link :underline="false" @click="$router.push({ path: path, query: { title: xiazaiList.title } })"
+            >more<i class="el-icon-d-arrow-right"></i
+          ></el-link>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list" v-for="(item, index) in infoList" :key="index" @click.native="$router.push({ path: `/detail?id=${item.id}` })">
+          <p class="title textOver">{{ item.title }}</p>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'xiazai',
+  props: {
+    xiazaiList: null,
+  },
+  components: {},
+  data: () => ({
+    title: '下载专区',
+    loading: true,
+    infoList: [],
+    path: undefined,
+  }),
+  watch: {
+    xiazaiList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      let notice = [];
+      for (const item of columns) {
+        if (!this.path) this.path = item.path;
+        let xiazaiList = _.get(item, `children`);
+        if (xiazaiList) {
+          notice = notice.concat(notice, xiazaiList);
+        }
+      }
+      this.$set(this, `infoList`, notice);
+      this.loading = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 39px;
+  line-height: 39px;
+  border-bottom: 1px solid #ccc;
+}
+.top .topTit span {
+  display: inline-block;
+  width: 110px;
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #000;
+  font-size: 16px;
+  border-bottom: 1px solid #176ebb;
+}
+.top .topLink {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+}
+.top .topLink .el-link {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #000;
+  font-size: 16px;
+  text-transform: uppercase;
+}
+.top .topLink:hover .el-link {
+  color: #a32324;
+}
+.list {
+  padding: 10px;
+}
+.list .title {
+  font-size: 16px;
+}
+.list:hover {
+  cursor: pointer;
+}
+.list:hover .title {
+  color: #a32324;
+}
+</style>

+ 143 - 0
src/layout/index/zhidao.vue

@@ -0,0 +1,143 @@
+<template>
+  <div id="zhidao">
+    <el-row style="width:540px;height:369px;" v-loading="loading">
+      <el-col :span="24" class="top">
+        <el-col :span="20" class="topTit">
+          <span> {{ zhidaoList.title || title }}</span>
+        </el-col>
+        <el-col :span="4" class="topLink">
+          <el-link :underline="false" @click="$router.push({ path: path, query: { title: zhidaoList.title } })"
+            >more<i class="el-icon-d-arrow-right"></i
+          ></el-link>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list" v-for="(item, index) in infoList" :key="index" @click.native="$router.push({ path: `/detail?id=${item.id}` })">
+          <el-col :span="19" class="title">
+            <p class="textOver"><i class="el-icon-caret-right icon"></i>{{ item.title }}</p>
+          </el-col>
+          <el-col :span="5" class="date">
+            {{ item.meta | getDate }}
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'zhidao',
+  props: {
+    zhidaoList: null,
+  },
+  components: {},
+  data: () => ({
+    loading: true,
+    title: '就业指导',
+    infoList: [],
+    path: undefined,
+  }),
+  watch: {
+    zhidaoList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      let notice = [];
+      for (const item of columns) {
+        if (!this.path) this.path = item.path;
+        let zhidaoList = _.get(item, `children`);
+        if (zhidaoList) {
+          notice = notice.concat(notice, zhidaoList);
+        }
+      }
+      this.$set(this, `infoList`, notice);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 39px;
+  line-height: 39px;
+  border-bottom: 1px solid #176ebb;
+}
+.top .topTit span {
+  display: inline-block;
+  width: 110px;
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #fff;
+  font-size: 16px;
+  background-color: #176ebb;
+}
+.top .topLink {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+}
+.top .topLink .el-link {
+  height: 39px;
+  line-height: 39px;
+  text-align: center;
+  color: #000;
+  font-size: 16px;
+  text-transform: uppercase;
+}
+.top .topLink:hover .el-link {
+  color: #a32324;
+}
+.list {
+  padding: 8px 10px;
+}
+.list .title {
+  font-size: 16px;
+}
+.list .title .icon {
+  float: left;
+  padding: 4px 4px;
+  // color: #176ebb;
+}
+.list .date {
+  font-size: 16px;
+}
+.list:hover {
+  cursor: pointer;
+}
+.list:hover .title {
+  color: #a32324;
+}
+.list:hover .date {
+  color: #a32324;
+}
+</style>

+ 5 - 2
src/layout/jobs-list/jobfair.vue

@@ -1,8 +1,8 @@
 <template>
   <div id="jobfair">
-    <el-col :span="24" @click.native="$router.push({ path: '/jobfairDetail', query: { id: data.id } })">
+    <el-col :span="24" class="list" @click.native="$router.push({ path: '/jobfairDetail', query: { id: data.id } })">
       <el-col :span="20" class="title">
-        <p class="textOver"><span class="dian"></span>{{ data.title }}</p>
+        <p class="textOver tit"><span class="dian"></span>{{ data.title }}</p>
         <p class="textOver"><span class="dian"></span>地址:{{ data.city }}{{ data.address }}</p>
         <p class="textOver"><span class="dian"></span>举办方:{{ data.organizer }}</p>
       </el-col>
@@ -56,4 +56,7 @@ p {
   text-align: right;
   padding: 10px 0;
 }
+.list:hover {
+  cursor: pointer;
+}
 </style>

+ 4 - 1
src/layout/jobs-list/jobinfo.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="jobinfo">
-    <el-col :span="24" @click.native="$router.push({ path: '/jobinfoDetail', query: { id: data.id } })">
+    <el-col :span="24" class="list" @click.native="$router.push({ path: '/jobinfoDetail', query: { id: data.id } })">
       <el-col :span="20" class="title">
         <p class="textOver"><span class="dian"></span>{{ data.title }}</p>
         <p class="textOver"><span class="dian"></span>发布方:{{ data.corpname }}</p>
@@ -56,4 +56,7 @@ p {
   text-align: right;
   padding: 10px 0;
 }
+.list:hover {
+  cursor: pointer;
+}
 </style>

+ 11 - 2
src/layout/jobs-list/post.vue

@@ -1,10 +1,10 @@
 <template>
   <div id="post">
-    <el-col :span="24" @click.native="$router.push({ path: '/jobsDetail', query: { id: data.id } })">
+    <el-col :span="24" class="list" @click.native="$router.push({ path: '/jobsDetail', query: { id: data.id } })">
       <el-col :span="20" class="title">
         <p class="textOver"><span class="dian"></span>{{ data.job_name }}</p>
         <p class="textOver"><span class="dian"></span>需求人数:{{ data.job_number }}</p>
-        <p class="textOver"><span class="dian"></span>薪资:{{ data.salary.text }}</p>
+        <p class="textOver"><span class="dian"></span>薪资:{{ data | getSalary }}</p>
         <p class="textOver"><span class="dian"></span>福利待遇:{{ data.welfare }}</p>
         <p class="textOver"><span class="dian"></span>职位诱惑:{{ data.job_tag }}</p>
       </el-col>
@@ -14,6 +14,7 @@
 </template>
 
 <script>
+import _ from 'lodash';
 export default {
   name: 'post',
   props: {
@@ -24,6 +25,11 @@ export default {
   created() {},
   computed: {},
   methods: {},
+  filters: {
+    getSalary(data) {
+      return _.get(data, `salary.text`);
+    },
+  },
 };
 </script>
 
@@ -58,4 +64,7 @@ p {
   text-align: right;
   padding: 10px 0;
 }
+.list:hover {
+  cursor: pointer;
+}
 </style>

+ 5 - 2
src/layout/jobs-list/talk.vue

@@ -1,8 +1,8 @@
 <template>
   <div id="talk">
-    <el-col :span="24" @click.native="$router.push({ path: '/talkDetail', query: { id: data.id } })">
+    <el-col :span="24" class="list" @click.native="$router.push({ path: '/talkDetail', query: { id: data.id } })">
       <el-col :span="20" class="title">
-        <p class="textOver"><span class="dian"></span>{{ data.title }}</p>
+        <p class="textOver tit"><span class="dian"></span>{{ data.title }}</p>
         <p class="textOver"><span class="dian"></span>地址:{{ data.address }}</p>
         <p class="textOver"><span class="dian"></span>宣讲方:{{ data.corpname }}</p>
       </el-col>
@@ -56,4 +56,7 @@ p {
   text-align: right;
   padding: 10px 0;
 }
+.list:hover {
+  cursor: pointer;
+}
 </style>

+ 58 - 0
src/layout/list/listMenu.vue

@@ -0,0 +1,58 @@
+<template>
+  <div id="listMenu">
+    <el-row>
+      <el-col :span="24" class="menu">
+        <el-menu default-active="1" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" active-text-color="#176ebb">
+          <el-menu-item index="1">
+            <i class="el-icon-menu"></i>
+            <span slot="title">就业动态</span>
+          </el-menu-item>
+          <el-menu-item index="2">
+            <i class="el-icon-menu"></i>
+            <span slot="title">通知公告</span>
+          </el-menu-item>
+          <el-menu-item index="3">
+            <i class="el-icon-menu"></i>
+            <span slot="title">下载专区</span>
+          </el-menu-item>
+          <el-menu-item index="4">
+            <i class="el-icon-menu"></i>
+            <span slot="title">户籍管理</span>
+          </el-menu-item>
+          <el-menu-item index="5">
+            <i class="el-icon-menu"></i>
+            <span slot="title">档案服务</span>
+          </el-menu-item>
+        </el-menu>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'listMenu',
+  props: {},
+  components: {},
+  data: () => ({
+    handleOpen(key, keyPath) {
+      console.log(key, keyPath);
+    },
+    handleClose(key, keyPath) {
+      console.log(key, keyPath);
+    },
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-icon-document {
+  font-size: 20px;
+}
+/deep/.el-menu-item {
+  font-size: 18px;
+}
+</style>

+ 58 - 0
src/layout/list/listMenus.vue

@@ -0,0 +1,58 @@
+<template>
+  <div id="listMenu">
+    <el-row>
+      <el-col :span="24" class="menu">
+        <el-menu default-active="1" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" active-text-color="#be0101">
+          <el-menu-item index="1">
+            <i class="el-icon-menu"></i>
+            <span slot="title">就业动态</span>
+          </el-menu-item>
+          <el-menu-item index="2">
+            <i class="el-icon-menu"></i>
+            <span slot="title">通知公告</span>
+          </el-menu-item>
+          <el-menu-item index="3">
+            <i class="el-icon-menu"></i>
+            <span slot="title">下载专区</span>
+          </el-menu-item>
+          <el-menu-item index="4">
+            <i class="el-icon-menu"></i>
+            <span slot="title">户籍管理</span>
+          </el-menu-item>
+          <el-menu-item index="5">
+            <i class="el-icon-menu"></i>
+            <span slot="title">档案服务</span>
+          </el-menu-item>
+        </el-menu>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'listMenu',
+  props: {},
+  components: {},
+  data: () => ({
+    handleOpen(key, keyPath) {
+      console.log(key, keyPath);
+    },
+    handleClose(key, keyPath) {
+      console.log(key, keyPath);
+    },
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-icon-document {
+  font-size: 20px;
+}
+/deep/.el-menu-item {
+  font-size: 18px;
+}
+</style>

+ 143 - 0
src/layout/list/mainRight.vue

@@ -0,0 +1,143 @@
+<template>
+  <div id="mainRight">
+    <el-row style="border:1px solid #e6e6e6;">
+      <el-col :span="24" class="top">
+        <span :style="`background:${backColor}`">{{ topTitile }}</span>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list" v-for="(item, index) in rightList" :key="index" @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })">
+          <el-col :span="5" class="images">
+            <el-image style="width:150px;height:95px;" :src="item.pic" v-if="item.pic"></el-image>
+            <el-image style="width:150px;height:95px;" :src="Nopic" v-else></el-image>
+          </el-col>
+          <el-col :span="19" class="right">
+            <el-col :span="24" class="rightTop">
+              <el-col :span="20" class="title">
+                <p class="textOver">{{ item.title }}</p>
+              </el-col>
+              <el-col :span="4" class="date">
+                {{ item.meta && item.meta.createdAt ? new Date(item.meta.createdAt).toLocaleDateString() : '' || '' }}
+              </el-col>
+            </el-col>
+            <el-col :span="24" class="content">
+              <p v-html="item.content"></p>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="page">
+          <el-pagination @current-change="search" :current-page="currentPage" :page-size="pageSize" layout="total, prev, pager, next, jumper" :total="total">
+          </el-pagination>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'mainRight',
+  props: {
+    rightList: null,
+    backColor: null,
+    total: { type: Number, defaultl: 0 },
+  },
+  components: {},
+  data: () => ({
+    currentPage: 1,
+    pageSize: 8,
+    Nopic: require('@/assets/noPic.png'),
+  }),
+  created() {},
+  computed: {
+    topTitile() {
+      return this.$route.query.title;
+    },
+  },
+  methods: {
+    search(page) {
+      let skip = (page - 1) * this.pageSize;
+      this.$emit('search', { skip: skip, limit: this.pageSize });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 40px;
+  line-height: 40px;
+}
+.top span {
+  display: inline-block;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  font-size: 18px;
+  color: #fff;
+  padding: 0 10px;
+  background-color: #176ebb;
+}
+.info {
+  min-height: 560px;
+  background-color: #fff;
+  padding: 10px;
+}
+.list {
+  padding: 8px 10px;
+  border-bottom: 1px dashed #ccc;
+}
+.list .images {
+  width: 150px;
+  height: 95px;
+}
+.list .rightTop .title {
+  padding: 10px;
+}
+.list .rightTop .date {
+  text-align: center;
+  font-size: 16px;
+  color: #4f4f4f;
+  padding: 10px 0;
+}
+/deep/.list .content {
+  padding: 0 8px;
+  height: 45px;
+  overflow: hidden;
+}
+/deep/.list .content p {
+  padding: 0;
+  margin: 0;
+  text-indent: 2rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 2;
+  word-break: break-all;
+  display: -webkit-box;
+  -webkit-box-orient: vertical;
+}
+.list:hover {
+  cursor: pointer;
+}
+.list:hover .title {
+  color: #a32324;
+}
+.list:hover .date {
+  color: #a32324;
+}
+.page {
+  position: absolute;
+  bottom: 0;
+  height: 100px;
+  text-align: center;
+  padding: 35px 0;
+}
+</style>

+ 3 - 1
src/layout/list/newsInfo.vue

@@ -16,7 +16,8 @@
         <el-col :span="24" class="list">
           <el-col :span="24" class="rightList" v-for="(item, index) in newsList" :key="index">
             <el-col :span="5" class="image">
-              <el-image style="width:100%;height:95px;" :src="item.pic"></el-image>
+              <el-image style="width:150px;height:95px;" :src="item.pic" v-if="item.pic"></el-image>
+              <el-image style="width:150px;height:95px;" :src="Nopic" v-else></el-image>
             </el-col>
             <el-col :span="19">
               <el-col :span="24">
@@ -53,6 +54,7 @@ export default {
   data: () => ({
     currentPage: 1,
     pageSize: 8,
+    Nopic: require('@/assets/noPic.png'),
   }),
   created() {},
   computed: {},

+ 290 - 0
src/layout/member/dangjian.vue

@@ -0,0 +1,290 @@
+<template>
+  <div id="dangjian">
+    <el-row>
+      <el-col :span="24" class="top">
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="left"></el-image>
+        </el-col>
+        <el-col :span="4" class="topTitle">
+          {{ title }}
+        </el-col>
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="right"></el-image>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="8" class="infoLeft" v-loading="loading">
+          <el-col :span="24" class="infoLeftTop">
+            <el-col :span="18" class="leftTopTitle">
+              <span>{{ rencaiList.title }}</span>
+            </el-col>
+            <el-col :span="6" class="leftTopMore">
+              <el-link :underline="false" @click="$router.push({ path: rencaiList.path, query: { title: rencaiList.title } })"
+                >更多<i class="el-icon-plus"></i
+              ></el-link>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="infoLeftList">
+            <el-col
+              :span="24"
+              class="rencaiList"
+              v-for="(item, index) in infoList"
+              :key="index"
+              @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+            >
+              <el-col :span="16" class="title">
+                <p class="textOver"><i class="el-icon-s-flag icon"></i>{{ item.title }}</p>
+              </el-col>
+              <el-col :span="8" class="date"> [{{ item.meta | getDate }}] </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="8" class="infoLeft" v-loading="loading">
+          <el-col :span="24" class="infoLeftTop">
+            <el-col :span="18" class="leftTopTitle">
+              <span>{{ dangjianList.title }}</span>
+            </el-col>
+            <el-col :span="6" class="leftTopMore">
+              <el-link :underline="false" @click="$router.push({ path: dangjianList.path, query: { title: dangjianList.title } })"
+                >更多<i class="el-icon-plus"></i
+              ></el-link>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="infoCenterList">
+            <el-col
+              :span="12"
+              class="dangjianList"
+              v-for="(item, index) in infosList"
+              :key="index"
+              @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+            >
+              <el-col :span="24" class="imageTit">
+                <el-image style="width:180px;height:120px;" :src="item.pic" v-if="item.pic"></el-image>
+                <el-image style="width:180px;height:120px;" :src="Nopic" v-else></el-image>
+              </el-col>
+              <el-col :span="24" class="title">
+                <p>{{ item.title }}</p>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="8" class="infoLeft" v-loading="loading">
+          <el-col :span="24" class="infoLeftTop">
+            <el-col :span="18" class="leftTopTitle">
+              <span>{{ yaowenList.title }}</span>
+            </el-col>
+            <el-col :span="6" class="leftTopMore">
+              <el-link :underline="false" @click="$router.push({ path: yaowenList.path, query: { title: yaowenList.title } })"
+                >更多<i class="el-icon-plus"></i
+              ></el-link>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="infoLeftList">
+            <el-col
+              :span="24"
+              class="rencaiList"
+              v-for="(item, index) in infossList"
+              :key="index"
+              @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+            >
+              <el-col :span="16" class="title">
+                <p class="textOver"><i class="el-icon-s-flag icon"></i>{{ item.title }}</p>
+              </el-col>
+              <el-col :span="8" class="date"> [{{ item.meta | getDate }}]</el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'dangjian',
+  props: {
+    rencaiList: null,
+    dangjianList: null,
+    yaowenList: null,
+  },
+  components: {},
+  data: () => ({
+    title: '基层党建',
+    leftTopTitle: '人才建设',
+    centerTopTitle: '党建综合',
+    rightTopTitle: '党建要闻',
+    left: require('@/assets/messageLeft.jpg'),
+    right: require('@/assets/messageRight.jpg'),
+    infoList: [],
+    infosList: [],
+    infossList: [],
+    loading: true,
+    Nopic: require('@/assets/noPic.png'),
+  }),
+  watch: {
+    rencaiList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+    dangjianList: {
+      handler(val) {
+        if (val) this.assignDatas(val);
+      },
+    },
+    yaowenList: {
+      handler(val) {
+        if (val) this.assignDatass(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let infoList = _.get(data, 'children');
+      this.$set(this, `infoList`, infoList);
+      this.loading = false;
+    },
+    assignDatas(data) {
+      let infosList = _.get(data, 'children');
+      this.$set(this, `infosList`, infosList);
+      this.loading = false;
+    },
+    assignDatass(data) {
+      let infossList = _.get(data, 'children');
+      this.$set(this, `infossList`, infossList);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.icon {
+  color: #bd010b;
+  margin: 0 15px 0 0;
+}
+.top {
+  height: 40px;
+  line-height: 40px;
+  margin: 0 0 40px 0;
+}
+.top .topTitle {
+  font-size: 38px;
+  color: #bd010b;
+  text-align: center;
+  font-weight: bold;
+  font-family: '微软雅黑';
+}
+.info {
+  height: 400px;
+  overflow: hidden;
+}
+.infoLeft {
+  width: 400px;
+  height: 318px;
+  overflow: hidden;
+  margin: 0 30px 0 0;
+}
+.infoLeft:last-child {
+  margin: 0;
+}
+.infoLeftTop {
+  height: 40px;
+  line-height: 40px;
+  border-bottom: 1px solid #ccc;
+}
+.infoLeftTop .leftTopTitle span {
+  display: inline-block;
+  height: 39px;
+  text-align: center;
+  border-bottom: 1px solid #bd010b;
+  font-size: 18px;
+  color: #bd000b;
+}
+.infoLeftTop .leftTopMore {
+  height: 39px;
+  line-height: 30px;
+  text-align: right;
+  padding: 0 10px;
+}
+.rencaiList {
+  padding: 9px;
+}
+.rencaiList .title p {
+  font-size: 16px;
+  color: #333;
+}
+.rencaiList .date {
+  font-size: 16px;
+  color: #333;
+  text-align: right;
+}
+.rencaiList:hover {
+  cursor: pointer;
+}
+.rencaiList:hover .title p {
+  color: #bd000b;
+}
+.rencaiList:hover .date {
+  color: #bd000b;
+}
+.infoCenterList {
+  margin: 18px 0 0 0;
+}
+.dangjianList {
+  position: relative;
+  width: 180px;
+  height: 120px;
+  overflow: hidden;
+  margin: 0 15px 10px 15px;
+}
+.dangjianList:nth-child(2n) {
+  margin: 0;
+}
+.dangjianList .title {
+  position: absolute;
+  top: 0;
+  width: 180px;
+  height: 120px;
+  background: #0000004f;
+  display: none;
+}
+.dangjianList:hover .title {
+  display: block;
+  cursor: pointer;
+}
+.dangjianList .title p {
+  color: #fff;
+  font-size: 18px;
+  text-align: center;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 2;
+  word-break: break-all;
+  display: -webkit-box;
+  -webkit-box-orient: vertical;
+  margin: 36px 10px;
+}
+</style>

+ 185 - 0
src/layout/member/gaoceng.vue

@@ -0,0 +1,185 @@
+<template>
+  <div id="gaoceng">
+    <el-row>
+      <el-col :span="24" class="top">
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="left"></el-image>
+        </el-col>
+        <el-col :span="4" class="topTitle">
+          {{ title }}
+        </el-col>
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="right"></el-image>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="12" class="carousel" v-loading="loading">
+          <el-carousel height="400">
+            <el-carousel-item
+              class="infoList"
+              v-for="(item, index) in infoList"
+              :key="index"
+              @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+            >
+              <el-image style="width:100%;height:400px;" :src="item.pic" v-if="item.pic"></el-image>
+              <el-image style="width:100%;height:400px;" :src="noPic" v-else></el-image>
+              <span class="textOver">{{ item.title }}</span>
+            </el-carousel-item>
+          </el-carousel>
+        </el-col>
+        <el-col :span="12" style="height:400px;" v-loading="loading">
+          <el-col
+            :span="24"
+            class="newsList"
+            v-for="(item, index) in infosList"
+            :key="index"
+            @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+          >
+            <el-col :span="20" class="title">
+              <p class="textOver">
+                <i class="el-icon-s-flag icon"></i><span>{{ item.title }}</span>
+              </p>
+            </el-col>
+            <el-col :span="4" class="date">
+              {{ item.meta | getDate }}
+            </el-col>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'gaoceng',
+  props: {
+    carouselList: null,
+    newsList: null,
+  },
+  components: {},
+  data: () => ({
+    title: '高层声音',
+    left: require('@/assets/messageLeft.jpg'),
+    right: require('@/assets/messageRight.jpg'),
+    infoList: [],
+    infosList: [],
+    loading: true,
+    noPic: require('@/assets/noPic3.png'),
+  }),
+  watch: {
+    carouselList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+    newsList: {
+      handler(val) {
+        if (val) this.assignDatas(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let columns = _.get(data, 'children');
+      this.$set(this, `infoList`, columns);
+      this.loading = false;
+    },
+    assignDatas(data) {
+      let columns = _.get(data, 'children');
+      this.$set(this, `infosList`, columns);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 40px;
+  line-height: 40px;
+  margin: 0 0 40px 0;
+}
+.top .topTitle {
+  font-size: 38px;
+  color: #bd010b;
+  text-align: center;
+  font-weight: bold;
+  font-family: '微软雅黑';
+}
+.info {
+  height: 400px;
+}
+.info .carousel {
+  height: 400px;
+  overflow: hidden;
+}
+/deep/.el-carousel__indicators {
+  display: none;
+}
+/deep/.el-carousel__container {
+  height: 400px;
+}
+.info .carousel span {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 40px;
+  line-height: 40px;
+  color: #fff;
+  background-color: #0000004f;
+  font-size: 16px;
+  padding: 0 10px;
+}
+.newsList {
+  padding: 10px 0px 10px 20px;
+}
+.newsList .title p {
+  font-size: 18px;
+  color: #5d5d5d;
+  padding: 0 15px 0 0;
+}
+.newsList .title p .icon {
+  color: #bd010b;
+  margin: 0 15px 0 0;
+}
+.newsList .date {
+  font-size: 18px;
+  color: #5d5d5d;
+}
+.newsList:hover {
+  cursor: pointer;
+}
+.newsList:hover .title p {
+  color: #bd010b;
+}
+.newsList:hover .date {
+  color: #bd010b;
+}
+.infoList:hover {
+  cursor: pointer;
+}
+</style>

+ 79 - 0
src/layout/member/meesage.vue

@@ -0,0 +1,79 @@
+<template>
+  <div id="meesage">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="2" class="zuixinMess">
+          <el-image style="width:65px;height:95px;" :src="url"></el-image>
+        </el-col>
+        <el-col :span="21" class="info">
+          <el-col :span="24" class="title">
+            <p class="textOver">{{ messageInfo.title }}</p>
+          </el-col>
+          <el-col :span="24" class="content">
+            <p>{{ messageInfo.content }}</p>
+            <el-button type="text" size="mini">[详情]</el-button>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'meesage',
+  props: {
+    messageInfo: null,
+  },
+  components: {},
+  data: () => ({
+    url: require('@/assets/messages.png'),
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.zuixinMess {
+  width: 65px;
+  height: 95px;
+  margin: 0 40px 0 20px;
+}
+.info .title {
+  padding: 10px 0;
+}
+.info .title p {
+  font-size: 25px;
+  color: #cc3333;
+  font-family: '微軟雅黑';
+  font-weight: 600;
+}
+.info .content p {
+  font-size: 20px;
+  color: #333;
+  text-indent: 2rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  word-break: break-all;
+  display: -webkit-box;
+  -webkit-box-orient: vertical;
+}
+.info .content .el-button {
+  position: absolute;
+  right: 45px;
+  color: #cc3333;
+  font-weight: 600;
+}
+</style>

+ 156 - 0
src/layout/member/photo.vue

@@ -0,0 +1,156 @@
+<template>
+  <div id="photo">
+    <el-row>
+      <el-col :span="24" class="top">
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="left"></el-image>
+        </el-col>
+        <el-col :span="4" class="topTitle">
+          {{ title }}
+        </el-col>
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="right"></el-image>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list" v-loading="loading">
+          <el-col
+            :span="6"
+            class="tujiList"
+            v-for="(item, index) in infoList"
+            :key="index"
+            @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+          >
+            <el-col :span="24" class="image">
+              <el-image style="width:270px;height:180px;" :src="item.pic"></el-image>
+            </el-col>
+            <el-col :span="24" class="title">
+              <p class="textOver">{{ item.title }}</p>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="link">
+          <el-link :underline="false" href="http://www.dangjian.com/djw2016sy/djw2016wkztl/wkztl2016djzzwk/" class="image" target="_blank">
+            <el-image style="width:285px;height:140px;" :src="link1"></el-image>
+          </el-link>
+          <el-link :underline="false" href="http://xuexi.12371.cn/xxhywx/" class="image" target="_blank">
+            <el-image style="width:285px;height:140px;" :src="link2"></el-image>
+          </el-link>
+          <el-link :underline="false" href="http://www.dangjian.com/specials/" class="image" target="_blank">
+            <el-image style="width:285px;height:140px;" :src="link3"></el-image>
+          </el-link>
+          <el-link :underline="false" href="http://dwlm.12371.cn/" class="image" target="_blank">
+            <el-image style="width:285px;height:140px;" :src="link4"></el-image>
+          </el-link>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'photo',
+  props: {
+    tujiList: null,
+  },
+  components: {},
+  data: () => ({
+    title: '活动图集',
+    left: require('@/assets/messageLeft.jpg'),
+    right: require('@/assets/messageRight.jpg'),
+    link1: require('@/assets/tuji5.jpg'),
+    link2: require('@/assets/tuji6.jpg'),
+    link3: require('@/assets/tuji7.jpg'),
+    link4: require('@/assets/tuji8.jpg'),
+    infoList: [],
+    loading: true,
+  }),
+  watch: {
+    tujiList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let infoList = _.get(data, 'children');
+      this.$set(this, `infoList`, infoList);
+      this.loading = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.top {
+  height: 40px;
+  line-height: 40px;
+  margin: 0 0 40px 0;
+}
+.top .topTitle {
+  font-size: 38px;
+  color: #bd010b;
+  text-align: center;
+  font-weight: bold;
+  font-family: '微软雅黑';
+}
+.link {
+  height: 140px;
+  overflow: hidden;
+}
+.link .image {
+  width: 285px;
+  height: 140px;
+  margin: 0 15px;
+}
+.link .image:last-child {
+  margin: 0 0 0 15px;
+}
+.list {
+  margin: 0 0 40px 0;
+}
+.tujiList {
+  width: 270px;
+  height: 210px;
+  overflow: hidden;
+  margin: 0px 25px 0 25px;
+}
+.tujiList:last-child {
+  margin: 0px 0 0 25px;
+}
+.tujiList .image {
+  width: 270px;
+  height: 180px;
+  overflow: hidden;
+}
+.tujiList .title {
+  height: 30px;
+  line-height: 30px;
+  padding: 0 10px;
+  text-align: center;
+}
+.tujiList .title p {
+  font-size: 16px;
+  color: #333;
+}
+.tujiList:hover {
+  cursor: pointer;
+}
+.tujiList:hover .title p {
+  color: #bd010b;
+}
+</style>

+ 51 - 0
src/layout/member/top.vue

@@ -0,0 +1,51 @@
+<template>
+  <div id="top">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24">
+          <el-image style="width:100%;height:500px;" :src="banner"></el-image>
+        </el-col>
+        <div class="w_1270">
+          <el-col :span="24" class="info">
+            <span>{{ info.name }}-{{ title }}</span>
+          </el-col>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'top',
+  props: {
+    info: null,
+  },
+  components: {},
+  data: () => ({
+    title: '党员之家',
+    banner: require('@/assets/memberBg.jpg'),
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.w_1270 {
+  width: 1270px;
+  margin: 0 auto;
+}
+.info {
+  position: absolute;
+  top: 32%;
+  left: 25%;
+  width: 75%;
+}
+.info span {
+  font-size: 35px;
+  color: #df0001;
+  font-family: '黑体';
+}
+</style>

+ 273 - 0
src/layout/member/xuexi.vue

@@ -0,0 +1,273 @@
+<template>
+  <div id="xuexi">
+    <el-row>
+      <el-col :span="24" class="top">
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="left"></el-image>
+        </el-col>
+        <el-col :span="4" class="topTitle">
+          {{ title }}
+        </el-col>
+        <el-col :span="10">
+          <el-image style="width:100%;height:40px;" :src="right"></el-image>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="8" class="infoLeft" v-loading="loading">
+          <el-col :span="24" class="infoLeftTop">
+            <el-col :span="18" class="leftTopTitle">
+              <span>{{ dangguiList.title }}</span>
+            </el-col>
+            <el-col :span="6" class="leftTopMore">
+              <el-link :underline="false" @click="$router.push({ path: dangguiList.path, query: { title: dangguiList.title } })"
+                >更多<i class="el-icon-plus"></i
+              ></el-link>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="infoLeftList">
+            <el-col
+              :span="24"
+              class="rencaiList"
+              v-for="(item, index) in infoList"
+              :key="index"
+              @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+            >
+              <el-col :span="24" class="title">
+                <p class="textOver"><i class="el-icon-s-flag icon"></i>{{ item.title }}</p>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="8" class="infoLeft" v-loading="loading">
+          <el-col :span="24" class="infoLeftTop">
+            <el-col :span="18" class="leftTopTitle">
+              <span>{{ zhishiList.title }}</span>
+            </el-col>
+            <el-col :span="6" class="leftTopMore">
+              <el-link :underline="false" @click="$router.push({ path: zhishiList.path, query: { title: zhishiList.title } })"
+                >更多<i class="el-icon-plus"></i
+              ></el-link>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="infoLeftList">
+            <el-col
+              :span="24"
+              class="zhishiList"
+              v-for="(item, index) in infosList"
+              :key="index"
+              @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })"
+            >
+              <el-col :span="16" class="title">
+                <p class="textOver"><i class="el-icon-s-flag icon"></i>{{ item.title }}</p>
+              </el-col>
+              <el-col :span="8" class="date"> [{{ item.meta | getDate }}] </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="8" class="infoLeft" v-loading="loading">
+          <el-col :span="24" class="infoLeftTop">
+            <el-col :span="18" class="leftTopTitle">
+              <span>{{ zhunti.title }}</span>
+            </el-col>
+            <el-col :span="6" class="leftTopMore">
+              <el-link :underline="false" @click="$router.push({ path: zhunti.path, query: { title: zhunti.title } })"
+                >更多<i class="el-icon-plus"></i
+              ></el-link>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="infoRightList">
+            <el-col :span="24" v-for="(item, index) in infossList" :key="index" @click.native="$router.push({ path: `/memberDetail?id=${item.id}` })">
+              <el-col :span="24">
+                <el-image style="width:400px;height:280px;" :src="item.pic" v-if="item.pic"></el-image>
+                <el-image style="width:400px;height:280px;" :src="Nopic" v-else></el-image>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'xuexi',
+  props: {
+    dangguiList: null,
+    zhishiList: null,
+    zhunti: null,
+  },
+  components: {},
+  data: () => ({
+    title: '学习园地',
+    left: require('@/assets/messageLeft.jpg'),
+    right: require('@/assets/messageRight.jpg'),
+    infoList: [],
+    infosList: [],
+    infossList: [],
+    loading: true,
+    Nopic: require('@/assets/noPic2.png'),
+  }),
+  watch: {
+    dangguiList: {
+      handler(val) {
+        if (val) this.assignData(val);
+      },
+    },
+    zhishiList: {
+      handler(val) {
+        if (val) this.assignDatas(val);
+      },
+    },
+    zhunti: {
+      handler(val) {
+        if (val) this.assignDatass(val);
+      },
+    },
+  },
+  created() {},
+  computed: {},
+  methods: {
+    assignData(data) {
+      let infoList = _.get(data, 'children');
+      this.$set(this, `infoList`, infoList);
+      this.loading = false;
+    },
+    assignDatas(data) {
+      let infosList = _.get(data, 'children');
+      this.$set(this, `infosList`, infosList);
+      this.loading = false;
+    },
+    assignDatass(data) {
+      let infossList = _.get(data, 'children');
+      this.$set(this, `infossList`, infossList);
+      this.loading = false;
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.icon {
+  color: #bd010b;
+  margin: 0 15px 0 0;
+}
+.top {
+  height: 40px;
+  line-height: 40px;
+  margin: 0 0 40px 0;
+}
+.top .topTitle {
+  font-size: 38px;
+  color: #bd010b;
+  text-align: center;
+  font-weight: bold;
+  font-family: '微软雅黑';
+}
+.info {
+  height: 400px;
+  overflow: hidden;
+}
+.infoLeft {
+  width: 400px;
+  height: 337px;
+  overflow: hidden;
+  margin: 0 30px 0 0;
+}
+.infoLeft:last-child {
+  margin: 0;
+}
+.infoLeftTop {
+  height: 40px;
+  line-height: 40px;
+  border-bottom: 1px solid #ccc;
+}
+.infoLeftTop .leftTopTitle span {
+  display: inline-block;
+  height: 39px;
+  text-align: center;
+  border-bottom: 1px solid #bd010b;
+  font-size: 18px;
+  color: #bd000b;
+}
+.infoLeftTop .leftTopMore {
+  height: 39px;
+  line-height: 30px;
+  text-align: right;
+  padding: 0 10px;
+}
+.rencaiList {
+  padding: 8px;
+}
+.rencaiList .title p {
+  font-size: 16px;
+  color: #333;
+}
+.rencaiList .date {
+  font-size: 16px;
+  color: #333;
+  text-align: right;
+}
+.rencaiList:hover {
+  cursor: pointer;
+}
+.rencaiList:hover .title p {
+  color: #bd000b;
+}
+.rencaiList:hover .date {
+  color: #bd000b;
+}
+.zhishiList {
+  padding: 8px;
+}
+.zhishiList .title {
+  padding: 4px 0;
+}
+.zhishiList .title p {
+  font-size: 16px;
+  color: #333;
+}
+.zhishiList .title .color {
+  color: #bd000b;
+}
+.zhishiList .date {
+  font-size: 16px;
+  color: #333;
+  text-align: right;
+}
+.zhishiList:hover {
+  cursor: pointer;
+}
+.zhishiList:hover .title p {
+  color: #bd000b;
+}
+.zhishiList:hover .date {
+  color: #bd000b;
+}
+.infoRightList {
+  padding: 15px 0;
+}
+.infoRightList:hover {
+  cursor: pointer;
+}
+</style>

+ 1 - 0
src/layout/recuit/jobfairInfo.vue

@@ -66,6 +66,7 @@
 </template>
 
 <script>
+import _ from 'lodash';
 export default {
   name: 'jobfairInfo',
   props: {

+ 10 - 3
src/layout/share.vue

@@ -1,8 +1,7 @@
 <template>
   <div id="share">
     <el-row>
-      <el-col :span="20"><p>&nbsp;</p></el-col>
-      <el-col :span="4"><vshare :vshareConfig="config"></vshare></el-col>
+      <el-col :span="24" class="vshare"><vshare :vshareConfig="config"></vshare></el-col>
     </el-row>
   </div>
 </template>
@@ -46,4 +45,12 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.vshare {
+  height: 30px;
+  line-height: 30px;
+}
+.bdshare-button-style0-24 {
+  height: 30px;
+}
+</style>

+ 17 - 7
src/router/index.js

@@ -8,10 +8,20 @@ export default new Router({
   base: process.env.NODE_ENV === 'development' ? '' : process.env.VUE_APP_ROUTER,
   routes: [
     {
-      path: '/',
+      path: '/index',
       name: 'index',
       component: () => import('../views/index.vue'),
     },
+    {
+      path: '/',
+      name: 'loading',
+      component: () => import('../views/loading.vue'),
+    },
+    {
+      path: '/fail',
+      name: 'fail',
+      component: () => import('../views/fail.vue'),
+    },
     {
       path: '/list/:jobs/:type',
       name: 'list',
@@ -28,9 +38,9 @@ export default new Router({
       component: () => import('../views/detail.vue'),
     },
     {
-      path: '/memberList/:type/:id',
-      name: 'memberList',
-      component: () => import('../views/memberList.vue'),
+      path: '/member',
+      name: 'member',
+      component: () => import('../views/member.vue'),
     },
     {
       path: '/memberDetail',
@@ -43,9 +53,9 @@ export default new Router({
       component: () => import('../views/newsList.vue'),
     },
     {
-      path: '/aboutMe',
-      name: 'aboutMe',
-      component: () => import('../views/aboutMe.vue'),
+      path: '/memberList/:type/:id',
+      name: 'memberList',
+      component: () => import('../views/memberList.vue'),
     },
     {
       path: '/talkDetail',

+ 36 - 27
src/views/detail.vue

@@ -1,11 +1,19 @@
 <template>
   <div id="detail">
-    <cont-detail :menuList="menu" :sideMenu="sideMenu" :info="site" :backColor="backColor" :Color="Color" :detailInfo="detailInfo"></cont-detail>
+    <info-detail
+      :backColor="backColor"
+      :bordColor="bordColor"
+      :bordBottomColor="bordBottomColor"
+      :color="color"
+      :menuList="menu"
+      :info="site"
+      :contInfos="detailInfo"
+    ></info-detail>
   </div>
 </template>
 
 <script>
-import contDetail from '@/components/detail.vue';
+import infoDetail from '@/components/detail.vue';
 import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
@@ -17,26 +25,31 @@ export default {
   name: 'detail',
   props: {},
   components: {
-    contDetail,
+    infoDetail,
   },
   data: () => ({
+    backColor: '#0457c7',
+    bordColor: '#cccccc',
+    bordBottomColor: '#176ebb',
+    color: '#333333',
     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',
+      title: '吉林省高等学校毕业生就业信息网',
+      english: 'Jilin University Graduate Employment Guidance Center',
+      banner: require('@/assets/banner.jpg'),
+      logo: require('@/assets/logo.png'),
+      copyright: '吉ICP备09006292号-1 Copyright 2019 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
     },
-    backColor: '#0457c7',
-    Color: '#0457c7',
-    detailInfo: {},
-    menu: [],
-    site: {},
-    sideMenu: [],
+    contInfos: {
+      title: '我省成功举办全国高校就业指导人员培训(中级)班',
+      date: '2019-12-11',
+      url: require('@/assets/news.jpg'),
+      content: '9月16日-20日,由全国高等学校学生信息咨询与就业指导中心主办。',
+    },
+    menu: [], //菜单信息
+    site: {}, //站点信息
+    siteTitle: '',
+    sideMenu: [], //侧菜单
+    detailInfo: {}, //详情信息
   }),
   async created() {
     await this.toGetSite(); //获取主站信息
@@ -58,7 +71,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -68,13 +84,6 @@ export default {
           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;
-        }
       }
     },
     //菜单
@@ -146,4 +155,4 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="scss" scoped></style>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1650 - 0
src/views/fail.vue


+ 35 - 44
src/views/index.vue

@@ -2,22 +2,27 @@
   <div id="index">
     <index-detail
       :info="site"
+      :menuList="menu"
       :newsList="newsList"
-      :backColor="backColor"
-      :Color="Color"
-      :noticeList="noticeList"
+      :carouselList="carouselList"
+      :noticeNewsList="noticeList"
+      :zhidaoList="zhidaoList"
+      :lawList="lawList"
+      :serviceList="serviceList"
+      :hujiList="hujiList"
+      :xiazaiList="xiazaiList"
       :recruitList="jobinfoList"
-      :companyList="corpList"
-      :nativeList="linkList"
-      :menuList="menu"
+      :zixunList="zixunList"
+      :nativeList="nativeList"
+      :backColor="backColor"
     ></index-detail>
   </div>
 </template>
 
 <script>
 import indexDetail from '@/components/index.vue';
-import { mapActions, mapState } from 'vuex';
 import { urlList } from '@/config/url';
+import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
   metaInfo() {
@@ -32,36 +37,37 @@ export default {
   },
   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',
+      title: '吉林省高等学校毕业生就业信息网',
+      english: 'Jilin University Graduate Employment Guidance Center',
+      banner: require('@/assets/banner.jpg'),
+      logo: require('@/assets/logo.png'),
+      copyright: '吉ICP备09006292号-1 Copyright 2019 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
     },
     site: {}, //站点信息
     siteTitle: {}, //站点标题
     menu: [], //菜单
     modules: [], //模块
-    newsList: [], //新闻模块
-    noticeList: [], //公告模块
-    self1List: [], //自定义模块现在没用
-    self2List: [], //自定义模块现在没用
+    newsList: [],
+    carouselList: [], //图片新闻
+    noticeList: [], //通知公告+就业动态
+    zhidaoList: [], //就业指导
+    lawList: [], //政策法规
+    serviceList: [], //档案服务
+    hujiList: [], //户籍管理
+    xiazaiList: [], //下载专区
+    recruitList: [], //招聘信息
+    zixunList: [], //就业咨询
     jobinfoList: [], //招聘信息
-    linkList: urlList, //网站导航
-    corpList: [], //招聘企业
+    nativeList: urlList, //网站导航
+    memberList: [], //党员之家
     backColor: '#0457c7',
-    Color: '#0457c7',
   }),
   async created() {
     await this.toGetSite(); //获取主站信息
     this.loadMenu(); //获取菜单信息
     this.toGetModule(); //获取模块信息
     this.toGetJobInfo(); //获取招聘信息
-    this.toGetLinks(); //招聘信息+网站链接
+    // this.toGetLinks(); //招聘信息+网站链接
     // this.self();
   },
   computed: {},
@@ -70,7 +76,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -80,13 +89,6 @@ export default {
           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;
-        }
       }
     },
     //菜单
@@ -225,19 +227,8 @@ export default {
       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>
+<style lang="scss" scoped></style>

+ 4 - 8
src/views/list.vue

@@ -80,7 +80,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -90,13 +93,6 @@ export default {
           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;
-        }
       }
     },
     //菜单

+ 243 - 0
src/views/loading.vue

@@ -0,0 +1,243 @@
+<template>
+  <div id="loading">
+    <el-row>
+      <el-col :span="24" class="info">
+        <div class="page">
+          <div class="circle-loader">
+            <div class="circle-line">
+              <div class="circle circle-blue"></div>
+              <div class="circle circle-blue"></div>
+              <div class="circle circle-blue"></div>
+            </div>
+            <div class="circle-line">
+              <div class="circle circle-yellow"></div>
+              <div class="circle circle-yellow"></div>
+              <div class="circle circle-yellow"></div>
+            </div>
+            <div class="circle-line">
+              <div class="circle circle-red"></div>
+              <div class="circle circle-red"></div>
+              <div class="circle circle-red"></div>
+            </div>
+            <div class="circle-line">
+              <div class="circle circle-green"></div>
+              <div class="circle circle-green"></div>
+              <div class="circle circle-green"></div>
+            </div>
+          </div>
+          <div class="title">
+            站点信息加载中,请稍等!
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapActions, mapState } from 'vuex';
+import _ from 'lodash';
+export default {
+  metaInfo() {
+    return {
+      title: this.siteTitle ? this.siteTitle : '加载中',
+    };
+  },
+  name: 'loading',
+  props: {},
+  components: {},
+  data: () => ({}),
+  async created() {
+    await this.toGetSite(); //获取主站信息
+  },
+  computed: {},
+  methods: {
+    ...mapActions(['getSite']),
+    //站点信息
+    async toGetSite() {
+      let site = sessionStorage.getItem('site');
+      if (!site) {
+        let result = await this.getSite({ type: 'search' });
+        if (result.data === null) {
+          this.$router.push('/fail');
+        } else {
+          sessionStorage.setItem('site', JSON.stringify(result.data));
+          this.$router.push('/index');
+        }
+      } else {
+        this.$router.push('/index');
+      }
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.info {
+  width: 100%;
+  height: 100vh;
+}
+.title {
+  position: absolute;
+  top: 50%;
+  text-align: center;
+  font-size: 20px;
+  width: 100%;
+}
+.circle-loader {
+  display: block;
+  width: 64px;
+  height: 64px;
+  margin-left: -32px;
+  margin-top: -32px;
+  position: absolute;
+  left: 50%;
+  top: 40%;
+  -webkit-transform-origin: 16px 16px;
+  transform-origin: 16px 16px;
+  -webkit-animation: rotate-animation 5s infinite;
+  animation: rotate-animation 5s infinite;
+  -webkit-animation-timing-function: linear;
+  animation-timing-function: linear;
+}
+.circle-loader .circle {
+  -webkit-animation: move-animation 2.5s infinite;
+  animation: move-animation 2.5s infinite;
+  -webkit-animation-timing-function: linear;
+  animation-timing-function: linear;
+  position: absolute;
+  left: 50%;
+  top: 50%;
+}
+.circle-loader .circle-line {
+  width: 64px;
+  height: 24px;
+  position: absolute;
+  top: 4px;
+  left: 0;
+  -webkit-transform-origin: 4px 4px;
+  transform-origin: 4px 4px;
+}
+.circle-loader .circle-line:nth-child(0) {
+  -webkit-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+.circle-loader .circle-line:nth-child(1) {
+  -webkit-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.circle-loader .circle-line:nth-child(2) {
+  -webkit-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.circle-loader .circle-line:nth-child(3) {
+  -webkit-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.circle-loader .circle-line .circle:nth-child(1) {
+  width: 8px;
+  height: 8px;
+  top: 50%;
+  left: 50%;
+  margin-top: -4px;
+  margin-left: -4px;
+  border-radius: 4px;
+  -webkit-animation-delay: -0.3s;
+  animation-delay: -0.3s;
+}
+.circle-loader .circle-line .circle:nth-child(2) {
+  width: 16px;
+  height: 16px;
+  top: 50%;
+  left: 50%;
+  margin-top: -8px;
+  margin-left: -8px;
+  border-radius: 8px;
+  -webkit-animation-delay: -0.6s;
+  animation-delay: -0.6s;
+}
+.circle-loader .circle-line .circle:nth-child(3) {
+  width: 24px;
+  height: 24px;
+  top: 50%;
+  left: 50%;
+  margin-top: -12px;
+  margin-left: -12px;
+  border-radius: 12px;
+  -webkit-animation-delay: -0.9s;
+  animation-delay: -0.9s;
+}
+.circle-loader .circle-blue {
+  background-color: #1f4e5a;
+}
+.circle-loader .circle-red {
+  background-color: #ff5955;
+}
+.circle-loader .circle-yellow {
+  background-color: #ffb265;
+}
+.circle-loader .circle-green {
+  background-color: #00a691;
+}
+@-webkit-keyframes rotate-animation {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(360deg);
+    transform: rotate(360deg);
+  }
+}
+@keyframes rotate-animation {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(360deg);
+    transform: rotate(360deg);
+  }
+}
+@-webkit-keyframes move-animation {
+  0% {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(-64px, 0);
+    transform: translate(-64px, 0);
+  }
+  75% {
+    -webkit-transform: translate(32px, 0);
+    transform: translate(32px, 0);
+  }
+  100% {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+  }
+}
+@-webkit-keyframes move-animation {
+  0% {
+    -webkit-transform: translate(0, 0);
+  }
+}
+@keyframes move-animation {
+  0% {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(-64px, 0);
+    transform: translate(-64px, 0);
+  }
+  75% {
+    -webkit-transform: translate(32px, 0);
+    transform: translate(32px, 0);
+  }
+  100% {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+  }
+}
+</style>

+ 216 - 0
src/views/member.vue

@@ -0,0 +1,216 @@
+<template>
+  <div id="member">
+    <member-detail
+      :backColor="backColor"
+      :info="site"
+      :menuList="menu"
+      :messageInfo="messageInfo"
+      :carouselList="tupianList"
+      :newsList="newsList"
+      :rencaiList="rencaiList"
+      :dangjianList="dangjianList"
+      :yaowenList="yaowenList"
+      :dangguiList="dangguiList"
+      :zhishiList="zhishiList"
+      :zhunti="zhuantiList"
+      :tujiList="huodongList"
+    ></member-detail>
+  </div>
+</template>
+
+<script>
+import memberDetail from '@/components/member.vue';
+import { mapActions, mapState } from 'vuex';
+import _ from 'lodash';
+export default {
+  metaInfo() {
+    return {
+      title: this.siteTitle ? this.siteTitle : '就业信息网',
+    };
+  },
+  name: 'member',
+  props: {},
+  components: {
+    memberDetail,
+  },
+  data: () => ({
+    backColor: '#be0101',
+    info: {
+      title: '吉林省高等学校毕业生就业信息网',
+      banner: require('@/assets/memberBg.jpg'),
+      copyright: '吉ICP备09006292号-1 Copyright 2019 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
+    },
+    messageInfo: {
+      title: '市委常委会召开“不忘初心、牢记使命“专题民主生活会',
+      content: '吉林省高等学校毕业生就业信息网',
+    },
+    carouselList: [
+      {
+        url: require('@/assets/news.jpg'),
+        title: '吉林省高等学校毕业生就业信息网',
+      },
+    ],
+    tupianList: [], //高层声音中左侧图片新闻
+    newsList: [], //高层声音中右侧文字新闻列表
+    rencaiList: [], //人才建设
+    dangjianList: [], //党建综合
+    yaowenList: [], //党建要闻
+    dangguiList: [], //党规党章
+    zhishiList: [], //知识问答
+    zhuantiList: [], //专题学习
+    huodongList: [], //活动图集
+    site: {}, //站点信息
+    siteTitle: {}, //站点标题
+    menu: [], //菜单
+    modules: [], //模块
+  }),
+  async created() {
+    await this.toGetSite(); //获取主站信息
+    this.loadMenu(); //获取菜单信息
+    this.toGetModule(); //获取模块信息
+  },
+  computed: {},
+  methods: {
+    ...mapActions(['getSite', `getMenu`, 'getColumn', 'getModule', 'getNews', 'getJobInfo', 'getPosts', 'getLink']),
+    //站点信息
+    async toGetSite() {
+      let site = sessionStorage.getItem('site');
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
+        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);
+        }
+      }
+    },
+    //菜单
+    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 = `/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}`;
+            if (col.parent.includes('党员')) {
+              col.path = `/memberList/menu/${col.id}?title=${col.title}`;
+            }
+          }
+        }
+        return columns;
+      }
+    },
+    //模块
+    async loadModule() {
+      let modules = sessionStorage.getItem('modules');
+      for (const item of modules) {
+        if (item.category === 'member') {
+          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));
+      let object = {};
+      for (const item of modules) {
+        if (item.category === 'member') {
+          if (`${item.is_use}` === `0`) {
+            let res = await this.completeModules(item);
+            item.children = res;
+            object = item;
+          }
+        }
+      }
+      for (const item of object.children) {
+        this.$set(this, `${item.category}List`, item);
+      }
+    },
+    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 = `/memberList/module/${col.content_id}`;
+            col.children = await this.completeColumn(col);
+          } else if (col.type === `column`) {
+            col.path = `/memberList/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;
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 36 - 25
src/views/memberDetail.vue

@@ -1,11 +1,19 @@
 <template>
   <div id="memberDetail">
-    <cont-detail :title="title" :menuList="menu" :sideMenu="sideMenu" :info="site" :backColor="backColor" :Color="Color" :detailInfo="detailInfo"></cont-detail>
+    <member-info
+      :backColor="backColor"
+      :bordColor="bordColor"
+      :bordBottomColor="bordBottomColor"
+      :color="color"
+      :menuList="menu"
+      :info="site"
+      :contInfos="detailInfo"
+    ></member-info>
   </div>
 </template>
 
 <script>
-import contDetail from '@/components/memberDetail.vue';
+import memberInfo from '@/components/memberDetail.vue';
 import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
@@ -17,22 +25,29 @@ export default {
   name: 'memberDetail',
   props: {},
   components: {
-    contDetail,
+    memberInfo,
   },
   data: () => ({
+    backColor: '#be0101',
+    bordColor: '#be0101',
+    bordBottomColor: '#be0101',
+    color: '#be0101',
     info: {
-      src: require('@/assets/logo.png'),
-      phone: '0431-12345678',
-      footTitle: '吉ICP备09006292号-1 Copyright 2013 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
+      title: '吉林省高等学校毕业生就业信息网',
+      banner: require('@/assets/memberBg.jpg'),
+      copyright: '吉ICP备09006292号-1 Copyright 2019 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
     },
-    backColor: '#c81b15',
-    Color: '#c81b15',
-    detailInfo: {},
-    menu: [],
-    site: {},
-    sideMenu: [],
-    title: '党员之家',
-    siteTitle: '',
+    contInfos: {
+      title: '我省成功举办全国高校就业指导人员培训(中级)班',
+      date: '2019-12-11',
+      url: require('@/assets/news.jpg'),
+      content: '9月16日-20日,由全国高等学校学生信息咨询与就业指导中心主办。',
+    },
+    menu: [], //菜单信息
+    site: {}, //站点信息
+    siteTitle: '', //标题
+    sideMenu: [], //侧菜单
+    detailInfo: {}, //详情信息
   }),
   async created() {
     await this.toGetSite(); //获取主站信息
@@ -47,7 +62,6 @@ export default {
       let result = await this.getNews({ type: 'fetch', data: { id: this.$route.query.id } });
       if (`${result.errcode}` === '0') {
         this.$set(this, `detailInfo`, result.data);
-        this.getSubMenu();
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
@@ -55,7 +69,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -65,13 +82,6 @@ export default {
           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;
-        }
       }
     },
     //菜单
@@ -81,6 +91,7 @@ export default {
         this.$set(this, `menu`, JSON.parse(menu));
         await this.finishedMenu();
       } else this.toGetMenu();
+      this.getSubMenu();
     },
     async toGetMenu() {
       let result = await this.getMenu({ type: `list` });
@@ -131,7 +142,7 @@ export default {
       } else {
         let res = this.menu.filter(fil => {
           if (fil.children) {
-            let res = fil.children.filter(filc => filc.id === this.detailInfo.parent_id);
+            let res = fil.children.filter(filc => filc.id === this.id);
             return res.length > 0;
           } else return false;
         });
@@ -142,4 +153,4 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="scss" scoped></style>

+ 95 - 63
src/views/memberList.vue

@@ -1,22 +1,11 @@
 <template>
   <div id="memberList">
-    <member-detail
-      :info="site"
-      :menuList="menu"
-      :sideMenu="sideMenu"
-      @search="toGetNews"
-      :Color="Color"
-      :backColor="backColor"
-      :newsList="newsList"
-      :total="total"
-      :title="title"
-      :listSpan="listSpan"
-    ></member-detail>
+    <member-lists :backColor="backColor" :info="site" :menuList="menu" :rightList="rightList" @search="toGetNews" :total="total" :title="title"></member-lists>
   </div>
 </template>
 
 <script>
-import memberDetail from '@/components/memberList.vue';
+import memberLists from '@/components/memberList.vue';
 import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
@@ -28,33 +17,26 @@ export default {
   name: 'memberList',
   props: {},
   components: {
-    memberDetail,
+    memberLists,
   },
   data: () => ({
+    backColor: '#be0101',
     info: {
-      src: require('@/assets/logo.png'),
-      phone: '0431-12345678',
-      footTitle: '吉ICP备09006292号-1 Copyright 2013 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
+      title: '吉林省高等学校毕业生就业信息网',
+      banner: require('@/assets/memberBg.jpg'),
+      copyright: '吉ICP备09006292号-1 Copyright 2019 版权所有 吉林省高等学校毕业生就业指导中心 All Rights Reserved',
     },
-    Color: '#c81b15',
-    backColor: '#c81b15',
-    rightList: [
-      {
-        title: '我省成功举办“创业有我•就在吉林',
-        date: '2019-12-03',
-        content: '我省成功举办“创业有我•就在吉林我省成功举办“创业有我•就在吉林',
-      },
-    ],
-    newsList: [],
+    rightList: [],
+    site: {}, //站点信息
+    siteTitle: '', //站点标题
+    menu: [], //菜单
+    modules: [], //模块
     total: 0,
-    menu: [],
-    sideMenu: [],
-    site: {},
-    siteTitle: '',
   }),
   async created() {
     await this.toGetSite(); //获取主站信息
-    await this.loadMenu(); //获取菜单信息
+    this.loadMenu(); //获取菜单信息
+    // this.toGetModule(); //获取模块信息
     this.toGetNews(); //获取数据
   },
   computed: {
@@ -77,11 +59,14 @@ export default {
     title: 'getSubMenu',
   },
   methods: {
-    ...mapActions(['getSite', 'getMenu', 'getColumn', 'getNews']),
+    ...mapActions(['getSite', `getMenu`, 'getColumn', 'getModule', 'getNews', 'getJobInfo', 'getPosts', 'getLink']),
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -91,13 +76,6 @@ export default {
           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;
-        }
       }
     },
     //菜单
@@ -105,14 +83,14 @@ export default {
       let menu = sessionStorage.getItem('menu');
       if (menu) {
         this.$set(this, `menu`, JSON.parse(menu));
-        await this.finishedMenu();
+        this.finishedMenu();
+        return;
       } else this.toGetMenu();
-      this.getSubMenu();
     },
     async toGetMenu() {
       let result = await this.getMenu({ type: `list` });
       if (result.errcode === 0) {
-        sessionStorage.setItem('menu', JSON.stringify(result.data));
+        // sessionStorage.setItem('menu', JSON.stringify(result.data));
         this.$set(this, `menu`, result.data);
         this.finishedMenu();
       }
@@ -121,7 +99,7 @@ export default {
       let menus = JSON.parse(JSON.stringify(this.menu));
       for (const item of menus) {
         if (item.type === 'content') {
-          item.path = `/detail/${item.content_id}`;
+          item.path = `/detail?id=${item.content_id}`;
         } else if (item.type !== 'url') {
           let res = await this.completeMenu(item);
           item.children = res;
@@ -149,22 +127,76 @@ export default {
         return columns;
       }
     },
-    //侧菜单
-    getSubMenu() {
-      let data;
-      if (this.type === `module`) {
-        data = sessionStorage.getItem(`modules`);
-        this.$set(this, `sideMenu`, []);
-      } else {
-        let res = this.menu.filter(fil => {
-          if (fil.children) {
-            let res = fil.children.filter(filc => filc.id === this.id);
-            return res.length > 0;
-          } else return false;
-        });
-        this.$set(this, `sideMenu`, res.length > 0 ? res[0].children : []);
-      }
-    },
+    //模块
+    // async loadModule() {
+    //   let modules = sessionStorage.getItem('modules');
+    //   for (const item of modules) {
+    //     if (item.category === 'member') {
+    //       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));
+    //   let object = {};
+    //   for (const item of modules) {
+    //     if (item.category === 'member') {
+    //       if (`${item.is_use}` === `0`) {
+    //         let res = await this.completeModules(item);
+    //         item.children = res;
+    //         object = item;
+    //       }
+    //     }
+    //   }
+    //   for (const item of object.children) {
+    //     this.$set(this, `${item.category}List`, item);
+    //   }
+    // },
+    // 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 = `/memberList/module/${col.content_id}`;
+    //         col.children = await this.completeColumn(col);
+    //       } else if (col.type === `column`) {
+    //         col.path = `/memberList/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 toGetNews({ skip = 0, limit = 8 } = {}) {
       let result = await this.getNews({ type: 'list', data: { parent_id: this.id, skip: skip, limit: limit } });
@@ -175,11 +207,11 @@ export default {
           if (info.errcode === 0) item.content = info.data.content;
           this.$set(this, `total`, result.total);
         }
-        this.$set(this, `newsList`, result.data);
+        this.$set(this, `rightList`, result.data);
       }
     },
   },
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="scss" scoped></style>

+ 4 - 8
src/views/newsList.vue

@@ -80,7 +80,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -90,13 +93,6 @@ export default {
           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;
-        }
       }
     },
     //菜单

+ 4 - 8
src/views/recruit/corp.vue

@@ -56,7 +56,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -66,13 +69,6 @@ export default {
           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;
-        }
       }
     },
     //菜单

+ 5 - 18
src/views/recruit/jobfair.vue

@@ -42,16 +42,7 @@ export default {
     },
     jobfairInfo: {},
     corpList: [],
-    jobsList: [
-      {
-        job_name: '测试测试测试',
-        salary: '测试测试测试',
-        job_number: '2',
-        zy_req: '计算机专业',
-        xl_req: '本科及以上',
-        city: '长春市',
-      },
-    ],
+    jobsList: [],
     list: [],
     menu: [],
     site: {},
@@ -100,7 +91,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -110,13 +104,6 @@ export default {
           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;
-        }
       }
     },
     //菜单

+ 4 - 8
src/views/recruit/jobinfo.vue

@@ -62,7 +62,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -72,13 +75,6 @@ export default {
           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;
-        }
       }
     },
     //菜单

+ 4 - 8
src/views/recruit/jobs.vue

@@ -77,7 +77,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -87,13 +90,6 @@ export default {
           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;
-        }
       }
     },
     //菜单

+ 4 - 9
src/views/recruit/talk.vue

@@ -52,7 +52,6 @@ export default {
       //1直接拿着参数发送请求
       let result = await this.getTalk({ type: 'fetch', data: { id: this.$route.query.id } });
       if (`${result.errcode}` === '0') {
-        console.log(result.data);
         this.$set(this, `talkInfo`, result.data);
         this.searchJobs();
       } else {
@@ -73,7 +72,10 @@ export default {
     //站点信息
     async toGetSite() {
       let site = sessionStorage.getItem('site');
-      if (!site) {
+      if (site) {
+        this.$set(this, `site`, JSON.parse(site));
+        this.$set(this, `siteTitle`, this.site.name);
+      } else {
         let result = await this.getSite({ type: 'search' });
         if (result.errcode === 0) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
@@ -83,13 +85,6 @@ export default {
           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;
-        }
       }
     },
     //菜单