index.vue 7.2 KB

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