123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- // index.ts
- import dayjs from 'dayjs'
- import HomeApi from '../../services/home'
- import Navi from '../../utils/navi'
- import GoodApi from '../../services/good'
- import { weburl } from '../../utils/http'
- // 获取应用实例
- // const app = getApp<IAppOption>()
- const collapse = ['900rpx', '1466rpx']
- const windowWidth = wx.getSystemInfoSync().windowWidth
- Page({
- data: {
- loading: false,
- successload: 0,
- swipewidth: windowWidth,
- moveicon: {
- name: 'chevron-down',
- },
- albumInput: {
- skipCount: 0,
- maxResultCount: 10,
- },
- albums: [] as any[],
- albumTotal: 0,
- loadMoreStatus: 0,
- swipeHeight: collapse[1],
- movecls: 'zoom',
- homeCarousels: [] as WxCarouselListItemDto[],
- homeCategories: [] as WxAlbumCategoryItemDto[],
- homeDisplays: [] as WxDisplayListItemDto[],
- homeActives: [] as any[],
- marqueeShow: true,
- marquee: {
- speed: 60,
- loop: -1,
- delay: 0,
- },
- current: 1,
- autoplay: true,
- duration: 500,
- interval: 5000,
- gutter: [10, 50],
- motto: 'Hello World',
- mottoEx: '',
- userInfo: {},
- hasUserInfo: false,
- today: dayjs().add(1, 'day').isAfter(dayjs()),
- canIUse: wx.canIUse('button.open-type.getUserInfo'),
- canIUseGetUserProfile: false,
- canIUseOpenData:
- wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName'), // 如需尝试获取用户信息可改为false
- },
- // 事件处理函数
- //bindViewTap() {
- // getApp<IAppOption>().globalData.hasTicket = true
- // wx.navigateTo({
- // url: '../logs/logs',
- // })
- // buses.emit('login', 'ray')
- // buses.emit('enter', 'ray lee')
- //},
- loadRecommend(rest = false) {
- console.log('next')
- this.setData({
- loadMoreStatus: 1,
- })
- GoodApi.GetHomeRecommend(this.data.albumInput as any).then((rsp) => {
- if (rsp.result) {
- const result = rsp.result as any
- const { items = [] } = result
- const nowItems = rest ? items : this.data.albums.concat(items)
- this.setData({
- albums: nowItems as any,
- albumTotal: result.totalCount || 0,
- loadMoreStatus: nowItems.length === result.totalCount ? 2 : 0,
- })
- }
- })
- },
- handleReachBottom() {
- if (this.data.loadMoreStatus === 0 && this.data.albums.length < this.data.albumTotal) {
- this.setData(
- {
- albumInput: {
- ...this.data.albumInput,
- skipCount: this.data.albumInput.skipCount + 10,
- },
- },
- () => {
- this.loadRecommend()
- },
- )
- }
- },
- onLoad() {
- // watch.call(this, 'motto', (val) => {
- // this.setData({
- // mottoEx: val + ' watched!',
- // })
- // })
- // @ts-ignore
- if (wx.getUserProfile) {
- this.setData({
- canIUseGetUserProfile: true,
- })
- }
- },
- onPullDownRefresh() {
- wx.stopPullDownRefresh()
- this.onMoveSize()
- // if (!this.data.loading) {
- // this.load()
- // }
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage(options: { from: 'menu' | 'button'; target: any }) {
- console.log(options)
- // 设置菜单中的转发按钮触发转发事件时的转发内容
- var shareObj = {
- title: '欢画线上商城', // 默认是小程序的名称(可以写slogan等)
- path: '/pages/index/index', // 默认是当前页面,必须是以‘/'开头的完整路径
- imageUrl: weburl + '/share.jpg', //自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
- success(res: { errMsg: string }) {
- // 转发成功之后的回调
- if (res.errMsg == 'shareAppMessage:ok') {
- }
- },
- fail(res: { errMsg: string }) {
- // 转发失败之后的回调
- if (res.errMsg == 'shareAppMessage:fail cancel') {
- // 用户取消转发
- } else if (res.errMsg == 'shareAppMessage:fail') {
- // 转发失败,其中 detail message 为详细失败信息
- }
- },
- complete() {
- // 转发结束之后的回调(转发成不成功都会执行)
- },
- }
- return shareObj
- },
- load() {
- wx.getUserInfo({
- success(res) {
- console.log(res)
- },
- })
- this.setData({
- loading: true,
- successload: 0,
- })
- const self = this
- Promise.all([HomeApi.GetHomeCarousel(), HomeApi.GetHomeCategory(), HomeApi.GetHomeActive()])
- .then((rsps) => {
- self.setData({
- homeCarousels: rsps[0].result,
- homeCategories: rsps[1].result,
- homeActives: rsps[2].result,
- successload: 1,
- loading: false,
- })
- this.loadRecommend()
- })
- .catch(() => {
- this.setData({
- loading: false,
- successload: 2,
- })
- })
- },
- onShow() {
- this.getTabBar().init()
- this.load()
- },
- getUserProfile() {
- // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
- wx.getUserProfile({
- desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
- success: (res) => {
- console.log(res)
- this.setData({
- userInfo: res.userInfo,
- hasUserInfo: true,
- })
- },
- })
- },
- getUserInfo(e: any) {
- // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
- console.log(e)
- this.setData({
- userInfo: e.detail.userInfo,
- hasUserInfo: true,
- })
- },
- stringify(e: any) {
- return JSON.stringify(e)
- },
- bindChangeMotto() {
- this.setData({
- motto: 'hello ' + new Date().getTime(),
- })
- },
- changeGutter() {
- const px = Math.round(Math.random() * 100)
- this.setData({
- gutter: [px, px],
- })
- },
- gotoCate() {
- Navi.switchTab({
- url: '/pages/goods/category/index',
- })
- },
- gotolist(e: WechatMiniprogram.CustomEvent<{}, {}, { id: string }>) {
- Navi.navigateTo({
- url: '/pages/goods/list/index?cate=' + e.currentTarget.dataset.id,
- })
- },
- gotoAdvtag(e: WechatMiniprogram.CustomEvent<{}, {}, { tagid: string }>) {
- Navi.navigateTo({
- url: '/pages/advtag/index?tag=' + e.currentTarget.dataset.tagid,
- })
- },
- gotoLink(e: WechatMiniprogram.CustomEvent<{}, {}, { link: string; mode: string; id: string }>) {
- const { link, mode, id } = e.currentTarget.dataset
- console.log(mode)
- if (mode === 'pics') {
- Navi.navigateTo({
- url: '/pages/atphotos/index?id=' + id,
- })
- return
- }
- Navi.navigateTo({
- url: '/pages/outlink/index?url=' + encodeURIComponent(link),
- })
- },
- gotoAlbum(e: WechatMiniprogram.CustomEvent<{}, {}, { link: string; mode: string; id: string }>) {
- const { id } = e.currentTarget.dataset
- Navi.navigateTo({
- url: '/pages/atphotos/index?id=' + id,
- })
- },
- ondragend(e: WechatMiniprogram.CustomEvent<{ scrollLeft: number; velocity: number }>) {
- console.log(e.detail.scrollLeft, e.detail.velocity)
- // const full = 375
- },
- onMoveSize() {
- if (this.data.swipeHeight === collapse[0]) {
- this.setData({
- swipeHeight: collapse[1],
- movecls: 'zoom',
- })
- } else {
- this.setData({
- swipeHeight: collapse[0],
- movecls: '',
- })
- }
- },
- gotoGoodsDetail(e: WechatMiniprogram.CustomEvent<{ goods: WxCateAlbumItemDto; index: number }>) {
- const { goods } = e.detail
- Navi.navigateTo({
- url: '/pages/goods/detail/index?id=' + goods.id + '&cateid=' + goods.cateId,
- })
- console.log('click', e)
- },
- })
|