index.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504
  1. import {
  2. getPositionDetail,
  3. positionApply,
  4. groupApply,
  5. groupList,
  6. saveFavoritePosition
  7. } from '../../services/index.js'
  8. import {
  9. imgServerUrl
  10. } from '../../config/config.js'
  11. import {
  12. showToast
  13. } from '../../utils/tips.js'
  14. const WxParse = require('../../plugins/wxParse/wxParse.js');
  15. // var $ = require('../../libs/gdconf.js');
  16. const app = getApp();
  17. Page({
  18. data: {
  19. imgServerUrl: imgServerUrl,
  20. hpPositionId: 0,
  21. positionCategory: 0, //0:全职 1:兼职 2:入职奖励 3:高薪急聘 4:拼团岗位 5:福利岗位 8:自发布全职 9:自发布兼职
  22. isShowList: false,
  23. clearTimer: false,
  24. comScale: '',
  25. comType: '',
  26. myFormat: ['天', '时', '分', '秒'],
  27. authMask: false,
  28. detailArray: [],
  29. canIUse: wx.canIUse('button.open-type.getUserInfo'),
  30. detailIndex: 0, //详情指引
  31. isApply: false,
  32. storeAction: [],
  33. showJoinPt: false, //显示加入拼工
  34. showAllPt: false, //显示所有拼工
  35. allPtList: [],
  36. leftTime: 0,
  37. isEnd: 0, //岗位是否已结束0:未结束;1:结束
  38. myGroupId: '', //我的拼团id
  39. groupId: '', //拼团id
  40. inviteUser_id: '', //拼团邀请人
  41. isFarovite: false, //是否收藏
  42. maxReward: 0, //入职最高奖励
  43. minReward: 0, //入职最低奖励
  44. isLogin: false,
  45. },
  46. onLoad: function(options) {
  47. console.log(options)
  48. this.setData({
  49. hpPositionId: options.hpPositionId,
  50. positionCategory: options.cate || 0,
  51. })
  52. },
  53. onShow: function() {
  54. var userId = wx.getStorageSync("user_id");
  55. var userToken = wx.getStorageSync("user_token");
  56. var memberId = wx.getStorageSync("member_id");
  57. var isLogin = false;
  58. if (userId && memberId) {
  59. isLogin = true;
  60. app.globalData.userId = userId;
  61. app.globalData.userToken = userToken;
  62. app.globalData.memberId = memberId;
  63. }
  64. this.setData({
  65. isLogin: isLogin
  66. })
  67. this.fetchData();
  68. this.fetchPtList();
  69. },
  70. onShareAppMessage: function() {
  71. return {
  72. title: '开心工作入职有奖',
  73. path: '/pages/detail/index?cate=' + this.data.positionCategory + '&hpPositionId=' + this.data.hpPositionId,
  74. imageUrl: ''
  75. }
  76. },
  77. //获取岗位详情
  78. fetchData() {
  79. let paramsObj = {
  80. position_category: this.data.positionCategory,
  81. id: this.data.hpPositionId,
  82. member_id: app.globalData.memberId
  83. }
  84. Object.assign(paramsObj);
  85. getPositionDetail(paramsObj).then(data => {
  86. console.log(data)
  87. let postitionDetail = {};
  88. let groupLessList = {};
  89. var leftTime = 0;
  90. var myGroupId = '';
  91. switch (this.data.positionCategory) {
  92. case "0":
  93. postitionDetail = data.data.hpFulltimePosition
  94. break;
  95. case "1":
  96. postitionDetail = data.data.hpParttimePosition
  97. break;
  98. case "2":
  99. postitionDetail = data.data.hpRewardPosition
  100. break;
  101. case "3":
  102. postitionDetail = data.data.hpGoodmoneyPosition
  103. break;
  104. case "4":
  105. postitionDetail = data.data.hpGroupPosition;
  106. leftTime = data.data.hpGroupPosition.groupEndTime;
  107. groupLessList = data.data.groupLessList;
  108. myGroupId = data.data.myGroupId;
  109. var maxReward;
  110. var minReward;
  111. var femaleReward = data.data.hpGroupPosition.femaleReward;
  112. var maleReward = data.data.hpGroupPosition.maleReward;
  113. var fiveGroupCashback = data.data.hpGroupPosition.fiveGroupCashback;
  114. var threeGroupCashback = data.data.hpGroupPosition.threeGroupCashback;
  115. var hasReward = data.data.hpGroupPosition.hasReward;
  116. if (hasReward == 1) {
  117. if (maleReward >= femaleReward) {
  118. maxReward = fiveGroupCashback + maleReward;
  119. minReward = femaleReward;
  120. } else {
  121. maxReward = fiveGroupCashback + femaleReward;
  122. minReward = maleReward;
  123. }
  124. } else {
  125. maxReward = fiveGroupCashback;
  126. minReward = 0;
  127. }
  128. this.setData({
  129. maxReward: maxReward,
  130. minReward: minReward
  131. })
  132. break;
  133. case "5":
  134. postitionDetail = data.data.hpWelfarePosition
  135. break;
  136. case "8":
  137. postitionDetail = data.data.hpFulltimePosition
  138. break;
  139. case "9":
  140. postitionDetail = data.data.hpParttimePosition
  141. break;
  142. }
  143. if (data.data.isEnd == 1) {
  144. this.setData({
  145. isEnd: data.data.isEnd
  146. })
  147. console.log("该岗位已结束")
  148. } else {
  149. console.log("该岗位未结束")
  150. }
  151. this.setData({
  152. postitionDetail: postitionDetail,
  153. isApply: data.data.isApply,
  154. leftTime: leftTime,
  155. storeAction: groupLessList,
  156. myGroupId: myGroupId,
  157. isFarovite: data.data.isFarovite
  158. })
  159. //富文本转义
  160. var detailArray = [];
  161. if (postitionDetail.hpWelfarePositionDetailList != null && postitionDetail.hpWelfarePositionDetailList.length > 0) {
  162. for (var i = 0; i < postitionDetail.hpWelfarePositionDetailList.length; i++) {
  163. var ss = WxParse.wxParse('positionDetail', 'html', postitionDetail.hpWelfarePositionDetailList[i].positionDetail, this);
  164. detailArray.push(ss);
  165. }
  166. this.setData({
  167. detailArray: detailArray
  168. })
  169. }
  170. //富文本转义
  171. if (postitionDetail.applyCondition) {
  172. WxParse.wxParse('applyCondition', 'html', postitionDetail.applyCondition, this);
  173. }
  174. this.getNodePos();
  175. })
  176. },
  177. //获取所有拼工列表
  178. fetchPtList() {
  179. if (this.data.isEnd == 1) {
  180. showToast('拼团已结束')
  181. return false
  182. }
  183. let paramsObj = {
  184. positionCategory: this.data.positionCategory,
  185. positionId: this.data.hpPositionId,
  186. }
  187. Object.assign(paramsObj);
  188. groupList(paramsObj).then(data => {
  189. console.log("allpt", data)
  190. this.setData({
  191. allPtList: data.data.groupList
  192. })
  193. })
  194. },
  195. //申请工作
  196. applyJob(e) {
  197. var self = this;
  198. if (!self.data.isLogin) {
  199. wx.navigateTo({
  200. url: '/pages/login/login',
  201. })
  202. return;
  203. }
  204. wx.showModal({
  205. title: '提示',
  206. content: '确定提交申请吗?',
  207. success: function(res) {
  208. if (res.confirm) {
  209. let {
  210. formId
  211. } = e.detail;
  212. let paramsObj = {
  213. positionCategory: self.data.positionCategory,
  214. positionId: self.data.hpPositionId,
  215. user_id: app.globalData.userId,
  216. user_token: app.globalData.userToken,
  217. member_id: app.globalData.memberId
  218. }
  219. Object.assign(paramsObj);
  220. wx.setStorageSync('resumeUrl', '/pages/user-info/user-info?hpPositionId=' + self.data.hpPositionId + "&positionCategory=" + self.data.positionCategory)
  221. positionApply(paramsObj).then(data => {
  222. showToast('申请职位成功', 'success')
  223. setTimeout(function() {
  224. wx.navigateBack();
  225. }, 2000)
  226. })
  227. } else if (res.cancel) {
  228. }
  229. }
  230. })
  231. },
  232. //申请开团
  233. applyPt(e) {
  234. var self = this;
  235. if (!self.data.isLogin) {
  236. wx.navigateTo({
  237. url: '/pages/login/login',
  238. })
  239. return;
  240. }
  241. wx.showModal({
  242. title: '提示',
  243. content: '确定提交开团申请吗?',
  244. success: function(res) {
  245. if (res.confirm) {
  246. let {
  247. formId
  248. } = e.detail;
  249. let paramsObj = {
  250. // groupId: self.data.groupId,
  251. // inviteUser_id: self.data.inviteUser_id,
  252. positionCategory: self.data.positionCategory,
  253. positionId: self.data.hpPositionId,
  254. user_id: app.globalData.userId,
  255. user_token: app.globalData.userToken,
  256. member_id: app.globalData.memberId
  257. }
  258. Object.assign(paramsObj);
  259. wx.setStorageSync('resumeUrl', '/pages/user-info/user-info?hpPositionId=' + self.data.hpPositionId + "&positionCategory=" + self.data.positionCategory)
  260. groupApply(paramsObj).then(data => {
  261. var hpPositionGroupId = data.data.hpApplyPosition.groupId
  262. console.log("ff22", data);
  263. showToast("开团成功");
  264. wx.navigateTo({
  265. url: '../pt-detail/index?gd=' + hpPositionGroupId + '&pc=' + self.data.positionCategory + '&pd=' + self.data.hpPositionId,
  266. })
  267. })
  268. } else if (res.cancel) {
  269. }
  270. }
  271. })
  272. },
  273. //我的拼团
  274. myApply() {
  275. var self = this;
  276. if (!self.data.isLogin) {
  277. wx.navigateTo({
  278. url: '/pages/login/login',
  279. })
  280. return;
  281. }
  282. wx.navigateTo({
  283. url: '../pt-detail/index?gd=' + self.data.myGroupId + '&pc=' + self.data.positionCategory + '&pd=' + self.data.hpPositionId,
  284. })
  285. },
  286. //拨打手机号
  287. phoneCall() {
  288. if (this.data.postitionDetail.contactPhone) {
  289. wx.makePhoneCall({
  290. phoneNumber: this.data.postitionDetail.contactPhone,
  291. success: function(data) {
  292. console.log(data)
  293. },
  294. fail: function(data) {
  295. console.log(data)
  296. }
  297. })
  298. } else {
  299. showToast('暂无手机号')
  300. }
  301. },
  302. //查看线路
  303. toRoadsLine() {
  304. wx.navigateTo({
  305. url: '../roadsLine/index',
  306. })
  307. },
  308. // 获取公司规模描述
  309. getComScale(lower, high) {
  310. if (!lower || lower == 0) {
  311. return high + '人以下'
  312. }
  313. if (!high || high == 0) {
  314. return lower + '人以上'
  315. }
  316. return lower + '-' + high + '人'
  317. },
  318. //获取位置
  319. getNodePos() {
  320. if (this.data.positionCategory != 5) {
  321. var query = wx.createSelectorQuery()
  322. query.select('#base').boundingClientRect()
  323. query.select('#require').boundingClientRect()
  324. query.select('#otherWelfare').boundingClientRect()
  325. query.select('#jieshao').boundingClientRect()
  326. var that = this;
  327. query.exec(function(res) {
  328. console.log(res)
  329. that.setData({
  330. basePos: res[0].top - 40,
  331. requirePos: res[1].top - 40,
  332. otherWelfarePos: res[2].top - 40,
  333. jieshaoPos: res[3].top - 40
  334. })
  335. })
  336. }
  337. },
  338. //距离页面滚动
  339. goDeatil: function(e) {
  340. var index = e.currentTarget.dataset.index;
  341. this.setData({
  342. detailIndex: index
  343. })
  344. let top = e.currentTarget.dataset.top
  345. wx.pageScrollTo({
  346. scrollTop: top,
  347. duration: 0
  348. })
  349. },
  350. // 加入拼工
  351. joinPt(e) {
  352. var index = e.currentTarget.dataset.index;
  353. console.log("joinptindex", index)
  354. this.setData({
  355. showAllPt: false,
  356. showJoinPt: true,
  357. joinPtList: this.data.storeAction[index]
  358. })
  359. console.log("DFD", this.data.joinPtList)
  360. },
  361. // 加入拼工(所有拼工)
  362. joinPt_1(e) {
  363. var index = e.currentTarget.dataset.index;
  364. console.log("joinptindex", index)
  365. this.setData({
  366. showAllPt: false,
  367. showJoinPt: true,
  368. joinPtList: this.data.allPtList[index]
  369. })
  370. },
  371. hideJoinPt() {
  372. this.setData({
  373. showJoinPt: false
  374. })
  375. },
  376. cancelPt() {
  377. this.setData({
  378. showJoinPt: false
  379. })
  380. },
  381. //加入拼工,进入拼工详情
  382. confirmPt(e) {
  383. var self = this;
  384. if (!self.data.isLogin) {
  385. self.setData({
  386. showJoinPt: false
  387. })
  388. wx.navigateTo({
  389. url: '/pages/login/login',
  390. })
  391. return;
  392. }
  393. var groupId = e.currentTarget.dataset.groupid;
  394. self.setData({
  395. showJoinPt: false
  396. })
  397. wx.navigateTo({
  398. url: '../pt-detail/index?gd=' + groupId + '&pc=' + self.data.positionCategory + '&pd=' + self.data.hpPositionId,
  399. })
  400. },
  401. // 所有拼工
  402. allPt(e) {
  403. this.setData({
  404. showAllPt: true
  405. })
  406. },
  407. hideAllPt() {
  408. this.setData({
  409. showAllPt: false
  410. })
  411. },
  412. hideAuth() {
  413. this.setData({
  414. authMask: false
  415. })
  416. },
  417. submitInfo(e) {
  418. console.log('form发生了submit事件,事件数据为:', e)
  419. },
  420. toPt() {
  421. wx.navigateTo({
  422. url: '../document/pt'
  423. })
  424. },
  425. toFanxian() {
  426. wx.navigateTo({
  427. url: '../document/fanxian'
  428. })
  429. },
  430. imageLoad() {
  431. var that = this
  432. var query = wx.createSelectorQuery()
  433. query.select('.wel_top').boundingClientRect()
  434. query.exec(function(res) {
  435. console.log(res)
  436. that.setData({
  437. swiperH: res[0].height
  438. })
  439. })
  440. },
  441. onError(err) {
  442. app.aldstat.sendEvent('报错', {
  443. 'err': err
  444. });
  445. },
  446. //跳转工作地址列表
  447. toaddressdetail() {
  448. wx.setStorageSync("addressList", this.data.postitionDetail.hpPositionAddressList);
  449. wx.navigateTo({
  450. url: '../address/index',
  451. })
  452. },
  453. //收藏岗位
  454. favourate() {
  455. var self = this;
  456. if (!self.data.isLogin) {
  457. wx.navigateTo({
  458. url: '/pages/login/login',
  459. })
  460. return;
  461. }
  462. var isFavorite = self.data.isFarovite ? 0 : 1;
  463. let paramsObj = {
  464. positionCategory: self.data.positionCategory,
  465. positionId: self.data.hpPositionId,
  466. user_id: app.globalData.userId,
  467. user_token: app.globalData.userToken,
  468. isFavorite: isFavorite,
  469. member_id: app.globalData.memberId
  470. }
  471. Object.assign(paramsObj);
  472. saveFavoritePosition(paramsObj).then(data => {
  473. console.log("sssccc", data.data.isFavorite);
  474. if (data.data.isFavorite) {
  475. showToast('收藏成功');
  476. } else {
  477. showToast('取消收藏');
  478. }
  479. self.setData({
  480. isFarovite: data.data.isFavorite
  481. })
  482. })
  483. },
  484. })