index.js 12 KB

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