特易招,招聘小程序
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.

219 lines
4.4 KiB

4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
2 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months 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="toAdd"
  45. v-if="role">
  46. <view class="left">
  47. 发布
  48. </view>
  49. <view class="center">
  50. <image src="/static/image/home/c.png" mode=""></image>
  51. </view>
  52. <view class="right">
  53. 招工
  54. </view>
  55. </view>
  56. <checkinScore ref="checkinScore"/>
  57. <PrivacyAgreementPoup/>
  58. <tabber select="0"/>
  59. </view>
  60. </template>
  61. <script>
  62. import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
  63. import workList from '@/components/list/workList/index.vue'
  64. import userList from '@/components/list/userList/index.vue'
  65. import tabber from '@/components/base/tabbar.vue'
  66. import screenWork from '@/components/screen/screenWork.vue'
  67. import checkinScore from '@/components/checkinScore.vue'
  68. import { mapState } from 'vuex'
  69. export default {
  70. components : {
  71. PrivacyAgreementPoup,
  72. workList,
  73. tabber,
  74. screenWork,
  75. userList,
  76. checkinScore,
  77. },
  78. computed: {
  79. ...mapState([
  80. 'userInfo',
  81. 'role',
  82. 'banner',
  83. 'jobTypeList'
  84. ]),
  85. },
  86. data() {
  87. return {
  88. productList: [],
  89. keyword : '',
  90. }
  91. },
  92. // onPullDownRefresh(){
  93. // this.$refs.videoList.queryVideoList()
  94. // this.queryBannerList()
  95. // },
  96. // 页面显示的时候触发
  97. onShow() {
  98. this.$refs.workList.getData()
  99. this.$store.commit('getBanner')
  100. },
  101. //滚动到屏幕底部
  102. onReachBottom() {
  103. this.$refs.workList.loadMoreData()
  104. },
  105. methods: {
  106. clickItem(result){
  107. console.log(result);
  108. this.$refs.workList.getData(result)
  109. },
  110. toAdd(){
  111. if(this.role){
  112. this.$utils.navigateTo('/pages_order/work/jobPosting')
  113. }else{
  114. this.$utils.navigateTo('/pages_order/work/addResume')
  115. }
  116. },
  117. }
  118. }
  119. </script>
  120. <style scoped lang="scss">
  121. .page{
  122. .banner{
  123. position: relative;
  124. background-color: $uni-color;
  125. .top{
  126. position: absolute;
  127. top: 190rpx;
  128. left:00rpx;
  129. padding-top: 30rpx;
  130. display: flex;
  131. width: 100%;
  132. flex-direction: column;
  133. align-items: center;
  134. .search{
  135. width: 700rpx;
  136. /deep/ .uv-search__content__icon{
  137. padding: 10rpx 0;
  138. }
  139. }
  140. .title{
  141. image{
  142. width: 600rpx;
  143. height: 300rpx;
  144. }
  145. }
  146. }
  147. }
  148. .box{
  149. position: fixed;
  150. left: 50%;
  151. background: $uni-color;
  152. bottom: calc(env(safe-area-inset-bottom) + 150rpx);
  153. color: #fff;
  154. display: flex;
  155. justify-content: center;
  156. align-items: center;
  157. transform: translate(-50%);
  158. border-radius: 20rpx;
  159. height: 80rpx;
  160. font-size: 28rpx;
  161. image{
  162. width: 100%;
  163. height: 100%;
  164. border-radius: 50%;
  165. }
  166. .left{
  167. padding-left: 30rpx;
  168. }
  169. .center{
  170. width: 100rpx;
  171. height: 100rpx;
  172. border-radius: 50%;
  173. background: $uni-color;
  174. margin: 0 20rpx;
  175. margin-top: -30rpx;
  176. box-shadow: 0 0 4rpx 4rpx #ffffff;
  177. }
  178. .right{
  179. padding-right: 30rpx;
  180. }
  181. }
  182. .content{
  183. position: relative;
  184. margin-top: -60rpx;
  185. .grid{
  186. padding-bottom: 30rpx;
  187. background-color: #fff;
  188. // border-radius: 60rpx;
  189. border-top-left-radius: 60rpx;
  190. border-top-right-radius: 60rpx;
  191. // box-shadow: 0 -10rpx 10rpx 10rpx #00000013;
  192. .grid-icon{
  193. width: 80rpx;
  194. height: 80rpx;
  195. margin-bottom: 10rpx;
  196. margin-top: 30rpx;
  197. }
  198. .grid-text{
  199. font-size: 24rpx;
  200. font-weight: 900;
  201. }
  202. }
  203. }
  204. }
  205. </style>