home.js 19 KB

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