From efa9bfe98ba906e4c9b8f49c89f5da162a46bb0f Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期一, 13 一月 2025 10:21:24 +0800
Subject: [PATCH] 1.微信一键登录:新增“同意用户协议”之后才可登录
---
pages/home/home.vue | 951 ++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 551 insertions(+), 400 deletions(-)
diff --git a/pages/home/home.vue b/pages/home/home.vue
index 575ad37..5f48b92 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -1,405 +1,556 @@
-<template>
- <view class="main-container home">
- <!-- 顶部,可能 -->
- <view class="school" :style="{'background-color': color,'padding-top':(StatusBar)+'px'
- ,height:CustomBar+'rpx','line-height':CustomBar+'rpx' }">
- <view class="home-logo"></view>
-
- <picker @change="PickerChangeSchool" :value="schoolIndex" :range="schools" range-key="name">
- <view class="picker flex">
- <!-- <text class="cuIcon-locationfill"></text> -->
- <uni-icons type="location" class="m-l-15 m-r-5" size="18"></uni-icons>
- <view>
- {{ schoolIndex>=0&&schools[schoolIndex].name ? schools[schoolIndex].name : '选择校区' }}
- </view>
- <!-- <text class="cuIcon-unfold margin-left-xs"></text> -->
+<template>
+ <view class="main-container user-home">
+ <view class="bg-top-green"></view>
+ <!-- 顶部,可能 -->
+ <view class="school flex" :style="{'padding-top':(StatusBar + 8 )+'px'
+ ,height:CustomBar+'rpx','line-height':CustomBar+'rpx' }">
+ <!-- <picker @change="PickerChangeSchool" :value="areaIndex" :range="schools" range-key="name">
+ <view class="picker flex">
+ <uni-icons type="location" class="m-r-5" size="18"></uni-icons>
+ <view>
+ {{ areaIndex >= 0 && schools[areaIndex].name ? schools[areaIndex].name : '选择位置' }}
+ </view>
+ </view>
+ </picker> -->
+ <view class="picker flex" @click.stop="goToAddress">
+ <uni-icons type="location" class="m-r-5" size="18"></uni-icons>
+ <view>
+ {{ current_address }}
</view>
- </picker>
- </view>
- <!-- <view :style="{'background-color': color,'padding-top':(StatusBar)+'px',height:CustomBar+'px'}"></view> -->
-
-
- <!-- banner -->
- <uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="currentBanner"
- :mode="'dot'" :dots-styles="dotsStyles[0]" field="content">
- <swiper class="swiper-box" @change="changeBanner" :interval="10000" :circular="true" :current="0"
- v-if="banners&&banners.length>0" :autoplay="true">
- <swiper-item v-for="(item, index) in banners" :key="index">
- <view class="swiper-item" :class="'swiper-item' + index">
- <image @click="previewImg(item.imageSmall||item.image)" class="home-banner-image"
- mode="aspectFit" :src="item.imageSmall||item.image">
- </image>
- </view>
- </swiper-item>
- <animation-words :words="words" v-if="words&&words.length>0"></animation-words>
-
- </swiper>
- <swiper class="swiper-box" @change="changeBanner" :current="0" v-if="!banners||banners.length==0">
- <swiper-item v-for="(item, index) in 1" :key="index">
- <view class="swiper-item" :class="'swiper-item' + index">
- <image class="home-banner-image" mode="scaleToFill"
- src="https://xy-go.oss-cn-beijing.aliyuncs.com/51/51abd2f29d104a78a5d6dcc27078716a位图@2x (4).png">
- </image>
- </view>
- </swiper-item>
- <animation-words :words="words" v-if="words&&words.length>0"></animation-words>
-
- </swiper>
- </uni-swiper-dot>
- <!-- tip -->
- <view class="p10">
- <uni-notice-bar @click="getNoticeMore" v-if="currentNotice&¤tNotice.id" class="notice-bar"
- color="#333" background-color="#fff" show-get-more show-icon :scrollable="scrollable"
- :text="currentNotice.title" :key="currentNotice.id" />
- <span v-if="!currentNotice||!currentNotice.id"> </span>
- </view>
-
- <!-- 各种按钮 -->
- <home-buttons></home-buttons>
- <!-- 推荐的成团的 -->
- <view class="p15" style="padding-top: 0rpx;" v-if="tuangouList&&tuangouList.length>0">
- <view class="home-shop-top">
- <!-- <view>即将成团</view> -->
- <image src="../../static/imgs/home/home-shop-top-txt.png" mode="aspectFit" class="title"></image>
- <image src="../../static/imgs/home/home-shop-top-icon.png" mode="aspectFit" class="icon"></image>
-
- <card-list-item type='shop' :dto="tuangouList[0]" @pop="pop"></card-list-item>
+ <uni-icons class="icon" type="left" style="transform: rotate(-90deg);margin-left: 10rpx;" size="20"></uni-icons>
+
</view>
- </view>
- <!-- 出去玩的 -->
- <view class="p15" style="padding-top: 0rpx;padding-bottom: 0rpx;" v-if="tripList&&tripList.length>0">
- <view class="home-travel-top">
- <!-- <view>粗去玩</view> -->
- <image src="../../static/imgs/home/home-travel-top-txt.png" mode="aspectFit" class="title"></image>
- <image src="../../static/imgs/home/home-travel-top-icon.png" mode="aspectFit" class="icon"></image>
- <card-list-item type='travel' :dto="tripList[0]"></card-list-item>
- </view>
- </view>
-
- <!-- 3个tab选项 -->
-
- <view class="p15" style="padding-bottom: 10rpx;">
- <!-- @change="changeTab" -->
- <top-tabs :tabs="tabs" :flg.sync="tabIndex"></top-tabs>
-
-
-
- </view>
- <!-- 根据不同的 -->
- <view class="" style="padding-left: 30rpx;padding-right: 30rpx;">
- <view v-show="tabIndex==0" style="min-height: 400rpx;">
- <!-- 加载推荐位置的? -->
- <no-data v-if="!tuangouList||tuangouList.length==0" style="width: 100%;"></no-data>
- <view class="m-b-24" v-for="item of tuangouList">
- <card-list-item type='shop' :dto="item" @pop="pop"></card-list-item>
- </view>
- </view>
- <view v-show="tabIndex==1" style="min-height: 400rpx;">
- <!-- 加载推荐位置的? -->
- <no-data v-if="!tripList||tripList.length==0" style="width: 100%;"></no-data>
-
- <view class="m-b-24" v-for="item of tripList">
- <card-list-item type='travel' :dto="item" class="m-b-24"></card-list-item>
- </view>
-
- </view>
- </view>
- <view v-show="tabIndex==2" style="margin-top: -10rpx;">
- <home-goods ref="homegoods"></home-goods>
-
- </view>
- <view style="padding-bottom:200rpx">
- </view>
- <supplier-footer flg="0"></supplier-footer>
-
- </view>
-</template>
-
-<script>
- import homeButtons from './components/home-buttons.vue'
- import homeGoods from './components/home-goods.vue'
- import animationWords from '@/components/animation-words'
-
- export default {
- components: {
- homeButtons,
- homeGoods,
- animationWords
- },
-
- data() {
- return {
- CustomBar: uni.getStorageSync('CustomBar'),
- StatusBar: uni.getStorageSync('StatusBar'),
- // StatusBar:0,
- color: '#fff',
- schools: [],
- schoolIndex: -1,
- scrollable: false,
- tabs: [{
- name: '团购',
- id: 'shop'
- },
- {
- name: '粗去玩',
- id: 'travel'
- },
- {
- name: '挖宝商品',
- id: 'good'
- },
- ],
- tabIndex: 2,
- info: [{
- colorClass: 'uni-bg-red',
- url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
- content: '内容 A'
- },
- {
- colorClass: 'uni-bg-green',
- url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
- content: '内容 B'
- },
- {
- colorClass: 'uni-bg-blue',
- url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
- content: '内容 C'
- }
- ],
- dotStyle: [{
- backgroundColor: 'rgba(0, 0, 0, .3)',
- border: '1px rgba(0, 0, 0, .3) solid',
- color: '#fff',
- selectedBackgroundColor: 'rgba(0, 0, 0, .9)',
- selectedBorder: '1px rgba(0, 0, 0, .9) solid'
- },
- {
- backgroundColor: 'rgba(255, 90, 95,0.3)',
- border: '1px rgba(255, 90, 95,0.3) solid',
- color: '#fff',
- selectedBackgroundColor: 'rgba(255, 90, 95,0.9)',
- selectedBorder: '1px rgba(255, 90, 95,0.9) solid'
- },
- {
- backgroundColor: 'rgba(83, 200, 249,0.3)',
- border: '1px rgba(83, 200, 249,0.3) solid',
- color: '#fff',
- selectedBackgroundColor: 'rgba(83, 200, 249,0.9)',
- selectedBorder: '1px rgba(83, 200, 249,0.9) solid'
- }
- ],
- currentBanner: 0,
- banners: [],
- tripList: [],
- tuangouList: [],
- hide_footer: false,
- words: [], //弹幕
- noticeList: [],
- currentNoticeIndex: 0,
- currentNotice: {
-
+ <view class="m-l-a m-r-0" style="position: relative;" @click="goto('/sub_pages/supplier/customer_service/customer_service',false)">
+ <view class="icon-kf-p">
+ <!-- <view>客服</view> -->
+ <image src="@/static/common/icon-kf.png" class="icon-kf img100"></image>
+ </view>
+ </view>
+ </view>
+ <view class="search-container m-t-12 flex" @click="goto('/pages/home/components/home-search',false)">
+ <view class="flex1 input">
+ <u-input placeholder="请输入花名或店铺名" disabled v-model="search_flow">
+ <template slot="suffix">
+ <!-- @click="buttonSearchFlow" -->
+ <uni-icons color="#20613D" type="search" size="24"></uni-icons>
+ </template>
+ </u-input>
+ </view>
+ </view>
+
+ <!-- banner -->
+ <!-- <uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="currentBanner"
+ :mode="'dot'" :dots-styles="dotsStyles[0]" field="content"> -->
+ <swiper class="swiper-box" @change="changeBanner" :interval="10000" :circular="true" :current="0"
+ v-if="banners&&banners.length>0" :autoplay="true">
+ <swiper-item v-for="(item, index) in banners" :key="index">
+ <view class="swiper-item" :class="'swiper-item' + index">
+ <!-- @click="previewImg(item.url||item.image)" -->
+ <image class="home-banner-image" mode="scaleToFill" @click="clickBanner(item)"
+ :src="item.url||item.image">
+ </image>
+ </view>
+ </swiper-item>
+ </swiper>
+ <swiper class="swiper-box" @change="changeBanner" :current="0" v-if="!banners||banners.length==0">
+ <swiper-item v-for="(item, index) in 1" :key="index">
+ <view class="swiper-item" :class="'swiper-item' + index">
+ <image class="home-banner-image" mode="scaleToFill"
+ src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png">
+ </image>
+ </view>
+ </swiper-item>
+ </swiper>
+ <!-- </uni-swiper-dot> -->
+ <!-- tip -->
+ <view class="m-t-12" @click="getNoticeMore">
+ <uni-notice-bar class="notice-bar" color="#333" background-color="#fff" show-get-more show-icon
+ :scrollable="scrollable" :text="currentNotice.title||'暂无公告'" :key="currentNotice.id" />
+ <span v-if="!currentNotice||!currentNotice.id"> </span>
+ </view>
+ <!-- 当前分类 -->
+ <home-category ref="home_category"></home-category>
+ <!-- 特别的几个公告图片 -->
+ <home-banner-imgs ref="home_banner"></home-banner-imgs>
+ <!-- 均价情况 -->
+ <!-- <home-price></home-price> -->
+ <!-- 几个专区 -->
+ <home-zones ref="home_zeros"></home-zones>
+ <!-- 置顶的花列表 -->
+ <home-top-flow ref="home_top_flow"></home-top-flow>
+
+ <view style="min-height:140rpx">
+ </view>
+ <common-footer flg="0"></common-footer>
+
+ <uni-popup ref="coupon_home" type="center" border-radius="10px 10px 0 0">
+ <view class="coupon-container" style="width: 690rpx;">
+ <view v-if="dto_home_coupon.imageUrl" class="coupont-item all" style="display: flex; justify-content: center; align-items: center; height: 100vh;">
+ <view @click="getCoupon(dto_home_coupon)"
+ :style="{
+ backgroundImage: `url(${dto_home_coupon.imageUrl})`,
+ backgroundSize: 'contain',
+ backgroundPosition: 'center',
+ backgroundRepeat: 'no-repeat' ,
+ width: '600px', // 设置宽度
+ height: '600px' // 设置高度
+ }">
+ </view>
+ </view>
+
+ <view class="coupont-item all" v-else>
+ <view class="flex container img100">
+
+ <view class="info-price">
+ <view class="price1">
+ {{dto_home_coupon.maxDiscountAmount?(`${dto_home_coupon.maxDiscountAmount}折`):(`¥${dto_home_coupon.couponDiscountValue}`)}}
+ </view>
+ <view class="price2">
+ {{dto_home_coupon.minOrderAmount?(`满¥${dto_home_coupon.minOrderAmount}可用`):'无门槛'}}
+ </view>
+ </view>
+ <view class="info flex1">
+ <view class="title">
+ {{dto_home_coupon.couponName||'-'}}
+ </view>
+ <view class="time" v-if="dto_home_coupon.getEndDate">
+ <!-- 领取后{{dto_home_coupon.usageTimeNum||''}}{{dto_home_coupon.usageTimeTypeName||''}}有效 -->
+ {{dto_home_coupon.getEndDate|| '-'}}前有效
+ </view>
+ <view class="button" @click="getCoupon(dto_home_coupon)">
+ 立即领取
+ </view>
+ </view>
+ </view>
+
+ <view class="tip">
+ <span class="t-red">*</span>{{dto_home_coupon.couponDescription || '此券每人限领1张。仅限用于花满芫鲜花交易平台鲜切花花款满额使用,不可与其他优惠同享、不可叠加使用'}}
+ </view>
+ </view>
+ </view>
+ </uni-popup>
+
+
+ </view>
+</template>
+
+<script>
+ import {
+ mapState
+ } from 'vuex'
+ import homePrice from './components/home-price.vue'
+ import homeBannerImgs from './components/home-banner-imgs.vue'
+ import homeZones from './components/home-zones.vue'
+ import homeTopFlow from './components/home-top-flow.vue'
+ import homeCategory from './components/home-category.vue'
+
+ export default {
+ computed: {
+ ...mapState({
+ address: state => {
+ return state.defaultaddress || {}
+ },
+ addressDesc: state=>{
+ return state.addressDesc || ''
+ },
+ currentInfo: state => {
+ return state.currentInfo || {}
+ },
+
+ }),
+ current_address(){
+ var desc = this.addressDesc || (this.address&&this.address.id?this.address.address: '选择地址')
+ if(desc.length>=15){
+ return desc.substring(0,15) + '...'
}
- };
- },
- onShareAppMessage() {
- // let that = this;
- // var url =
- // `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${this.currentInfo&&this.currentInfo.nickName||''}`; //你的转发页面路径拼接参数
- // return {
- // title: "校购GO小狗狗",
- // path: url,
- // }
- },
- onShareTimeline() {
- // let that = this;
- // var url = "/pages/home/home" //你的分享页面路径
- // return {
- // title: '校购GO小狗狗',
- // path: url,
- // query: `shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${this.currentInfo&&this.currentInfo.nickName||''}`, //你的参数拼接,注意:不需要加?
- // // imageUrl: 'https://cdn.uviewui.com/uview/swiper/1.jpg' //你分享的封面
- // };
- // },
-
- onLoad() {
- // console.log('home created')
- //这里进行一次初始化即可
- this.$http.request('get', '/api/school/area/list', {
-
- }).then(res => {
- if (res.code == 0) {
- this.schools = res.data || []
- }
- })
- //获取banner图
- this.$http.request('get', '/api/ua/banner/list', {
-
- }).then(res => {
- if (res.code == 0) {
- this.banners = res.data.records || []
- }
- })
- // uni.setStorageSync('schoolId', this.school[parseInt(e.detail.value)].id);
- // uni.setStorageSync('schoolIndex', parseInt(e.detail.value));
- var schoolIndex = uni.getStorageSync('schoolIndex')
- if (!schoolIndex && schoolIndex !== 0) {
-
- } else {
- this.schoolIndex = schoolIndex
- }
- this.changeTab(this.tabIndex)
- this.changeTab(0)
- this.changeTab(1)
-
- this.$http.request('get', '/api/brand/wish/list', {
- params: {
- size: 10,
- show: true,
- status: 'A'
- }
- }).then(res => {
- if (res.code == 0) {
- this.words = (res.data && res.data.records || []).map(item => {
- return {
- ...item,
- randomnum: Math.floor(Math.random() * 10) + Math.floor(Math.random() * 30)
- }
- })
- }
- })
- //公告
- this.$http.request('get', '/api/ua/announcement/list', {
- params: {
- size: 5,
- status: 'A'
- }
- }).then(res => {
- if (res.code == 0) {
- this.noticeList = (res.data && res.data.records || [])
- 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)
- }
-
- }
- }
- })
-
-
- },
- methods: {
-
- pop(status) {
- this.hide_footer = !!status
- },
- changeBanner(e) {
- this.currentBanner = e.detail.current
- },
- changeTab(e) {
- // this.tabIndex
- if (e == 2) {
- this.$nextTick(() => {
- this.$refs.homegoods.updateGoods()
- })
- }
- if (e == 0) {
- //团购
- // tripList:[],
- // :[],
- //可能没必要重复了先,todo
- this.$http.request('get', '/api/buy/customer/group/list', {
- params: {
- size: 4,
- status: 'A'
- }
- }).then(res => {
- if (res.code == 0) {
- this.tuangouList = res.data.records || []
- }
- })
- }
- if (e == 1) {
- this.$http.request('get', '/api/trip/customer/list', {
- params: {
- size: 3,
- status: 'J'
- }
- }).then(res => {
- if (res.code == 0) {
- this.tripList = res.data.records || []
- }
- })
- }
- // console.log('changeTab',e)
- // updateGoods
- //
- },
- getNoticeMore() {
- if (this.currentNotice.id) {
- // uni.navigateTo({
- // url: '/pages/notice/notice?id=' + this.currentNotice.id
- // })
- }
- uni.navigateTo({
- url: '/pages/notice/list?id=' + this.currentNotice.id
- })
- },
- PickerChangeSchool(e) {
- if (e.detail.value == '-1') {
- this.$message.showToast('未选择校区')
- return
- }
- console.log(' this.schools', this.schools, parseInt(e.detail.value), e);
- // this.setData({
- // index: e.detail.value,
- // schoolInfo: this.school[parseInt(e.detail.value)],
- // s_id: this.school[parseInt(e.detail.value)].s_id,
- // current: 0
- // });
-
- this.schoolIndex = parseInt(e.detail.value)
- uni.setStorageSync('schoolId', this.schools[parseInt(e.detail.value)].id);
- uni.setStorageSync('schoolIndex', parseInt(e.detail.value));
- // if (uni.getStorageSync('token')) {
- // this.userChangeSchool(this.school[parseInt(e.detail.value)].s_id)
- // }
- // this.getSchoolInfo(this.school[parseInt(e.detail.value)].s_id);
- // this.getSysparment(); //全局加载变量设置为真,信息圈的列表需要重新加载
- // // this.getOrderData();
- // // this.getHistoryList();
- // this.getRank();
- // this.setData({
- // dataList: []
- // });
- },
-
+ return desc
+ }
+ },
+ components: {
+ homeCategory,
+ homePrice,
+ homeBannerImgs,
+ homeZones,
+ homeTopFlow
+ },
+ onPullDownRefresh() {
+ // 下拉刷新方法
+ this.init()
+ this.$message.showLoading()
+ this.init_children()
+ setTimeout(() => {
+ this.$message.hideLoading()
+ uni.stopPullDownRefresh()
+ }, 2000)
+ },
+ data() {
+ return {
+ search_flow: '',
+ CustomBar: uni.getStorageSync('CustomBar'),
+ StatusBar: uni.getStorageSync('StatusBar'),
+ // StatusBar:0,
+ color: '#fff',
+ schools: [],
+ areaIndex: -1,
+ scrollable: false,
+
+ info: [{
+ colorClass: 'uni-bg-red',
+ url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ content: '内容 A'
+ },
+ {
+ colorClass: 'uni-bg-green',
+ url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ content: '内容 B'
+ },
+ {
+ colorClass: 'uni-bg-blue',
+ url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
+ content: '内容 C'
+ }
+ ],
+ dotStyle: [{
+ backgroundColor: 'rgba(0, 0, 0, .3)',
+ border: '1px rgba(0, 0, 0, .3) solid',
+ color: '#fff',
+ selectedBackgroundColor: 'rgba(0, 0, 0, .9)',
+ selectedBorder: '1px rgba(0, 0, 0, .9) solid'
+ },
+ {
+ backgroundColor: 'rgba(255, 90, 95,0.3)',
+ border: '1px rgba(255, 90, 95,0.3) solid',
+ color: '#fff',
+ selectedBackgroundColor: 'rgba(255, 90, 95,0.9)',
+ selectedBorder: '1px rgba(255, 90, 95,0.9) solid'
+ },
+ {
+ backgroundColor: 'rgba(83, 200, 249,0.3)',
+ border: '1px rgba(83, 200, 249,0.3) solid',
+ color: '#fff',
+ selectedBackgroundColor: 'rgba(83, 200, 249,0.9)',
+ selectedBorder: '1px rgba(83, 200, 249,0.9) solid'
+ }
+ ],
+ currentBanner: 0,
+ banners: [],
+ tripList: [],
+ tuangouList: [],
+ hide_footer: false,
+ noticeList: [],
+ currentNoticeIndex: 0,
+ currentNotice: {},
+ dto_home_coupon: {}
+ };
+ },
+ onShareAppMessage() {
+ let that = this;
+ var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+ that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+ var url =
+ `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+ return {
+ title: "花满芫",
+ path: url,
+ }
+ },
+ onShareTimeline() {
+ let that = this;
+ var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+ that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+ var url =
+ `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+ return {
+ title: "花满芫",
+ path: url,
+ }
+ },
+ onReachBottom() {
+ console.log('onReachBottom')
+ if (this.$refs && this.$refs.home_top_flow) {
+ // console.log(this.$refs.home_top_flow)
+ this.$refs.home_top_flow.fun_GetMore()
+ }
+ },
+ onLoad(options) {
+ this.init()
+ },
+ methods: {
+ async getCoupon(item) {
+ if (!this.currentInfo.id) {
+ await this.$message.confirm('请先前往登录')
+ this.$storage.removeItem('cache_home_show_coupon')
+ return
+ }
+ this.$message.showLoading()
+ const {
+ code,
+ data
+ } = await this.$http.request('post', '/api/v2/coupon/app/receive', {
+ data: {
+ couponId: item.id,
+ num: 1
+ }
+ })
+ if (code == 0) {
+ this.$refs.coupon_home.close()
+
+ this.$message.showToast('领取成功')
+ }
+ },
+ init_children() {
+ this.$refs.home_top_flow && this.$refs.home_top_flow.init && this.$refs.home_top_flow.init()
+ this.$refs.home_category && this.$refs.home_category.init && this.$refs.home_category.init()
+ this.$refs.home_banner && this.$refs.home_banner.init && this.$refs.home_banner.init()
+ this.$refs.home_zeros && this.$refs.home_zeros.init && this.$refs.home_zeros.init()
+ },
+ 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
+ //延迟2秒
+ setTimeout(() => {
+ if (tmp.currentInfo.id) {
+ var value = tmp.$storage.getItem('cache_home_show_coupon')
+ if (!value) {
+ //首页优惠券
+ tmp.$storage.setItem('cache_home_show_coupon', '1')
+ var u = '/api/v2/coupon/app/home/alert'
+ // u = '/api/v2/coupon/app/home/list'
+ tmp.$http.request('get', u).then(res => {
+ if (res.code == 0) {
+ // var list = res.data || {}
+ // var dto = list.length >= 1 ? list[0] : undefined
+ var dto = res.data || undefined
+ if (dto) {
+ // 显示弹窗图片
+ tmp.dto_home_coupon = dto
+ tmp.$refs.coupon_home.open()
+ }
+ }
+ })
+ }
+ }
+ }, 1200)
+
+ },
+
+ clickBanner(item) {
+ if (item.id) {
+ uni.navigateTo({
+ url: '/pages/home/components/home-banner-detail?id=' + item.id
+ })
+ } else if (item.url) {
+ this.previewImg(item.url)
+ }
+ },
+ goToAddress() {
+ if (!this.currentInfo.id) {
+ this.$message.showToast('请先前往登录')
+ return
+ }
+ uni.navigateTo({
+ url: '/pages/user/address/address?source=home'
+ })
+ },
+ buttonSearchFlow() {
+ console.log('buttonSearchFlow')
+ uni.navigateTo({
+ url: '/sub_pages/customer/trade/list?name=' + this.search_flow
+ })
+ },
+ pop(status) {
+ this.hide_footer = !!status
+ },
+ changeBanner(e) {
+ this.currentBanner = e.detail.current
+ },
+
+ getNoticeMore() {
+ uni.navigateTo({
+ url: '/pages/notice/list?id=' + this.currentNotice.id
+ })
+ },
+ PickerChangeSchool(e) {
+ if (e.detail.value == '-1') {
+ this.$message.showToast('未选择位置')
+ return
+ }
+ console.log(' this.schools', this.schools, parseInt(e.detail.value), e);
+
+
+ this.areaIndex = parseInt(e.detail.value)
+ uni.setStorageSync('areaId', this.schools[parseInt(e.detail.value)].id);
+ uni.setStorageSync('areaIndex', parseInt(e.detail.value));
+
+ },
+
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import "./home.scss";
+
+ /* #ifdef PUB_CUSTOMER */
+ @import "@/sub_pages/customer/coupon/coupon.scss";
+ /* #endif */
+ .icon-kf-p{
+ // margin-top: 12rpx;
+ position: absolute;
+ right: 0rpx;
+ bottom: 16rpx;
+ text-align: center;
+ // font-size: 12rpx;
+ color: #fff;
+ // min-width: 120rpx;
+ display: flex;
+ // width: fit-content;
+ height: 44rpx;
+ line-height: 44rpx;
+ // height: 64rpx;
+ .icon-kf{
+ width: 44rpx;
+ height: 44rpx;
+ // margin-left: 20rpx;
}
- }
-</script>
-
-<style lang="scss" scoped>
- @import "./home.scss";
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3