home.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. var _request = require('../../utils/request.js')
  2. var util = require('../../utils/util.js')
  3. Page ({
  4. data: {
  5. ceshi: 'false',
  6. swiper: {
  7. indicatorDots: true,
  8. autoplay: true,
  9. interval: 4000
  10. },
  11. swiperCurrent: 0,
  12. firstProject: [],
  13. secondProject: [],
  14. recommend: {
  15. title: 'Microlab/麦博 M200十周年蓝牙版台式电脑音箱 家用音响电脑音箱蓝牙版',
  16. price: 3900,
  17. url: 'https://img10.360buyimg.com/n7/jfs/t11821/47/132726032/183731/677590e/59e85492N24686ba9.jpg',
  18. point: 3999
  19. },
  20. products: {
  21. rd: 0,
  22. page: 1,
  23. per_page: 5
  24. },
  25. productsList: [],
  26. bannerList: [],
  27. categories: [],
  28. vershow: true,
  29. percent: [],
  30. zhunongList: [],
  31. page1: 1,
  32. per_page1: 50,
  33. balance: 0,
  34. bgcolor: '#eee',
  35. progress: 0,
  36. progress1: 0,
  37. // day: '00',
  38. hour: '00',
  39. min: '00',
  40. second: '00',
  41. timer: '',
  42. leftTime: 0,
  43. // msecond: '00',
  44. currentTab: util.formatChDate1(new Date()),
  45. navScrollLeft: 0,
  46. iconslist: [],
  47. seckilltimelist: [],
  48. today: util.formatChDate1(new Date()),
  49. killgoodslist: [],
  50. firsttime: '',
  51. change: false,
  52. clock: '',
  53. changeshow: 'seckill',
  54. toView: '',
  55. is_copartnershow: '',
  56. showpyq: 0,
  57. todaysend: Date.parse(new Date()) / 1000,
  58. showtime: '',
  59. projects_more:true,
  60. userinfo:{},
  61. nowseckill_data:'',
  62. statusBarHeight:20,
  63. navBarHeight:45,
  64. windowWidth:375,
  65. word:''
  66. },
  67. onLoad: function () {
  68. const info = wx.getSystemInfoSync();
  69. console.log('info',info);
  70. this.setData({
  71. statusBarHeight:info.statusBarHeight
  72. })
  73. // this.getzhunongList()
  74. this.setData({
  75. vershow: getApp().globalData.vershow,
  76. // is_copartnershow: getApp().globalData.is_copartner,
  77. })
  78. if (getApp().globalData.wx_id) {
  79. this.info()
  80. }
  81. this.getData()
  82. this.getBanners()
  83. this.getCategories()
  84. this.getList()
  85. //this.getBalanceInfo()
  86. // this.showprogress()
  87. // this.starttime()
  88. wx.getSystemInfo({
  89. success: (res) => {
  90. this.setData({
  91. windowWidth: res.windowWidth
  92. })
  93. }
  94. })
  95. this.geticons()
  96. this.getkilltime()
  97. },
  98. onShow: function () {
  99. // this.getzhunongList()
  100. // this.getCategories()
  101. const screenWidth = wx.getSystemInfoSync().windowWidth
  102. const screenHeight = wx.getSystemInfoSync().windowHeight
  103. this.setData({
  104. //获取页面初始状态图片数量,0.63为图片容器的高度值(63vw),将代码中0.63改为你的容器对应高度
  105. listIndex: screenHeight / (screenWidth * 0.50),
  106. screenWidth: screenWidth,
  107. screenHeight: screenHeight
  108. })
  109. },
  110. onPullDownRefresh: function () {
  111. this.getBanners()
  112. this.getCategories()
  113. this.getList()
  114. // this.getzhunongList()
  115. wx.stopPullDownRefresh()
  116. this.geticons()
  117. this.getkilltime()
  118. },
  119. getList: function () {
  120. if (this.data.vershow) {
  121. this.getProjects()
  122. } else {
  123. this.getVersion()
  124. }
  125. },
  126. swiperChange: function (e) {
  127. this.setData({
  128. swiperCurrent: e.detail.current
  129. })
  130. },
  131. getData: function () {
  132. var that = this
  133. var url = 'v1/product/commend_words'
  134. var params = {}
  135. var success = function (res) {
  136. console.log('res',res.data.list);
  137. that.setData({
  138. word:res.data.list[0].title
  139. })
  140. }
  141. _request.$get(url, params, success)
  142. },
  143. getVersion: function () {
  144. var that = this
  145. var url = 'v1/cat/3/products'
  146. var params = {
  147. page: this.data.products.page,
  148. per_page: this.data.products.per_page
  149. }
  150. var success = function (res) {
  151. that.setData({
  152. productsList: res.data.list
  153. })
  154. }
  155. _request.$get(url, params, success)
  156. },
  157. getProjects: function () {
  158. var that = this
  159. var url = 'v1/products'
  160. var params = {
  161. rd: this.data.products.rd,
  162. page: this.data.products.page,
  163. per_page: this.data.products.per_page
  164. }
  165. var success = function (res) {
  166. that.setData({
  167. projects_more: res.data.list_count > that.data.productsList.length,
  168. productsList: that.data.productsList.concat(res.data.list || []),
  169. })
  170. }
  171. _request.$get(url, params, success)
  172. },
  173. onReachBottom: function () {
  174. if (this.data.projects_more) {
  175. var page = this.data.products.page + 1
  176. this.setData({
  177. ['products.page']: page
  178. })
  179. this.getProjects()
  180. }
  181. },
  182. getBanners: function () {
  183. var item = 'home'
  184. if (!this.data.vershow) {
  185. item = 'test'
  186. }
  187. var that = this
  188. var url = 'v1/ad/' + item + '/items'
  189. var params = {
  190. }
  191. var success = function (res) {
  192. that.setData({
  193. bannerList: res.data
  194. })
  195. }
  196. _request.$get(url, params, success)
  197. },
  198. toProject: function (val) {
  199. var id = val.currentTarget.dataset.val;
  200. wx.navigateTo({
  201. url: '/pages/projects/project-detail/project-detail?id=' + id
  202. })
  203. },
  204. tosearch: function (val) {
  205. var id = val.currentTarget.dataset.val;
  206. wx.navigateTo({
  207. url: '/pages/search/search'
  208. })
  209. },
  210. toCustom: function () {
  211. wx.reLaunch({
  212. url: '/pages/customservice/customservice'
  213. })
  214. },
  215. getCategories: function () {
  216. var that = this
  217. var url = 'v1/categories?platform=wx_hot'
  218. var params = {
  219. }
  220. var success = function (res) {
  221. if (res.data && res.data.wx_hot) {
  222. if (res.data.wx_hot.length >= 2) {
  223. var list1 = res.data.wx_hot.slice(0,2)
  224. that.setData({
  225. firstProject: list1
  226. })
  227. }
  228. if (res.data.wx_hot.length >= 6) {
  229. var list2 = res.data.wx_hot.slice(2,6)
  230. that.setData({
  231. secondProject: list2
  232. })
  233. }
  234. }
  235. that.setData({
  236. categories: res.data
  237. })
  238. }
  239. _request.$get(url, params, success)
  240. },
  241. onShareAppMessage: function (val) {
  242. return _request.share({
  243. title: '欢迎来到凤凰菁选商城',
  244. path: '/pages/start/start',
  245. imageUrl: 'http://fohow.oss-cn-shenzhen.aliyuncs.com/xcx/share/sharemain.jpg',
  246. sc: 'xcx_home',
  247. ri: 0,
  248. rp: 0
  249. })
  250. },
  251. toColumn: function (val) {
  252. var type = val.currentTarget.dataset.val.url_type
  253. var url = val.currentTarget.dataset.val.url
  254. var id = val.currentTarget.dataset.val.id
  255. this.getClick(id)
  256. if (type === 0) {
  257. wx.navigateTo({
  258. url: url
  259. })
  260. }
  261. if (type === 1) {
  262. wx.navigateTo({
  263. url: '/pages/web/web?id=' + url
  264. })
  265. }
  266. if(type === 2){
  267. wx.reLaunch({
  268. url: url
  269. })
  270. }
  271. },
  272. // newyear: function () {
  273. // wx.navigateTo({
  274. // url: '/pages/activity/redpacket/redpacket?rid=1'
  275. // })
  276. // }
  277. toviewfunc (val) {
  278. var type = val.currentTarget.dataset.val.url_type
  279. var url = val.currentTarget.dataset.val.url
  280. var id = val.currentTarget.dataset.val.product_cat_index
  281. if (type === 0) {
  282. if (url === '/pages/projects/projects') {
  283. getApp().globalData.isshow = id
  284. getApp().globalData.isupdate = false
  285. }
  286. if (url === '/pages/user/all/all' || url === '/pages/helpfarm/helpfarm' || url === '/pages/projects/projects' || url === '/pages/customservice/customservice') {
  287. wx.switchTab({
  288. url: url
  289. })
  290. } else {
  291. if(id == 0){
  292. wx.navigateTo({
  293. url: url
  294. })
  295. }else{
  296. wx.reLaunch({
  297. url: url+id
  298. })
  299. }
  300. }
  301. }
  302. if (type === 1) {
  303. wx.navigateTo({
  304. url: '/pages/web/web?id=' + url
  305. })
  306. }
  307. },
  308. getClick (id) {
  309. var url = 'v1/ad/' + id + '/click'
  310. var params = {}
  311. var success = function () {
  312. }
  313. _request.$get(url, params, success)
  314. },
  315. getzhunongList () {
  316. var that = this
  317. var url = 'v1/projects?state=0,1'
  318. var params = {
  319. page: this.data.page1,
  320. per_page: this.data.per_page1
  321. }
  322. var success = function (res) {
  323. // var percent = res.data.list.current_funding / res.data.list.min_funding
  324. var countArr = []
  325. for (var index in res.data.list) {
  326. var count = parseInt(res.data.list[index].current_funding) / parseInt(res.data.list[index].min_funding) *100
  327. // console.log(count)
  328. var count1 = (count).toFixed(2)
  329. // var count1 = parseInt(count)
  330. countArr.push(count1)
  331. }
  332. that.setData({
  333. zhunongList: res.data.list,
  334. percent: countArr
  335. })
  336. // that.showprogress()
  337. }
  338. _request.$get(url, params, success)
  339. },
  340. toZhunong (val) {
  341. var id1 = val.currentTarget.dataset.val
  342. wx.navigateTo({
  343. url: '/pages/helpfarm/helpfarm-detail/helpfarm-detail?id=' + id1
  344. })
  345. },
  346. getBalanceInfo () {
  347. var that = this
  348. var url = 'v1/user/balance/info'
  349. var params = {
  350. }
  351. var success = function (res) {
  352. var result = res.data.total
  353. that.setData({
  354. balance: result
  355. })
  356. }
  357. _request.$get(url, params, success)
  358. },
  359. starttime () {
  360. var that = this
  361. that.setData({
  362. timer: setInterval(function () {
  363. // var date = new Date();
  364. // var now = date.getTime();
  365. // var endDate = new Date("2019-01-03 23:14:53");//设置截止时间
  366. // var end = that.data.clock * 1000;//设置截止时间
  367. // var end = endDate.getTime();
  368. // var leftTime = end - now; //时间差
  369. var t = Date.parse(new Date())
  370. t = t / 1000;
  371. var leftTime;
  372. if(that.data.nowseckill_data['state'] == 'seckill'){
  373. leftTime = that.data.clock - t
  374. }else if(that.data.nowseckill_data['state'] == 'preparing'){
  375. leftTime = that.data.nowseckill_data['start_time'] - t
  376. }
  377. var d, h, m, s, ms;
  378. if (leftTime >= 0) {
  379. // day = parseInt(ctime / 86400)
  380. h = parseInt(leftTime / 3600)
  381. m = parseInt(leftTime / 60 ) - parseInt(leftTime / 3600) * 60
  382. s = parseInt(leftTime) - parseInt(leftTime / 60 ) * 60
  383. // d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
  384. // h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
  385. // m = Math.floor(leftTime / 1000 / 60 % 60);
  386. // s = Math.floor(leftTime / 1000 % 60);
  387. // ms = Math.floor(leftTime % 1000);
  388. // ms = ms < 100 ? "0" + ms : ms
  389. s = s < 10 ? "0" + s : s
  390. m = m < 10 ? "0" + m : m
  391. h = h < 10 ? "0" + h : h
  392. that.setData({
  393. hour: h,
  394. min: m,
  395. second: s,
  396. // msecond: ms,
  397. leftTime: leftTime
  398. })
  399. }
  400. if (leftTime < 0) {
  401. clearInterval(that.data.timer);
  402. that.setData({
  403. leftTime: 0,
  404. hour: '00',
  405. min: '00',
  406. second: '00',
  407. // msecond: '00'
  408. })
  409. }
  410. },100),
  411. });
  412. },
  413. switchtime (e) {
  414. var cur = e.currentTarget.dataset.current
  415. var idx = e.currentTarget.dataset.val
  416. var killtime = e.currentTarget.dataset.time
  417. var nowtime = util.formatTime(new Date(e.currentTarget.dataset.showtime * 1000))
  418. var singleNavWidth = this.data.windowWidth / 5
  419. this.setData({
  420. navScrollLeft: (idx - 2) * singleNavWidth
  421. })
  422. if (this.data.currentTab == idx || this.data.today == killtime) {
  423. return false
  424. }
  425. this.setData ({
  426. currentTab: idx,
  427. today: killtime,
  428. firsttime: killtime,
  429. change: true,
  430. changeshow: cur,
  431. showtime: nowtime.substring(11,13)
  432. })
  433. this.getkillgoods()
  434. },
  435. geticons () {
  436. var that = this
  437. var url = 'v1/navigate/icons'
  438. var params = {}
  439. var success = function (res) {
  440. var icons = res.data
  441. that.setData({
  442. iconslist: icons
  443. })
  444. }
  445. _request.$get(url, params, success)
  446. },
  447. getkilltime () {
  448. var that = this
  449. var url = 'v1/seckill/dates'
  450. var params = {
  451. cache: false
  452. }
  453. var success = function (res) {
  454. var seclist = res.data.ret_item_list
  455. var singleNavWidth = that.data.windowWidth / 5
  456. // for (var index in seclist) {
  457. // if (seclist[index].state == 'seckill') {
  458. // that.setData({
  459. // firsttime: seclist[index].date_format,
  460. // clock: seclist[index].end_time,
  461. // // navScrollLeft: singleNavWidth,
  462. // toView: 'a' + seclist[index].date_format,
  463. // changeshow: 'seckill'
  464. // })
  465. // }
  466. // if (seclist[index].state == 'end' && seclist[index].date_format == that.data.currentTab) {
  467. // that.setData({
  468. // toView: 'a' + seclist[index].date_format,
  469. // changeshow: 'end'
  470. // })
  471. // }
  472. // if (seclist[index].state == 'preparing' && seclist[index].date_format == that.data.currentTab) {
  473. // var nowtime = util.formatTime(new Date(seclist[index].start_time * 1000))
  474. // that.setData({
  475. // toView: 'a' + seclist[index].date_format,
  476. // changeshow: 'preparing',
  477. // showtime: nowtime.substring(11,13),
  478. // })
  479. // }
  480. // if (seclist[index].state == 'none' && seclist[index].date_format == that.data.currentTab) {
  481. // that.setData({
  482. // toView: 'a' + seclist[index].date_format,
  483. // changeshow: 'none'
  484. // })
  485. // }
  486. // }
  487. var nsdata;
  488. for (var index in seclist) {
  489. if (seclist[index].state == 'seckill') {
  490. nsdata = seclist[index];
  491. var showtime = util.formatTime(new Date(nsdata['start_time']* 1000));
  492. nsdata['showtime'] = showtime.substring(11,13);
  493. nsdata['clock'] = seclist[index].end_time;
  494. break;
  495. }else if (seclist[index].state == 'preparing') {
  496. nsdata = seclist[index];
  497. var showtime = util.formatTime(new Date(nsdata['start_time'] * 1000));
  498. nsdata['showtime'] = showtime.substring(11,13)
  499. break;
  500. }
  501. }
  502. console.log('nsdata',nsdata);
  503. that.setData({
  504. seckilltimelist: seclist,
  505. clock:nsdata ? nsdata['clock'] : 0,
  506. nowseckill_data:nsdata
  507. })
  508. if(nsdata){
  509. that.getkillgoods()
  510. that.starttime()
  511. }
  512. }
  513. _request.$get(url, params, success)
  514. },
  515. getkillgoods () {
  516. var that = this
  517. var url = 'v1/seckill/products'
  518. var params = {
  519. query_date: that.data.nowseckill_data ? that.data.nowseckill_data['date_format'] : '',
  520. cache: false
  521. }
  522. var success = function (res) {
  523. // if (res.data.product_list.length > 0) {
  524. var killgoodslist = res.data.product_list
  525. that.setData({
  526. killgoodslist: killgoodslist,
  527. })
  528. // }
  529. }
  530. _request.$get(url, params, success)
  531. },
  532. toabout () {
  533. // var host = getApp().globalData.d5c
  534. // if (host === 'tfhwx.hiwavo.com') {
  535. // wx.navigateTo({
  536. // url: '/pages/parse/parse?id=2'
  537. // })
  538. // } else if (host === 'fhwx.hiwavo.com') {
  539. wx.navigateTo({
  540. url: '/pages/parse/parse?id=1'
  541. })
  542. // }
  543. },
  544. tofhvd () {
  545. wx.navigateTo({
  546. url: '/pages/parse/parse?id=2'
  547. })
  548. },
  549. toyszq () {
  550. wx.reLaunch({
  551. url: '/pages/projects/projects?currentTab=4'
  552. })
  553. },
  554. togrhl () {
  555. wx.reLaunch({
  556. url: '/pages/projects/projects?currentTab=2'
  557. })
  558. },
  559. tojjry () {
  560. wx.reLaunch({
  561. url: '/pages/projects/projects?currentTab=3'
  562. })
  563. },
  564. toygyp () {
  565. wx.reLaunch({
  566. url: '/pages/projects/projects?currentTab=5'
  567. })
  568. },
  569. tothzq () {
  570. wx.reLaunch({
  571. url: '/pages/projects/projects?currentTab=1'
  572. })
  573. },
  574. todz () {
  575. if(this.data.userinfo.rank < 2){
  576. wx.navigateTo({
  577. url: '/packageUser/pages/user/applyLeader/applyLeader'
  578. })
  579. }else{
  580. wx.navigateTo({
  581. url: '/pages/areacart/areacart'
  582. })
  583. }
  584. },
  585. tocentcart () {
  586. wx.navigateTo({
  587. url: '/pages/centcart/centcart'
  588. })
  589. },
  590. topyq () {
  591. wx.navigateTo({
  592. url: '/packageUser/pages/user/invite/material/material'
  593. })
  594. },
  595. info(){
  596. var that = this
  597. var url = 'v1/user/info'
  598. var params = {}
  599. var success = function (res) {
  600. that.setData({
  601. userinfo:res.data.wx_user,
  602. showpyq: res.data.wx_user.show_invite_mode
  603. })
  604. }
  605. _request.$get(url, params, success)
  606. },
  607. videoTap:function(e){
  608. var index = e.currentTarget.dataset['index'];
  609. //获取video
  610. this.videoContext = wx.createVideoContext('video'+index);
  611. if(this.data.productsList[index].video_play){
  612. this.videoContext.pause();
  613. this.setData({
  614. ['productsList[' + index + '].video_play']: false
  615. })
  616. }else{
  617. this.videoContext.play();
  618. this.setData({
  619. ['productsList[' + index + '].video_play']: true
  620. })
  621. }
  622. },
  623. tolive:function(e){
  624. // var that = this
  625. // var url = 'v1/live_broad/current'
  626. // var params = {}
  627. // var success = function (res) {
  628. // let roomId = [res.data.room_id] // 填写具体的房间号,可通过下面【获取直播房间列表】 API 获取
  629. // let customParams = encodeURIComponent(JSON.stringify({ path: 'pages/index/index', pid: 1 })) // 开发者在直播间页面路径上携带自定义参数(如示例中的path和pid参数),后续可以在分享卡片链接和跳转至商详页时获取,详见【获取自定义参数】、【直播间到商详页面携带参数】章节(上限600个字符,超过部分会被截断)
  630. // wx.navigateTo({
  631. // url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}`
  632. // })
  633. // }
  634. // _request.$get(url, params, success)
  635. wx.navigateTo({
  636. url: '/pages/livelist/livelist'
  637. })
  638. },
  639. // 滚动事件
  640. onPageScroll(e) {
  641. //滚动距离+屏幕高度换算vw倍数
  642. let listIndex = (e.scrollTop + this.data.screenHeight) / (this.data.screenWidth * 0.63)
  643. this.setData({
  644. listIndex: listIndex
  645. })
  646. }
  647. })