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

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
8 months ago
10 months ago
10 months ago
10 months ago
8 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 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>