index.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  1. //index.js
  2. //获取应用实例
  3. var app = getApp();
  4. let host = app.globalData.servsers; // 请求的url
  5. var coupon = [{
  6. coupon_monry: '1000',
  7. coupon_rule: '9999',
  8. coupon_name: '新年专属红包',
  9. coupon_begin_time: '2018-01-01',
  10. coupon_end_time: '2018-02-08'
  11. },
  12. {
  13. coupon_monry: '300',
  14. coupon_rule: '4999',
  15. coupon_name: '新年专属红包',
  16. coupon_begin_time: '2018-01-01',
  17. coupon_end_time: '2018-02-08'
  18. },
  19. {
  20. coupon_monry: '50',
  21. coupon_rule: '999',
  22. coupon_name: '新年专属红包',
  23. coupon_begin_time: '2018-01-01',
  24. coupon_end_time: '2018-02-08'
  25. }
  26. ];
  27. Page({
  28. data: {
  29. urlHttp: '',
  30. host: '',
  31. scrollLeft: 0, //tab标题的滚动条位置
  32. search: {
  33. placeholder: "输入搜索关键字"
  34. },
  35. navTab: [{
  36. url: '/',
  37. icon: 'icon-dingzhijiaju',
  38. src: '../../images/news/nav_01.png',
  39. text: '杯类'
  40. },
  41. {
  42. url: '/',
  43. icon: 'icon-dingzhijiaju',
  44. src: '../../images/news/nav_02.png',
  45. text: '行李箱'
  46. },
  47. {
  48. url: '/',
  49. icon: 'icon-dingzhijiaju',
  50. src: '../../images/news/nav_03.png',
  51. text: '手机壳'
  52. },
  53. {
  54. url: '/',
  55. icon: 'icon-dingzhijiaju',
  56. src: '../../images/news/nav_04.png',
  57. text: '板画'
  58. },
  59. {
  60. url: '/',
  61. icon: 'icon-dingzhijiaju',
  62. src: '../../images/news/nav_05.png',
  63. text: '包袋'
  64. }
  65. ],
  66. navArray: [
  67. // {
  68. // src: '/images/news/nav_1.png',
  69. // bg: '#fafcff',
  70. // type: 0,
  71. // href: '/'
  72. // },
  73. // {
  74. // src: '/images/news/nav_2.png',
  75. // bg: '#fef9f8',
  76. // type: 1,
  77. // href: '/pages/kindSecondList/kindSecondList'
  78. // },
  79. {
  80. src: '/images/news/nav_3.png',
  81. bg: '#f7f6fb',
  82. type: 2,
  83. href: '/customized/pages/index/index'
  84. },
  85. {
  86. src: '/images/news/nav_4.png',
  87. bg: '#f1f7fc',
  88. type: 3,
  89. href: '/pages/patternMenu/patternMenu'
  90. }
  91. ],
  92. specArray: [],
  93. navList: ["推荐", "中秋", "改良生活", "优化办公", "智能科技"],
  94. firstActive: "header_nav_active",
  95. currentItem: '',
  96. flag: true,
  97. banners: [],
  98. rexiao: [],
  99. tuijian: [],
  100. tuijiannew: [],
  101. forviewFir: [],
  102. forviewSec: [],
  103. forviewtitele: '',
  104. title1: '',
  105. title2: '',
  106. title3: '',
  107. intro1: '',
  108. intro2: '',
  109. intro3: '',
  110. id1: '',
  111. id2: '',
  112. id3: '',
  113. src1: '',
  114. src2: '',
  115. src3: '',
  116. src4: '',
  117. src5: '',
  118. src6: '',
  119. price1: '',
  120. price2: '',
  121. price3: '',
  122. host: '',
  123. idTwo: '',
  124. find_name: '',
  125. find_id: '',
  126. find_logo: '',
  127. find_yuedu: '',
  128. find_shoucang: '',
  129. datatime: new Date().getTime(),
  130. city_name: '',
  131. jingpin: { // 发现精品
  132. id: 1,
  133. src: "../../images/jingxuan_banner.jpg",
  134. title: "各星座员工生日礼品如何选",
  135. liulan: 117,
  136. zan: 34
  137. },
  138. page: 1,
  139. hasMore: true,
  140. hidden: '',
  141. winHeight: "", //窗口高度
  142. coupon: coupon, //优惠劵
  143. showCoupon: false,
  144. couponSta: 0, //对于用户来说,是否是第一次显示
  145. un_id: '',
  146. showMsg: true, //显示切换模式提示
  147. showChangeModel: false, //显示切换模式确认弹窗
  148. bannerFlag: 0, //banner数量
  149. recommendArray: [], // /推荐数组
  150. goodsNewsArray: [], //按照时间排序来
  151. // channelId:null ,//用户登录后的id
  152. page: 1, //默认第一页
  153. limit: 10, //展示的数量
  154. requestState: true, //请求状态,默认是有数据的
  155. loginStatic: false, //登陆状态,默认为false
  156. },
  157. //tab切换
  158. tagChoose: function (options) {
  159. var that = this
  160. var name = options.currentTarget.dataset.name;
  161. var des = options.currentTarget.dataset.des;
  162. var forid = options.currentTarget.dataset.forid;
  163. wx: wx.navigateTo({
  164. url: '/pages/kindSecondList/kindSecondList?classify_name=' + name + '&classify_des=' + des + '&id=' + forid
  165. })
  166. },
  167. // 滚动切换标签样式
  168. switchTab: function (e) {
  169. var that = this;
  170. var host = getApp().globalData.servsers;
  171. var current = e.detail.current;
  172. if (e.detail.current == 0) {
  173. var forid = 0;
  174. } else {
  175. var forid = that.data.navList[e.detail.current - 1].id;
  176. var forname = that.data.navList[e.detail.current - 1].classify_name;
  177. var classifydes = that.data.navList[e.detail.current - 1].classify_des;
  178. }
  179. this.setData({
  180. currentItem: e.detail.current
  181. })
  182. if (forid > 0) {
  183. wx.request({
  184. url: that.data.host + "classifyapi/findAllforviewFir",
  185. data: {
  186. id: forid
  187. },
  188. method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT flag: true,
  189. header: {
  190. 'Accept': 'application/json'
  191. },
  192. success: function (res) {
  193. wx.request({
  194. url: that.data.host + "commodityapi/findOneforxcx",
  195. data: {
  196. com_id: forid,
  197. },
  198. method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT flag: true,
  199. header: {
  200. 'Accept': 'application/json'
  201. },
  202. success: function (res) {
  203. that.setData({
  204. tuijiannew: res.data.rows
  205. });
  206. if (res == null || res.data == null) {
  207. console.error('网络请求失败');
  208. return;
  209. }
  210. }
  211. });
  212. that.setData({
  213. forviewFir: res.data.rows,
  214. forviewtitele: res.data.rows[0].classify_des,
  215. 'firstActive': "",
  216. flag: false,
  217. });
  218. if (res == null || res.data == null) {
  219. console.error('网络请求失败');
  220. return;
  221. }
  222. }
  223. });
  224. } else {
  225. //设置当前样式
  226. that.setData({
  227. 'firstActive': "",
  228. 'currentItem': 0,
  229. flag: true,
  230. })
  231. }
  232. that.checkCor();
  233. },
  234. checkCor: function () {
  235. if (this.data.currentItem > 2) {
  236. this.setData({
  237. scrollLeft: 300
  238. })
  239. } else {
  240. this.setData({
  241. scrollLeft: 0
  242. })
  243. }
  244. },
  245. onLoad: function () {
  246. var that = this;
  247. var host = getApp().globalData.servsers;
  248. var un_id = getApp().globalData.un_id;
  249. that.setData({
  250. urlHttp: host
  251. })
  252. //首页banner
  253. wx.request({
  254. url: host + "homebannerapi/homebannerall",
  255. data: {},
  256. method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  257. header: {
  258. 'Accept': 'application/json'
  259. },
  260. success: function (res) {
  261. that.setData({
  262. banners: res.data.rows,
  263. host: host
  264. });
  265. console.log(res.data.rows);
  266. //判断banner位置是否为空
  267. for (var i = 0; i < res.data.rows.length; i++) {
  268. var bannerFlag = that.data.bannerFlag;
  269. if (bannerFlag > 0) {
  270. return false;
  271. } else {
  272. if (res.data.rows[i].banner_flag == 0) {
  273. bannerFlag++;
  274. that.setData({
  275. bannerFlag: bannerFlag
  276. })
  277. return false;
  278. }
  279. }
  280. }
  281. //console.log(that.data.banners);
  282. if (res == null || res.data == null) {
  283. console.error('网络请求失败');
  284. return;
  285. }
  286. }
  287. });
  288. //品牌定制
  289. wx.request({
  290. url: host + "brandapi/findforfirst",
  291. data: {},
  292. method: 'GET',
  293. header: {
  294. 'Accept': 'application/json'
  295. },
  296. success: function (res) {
  297. if (res.data.rows[0] == undefined) {
  298. that.setData({
  299. hidden: 'hidden'
  300. })
  301. } else {
  302. var img = res.data.rows[0].brand_logo;
  303. that.setData({
  304. title1: res.data.rows[0].brand_name,
  305. intro1: res.data.rows[0].brand_des,
  306. src1: res.data.rows[0].brand_logo,
  307. src4: res.data.rows[0].brand_logo1,
  308. price1: res.data.rows[0].price,
  309. id1: res.data.rows[0].id,
  310. });
  311. }
  312. if (res.data.rows[1] == undefined) {
  313. // that.setData({
  314. // hidden: 'hidden'
  315. // })
  316. } else {
  317. var img = res.data.rows[0].brand_logo;
  318. that.setData({
  319. title2: res.data.rows[1].brand_name,
  320. intro2: res.data.rows[1].brand_des,
  321. src2: res.data.rows[1].brand_logo,
  322. src5: res.data.rows[1].brand_logo1,
  323. price2: res.data.rows[1].price,
  324. id2: res.data.rows[1].id,
  325. });
  326. }
  327. if (res.data.rows[2] == undefined) {
  328. // that.setData({
  329. // hidden: 'hidden'
  330. // })
  331. } else {
  332. var img = res.data.rows[0].brand_logo;
  333. that.setData({
  334. title3: res.data.rows[2].brand_name,
  335. intro3: res.data.rows[2].brand_des,
  336. src3: res.data.rows[2].brand_logo,
  337. src6: res.data.rows[2].brand_logo1,
  338. price3: res.data.rows[2].price,
  339. id3: res.data.rows[2].id,
  340. });
  341. }
  342. if (res == null || res.data == null) {
  343. console.error('网络请求失败');
  344. return;
  345. }
  346. }
  347. })
  348. // 高度自适应
  349. wx.getSystemInfo({
  350. success: function (res) {
  351. var clientHeight = res.windowHeight,
  352. clientWidth = res.windowWidth,
  353. rpxR = 750 / clientWidth;
  354. var calc = clientHeight * rpxR;
  355. that.setData({
  356. winHeight: calc
  357. });
  358. }
  359. });
  360. },
  361. onReady: function (e) {
  362. var that = this;
  363. var host = getApp().globalData.servsers;
  364. //判断时间,在规定时间内显示优惠劵弹窗
  365. var beiginTime = '2017/12/28';
  366. var endTime = '2018/01/08';
  367. var beginTimestamp = beiginTime.replace(/-/g, '/');
  368. beginTimestamp = Date.parse(beginTimestamp);
  369. var endTimestamp = endTime.replace(/-/g, '/');
  370. endTimestamp = Date.parse(endTimestamp);
  371. //获取当前日期
  372. var date = new Date();
  373. var Y = date.getFullYear();
  374. var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
  375. var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
  376. var nowTime = Y + '/' + M + '/' + D;
  377. nowTime = nowTime.replace(/-/g, '/');
  378. nowTime = Date.parse(nowTime);
  379. wx.login({
  380. success: function (res) {
  381. var code = res.code;
  382. wx.getUserInfo({
  383. withCredentials: true,
  384. success: function (res) {
  385. wx.request({
  386. url: host + "userapi/insertadd",
  387. data: {
  388. user_id: code,
  389. name: res.userInfo.nickName,
  390. icon: res.userInfo.avatarUrl,
  391. iv: res.iv,
  392. encryptedData: res.encryptedData,
  393. },
  394. method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  395. header: {
  396. 'Accept': 'application/json'
  397. },
  398. success: function (res) {
  399. that.setData({
  400. un_id: res.data.unionId
  401. })
  402. var un_id = res.data.unionId;
  403. if (parseInt(nowTime) >= parseInt(beginTimestamp) && parseInt(nowTime) <= parseInt(endTimestamp)) { //当前日期在优惠劵领取时间内
  404. console.log("un_id:" + un_id);
  405. if (un_id != undefined && un_id != '' && un_id != null) {
  406. wx.request({ //优惠活动-对于用户来说,是否应该显示
  407. url: host + "mycouponapi/getAlertFlag",
  408. data: {
  409. user_id: un_id,
  410. batch_no: 1,
  411. alert_num: 1 //优惠活动对于每个用户来说,一共显示的次数
  412. },
  413. method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  414. header: {
  415. 'Accept': 'application/json'
  416. },
  417. success: function (res) {
  418. if (res.data == 0) {
  419. that.setData({
  420. showCoupon: true
  421. })
  422. } else {
  423. that.setData({
  424. showCoupon: false
  425. })
  426. }
  427. if (res == null || res.data == null) {
  428. console.error('网络请求失败');
  429. return;
  430. }
  431. }
  432. });
  433. }
  434. }
  435. if (res == null || res.data == null) {
  436. console.error('网络请求失败');
  437. return;
  438. }
  439. }
  440. })
  441. }
  442. })
  443. }
  444. })
  445. },
  446. footerTap: app.footerTap,
  447. onShow: function () {
  448. var that = this;
  449. that.onLoad();
  450. //商品推荐
  451. that.getGoodsRecommendList(that);
  452. // 按照时间排序
  453. that.setData({
  454. goodsNewsArray: [],
  455. page: 1,
  456. })
  457. that.getGoodsNews(that)
  458. that.getSpecList(that)
  459. if (wx.getStorageSync('channelIdObj').channelId) {
  460. that.setData({
  461. loginStatic: true,
  462. })
  463. }
  464. },
  465. //跳转到“发现”tab页
  466. find: function (e) {
  467. wx.switchTab({
  468. url: "/pages/find/index"
  469. })
  470. },
  471. getSpecList(that) {
  472. wx.request({
  473. url: host + '/classifyapi/classifyTwoAll',
  474. method: 'get',
  475. data: {
  476. classifyHigher: 3072
  477. },
  478. success: function (res) {
  479. console.log(res)
  480. that.setData({
  481. specArray: res.data.rows
  482. })
  483. }
  484. })
  485. },
  486. onReachBottom() {
  487. var that = this;
  488. if (that.data.requestState) {
  489. that.setData({
  490. page: that.data.page + 1
  491. })
  492. that.getGoodsNews(that)
  493. }
  494. console.log('到底了')
  495. },
  496. //下拉刷新
  497. onPullDownRefresh: function (e) {
  498. },
  499. onShareAppMessage: function (res) { //页面分享
  500. var that = this;
  501. var host = getApp().globalData.servsers;
  502. if (res.from === 'button') {
  503. // 来自页面内转发按钮
  504. console.log(res.target)
  505. }
  506. return {
  507. title: '大良造-精良之选,用心造物!',
  508. path: '/pages/index/index',
  509. success: function (res) {
  510. },
  511. fail: function (res) {
  512. // 转发失败
  513. }
  514. }
  515. },
  516. //关闭优惠劵弹窗
  517. closeCoupon: function (e) {
  518. var that = this;
  519. that.setData({
  520. showCoupon: false
  521. })
  522. },
  523. //关闭切换模式提示
  524. closeMsg: function (e) {
  525. var that = this;
  526. that.setData({
  527. showMsg: false
  528. })
  529. },
  530. //打开切换提示
  531. openChangeModel: function (e) {
  532. var that = this;
  533. that.setData({
  534. showMsg: false,
  535. showChangeModel: true
  536. })
  537. },
  538. //跳转至一键选礼
  539. goChooseGift: function (e) {
  540. var that = this;
  541. that.setData({
  542. showChangeModel: false
  543. })
  544. wx.navigateTo({
  545. url: '/pages/patternMenu/patternMenu'
  546. })
  547. },
  548. //关闭切换模式确认弹窗
  549. closeChangeModel: function (e) {
  550. var that = this;
  551. that.setData({
  552. showChangeModel: false
  553. })
  554. },
  555. // 商品推荐
  556. getGoodsRecommendList(that) {
  557. let data = {
  558. limit: 6,
  559. offset: 1,
  560. channelId: wx.getStorageSync('channelIdObj').channelId ? wx.getStorageSync('channelIdObj').channelId : ""
  561. }
  562. wx.request({
  563. url: host + '/commodityapi/queryCommodityGroom',
  564. method: "get",
  565. data: data,
  566. success(res) {
  567. res.data.rows.forEach(el => {
  568. el.logo = el.commodity_logo.split(",")
  569. })
  570. that.setData({
  571. recommendArray: res.data.rows
  572. })
  573. }
  574. })
  575. },
  576. // 按时间排序来的
  577. getGoodsNews(that) {
  578. let data = {
  579. limit: that.data.limit,
  580. offset: that.data.page,
  581. channelId: wx.getStorageSync('channelIdObj').channelId ? wx.getStorageSync('channelIdObj').channelId : ""
  582. }
  583. wx.request({
  584. url: host + '/commodityapi/findAllforNewproduct',
  585. method: "get",
  586. data: data,
  587. success(res) {
  588. let goods = that.data.goodsNewsArray;
  589. console.log(goods)
  590. if (that.data.page == 1) {
  591. goods = [];
  592. }
  593. goods.push(...res.data.rows);
  594. console.log(goods)
  595. that.setData({
  596. goodsNewsArray: goods,
  597. requestState: res.data.rows.length === that.data.limit
  598. })
  599. }
  600. })
  601. },
  602. toGoodsDetail(e) { // 进入商品详情页
  603. let that = this,
  604. id = e.currentTarget.dataset.id;
  605. wx.navigateTo({
  606. url: '/pages/buy/buy?com_id=' + id,
  607. })
  608. },
  609. navTap(e) {
  610. // console.log(e);
  611. let item = e.currentTarget.dataset.item;
  612. if (item.type == 1 && !wx.getStorageSync('channelIdObj')) { // 表示是优质的杯,并且还没有登录过渠道
  613. wx.navigateTo({
  614. url: '/pages/login/login?url=' + item.href,
  615. })
  616. } else {
  617. wx.navigateTo({
  618. url: item.href,
  619. })
  620. }
  621. },
  622. tapMomo() {
  623. // if (!wx.getStorageSync('channelIdObj')) { // 还没有登录过渠道
  624. // wx.navigateTo({
  625. // url: '/pages/login/login?url=/pages/momo/momo',
  626. // })
  627. // } else {
  628. // wx.switchTo({
  629. // url: '/pages/momo/momo',
  630. // })
  631. // }
  632. }
  633. })
  634. var banners = []
  635. // 热销新品
  636. var rexiao = []
  637. // 热销新品
  638. var pinpai = []
  639. // 人气推荐
  640. var tuijian = []
  641. var that;
  642. var Util = require('../../utils/util.js');