陶杰
2024-09-11 d14c8fe408eb087dadc1106d2b180f61794b6cb8
1.首页-下拉刷新功能实现
已修改1个文件
313 ■■■■ 文件已修改
pages/home/home.vue 313 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/home.vue
@@ -197,160 +197,171 @@
                this.$refs.home_top_flow.fun_GetMore()
            }
        },
        onPullDownRefresh() {
            // 下拉刷新方法
            this.init()
        },
        onLoad(options) {
            // if(options.partnerUserId){
            //     //需要前往注册了
            //     uni.navigateTo({
            //         url: '/pages/login/supplier-login'
            //     })
            // }
            // console.log('home created')
            //这里进行一次初始化即可
            // this.$http.request('get', '/api/school/area/list', {
            // }).then(res => {
            //     if (res.code == 0) {
            //         this.schools = res.data || []
            //     }
            // })
            // uni.navigateTo({
            //     url: '/sub_pages/customer/trade/detail'
            // })
            //获取banner图
            this.$http.request('get', '/api/pub/banner/list', {}).then(res => {
                if (res.code == 0) {
                    this.banners = []
                    var tarr = res.data || []
                    if (tarr.length == 0) {
                        // tarr.push({
                        //     url: 'https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png'
                        // })
                        this.banners = tarr
                    } else {
                        var result = []
                        for (var item of tarr) {
                            // http://106.14.123.210/files/group1/e8/e1c17f7229514e5da211d8d47b09906b.jpeg
                            try {
                                if (item.url) {
                                    var t = JSON.parse(item.url)
                                    if (Array.isArray(t)) {
                                        // item.url = t[0] || ''
                                        for (var url of t) {
                                            result.push({
                                                ...item,
                                                url: url || ''
                                            })
                                        }
                                    } else {
                                        // item.url = t.url || ''
                                        result.push({
                                            ...item,
                                            url: t.url || ''
                                        })
                                    }
                                }
                            } catch (e) {
                                // console.log('error',e)
                            }
                        }
                        this.banners = result
                    }
                    console.log('this.banners', this.banners)
                }
            })
            var areaIndex = uni.getStorageSync('areaIndex')
            if (!areaIndex && areaIndex !== 0) {
            } else {
                this.areaIndex = areaIndex
            }
            //如果已经登录,加载一下默认地址
            let that = this
            setTimeout(() => {
                if (that.currentInfo.id && !that.address.id) {
                    that.$http.request('get', '/api/address/default/detail').then(res => {
                        if (res.data) {
                            that.$store.commit('setDefaultAddress', {
                                ...res.data
                            })
                        }
                    })
                }
            }, 2000)
            //公告
            var type = ''
            // #ifdef PUB_CUSTOMER
            type = 'customer'
            // #endif
            // #ifdef PUB_SUPPLIER
            type = 'supplier'
            // #endif
            // #ifdef PUB_PARTNER
            type = 'partner'
            // #endif
            this.$http.request('get', '/api/pub/announcement/list/' + type, {
                params: {
                    size: 5,
                    status: 'A'
                }
            }).then(res => {
                if (res.code === 0) {
                    // (res.data && res.data.records || [])
                    this.noticeList = res.data || []
                    console.log('this.noticeList', this.noticeList)
                    if (this.noticeList.length > 0) {
                        this.currentNotice = this.noticeList[0]
                        if (this.currentNotice.title && this.currentNotice.title.length >= 30) {
                            this.scrollable = true
                        } else {
                            this.scrollable = false
                        }
                        let that = this
                        if (this.noticeList.length >= 1) {
                            setInterval(() => {
                                console.log('interval,1')
                                that.currentNoticeIndex += 1
                                that.currentNoticeIndex %= that.noticeList.length
                                that.currentNotice = that.noticeList[that.currentNoticeIndex]
                                that.scrollable = false
                                that.$nextTick(() => {
                                    if (that.currentNotice.title && that.currentNotice.title
                                        .length >= 30) {
                                        that.scrollable = true
                                    } else {
                                        that.scrollable = false
                                    }
                                })
                            }, 8000)
                        }
                    }
                }
            })
            // let tmp = this
            // //首页优惠券
            // this.$http.request('get', '/api/v2/coupon/app' + `/home/list`).then(res => {
            //     if (res.code == 0) {
            //         var list = res.data || []
            //         var dto = list.length >= 1 ? list[0] : undefined
            //         if (dto) {
            //             // 显示弹窗图片
            //             tmp.$refs.coupon_home.open()
            //         }
            //     }
            // })
            this.init()
        },
        methods: {
            init(){
                // if(options.partnerUserId){
                //     //需要前往注册了
                //     uni.navigateTo({
                //         url: '/pages/login/supplier-login'
                //     })
                // }
                // console.log('home created')
                //这里进行一次初始化即可
                // this.$http.request('get', '/api/school/area/list', {
                // }).then(res => {
                //     if (res.code == 0) {
                //         this.schools = res.data || []
                //     }
                // })
                // uni.navigateTo({
                //     url: '/sub_pages/customer/trade/detail'
                // })
                //获取banner图
                this.$http.request('get', '/api/pub/banner/list', {}).then(res => {
                    if (res.code == 0) {
                        this.banners = []
                        var tarr = res.data || []
                        if (tarr.length == 0) {
                            // tarr.push({
                            //     url: 'https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png'
                            // })
                            this.banners = tarr
                        } else {
                            var result = []
                            for (var item of tarr) {
                                // http://106.14.123.210/files/group1/e8/e1c17f7229514e5da211d8d47b09906b.jpeg
                                try {
                                    if (item.url) {
                                        var t = JSON.parse(item.url)
                                        if (Array.isArray(t)) {
                                            // item.url = t[0] || ''
                                            for (var url of t) {
                                                result.push({
                                                    ...item,
                                                    url: url || ''
                                                })
                                            }
                                        } else {
                                            // item.url = t.url || ''
                                            result.push({
                                                ...item,
                                                url: t.url || ''
                                            })
                                        }
                                    }
                                } catch (e) {
                                    // console.log('error',e)
                                }
                            }
                            this.banners = result
                        }
                        console.log('this.banners', this.banners)
                    }
                })
                var areaIndex = uni.getStorageSync('areaIndex')
                if (!areaIndex && areaIndex !== 0) {
                } else {
                    this.areaIndex = areaIndex
                }
                //如果已经登录,加载一下默认地址
                let that = this
                setTimeout(() => {
                    if (that.currentInfo.id && !that.address.id) {
                        that.$http.request('get', '/api/address/default/detail').then(res => {
                            if (res.data) {
                                that.$store.commit('setDefaultAddress', {
                                    ...res.data
                                })
                            }
                        })
                    }
                }, 2000)
                //公告
                var type = ''
                // #ifdef PUB_CUSTOMER
                type = 'customer'
                // #endif
                // #ifdef PUB_SUPPLIER
                type = 'supplier'
                // #endif
                // #ifdef PUB_PARTNER
                type = 'partner'
                // #endif
                this.$http.request('get', '/api/pub/announcement/list/' + type, {
                    params: {
                        size: 5,
                        status: 'A'
                    }
                }).then(res => {
                    if (res.code === 0) {
                        // (res.data && res.data.records || [])
                        this.noticeList = res.data || []
                        console.log('this.noticeList', this.noticeList)
                        if (this.noticeList.length > 0) {
                            this.currentNotice = this.noticeList[0]
                            if (this.currentNotice.title && this.currentNotice.title.length >= 30) {
                                this.scrollable = true
                            } else {
                                this.scrollable = false
                            }
                            let that = this
                            if (this.noticeList.length >= 1) {
                                setInterval(() => {
                                    console.log('interval,1')
                                    that.currentNoticeIndex += 1
                                    that.currentNoticeIndex %= that.noticeList.length
                                    that.currentNotice = that.noticeList[that.currentNoticeIndex]
                                    that.scrollable = false
                                    that.$nextTick(() => {
                                        if (that.currentNotice.title && that.currentNotice.title
                                            .length >= 30) {
                                            that.scrollable = true
                                        } else {
                                            that.scrollable = false
                                        }
                                    })
                                }, 8000)
                            }
                        }
                    }
                })
                // let tmp = this
                // //首页优惠券
                // this.$http.request('get', '/api/v2/coupon/app' + `/home/list`).then(res => {
                //     if (res.code == 0) {
                //         var list = res.data || []
                //         var dto = list.length >= 1 ? list[0] : undefined
                //         if (dto) {
                //             // 显示弹窗图片
                //             tmp.$refs.coupon_home.open()
                //         }
                //     }
                // })
            },
            clickBanner(item) {
                if (item.id) {
                    uni.navigateTo({