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

503 lines
13 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
5 months ago
8 months ago
5 months ago
5 months ago
8 months ago
5 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
6 months ago
5 months ago
6 months ago
5 months ago
5 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
5 months ago
5 months ago
8 months ago
5 months ago
8 months ago
8 months ago
5 months ago
5 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
6 months ago
5 months ago
8 months ago
5 months ago
8 months ago
6 months ago
5 months ago
6 months ago
6 months ago
8 months ago
5 months ago
6 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. <template>
  2. <view class="page">
  3. <navbar bgColor="#3796F8"/>
  4. <view class="head">
  5. <!-- 未登录状态 -->
  6. <template v-if="!isLoggedIn">
  7. <view class="headImage">
  8. <image src="/static/image/center/headImage.png" mode=""></image>
  9. </view>
  10. <view class="info">
  11. <view class="name">
  12. 未登录用户
  13. </view>
  14. <view class="tips">
  15. 请先登录以查看个人信息
  16. </view>
  17. </view>
  18. <view class="loginBtn" @click="$utils.toLogin()">
  19. 登录
  20. </view>
  21. </template>
  22. <!-- 已登录状态 -->
  23. <template v-else>
  24. <view class="headImage">
  25. <image :src="headImage" mode=""></image>
  26. </view>
  27. <view class="info">
  28. <view class="name"
  29. @click="$utils.navigateTo('/pages_order/mine/updateUser?back=true')">
  30. {{username}}
  31. <view>
  32. <uv-icon name="edit-pen" size="40rpx" color="#fff"></uv-icon>
  33. 修改资料
  34. </view>
  35. </view>
  36. <view class="tips">
  37. 手机号{{phone}}
  38. </view>
  39. <view>
  40. {{ UserExtensionInfo.vipType || '' }}
  41. </view>
  42. </view>
  43. </template>
  44. <!-- <view class="setting">
  45. <uv-icon name="setting" size="40rpx"></uv-icon>
  46. </view> -->
  47. </view>
  48. <!-- 酒店 -->
  49. <view class="user">
  50. <!-- 实名认证 - 仅登录后显示 -->
  51. <template v-if="isLoggedIn">
  52. <view class="auth" v-if="UserExtensionInfo.personAuthenticationStatus != '1'"
  53. @click="$utils.navigateTo('/pages_order/auth/certification')">
  54. <uv-cell
  55. icon="setting-fill"
  56. title="完成实名认证,信息优先推荐!"
  57. value="去认证"
  58. isLink></uv-cell>
  59. </view>
  60. <view class="auth" v-else
  61. @click="$utils.navigateTo('/pages_order/auth/certification')">
  62. <uv-cell
  63. icon="setting-fill"
  64. title="您已完成实名认证!"
  65. value="去查看"
  66. isLink></uv-cell>
  67. </view>
  68. </template>
  69. <!-- 轮播图 -->
  70. <view class="swipe">
  71. <uv-swiper
  72. :list="bannerList"
  73. indicator
  74. height="220rpx"
  75. keyName="image"></uv-swiper>
  76. </view>
  77. <!-- 数据统计 - 仅登录后显示 -->
  78. <view class="line" v-if="isLoggedIn">
  79. <view class="item"
  80. @click="$utils.navigateTo('/pages_order/mine/InvitationCredit')">
  81. <view class="">
  82. {{UserExtensionInfo.integerNum || 0}}
  83. </view>
  84. <view class="">
  85. 我的积分
  86. </view>
  87. </view>
  88. <!-- <view class="item">
  89. <view class="">
  90. 30000
  91. </view>
  92. <view class="">
  93. 临时积分
  94. </view>
  95. </view> -->
  96. <view class="item"
  97. @click="$utils.navigateTo('/pages_order/mine/collect')">
  98. <view class=""
  99. v-if="role">
  100. {{UserExtensionInfo.resumeCollectionNum || 0 }}
  101. </view>
  102. <view class=""
  103. v-else>
  104. {{ UserExtensionInfo.jobCollectionNum || 0 }}
  105. </view>
  106. <view class="">
  107. 我的收藏
  108. </view>
  109. </view>
  110. <view class="item"
  111. @click="$utils.navigateTo('/pages_order/mine/contactRecord')">
  112. <view class=""
  113. v-if="role">
  114. {{ (UserExtensionInfo.resumecheckNumBoss || 0) +
  115. (UserExtensionInfo.jobCheckNumBoss || 0)
  116. }}
  117. </view>
  118. <view class=""
  119. v-else>
  120. {{ (UserExtensionInfo.jobcheckNumEmployee || 0) +
  121. (UserExtensionInfo.resumecheckNumEmployee || 0)
  122. }}
  123. </view>
  124. <view class="">
  125. 联系记录
  126. </view>
  127. </view>
  128. </view>
  129. <!-- 未登录提示 -->
  130. <view class="line login-tip" v-if="!isLoggedIn">
  131. <view class="tip-content">
  132. <text>登录后可查看个人数据</text>
  133. <button class="login-tip-btn" @click="$utils.toLogin()">立即登录</button>
  134. </view>
  135. </view>
  136. <view class="line grid">
  137. <view class="title">
  138. 我的工作
  139. </view>
  140. <uv-grid :col="4" :border="false">
  141. <uv-grid-item
  142. v-if="!role && isLoggedIn"
  143. @click="toAddResume">
  144. <image class="image" src="/static/image/center/a1.png" mode=""></image>
  145. <text class="grid-text">在线简历</text>
  146. </uv-grid-item>
  147. <uv-grid-item
  148. v-if="role && isLoggedIn"
  149. @click="$utils.navigateTo('/pages_order/mine/releaseWork')">
  150. <image class="image" src="/static/image/center/a1.png" mode=""></image>
  151. <text class="grid-text">{{ role ? '我的招工' : '我的找活'}}</text>
  152. </uv-grid-item>
  153. <uv-grid-item
  154. v-if="!isLoggedIn"
  155. @click="$utils.toLogin()">
  156. <image class="image" src="/static/image/center/a1.png" mode=""></image>
  157. <text class="grid-text">在线简历</text>
  158. </uv-grid-item>
  159. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/seeMy') : $utils.toLogin()">
  160. <image class="image" src="/static/image/center/a2.png" mode=""></image>
  161. <text class="grid-text">谁看过我</text>
  162. </uv-grid-item>
  163. </uv-grid>
  164. </view>
  165. <view class="line grid">
  166. <view class="title">
  167. 我的服务
  168. </view>
  169. <uv-grid :col="4" :border="false">
  170. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/MemberRecharge') : $utils.toLogin()">
  171. <image class="image" src="/static/image/center/1.png" mode=""></image>
  172. <text class="grid-text">会员充值</text>
  173. </uv-grid-item>
  174. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/GainPoints') : $utils.toLogin()">
  175. <image class="image" src="/static/image/center/4.png" mode=""></image>
  176. <text class="grid-text">获取积分</text>
  177. </uv-grid-item>
  178. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/IntegralRecord') : $utils.toLogin()">
  179. <image class="image" src="/static/image/center/5.png" mode=""></image>
  180. <text class="grid-text">积分记录</text>
  181. </uv-grid-item>
  182. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/auth/certificationEnterprise') : $utils.toLogin()"
  183. v-if="role || !isLoggedIn">
  184. <image class="image" src="/static/image/center/6.png" mode=""></image>
  185. <text class="grid-text">企业认证</text>
  186. </uv-grid-item>
  187. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/auth/certification') : $utils.toLogin()"
  188. v-if="!role || !isLoggedIn">
  189. <image class="image" src="/static/image/center/6.png" mode=""></image>
  190. <text class="grid-text">实名认证</text>
  191. </uv-grid-item>
  192. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/enterpriseInfo') : $utils.toLogin()"
  193. v-if="role || !isLoggedIn">
  194. <image class="image" src="/static/image/center/6.png" mode=""></image>
  195. <text class="grid-text">企业信息</text>
  196. </uv-grid-item>
  197. <uv-grid-item @click="$utils.redirectTo('/index/consult')"
  198. v-if="!role || !isLoggedIn">
  199. <image class="image" src="/static/image/center/6.png" mode=""></image>
  200. <text class="grid-text">考证咨询</text>
  201. </uv-grid-item>
  202. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/redeemCode') : $utils.toLogin()">
  203. <image class="image" src="/static/image/center/5.png" mode=""></image>
  204. <text class="grid-text">兑换码</text>
  205. </uv-grid-item>
  206. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/contract/contract') : $utils.toLogin()">
  207. <image class="image" src="/static/image/center/5.png" mode=""></image>
  208. <text class="grid-text">电子合同</text>
  209. </uv-grid-item>
  210. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/contract/contractManage') : $utils.toLogin()"
  211. v-if="role || !isLoggedIn">
  212. <image class="image" src="/static/image/center/5.png" mode=""></image>
  213. <text class="grid-text">合同模板</text>
  214. </uv-grid-item>
  215. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/promotion') : $utils.toLogin()">
  216. <image class="image" src="/static/image/center/5.png" mode=""></image>
  217. <text class="grid-text">面对面分享</text>
  218. </uv-grid-item>
  219. </uv-grid>
  220. </view>
  221. <view class="line grid">
  222. <view class="title">
  223. 设置与帮助
  224. </view>
  225. <uv-grid :col="4" :border="false">
  226. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/setting') : $utils.toLogin()">
  227. <image class="image" src="/static/image/center/setting.png" mode=""></image>
  228. <text class="grid-text">系统设置</text>
  229. </uv-grid-item>
  230. <uv-grid-item @click="isLoggedIn ? $utils.navigateTo('/pages_order/mine/help') : $utils.toLogin()">
  231. <image class="image" src="/static/image/center/help.png" mode=""></image>
  232. <text class="grid-text">帮助与反馈</text>
  233. </uv-grid-item>
  234. <uv-grid-item @click="$utils.navigateTo('/pages_order/mine/about')">
  235. <image class="image" src="/static/image/center/message.png" mode=""></image>
  236. <text class="grid-text">关于本程序</text>
  237. </uv-grid-item>
  238. </uv-grid>
  239. </view>
  240. </view>
  241. <tabber select="3" />
  242. </view>
  243. </template>
  244. <script>
  245. import tabber from '@/components/base/tabbar.vue'
  246. import { mapState } from 'vuex'
  247. export default {
  248. components: {
  249. tabber,
  250. },
  251. computed: {
  252. ...mapState(['userInfo', 'role','banner', 'UserExtensionInfo']),
  253. // 判断是否已登录
  254. isLoggedIn(){
  255. return this.userInfo && this.userInfo.id
  256. },
  257. headImage(){
  258. return this.userInfo.headImage || '/static/image/center/headImage.png'
  259. },
  260. username(){
  261. return this.userInfo.nickName || '未设置昵称'
  262. },
  263. phone(){
  264. return this.userInfo.phone || '未绑定手机'
  265. },
  266. bannerList(){
  267. return this.banner.filter(n => n.type == 1)
  268. },
  269. },
  270. data() {
  271. return {
  272. show: false,
  273. // bannerList: [
  274. // {
  275. // url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  276. // },
  277. // {
  278. // url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  279. // },
  280. // {
  281. // url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  282. // },
  283. // ],
  284. }
  285. },
  286. onShow() {
  287. if(uni.getStorageSync('token')){
  288. this.$store.commit('getUserExtensionInfo')
  289. this.$store.commit('getUserInfo')
  290. }
  291. this.$store.commit('getBanner')
  292. //判断如果是登录状态则获取信息
  293. },
  294. methods: {
  295. toAddResume(){
  296. // 在完成实名认证的情况下执行
  297. this.$store.commit('isAuthCertification', () => {
  298. this.$utils.navigateTo('/pages_order/work/addResume')
  299. })
  300. },
  301. }
  302. }
  303. </script>
  304. <style scoped lang="scss">
  305. .page {
  306. }
  307. image {
  308. width: 100%;
  309. height: 100%;
  310. }
  311. .head {
  312. display: flex;
  313. background-color: $uni-color;
  314. padding: 40rpx 20rpx;
  315. align-items: center;
  316. position: relative;
  317. color: #fff;
  318. padding-bottom: 70rpx;
  319. .headImage {
  320. width: 120rpx;
  321. height: 120rpx;
  322. // background-image: url(/static/image/center/3.png);
  323. background-size: 100% 100%;
  324. overflow: hidden;
  325. border-radius: 50%;
  326. margin-right: 40rpx;
  327. }
  328. .info {
  329. font-size: 28rpx;
  330. flex: 1;
  331. .name {
  332. font-size: 32rpx;
  333. display: flex;
  334. padding-bottom: 10rpx;
  335. view{
  336. display: flex;
  337. font-size: 20rpx;
  338. align-items: center;
  339. padding-left: 20rpx;
  340. }
  341. }
  342. .tips {
  343. font-size: 26rpx;
  344. color: #fff;
  345. }
  346. }
  347. .loginBtn {
  348. padding: 15rpx 30rpx;
  349. background-color: rgba(255, 255, 255, 0.2);
  350. color: #fff;
  351. border-radius: 30rpx;
  352. font-size: 28rpx;
  353. border: 2rpx solid rgba(255, 255, 255, 0.5);
  354. }
  355. // .headBtn {
  356. // margin-left: auto;
  357. // padding: 15rpx 20rpx;
  358. // background-color: $uni-color;
  359. // color: #fff;
  360. // border-radius: 20rpx;
  361. // margin-top: 50rpx;
  362. // }
  363. // .setting {
  364. // position: absolute;
  365. // right: 50rpx;
  366. // top: 50rpx;
  367. // }
  368. }
  369. .user {
  370. position: relative;
  371. padding-top: 30rpx;
  372. .auth{
  373. width: 690rpx;
  374. position: absolute;
  375. top: -50rpx;
  376. left: 30rpx;
  377. z-index: 99;
  378. overflow: hidden;
  379. background-color: #fff;
  380. border-radius: 20rpx;
  381. /deep/ text{
  382. font-size: 26rpx;
  383. }
  384. }
  385. .swipe{
  386. margin: 30rpx;
  387. border-radius: 20rpx;
  388. overflow: hidden;
  389. }
  390. .line {
  391. display: flex;
  392. background-color: #fff;
  393. margin-top: 20rpx;
  394. padding: 20rpx 0;
  395. margin: 30rpx;
  396. border-radius: 20rpx;
  397. overflow: hidden;
  398. .item {
  399. flex: 1;
  400. display: flex;
  401. flex-direction: column;
  402. justify-content: center;
  403. align-items: center;
  404. font-size: 24rpx;
  405. padding: 10rpx 0;
  406. view{
  407. padding: 5rpx 0;
  408. }
  409. }
  410. }
  411. .login-tip {
  412. justify-content: center;
  413. align-items: center;
  414. padding: 40rpx 20rpx;
  415. .tip-content {
  416. text-align: center;
  417. font-size: 28rpx;
  418. color: #666;
  419. }
  420. .login-tip-btn {
  421. margin-top: 20rpx;
  422. padding: 15rpx 40rpx;
  423. background-color: $uni-color;
  424. color: #fff;
  425. border-radius: 30rpx;
  426. font-size: 26rpx;
  427. border: none;
  428. }
  429. }
  430. .grid {
  431. flex-direction: column;
  432. font-size: 26rpx;
  433. padding: 20rpx;
  434. .title {
  435. margin-bottom: 30rpx;
  436. font-size: 28rpx;
  437. }
  438. .image {
  439. width: 45rpx;
  440. height: 45rpx;
  441. margin-bottom: 10rpx;
  442. }
  443. text {
  444. text-align: center;
  445. margin-bottom: 20rpx;
  446. }
  447. }
  448. }
  449. </style>