| | |
| | | <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="22"></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> |