index.js 17 KB

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