index.vue 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <template>
  2. <view class="index">
  3. <!-- <view class="index-head"></view> -->
  4. <view class="index-header">
  5. <view class="index-header-container">
  6. <view class="index-header-left"></view>
  7. <view class="index-header-right"></view>
  8. <view class="index-header-top">
  9. <u-search placeholder="请输入您关键词" v-model="headerTopKeyword" :show-action="false" class="header-top-usearch"></u-search>
  10. <view class="header-top-notice" @tap="openPage('pages/notification/notification')" >
  11. <u-icon name="bell" color="#FFFFFF" size="48"></u-icon>
  12. <u-badge size="mini" type="error" count="7" :absolute="false" class="header-top-notice-badge"></u-badge>
  13. </view>
  14. <view class="header-top-scan">
  15. <u-icon name="scan" color="#FFFFFF" size="48" class="header-scan-icon"></u-icon>
  16. </view>
  17. </view>
  18. <view class="index-header-banner">
  19. <u-swiper
  20. :list="bannerList"
  21. name="bannerUrl"
  22. border-radius="0"
  23. mode="round"
  24. height="440"
  25. img-mode="scaleToFill"
  26. @click="swiperClick"
  27. ></u-swiper>
  28. </view>
  29. </view>
  30. </view>
  31. <!-- 滚动通知 -->
  32. <view class="notice">
  33. <u-notice-bar mode="horizontal" type="none" :list="noticeList" bg-color="#fff" duration="1000"/>
  34. </view>
  35. <!-- 宫格 -->
  36. <view class="service">
  37. <view class="service-body u-flex u-flex-wrap u-row-left">
  38. <!-- <view class="service-item" @click="openPage('pages/policyNews/policyNews')"> -->
  39. <view class="service-item" @click="openPage('pages/policyInfo/policyInfo')">
  40. <image class="service-item-img" src="../../static/img/index-service-01.png" mode="aspectFill"></image>
  41. <view class="service-item-text">政策资讯</view>
  42. </view>
  43. <view class="service-item" @click="openPage('pages/recruitment/recruitment')" >
  44. <image class="service-item-img" src="../../static/img/index-service-02.png" mode="aspectFill"></image>
  45. <view class="service-item-text">招聘就业</view>
  46. </view>
  47. <view class="service-item" @click="openPage('pages/cooperativeEnterprise/cooperativeEnterprise')" >
  48. <image class="service-item-img" src="../../static/img/index-service-03.png" mode="aspectFill"></image>
  49. <view class="service-item-text">合作企业</view>
  50. </view>
  51. <view class="service-item" @click="openPage('pages/schools/schools')" >
  52. <image class="service-item-img" src="../../static/img/index-service-04.png" mode="aspectFill"></image>
  53. <view class="service-item-text">合作院校</view>
  54. </view>
  55. <view class="service-item" @click="openPage('pages/skillsTraining/skillsTraining')" >
  56. <image class="service-item-img" src="../../static/img/index-service-05.png" mode="aspectFill"></image>
  57. <view class="service-item-text">技能培训</view>
  58. </view>
  59. <view class="service-item" @click="openPage('pages/basicTraining/basicTraining')" >
  60. <image class="service-item-img" src="../../static/img/index-service-06.png" mode="aspectFill"></image>
  61. <view class="service-item-text">适应性培训</view>
  62. </view>
  63. <view class="service-item" @click="openPage('pages/upgrade/upgrade/upgrade')" >
  64. <image class="service-item-img" src="../../static/img/index-service-07.png" mode="aspectFill"></image>
  65. <view class="service-item-text">学历提升</view>
  66. </view>
  67. <view class="service-item" @click="openPage('pages/inbuild/inbuild','创业指引')" >
  68. <image class="service-item-img" src="../../static/img/index-service-08.png" mode="aspectFill"></image>
  69. <view class="service-item-text">创业指导</view>
  70. </view>
  71. </view>
  72. </view>
  73. <!-- 新闻动态 -->
  74. <view class="news">
  75. <u-card class="news-list"
  76. :body-style="{'padding-top':0}"
  77. :border="false"
  78. :foot-border-top="false"
  79. :head-border-bottom="false"
  80. :full="true"
  81. :border-radius="10"
  82. margin="0"
  83. >
  84. <view class="news-list-head" slot="head">
  85. <view class="news-list-head-item">
  86. <view class="card-head-title">新闻动态</view>
  87. <view @click="openPage('/pages/newsInformation/newsInformation')">更多<u-icon name="arrow-right" color="#A3A3A3"></u-icon></view>
  88. </view>
  89. </view>
  90. <view class="news-list-body" slot="body">
  91. <u-nodata notice="暂无新闻" v-if="newsList.length==0"></u-nodata>
  92. <view
  93. v-for="(item,index) in newsList"
  94. @click="$u.route('/pages/newsDetails/newsDetails',{artId:item.artId})"
  95. :key="item.artId"
  96. class="news-list-body-item u-body-item u-flex u-border-bottom u-col-between u-row-between"
  97. >
  98. <view class="news-text">
  99. <view class="news-text-title u-body-item-title u-line-2">{{item.artTitle}}</view>
  100. <view class="news-text-foot foot u-flex u-flex-wrap">
  101. <view>{{item.artCategoryName}}</view>
  102. <view>{{$u.timeFormat(item.createTime.replace(/-/g, '/'), 'mm-dd hh:MM')}}</view>
  103. </view>
  104. </view>
  105. <image :src="item.artImage" mode="aspectFill"></image>
  106. </view>
  107. </view>
  108. </u-card>
  109. </view>
  110. <!-- ########################## -- 底部导航栏 -- ################################ -->
  111. <u-tabbar
  112. :list="tabbarConfig.tabbarList"
  113. :height="tabbarConfig.height"
  114. :mid-button="tabbarConfig.midButton"
  115. :inactive-color="tabbarConfig.inactiveColor"
  116. :active-color="tabbarConfig.activeColor"
  117. :mid-button-size="tabbarConfig.midButtonSize"
  118. />
  119. </view>
  120. </template>
  121. <script>
  122. import tabbarconfig from 'tabbarconfig.js';
  123. export default {
  124. data() {
  125. return {
  126. headerTopKeyword: '',
  127. paginationConfig:{
  128. pageNo: 1,
  129. pageSize: 10
  130. },
  131. // 轮播图
  132. bannerList: [],
  133. // 新闻列表
  134. newsList:[],
  135. // 消息通知
  136. noticeList:['贵州轮胎股份有限公司对您感兴趣,为您提供了职位。' , '您有一个面试邀请', '到你面试了'],
  137. tabbarConfig: tabbarconfig
  138. }
  139. },
  140. onLoad() {
  141. // console.log(this.$u.config.v);
  142. },
  143. onShow() {
  144. this.getBannerList();
  145. this.getNewsList();
  146. },
  147. methods: {
  148. /**
  149. * 打开新页面
  150. * @param {String} path 跳转路径
  151. * */
  152. openPage(path, msg) {
  153. let tempRoute = {
  154. url: path
  155. };
  156. if (msg) {
  157. tempRoute.params = {
  158. msg: msg
  159. };
  160. }
  161. this.$u.route(tempRoute);
  162. },
  163. getNewsList(){
  164. let params ={
  165. // artCategoryId:2,
  166. pageNum: 1,
  167. pageSize: 10
  168. }
  169. this.$u.api.getIndexNewsList(params)
  170. .then(res=>{
  171. if(!res) return;
  172. if(res?.code==200){
  173. this.newsList = res.rows;
  174. }else{
  175. uni.showToast({
  176. icon: 'none',
  177. type: 'error',
  178. title:res.msg
  179. })
  180. }
  181. // console.log('newsList',JSON.parse(JSON.stringify(res.rows)));
  182. })
  183. },
  184. getBannerList(){
  185. this.$u.api.getIndexBannerList()
  186. .then(res=>{
  187. if(!res) return;
  188. this.bannerList = res?.data || [];
  189. this.bannerList = [];
  190. this.bannerList.push(
  191. {
  192. bannerUrl: 'https://img.xiaopiu.com/userImages/img3072177d2e954f8.jpg',
  193. content: '<p>代码固定测试内容999998</p>',
  194. id: "999998",
  195. name: "代码固定测试999998"
  196. }
  197. );
  198. this.bannerList.push(
  199. {
  200. bannerUrl: 'https://img.xiaopiu.com/userImages/img14661769874c088.jpg',
  201. content: '<p>代码固定测试内容999999</p>',
  202. id: "999999",
  203. name: "代码固定测试999999"
  204. }
  205. );
  206. })
  207. },
  208. // 轮播图点击
  209. swiperClick (index) {
  210. // console.log('swiperClick',index);
  211. if(this.bannerList[index].jumpUrl){
  212. let url = this.bannerList[index].jumpUrl.split('#')[1];
  213. this.$u.route({
  214. url: url,
  215. });
  216. }else{
  217. this.$u.route({
  218. url: 'pages/bannerDetails/bannerDetails',
  219. params: {
  220. id: this.bannerList[index].id
  221. }
  222. })
  223. }
  224. },
  225. noticeClick(e){
  226. console.log('e',e)
  227. this.openPage('pages/inbuild/inbuild','我的消息')
  228. }
  229. }
  230. }
  231. </script>
  232. <style lang="scss" scoped>
  233. @import "./index.scss";
  234. </style>