index.js 13 KB

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