特易招,招聘小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

208 lines
4.1 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <view class="page">
  3. <view class="banner">
  4. <uv-swiper
  5. :list="banner"
  6. indicator
  7. height="620rpx"
  8. keyName="image"></uv-swiper>
  9. <!-- indicatorStyle="bottom: 100rpx;" -->
  10. <view class="top">
  11. <view class="search">
  12. <uv-search
  13. placeholder="请输入岗位/公司名称"
  14. :showAction="false"
  15. search-icon-size="40rpx"
  16. @search="search"
  17. v-model="keyword"></uv-search>
  18. </view>
  19. </view>
  20. </view>
  21. <!-- 工人看到的 -->
  22. <view class="content"
  23. v-if="!role">
  24. <view class="grid">
  25. <uv-grid :border="false"
  26. :col="5">
  27. <!-- @click="$utils.navigateTo('/pages_order/work/workList?id=' + item.id)" -->
  28. <uv-grid-item
  29. v-for="(item,index) in jobTypeList"
  30. :key="index">
  31. <image class="grid-icon" :src="item.image" mode="aspectFill"></image>
  32. <text class="grid-text">{{item.name}}</text>
  33. </uv-grid-item>
  34. </uv-grid>
  35. </view>
  36. </view>
  37. <!-- 筛选器 -->
  38. <screenWork @clickItem="clickItem"/>
  39. <!-- 老板看到的 -->
  40. <userList ref="workList" v-if="role"/>
  41. <!-- 工人看到的 -->
  42. <workList ref="workList" v-else/>
  43. <view class="box"
  44. @click="$utils.navigateTo('/pages_order/work/jobPosting')">
  45. <view class="left">
  46. 发布
  47. </view>
  48. <view class="center">
  49. <image src="/static/image/home/c.png" mode=""></image>
  50. </view>
  51. <view class="right">
  52. {{ role ? '招工' : '找活' }}
  53. </view>
  54. </view>
  55. <PrivacyAgreementPoup/>
  56. <tabber select="0"/>
  57. </view>
  58. </template>
  59. <script>
  60. import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
  61. import workList from '@/components/list/workList/index.vue'
  62. import userList from '@/components/list/userList/index.vue'
  63. import tabber from '@/components/base/tabbar.vue'
  64. import screenWork from '@/components/screen/screenWork.vue'
  65. import {
  66. mapState,
  67. } from 'vuex'
  68. export default {
  69. components : {
  70. PrivacyAgreementPoup,
  71. workList,
  72. tabber,
  73. screenWork,
  74. userList
  75. },
  76. computed: {
  77. ...mapState([
  78. 'userInfo',
  79. 'role',
  80. 'banner',
  81. 'jobTypeList'
  82. ]),
  83. },
  84. data() {
  85. return {
  86. productList: [],
  87. keyword : '',
  88. }
  89. },
  90. // onPullDownRefresh(){
  91. // this.$refs.videoList.queryVideoList()
  92. // this.queryBannerList()
  93. // },
  94. // 页面显示的时候触发
  95. onShow() {
  96. this.$refs.workList.getData()
  97. this.$store.commit('getBanner')
  98. },
  99. //滚动到屏幕底部
  100. onReachBottom() {
  101. this.$refs.workList.loadMoreData()
  102. },
  103. methods: {
  104. clickItem(){
  105. },
  106. }
  107. }
  108. </script>
  109. <style scoped lang="scss">
  110. .page{
  111. .banner{
  112. position: relative;
  113. background-color: $uni-color;
  114. .top{
  115. position: absolute;
  116. top: 190rpx;
  117. left:00rpx;
  118. padding-top: 30rpx;
  119. display: flex;
  120. width: 100%;
  121. flex-direction: column;
  122. align-items: center;
  123. .search{
  124. width: 700rpx;
  125. /deep/ .uv-search__content__icon{
  126. padding: 10rpx 0;
  127. }
  128. }
  129. .title{
  130. image{
  131. width: 600rpx;
  132. height: 300rpx;
  133. }
  134. }
  135. }
  136. }
  137. .box{
  138. position: fixed;
  139. left: 50%;
  140. background: $uni-color;
  141. bottom: calc(env(safe-area-inset-bottom) + 150rpx);
  142. color: #fff;
  143. display: flex;
  144. justify-content: center;
  145. align-items: center;
  146. transform: translate(-50%);
  147. border-radius: 20rpx;
  148. height: 80rpx;
  149. font-size: 28rpx;
  150. image{
  151. width: 100%;
  152. height: 100%;
  153. border-radius: 50%;
  154. }
  155. .left{
  156. padding-left: 30rpx;
  157. }
  158. .center{
  159. width: 100rpx;
  160. height: 100rpx;
  161. border-radius: 50%;
  162. background: $uni-color;
  163. margin: 0 20rpx;
  164. margin-top: -30rpx;
  165. box-shadow: 0 0 4rpx 4rpx #ffffff;
  166. }
  167. .right{
  168. padding-right: 30rpx;
  169. }
  170. }
  171. .content{
  172. position: relative;
  173. margin-top: -60rpx;
  174. .grid{
  175. padding-bottom: 30rpx;
  176. background-color: #fff;
  177. // border-radius: 60rpx;
  178. border-top-left-radius: 60rpx;
  179. border-top-right-radius: 60rpx;
  180. // box-shadow: 0 -10rpx 10rpx 10rpx #00000013;
  181. .grid-icon{
  182. width: 80rpx;
  183. height: 80rpx;
  184. margin-bottom: 10rpx;
  185. margin-top: 30rpx;
  186. }
  187. .grid-text{
  188. font-size: 24rpx;
  189. font-weight: 900;
  190. }
  191. }
  192. }
  193. }
  194. </style>