3016 lines
89 KiB
Vue
3016 lines
89 KiB
Vue
<template>
|
|
<view class="container">
|
|
<hx-navbar
|
|
:fixed="true"
|
|
:background-color="[0,[0,0,0,0],[0,0,0,0]]"
|
|
:pageScroll.sync="scrollData"
|
|
statusBarFontColor="#ffffff"
|
|
barPlaceholder="hidden"
|
|
transparent="auto"
|
|
color='#ffffff'
|
|
/>
|
|
<view v-if="isLoad">
|
|
<view class="cover-box">
|
|
<image
|
|
v-if="inn.coverType === 1"
|
|
:src="inn.cover"
|
|
class="full-img"
|
|
mode="widthFix"
|
|
/>
|
|
<view
|
|
v-if="inn.coverType === 2"
|
|
:style="{
|
|
'width': videoStyle.width,
|
|
'height': videoStyle.height
|
|
}"
|
|
class="video-box"
|
|
>
|
|
<video
|
|
:src="inn.cover"
|
|
:autoplay="true"
|
|
:controls="true"
|
|
:loop="false"
|
|
object-fit="contain"
|
|
play-btn-position="center"
|
|
class="video"
|
|
id="coverVideo"
|
|
@play="coverPlay"
|
|
/>
|
|
</view>
|
|
</view>
|
|
<view class="innInfoWrap">
|
|
<view class="bg-color">
|
|
<view class="box-mask flex jc-between ai-end">
|
|
<view
|
|
v-if="inn.cityName"
|
|
class="city-section flex jc-end ai-center"
|
|
>
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-09.png'"
|
|
style="width: 28rpx;height: 28rpx;margin-right: 8rpx;"
|
|
/>
|
|
<text class="one-t" style="font-size: 24rpx;color: #fff;">{{ inn.cityName }}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="body-cont flex ai-end">
|
|
<view class="inn-logo flex-0">
|
|
<image :src="inn.logo" v-if="inn.logo"></image>
|
|
<image :src="webUrl + '/20230609145651814148.png'" v-else/>
|
|
</view>
|
|
<view class="a3 flex jc-between ai-end" style="width: 100%">
|
|
<view class="inn-owner v12-font-36 v12-dark-text one-t v12-font-bold" style="flex-grow: 1;width: 80rpx">{{ inn.name }}</view>
|
|
<view class="flex ai-center zan-favorite-wrap">
|
|
<view class="zan-box flex flex-0 ai-end" @click="zanInn">
|
|
<template v-if="isLike">
|
|
<image :src="webUrl + '/icon/icon-like.png'" class="img" />
|
|
<text class="on">{{ $formatCount(inn.zan) }}</text>
|
|
</template>
|
|
<template v-else>
|
|
<image :src="webUrl + '/icon/icon-like.png'" class="img" />
|
|
<text>{{ $formatCount(inn.zan) }}</text>
|
|
</template>
|
|
</view>
|
|
<view class="flex flex-0 ai-end favorite-box" @click="doneFavorite">
|
|
<image
|
|
v-if="isFavorite"
|
|
:src="webUrl + '/icon/icon-star-on.png'"
|
|
mode="scaleToFill"
|
|
class="icon"
|
|
/>
|
|
<image
|
|
v-else
|
|
:src="webUrl + '/icon/icon-star-off.png'"
|
|
mode="scaleToFill"
|
|
class="icon"
|
|
/>
|
|
<text>{{ $formatCount(favoriteCount) }}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="inn-signature-wrap">
|
|
<view class="triangle"></view>
|
|
<view
|
|
v-if="detail.isDrawActivityStart && detail.drawActivityImage"
|
|
class="inn-signature draw-activity-entry"
|
|
@click="goDrawActivity"
|
|
>
|
|
<image
|
|
:src="detail.drawActivityImage"
|
|
mode="widthFix"
|
|
class="draw-activity-image"
|
|
/>
|
|
</view>
|
|
<view v-else class="inn-signature">
|
|
{{ inn.shopIntro }}
|
|
</view>
|
|
<view class="share-btn" @click="changeShare">
|
|
<image :src="webUrl + '/page/hotel/share.png'" class="img" />
|
|
</view>
|
|
</view>
|
|
<view v-if="inn.name" class="map-wrapper">
|
|
<view class="map-cont">
|
|
<map
|
|
:longitude="inn.longitude"
|
|
:latitude="inn.latitude"
|
|
style="width: 750rpx;height: 300rpx;"
|
|
/>
|
|
</view>
|
|
<view class="bg"></view>
|
|
<view class="map-info">
|
|
<view class="map-info-hd">
|
|
<image :src="webUrl + '/page/qianxian/icon-location.png'" class="icon" />
|
|
</view>
|
|
<view class="map-info-bd more-t">
|
|
{{ inn.address }}
|
|
</view>
|
|
<view class="map-info-ft flex">
|
|
<view class="item" @click="showLocation">
|
|
<image :src="webUrl + '/page/qianxian/icon-addr.png'" class="img" />
|
|
<view>导航</view>
|
|
</view>
|
|
<view class="item" @click="call">
|
|
<image :src="webUrl + '/page/qianxian/icon-phone.png'" class="img" />
|
|
<view>客服</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="top-tab acea-row row-middle row-center">
|
|
<view
|
|
v-for="(item, index) in tabList"
|
|
:key="index"
|
|
class="tab"
|
|
@click="changeTab(item.value)"
|
|
>
|
|
<view
|
|
:class="activeIndex === index ? 'active' : ''"
|
|
class="tab-item"
|
|
>
|
|
{{ item.text }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view>
|
|
<!-- 资讯 -->
|
|
<view
|
|
v-if="activeIndex === 3"
|
|
class="info-section"
|
|
>
|
|
<view class="news-category">
|
|
<view scroll-x class="news-category-scroll" show-scrollbar="false">
|
|
<view class="news-category-wrapper">
|
|
<view
|
|
v-for="(item, index) in newsCategoryList"
|
|
:key="index"
|
|
class="category-item v12-mt-2"
|
|
:class="{ active: newsCurrent === index }"
|
|
@click="changeNewsTab(index)"
|
|
>
|
|
{{ item.name }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view>
|
|
<view v-if="infoArray.length > 0" class="info-wrapper">
|
|
<view class="info-list">
|
|
<view
|
|
v-for="(item, index) in infoArray"
|
|
:key="index"
|
|
class="info-item"
|
|
>
|
|
<view
|
|
:class="item.isTop === 1 ? 'info-item-top' : ''"
|
|
:style="{
|
|
'background-image': item.isTop ? ('url(' + webUrl + '/page/hotel/info-top-bg.png)') : 'none'
|
|
}"
|
|
class="info-item-header"
|
|
@click="infoClick(item)"
|
|
>
|
|
<view class="name">
|
|
{{ item.title }}
|
|
</view>
|
|
<view class="intro">
|
|
{{ item.content }}
|
|
</view>
|
|
</view>
|
|
<view class="info-item-body">
|
|
<img-box
|
|
v-if="item.type === 1"
|
|
:imgList="item.images"
|
|
:num="item.images.length"
|
|
:img-radius="10"
|
|
style="width: 100%;"
|
|
@click="infoItemViewClick(item)"
|
|
/>
|
|
<video
|
|
v-else
|
|
@play="infoItemViewClick(item, index)"
|
|
play-btn-position="center"
|
|
:show-fullscreen-btn="false"
|
|
class="video-item v12-mt-0"
|
|
:src="item.video"
|
|
objectFit
|
|
controls
|
|
:id="'video-item' + index"
|
|
:poster="item.video + '?vframe/jpg/offset/1'"></video>
|
|
</view>
|
|
<view
|
|
v-if="item.linkHotelId"
|
|
class="info-shop-entry"
|
|
@click.stop="handleInfoHotelClick(item)"
|
|
>
|
|
<view class="info-shop-logo">
|
|
<image :src="item.linkHotelLogo" mode="aspectFill" />
|
|
</view>
|
|
<view class="info-shop-main">
|
|
<view class="info-shop-name">
|
|
{{ item.linkHotelName || '' }}
|
|
</view>
|
|
<view class="info-shop-btn">
|
|
<text style="margin-right: 6rpx;">点击进入</text>
|
|
<u-icon name="arrow-rightward" size="14" color="#fff"></u-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="info-item-bottom">
|
|
<view class="time">
|
|
{{ item.createTime ? item.createTime.replace(/-/g, '.').substr(0, 10) : '' }}
|
|
</view>
|
|
<view class="btns">
|
|
<view class="flex">
|
|
<image
|
|
:src="webUrl + '/20230803152147141807.png'"
|
|
class="icon"
|
|
/>
|
|
<text class="seeNum-txt">{{ $formatCount(item.pv) }}</text>
|
|
</view>
|
|
<view class="flex">
|
|
<image
|
|
v-if="!item.hasZan"
|
|
:src="webUrl + '/page/hotel/zan-off-2.png'"
|
|
class="zan-off-icon"
|
|
@click="likeInfoItemHandle(item, index, item.zan + 1, true)"
|
|
/>
|
|
<image
|
|
v-else
|
|
:src="webUrl + '/page/hotel/zan-on-2.png'"
|
|
class="zan-on-icon"
|
|
@click="likeInfoItemHandle(item, index, item.zan - 1, false)"
|
|
/>
|
|
<text
|
|
v-show="item.zan > 0"
|
|
:class="item.hasZan ? 'on' : ''"
|
|
class="seeNum-txt"
|
|
>{{ $formatCount(item.zan) }}</text>
|
|
|
|
</view>
|
|
<view class="flex" @click="infoClick(item)">
|
|
<u-icon name="chat" size="24"></u-icon>
|
|
<text class="seeNum-txt">{{ $formatCount(item.replyCount) || 0}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="comment-list v12-px-3" v-if="item.latestReplyList" @click="infoClick(item)">
|
|
<view class="v12-mt-2" v-for="(comment, i) in item.latestReplyList" :key="i">
|
|
<view class="user-info v12-align-center">
|
|
<view class="user-avatar">
|
|
<u-avatar :src="comment.userAvatar"></u-avatar>
|
|
</view>
|
|
<view class="user-name v12-ml-3">
|
|
<view class="v12-font-bold v12-dark-text v12-font-32">
|
|
<text>{{ comment.userNickName }}</text>
|
|
<text v-if="comment.userIsAdmin" class="v12-ml-1 v12-primary v12-white-text v12-font-24 v12-font-weight-400 v12-px-1 v12-radius-8">
|
|
{{ '店主' }}
|
|
</text>
|
|
</view>
|
|
<view class="v12-font-22 v12-secondary-dark-text v12-mt-1">
|
|
<text>{{ formatterTime(comment.createTime) }}</text>
|
|
<text v-if="comment.at">
|
|
{{ ' 回复 ' + comment.at.atNickName }}
|
|
</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="user-info v12-d-flex" >
|
|
<view class="user-avatar">
|
|
<view style="opacity: 0;">
|
|
<u-avatar></u-avatar>
|
|
</view>
|
|
</view>
|
|
<view class="user-name v12-ml-3">
|
|
<view class="v12-font-28 v12-dark-text">
|
|
{{ comment.reply }}
|
|
</view>
|
|
<view v-if="comment.children">
|
|
<view class="v12-mt-2" v-for="(_comment, atIndex) in comment.children" :key="atIndex">
|
|
<view class="user-info v12-align-center">
|
|
<view class="user-avatar">
|
|
<u-avatar size="35" :src="_comment.userAvatar"></u-avatar>
|
|
</view>
|
|
<view class="user-name v12-ml-3">
|
|
<view class="v12-font-bold v12-dark-text v12-font-32">
|
|
<text>{{ _comment.userNickName }}</text>
|
|
<text v-if="_comment.userIsAdmin" class="v12-ml-1 v12-primary v12-white-text v12-font-24 v12-font-weight-400 v12-px-1 v12-radius-8">
|
|
{{ '店主' }}
|
|
</text>
|
|
</view>
|
|
<view class="v12-font-22 v12-secondary-dark-text v12-mt-1">
|
|
<text>{{ formatterTime(_comment.createTime) }}</text>
|
|
<text v-if="_comment.at && _comment.parentReplyId !== comment.id">
|
|
{{ ' 回复 ' + _comment.at.atNickName }}
|
|
</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="user-info v12-align-center">
|
|
<view class="user-avatar">
|
|
<view style="opacity: 0;">
|
|
<u-avatar size="35"></u-avatar>
|
|
</view>
|
|
</view>
|
|
<view class="user-name v12-ml-3">
|
|
<view class="v12-font-28 v12-dark-text">
|
|
{{ _comment.reply }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="v12-px-6" >
|
|
<u-divider :text="infoArray.length === 0 ? ' · 暂无资讯 · ' : ` · ${getLoadMoreText(infoLoading, infoHasMore, infoArray)} · `" textPosition="center"></u-divider>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 文化 -->
|
|
<view
|
|
v-if="activeIndex === 1"
|
|
class="info-section county-section"
|
|
>
|
|
<view class="county-intro-wrap">
|
|
<view class="title">
|
|
县城介绍
|
|
<!-- <view class="btn" @click="toggleCountyIntro">
|
|
{{ toggleCountyIntroStatus ? '收起' : '展开' }}
|
|
<image :src="webUrl + '/page/qianxian/icon-arrow.png'" class="icon" />
|
|
</view> -->
|
|
</view>
|
|
<!-- <view
|
|
:class="toggleCountyIntroStatus ? 'show-more' : ''"
|
|
class="intro-main"
|
|
>
|
|
<rich-text :nodes="inn.countyIntro" />
|
|
<view v-if="!toggleCountyIntroStatus" class="layer" />
|
|
</view> -->
|
|
<view class="v12-py-3">
|
|
<u-read-more ref="uReadMore" showHeight="200">
|
|
<u-parse :content="inn.countyIntro" @load="load"></u-parse>
|
|
</u-read-more>
|
|
</view>
|
|
<view class="title">
|
|
图片
|
|
</view>
|
|
<view class="pic-list v12-d-grid-columns-2">
|
|
<view
|
|
v-for="(item, index) in inn.countyImages"
|
|
:key="index"
|
|
class="item"
|
|
>
|
|
<image
|
|
:src="item"
|
|
class="img"
|
|
@click="showPic(index)"
|
|
/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 攻略 -->
|
|
<view
|
|
v-if="activeIndex === 2"
|
|
class="guide-section"
|
|
>
|
|
<view v-if="isLoadGuideListoSuccess">
|
|
<view class="guide-list">
|
|
<view
|
|
v-for="(item, index) in guideList"
|
|
:key="index"
|
|
class="guide-item"
|
|
@click="guideItemClickHandle(item)"
|
|
>
|
|
<image
|
|
:src="item.image"
|
|
mode="widthFix"
|
|
class="img"
|
|
/>
|
|
<view class="info-wrap">
|
|
<view class="time">
|
|
{{ item.createTime }}
|
|
</view>
|
|
<view class="title">
|
|
{{ item.title }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- <image
|
|
:src="webUrl + '/home/no-data-bg.png'"
|
|
mode="widthFix"
|
|
class="no-data-loadend"
|
|
/> -->
|
|
<view class="v12-px-6" >
|
|
<u-divider :text="guideList.length === 0 ? ' · 暂无攻略 · ' : ` · ${getLoadMoreText(guideLoading, guideHasMore, guideList)} · `" textPosition="center"></u-divider>
|
|
</view>
|
|
</view>
|
|
<goo-skeleton v-else />
|
|
</view>
|
|
<!-- 产业 -->
|
|
|
|
<view
|
|
v-if="activeIndex === 0"
|
|
class="industry-section"
|
|
>
|
|
<view v-if="industryTabIndex === 0">
|
|
<view class="card-wrap">
|
|
<!-- <image
|
|
:src="webUrl + '/page/qianxian/card-bg1.png'"
|
|
class="bg"
|
|
/> -->
|
|
<view class="card-cont">
|
|
<view class="tab-wrap" id="tab-wrap">
|
|
<view
|
|
v-for="(tab, tabIndex) in industryTab"
|
|
:key="tabIndex"
|
|
:class="industryTabIndex === tabIndex ? 'tab-item2' : ''"
|
|
class="item"
|
|
@click="industryTabItemClick(tabIndex)"
|
|
>
|
|
<!-- <image
|
|
:src="webUrl + tab.icon"
|
|
class="icon"
|
|
/> -->
|
|
{{ tab.name }}
|
|
</view>
|
|
</view>
|
|
<view class="file-wrap">
|
|
|
|
<view v-if="industryList.length > 0" class="file-list">
|
|
<view class="title">
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-02.png'"
|
|
class="icon"
|
|
/>
|
|
重点项目
|
|
</view>
|
|
<view class="list-cont">
|
|
<view
|
|
v-for="(file, fileIndex) in industryList"
|
|
:key="fileIndex"
|
|
class="file-item"
|
|
@click="fileItemClick(file)"
|
|
>
|
|
<view class="name one-t">
|
|
· {{ file.title }}
|
|
</view>
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-05.png'"
|
|
class="icon"
|
|
/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-else class="no-data">暂无重点项目</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="card-wrap v12-mt-3">
|
|
<view class="card-cont">
|
|
<view class="file-wrap v12-radius-20" :class="[{'v12-align-center': investmentFileList.length === 0}, {'v12-justify-center': investmentFileList.length === 0}]">
|
|
<view v-if="investmentFileList.length > 0" class="file-list">
|
|
<view class="title v12-justify-between">
|
|
<view class="title">
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-02.png'"
|
|
class="icon"
|
|
/>
|
|
招商政策
|
|
</view>
|
|
<view v-if="investmentFileList.length > 0" >
|
|
<view @click="gotoInvestment('', 'investment')">
|
|
更多政策>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="list-cont">
|
|
<view
|
|
v-for="(file, fileIndex) in investmentFileList"
|
|
:key="fileIndex"
|
|
class="file-item file-item2"
|
|
@click="fileItemClick(file)"
|
|
>
|
|
<view class="name more-t">
|
|
· {{ file.title }}
|
|
</view>
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-05.png'"
|
|
class="icon"
|
|
/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-else class="no-data">暂无招商政策</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="industryList.length > 0 || investmentFileList.length > 0" class="load-more-status">
|
|
{{ getLoadMoreText(industryLoading || investmentLoading, industryHasMore || investmentHasMore, industryList.length ? industryList : investmentFileList) }}
|
|
</view>
|
|
<!-- <view class="project-wrap">
|
|
<view class="title">
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-01.png'"
|
|
class="icon"
|
|
/>
|
|
产业项目
|
|
</view>
|
|
<view v-if="industryProjectList.length > 0" class="list">
|
|
<view
|
|
v-for="(item, index) in industryProjectList"
|
|
:key="index"
|
|
class="item"
|
|
>
|
|
<image
|
|
:src="item.image"
|
|
class="img"
|
|
@click="gotoInvestment(item.title, 'project', item.id)"
|
|
/>
|
|
</view>
|
|
</view>
|
|
<view v-else class="no-data">暂无产业项目</view>
|
|
</view> -->
|
|
|
|
</view>
|
|
<view v-if="industryTabIndex === 1">
|
|
<view class="card-wrap">
|
|
<!-- <image
|
|
:src="webUrl + '/page/qianxian/card-bg3.png'"
|
|
class="bg bg3"
|
|
/> -->
|
|
<view class="card-cont">
|
|
<view class="tab-wrap">
|
|
<view
|
|
v-for="(tab, tabIndex) in industryTab"
|
|
:key="tabIndex"
|
|
:class="industryTabIndex === tabIndex ? 'tab-item0' : ''"
|
|
class="item"
|
|
@click="industryTabItemClick(tabIndex)"
|
|
>
|
|
<!-- <image
|
|
:src="webUrl + tab.icon"
|
|
class="icon"
|
|
/> -->
|
|
{{ tab.name }}
|
|
</view>
|
|
</view>
|
|
<view class="village-wrap v12-pt-3">
|
|
<view class="v12-pa-2 sale-wrap">
|
|
<view
|
|
v-for="(type, typeIndex) in shopTypeList"
|
|
:key="typeIndex"
|
|
:class="{ saleActive: shopTypeActive === type.id }"
|
|
@click="handleShopType(type)"
|
|
>
|
|
{{ type.name }}
|
|
</view>
|
|
</view>
|
|
<view v-if="shopList.length > 0" class="village-list">
|
|
<view
|
|
v-for="(shop, shopIndex) in shopList"
|
|
:key="shopIndex"
|
|
class="village-item v12-white"
|
|
@click="hotelItemClick(shop)"
|
|
>
|
|
<view class="img-wrap">
|
|
<image
|
|
:src="shop.cover + (shop.coverType === 2 ? '?vframe/jpg/offset/1' : '')"
|
|
class="img"
|
|
/>
|
|
<view class="location">
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-08.png'"
|
|
class="icon"
|
|
/>
|
|
<view class="addr one-t">
|
|
{{ shop.address }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="info">
|
|
<view class="intro more-t">
|
|
{{ shop.content }}
|
|
</view>
|
|
<view class="name-wrap">
|
|
<image
|
|
:src="shop.logo"
|
|
class="logo"
|
|
/>
|
|
<view class="name one-t">
|
|
{{ shop.name }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-else class="no-data">暂无店铺</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="shopList.length > 0" class="load-more-status">
|
|
{{ getLoadMoreText(shopLoading, shopHasMore, shopList) }}
|
|
</view>
|
|
</view>
|
|
<view v-if="industryTabIndex === 2">
|
|
<view class="card-wrap">
|
|
<view class="card-cont">
|
|
<view class="tab-wrap">
|
|
<view
|
|
v-for="(tab, tabIndex) in industryTab"
|
|
:key="tabIndex"
|
|
:class="industryTabIndex === tabIndex ? 'tab-item1' : ''"
|
|
class="item"
|
|
@click="industryTabItemClick(tabIndex)"
|
|
>
|
|
<!-- <image
|
|
:src="webUrl + tab.icon"
|
|
class="icon"
|
|
/> -->
|
|
{{ tab.name }}
|
|
</view>
|
|
</view>
|
|
<view class="village-wrap">
|
|
<view class="v12-pa-2 sale-wrap">
|
|
|
|
</view>
|
|
<view v-if="jiaLouList.length > 0" class="village-list">
|
|
<view
|
|
v-for="(jiaLou, jiaLouIndex) in jiaLouList"
|
|
:key="jiaLouIndex"
|
|
class="village-item v12-white"
|
|
@click="sujoumeClickHandle(jiaLou)"
|
|
>
|
|
<view class="img-wrap">
|
|
<image
|
|
:src="jiaLou.cover + (jiaLou.coverType === 2 ? '?vframe/jpg/offset/1' : '')"
|
|
class="img"
|
|
/>
|
|
<view class="location">
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-08.png'"
|
|
class="icon"
|
|
/>
|
|
<view class="addr one-t">
|
|
{{ jiaLou.cityName }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="info">
|
|
<view class="intro more-t">
|
|
{{ jiaLou.intro || '' }}
|
|
</view>
|
|
<view class="name-wrap">
|
|
<image
|
|
:src="jiaLou.avatar"
|
|
class="logo"
|
|
/>
|
|
<view class="name one-t">
|
|
{{ jiaLou.name }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-else class="no-data">暂无数据</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="jiaLouList.length > 0" class="load-more-status">
|
|
{{ getLoadMoreText(jiaLouLoading, jiaLouHasMore, jiaLouList) }}
|
|
</view>
|
|
</view>
|
|
<view v-if="industryTabIndex === 3">
|
|
<view class="card-wrap">
|
|
<!-- <image
|
|
:src="webUrl + '/page/qianxian/card-bg3.png'"
|
|
class="bg bg3"
|
|
/> -->
|
|
<view class="card-cont">
|
|
<view class="tab-wrap">
|
|
<view
|
|
v-for="(tab, tabIndex) in industryTab"
|
|
:key="tabIndex"
|
|
:class="industryTabIndex === tabIndex ? 'tab-item0' : ''"
|
|
class="item"
|
|
@click="industryTabItemClick(tabIndex)"
|
|
>
|
|
<!-- <image
|
|
:src="webUrl + tab.icon"
|
|
class="icon"
|
|
/> -->
|
|
{{ tab.name }}
|
|
</view>
|
|
</view>
|
|
<view class="village-wrap">
|
|
<view class="v12-pa-2 sale-wrap">
|
|
<view :class="{'saleActive' : saleActived === sale.id}" v-for="(sale, i) in saleList" :key="i" @click="handleSale(sale)">
|
|
{{ sale.name }}
|
|
</view>
|
|
</view>
|
|
<view v-if="villageList.length > 0" class="village-list">
|
|
<view
|
|
v-for="(village, villageIndex) in villageList"
|
|
:key="villageIndex"
|
|
class="village-item v12-white"
|
|
@click="villageItemClick(village)"
|
|
>
|
|
<view class="img-wrap">
|
|
<image
|
|
:src="village.cover + (village.coverType === 2 ? '?vframe/jpg/offset/1' : '')"
|
|
class="img"
|
|
/>
|
|
<view class="location">
|
|
<image
|
|
:src="webUrl + '/page/qianxian/icon-08.png'"
|
|
class="icon"
|
|
/>
|
|
<view class="addr one-t">
|
|
{{ village.address }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="info">
|
|
<view class="intro more-t">
|
|
{{ village.intro }}
|
|
</view>
|
|
<view class="name-wrap">
|
|
<image
|
|
:src="village.logo"
|
|
class="logo"
|
|
/>
|
|
<view class="name one-t">
|
|
{{ village.name }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-else class="no-data">暂无租售资讯</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="villageList.length > 0" class="load-more-status">
|
|
{{ getLoadMoreText(villageLoading, villageHasMore, villageList) }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 产品 -->
|
|
<view
|
|
v-if="activeIndex === 4"
|
|
class="good-list-wrap"
|
|
>
|
|
<view class="good-list-cont v12-d-grid-columns-2">
|
|
<!-- <view class="list-cont-left">
|
|
<view
|
|
v-for="(item, index) in leftList"
|
|
:key="index"
|
|
class="item flex"
|
|
>
|
|
<xdd-product-item
|
|
:item="item"
|
|
:show-coupon="false"
|
|
name-key="productName"
|
|
image-key="productImage"
|
|
price-key="productPrice"
|
|
@view="goGoodsCon(item)"
|
|
/>
|
|
</view>
|
|
</view>
|
|
<view class="list-cont-right">
|
|
<view
|
|
v-for="(item, index) in rightList"
|
|
:key="index"
|
|
class="item flex"
|
|
>
|
|
<xdd-product-item
|
|
:item="item"
|
|
:show-coupon="false"
|
|
name-key="productName"
|
|
image-key="productImage"
|
|
price-key="productPrice"
|
|
@view="goGoodsCon(item)"
|
|
/>
|
|
</view>
|
|
</view> -->
|
|
<view v-for="(item, index) in leftList" :key="index">
|
|
<view v-if="item.productId" class="v12-white v12-radius-20 f-wrap" @click="goGoodsCon(item)" style="height: 516rpx">
|
|
<view class="">
|
|
<view class="focus-img">
|
|
<image :src="item.productImage" class="img"></image>
|
|
</view>
|
|
<view class="more-t v12-pt-2 v12-font-bold v12-font-28 v12-px-2">{{ item.productName }}</view>
|
|
</view>
|
|
<view class="v12-justify-between v12-algin-center v12-pa-2">
|
|
<view>
|
|
<text class="v12-font-bold v12-primary-text v12-font-24">¥</text>
|
|
<text class="v12-font-bold v12-primary-text v12-font-28">{{ item.productPrice }}</text>
|
|
</view>
|
|
<view class="btn" @click.stop="addToCart(item, 'productId')">
|
|
<image
|
|
:src="webUrl + '/home/icon-cart.png'"
|
|
class="img"
|
|
/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="!item.productId" :id="'farmer' + index" class="v12-white v12-radius-20 f-wrap" @click="goStore(item)" style="height: 516rpx">
|
|
<view>
|
|
<view class="focus-img">
|
|
<image :src="item.cover" v-if="item.coverType === 1" class="img" mode="heightFix|widthFix"></image>
|
|
<image mode="heightFix|widthFix" class="img" v-else :show-center-play-btn="false" :show-fullscreen-btn="false" :show-play-btn="false" :src="item.cover + '?vframe/jpg/offset/1'"></image>
|
|
<image
|
|
:src="webUrl + '/orderIcon/nm.png'"
|
|
class="mark-img"
|
|
/>
|
|
</view>
|
|
<view class="more-t v12-pt-2 v12-font-bold v12-font-28 v12-px-2" >{{ item.content }}</view>
|
|
</view>
|
|
<view class="v12-justify-start v12-align-center v12-pt-2 v12-px-2 v12-pb-2">
|
|
<view class="btn v12-mr-2">
|
|
<image :src="item.logo" class="img v12-radius-100"></image>
|
|
</view>
|
|
<view class="one-t v12-font-24 v12-dark1-text" style="width:230rpx">{{ item.name }}/{{ inn.name }}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<image
|
|
:src="webUrl + '/home/no-data-bg.png'"
|
|
mode="widthFix"
|
|
class="loadend"
|
|
/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<goo-skeleton v-else />
|
|
<!-- 分享 -->
|
|
<u-popup
|
|
:show="showShare"
|
|
mode="center"
|
|
bgColor="transparent"
|
|
>
|
|
<view class="box-share">
|
|
<view class="box-img">
|
|
<image
|
|
:src="webUrl + '/20230608112219219303.png'"
|
|
class="icon"
|
|
@click="closeShare"
|
|
/>
|
|
<image :src="posterUrl" class="main-img" mode="widthFix" />
|
|
</view>
|
|
<image
|
|
:src="webUrl + '/20230608112210135038.png'"
|
|
mode="widthFix"
|
|
class="btn"
|
|
@click="saveImg"
|
|
/>
|
|
</view>
|
|
</u-popup>
|
|
<ProductWindow
|
|
ref="attrWindow"
|
|
:attr="attr"
|
|
:cartNum="cart_num"
|
|
:showOk="true"
|
|
@changeFun="changeFun"
|
|
@ok="handleOk"
|
|
/>
|
|
<FunctionGuide @hide="setGuide('countyFamousIndex')" :maxStep="2" :guideData="functionGuideData" ref="FunctionGuide"></FunctionGuide>
|
|
<AiEntrance
|
|
v-if="isLoad"
|
|
:county-id="inn.areaId"
|
|
/>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getCountyFamousCityShop,
|
|
getCountyFamousCityNews,
|
|
getCountyFamousCityGuide,
|
|
postCountyFamousShopZan,
|
|
postCountyFamousShopAddFavorite,
|
|
postCountyFamousShopRemoveFavorite,
|
|
postCountyFamousNewsZan,
|
|
postCountyFamousNewsView,
|
|
getCountyFamousIndustry,
|
|
getCountyFamousInvestmentFile,
|
|
getCountyFamousVillage,
|
|
getCountyFamousCityDetail,
|
|
getShareImg,
|
|
getSaleList,
|
|
getJiaLouList,
|
|
getCityNewsCategory,
|
|
getCityShopList,
|
|
getCountyFamousHotelType
|
|
} from '@/api/qianxian'
|
|
import ProductWindow from '@/components/ProductWindow'
|
|
import goCartMixin from '@/mixins/goCartMixins'
|
|
import {formatDateTime} from '@/utils'
|
|
import {getUrlParam} from '@/utils/common.js'
|
|
import imgBox from '@/components/imageTypeSet/imagebox.vue'
|
|
import XddProductItem from '@/components/xdd-product-item'
|
|
import cookie from '@/utils/store/cookie'
|
|
import { pageListenMixins } from '@/mixins/pageListenMixins'
|
|
import FunctionGuide from '@/components/FunctionGuide'
|
|
import GuideMixins from '@/mixins/GuideMixins'
|
|
import AiEntrance from '@/components/aiChat/entrance'
|
|
import { checkDrawTime } from '@/api/lottery'
|
|
export default {
|
|
components: {
|
|
imgBox,
|
|
XddProductItem,
|
|
ProductWindow,
|
|
FunctionGuide,
|
|
AiEntrance
|
|
},
|
|
mixins: [pageListenMixins, goCartMixin, GuideMixins],
|
|
data() {
|
|
return {
|
|
saleActived: null,
|
|
webUrl: this.$VUE_APP_RESOURCES_URL,
|
|
isLoad: false,
|
|
activeIndex: 0,
|
|
loading: false,
|
|
scrollData: {},
|
|
saleList: [],
|
|
inn: {
|
|
cityName: '',
|
|
pics: [],
|
|
desc: '',
|
|
latitude: '',
|
|
longitude: ''
|
|
},
|
|
showShare: false,
|
|
posterUrl: '', // 分享海报
|
|
id: null,
|
|
pageSize: 10,
|
|
partnerId: null,
|
|
isLike: false, //点赞
|
|
isFavorite: false,
|
|
favoriteCount: 0,
|
|
videoStyle: {
|
|
width: '750rpx',
|
|
height: '500rpx'
|
|
},
|
|
tabList: [
|
|
{ text: '产业', value: 0, isShow: true },
|
|
{ text: '文化', value: 1, isShow: true },
|
|
{ text: '攻略', value: 2, isShow: true },
|
|
{ text: '资讯', value: 3, isShow: true },
|
|
{ text: '产品', value: 4, isShow: true }
|
|
],
|
|
// 资讯
|
|
infoArray: [],
|
|
// 攻略
|
|
guideList: [],
|
|
isLoadGuideListoSuccess: false,
|
|
isLoadInfoListSuccess: false,
|
|
pageKeyId: '',
|
|
shareImg: '',
|
|
// 县城介绍展开收起
|
|
toggleCountyIntroStatus: false,
|
|
// 重点产业列表
|
|
industryList: [],
|
|
// 产业项目列表
|
|
industryProjectList: [],
|
|
// 招商政策文件列表
|
|
investmentFileList: [],
|
|
// 村屋列表
|
|
villageList: [],
|
|
industryTab: [
|
|
{ name: '项目', icon: '/page/qianxian/icon-04.png' },
|
|
{ name: '店铺', icon: '/page/qianxian/icon-03.png' },
|
|
{ name: '旅居', icon: '/page/qianxian/icon-03.png' },
|
|
{ name: '租售', icon: '/page/qianxian/icon-07.png' }
|
|
],
|
|
industryTabIndex: 0,
|
|
// 产品
|
|
leftList: [],
|
|
rightList: [],
|
|
videoPlayers:[],
|
|
jiaLouList: [],
|
|
countyId: null,
|
|
newsCategoryList: [],
|
|
newsCurrent: 0,
|
|
newsCategoryInited: false,
|
|
newsCategoryLoading: false,
|
|
shopList: [],
|
|
shopTypeList: [],
|
|
shopTypeActive: '',
|
|
shopTypeInited: false,
|
|
detail: {},
|
|
infoPage: 1,
|
|
infoHasMore: true,
|
|
infoLoading: false,
|
|
infoInited: false,
|
|
guidePage: 1,
|
|
guideHasMore: true,
|
|
guideLoading: false,
|
|
guideInited: false,
|
|
industryPage: 1,
|
|
industryHasMore: true,
|
|
industryLoading: false,
|
|
industryInited: false,
|
|
investmentPage: 1,
|
|
investmentHasMore: true,
|
|
investmentLoading: false,
|
|
investmentInited: false,
|
|
shopPage: 1,
|
|
shopHasMore: true,
|
|
shopLoading: false,
|
|
shopInited: false,
|
|
jiaLouPage: 1,
|
|
jiaLouHasMore: true,
|
|
jiaLouLoading: false,
|
|
jiaLouInited: false,
|
|
villagePage: 1,
|
|
villageHasMore: true,
|
|
villageLoading: false,
|
|
villageInited: false,
|
|
saleListInited: false
|
|
}
|
|
},
|
|
onShareAppMessage() {
|
|
uni.updateShareMenu({
|
|
isPrivateMessage: false,
|
|
withShareTicket: false
|
|
})
|
|
return {
|
|
title: this.inn.countyName || this.share.title,
|
|
path: '/pkg_product/views/famousQianxianShop?id=' + this.id,
|
|
imageUrl: this.detail.logo || this.inn.cover
|
|
}
|
|
},
|
|
// 必须在页面加 onPageScroll(e){} ,才能滑动显示背景
|
|
onPageScroll(e) {
|
|
this.scrollData = e
|
|
},
|
|
onReachBottom() {
|
|
if (this.activeIndex === 3) {
|
|
this.getInfoReq()
|
|
return
|
|
}
|
|
if (this.activeIndex === 2) {
|
|
this.getGuideReq()
|
|
return
|
|
}
|
|
if (this.activeIndex !== 0) {
|
|
return
|
|
}
|
|
if (this.industryTabIndex === 0) {
|
|
this.getIndustryReq()
|
|
this.getInvestmentFileReq()
|
|
return
|
|
}
|
|
if (this.industryTabIndex === 1) {
|
|
this.getShopList()
|
|
return
|
|
}
|
|
if (this.industryTabIndex === 2) {
|
|
this.getJiaLouListReq()
|
|
return
|
|
}
|
|
if (this.industryTabIndex === 3) {
|
|
this.getVillageListReq()
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
const id = options.id || ''
|
|
this.id = id
|
|
|
|
if (id) {
|
|
this.partnerId = options.partnerId || null
|
|
} else {
|
|
let obj = uni.getEnterOptionsSync()
|
|
if (options.scene || obj.query.scene) {
|
|
const query = options ? decodeURIComponent(options.scene) : decodeURIComponent(obj.query.scene)
|
|
this.partnerId = getUrlParam(query, 'partnerId') || null
|
|
this.id = getUrlParam(query, 'id') || null
|
|
|
|
}
|
|
}
|
|
if (this.partnerId) cookie.set('spread', this.partnerId)
|
|
this.getShopDetailReq()
|
|
this.getListReq()
|
|
this.queryGuide('countyFamousIndex')
|
|
},
|
|
methods: {
|
|
getPageList(data) {
|
|
if (Array.isArray(data)) {
|
|
return data
|
|
}
|
|
return (data && (data.records || data.list || data.data)) || []
|
|
},
|
|
getHasMore(data, list, page) {
|
|
const pageCount = Number(
|
|
data && (data.pages || data.totalPage || data.last_page || data.pageCount || 0)
|
|
)
|
|
const total = Number(
|
|
data && (data.total || data.totalCount || data.count || 0)
|
|
)
|
|
if (pageCount > 0) {
|
|
return page < pageCount
|
|
}
|
|
if (total > 0) {
|
|
return page * this.pageSize < total
|
|
}
|
|
return list.length >= this.pageSize
|
|
},
|
|
getLoadMoreText(loading, hasMore, list) {
|
|
if (!list.length) return ''
|
|
if (loading) return '加载中...'
|
|
if (hasMore) return '上拉加载更多'
|
|
return '没有更多了'
|
|
},
|
|
formatInfoList(list = []) {
|
|
return list.map(info => {
|
|
var pt = info.createTime.replace(/-/g, "/")
|
|
info.year = formatDateTime(pt, 'yyyy')
|
|
info.monthDay = formatDateTime(pt, 'MM/dd')
|
|
info.time = formatDateTime(pt, 'HH:mm:ss')
|
|
info.showMore = false
|
|
return info
|
|
})
|
|
},
|
|
formatGuideList(list = []) {
|
|
return list.map((info) => {
|
|
var pt = info.createTime.replace(/-/g, "/")
|
|
info.year = formatDateTime(pt, 'yyyy')
|
|
info.monthDay = formatDateTime(pt, 'MM/dd')
|
|
info.time = formatDateTime(pt, 'HH:mm:ss')
|
|
return info
|
|
})
|
|
},
|
|
/**
|
|
* 获取县城资讯类别
|
|
*/
|
|
getCityNewsCategoryReq() {
|
|
if (this.newsCategoryInited || this.newsCategoryLoading) {
|
|
return Promise.resolve()
|
|
}
|
|
this.newsCategoryLoading = true
|
|
return getCityNewsCategory().then(res => {
|
|
if(res.status === 200) {
|
|
this.newsCategoryList = [{name: '全部', id: ''}].concat(res.data || [])
|
|
this.newsCategoryInited = true
|
|
}
|
|
}).finally(() => {
|
|
this.newsCategoryLoading = false
|
|
})
|
|
},
|
|
changeNewsTab(index) {
|
|
if (this.newsCurrent === index) return
|
|
this.newsCurrent = index
|
|
this.getInfoReq(true)
|
|
},
|
|
formatterTime(time) {
|
|
const now = new Date();
|
|
const date = new Date(time);
|
|
const diff = now - date;
|
|
const diffMin = Math.floor(diff / 1000 / 60);
|
|
const diffHour = Math.floor(diff / 1000 / 60 / 60);
|
|
const diffDay = Math.floor(diff / 1000 / 60 / 60 / 24);
|
|
if (diffMin < 1) {
|
|
return "刚刚";
|
|
} else if (diffHour < 1) {
|
|
return diffMin + "分钟前";
|
|
} else if (diffDay < 1) {
|
|
return diffHour + "小时前";
|
|
} else if (diffDay < 7) {
|
|
return diffDay + "天前";
|
|
} else {
|
|
return date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日";
|
|
}
|
|
},
|
|
infoClick(info) {
|
|
this.$yrouter.push('/pkg_product/views/newsInfo?id=' + info.id)
|
|
},
|
|
showFunctionGuide() {
|
|
if(this._step == this.functionGuideData.step) return
|
|
if(this.functionGuideData.step == 1) {
|
|
this._step = this.functionGuideData.step
|
|
|
|
this.$nextTick(() => {
|
|
this.getElementData('#tab-wrap', res=>{
|
|
const imgs = [
|
|
{
|
|
url: this.webUrl + '/引导页素材/千县名品/Group 3/Group 3-1.png',
|
|
style: {
|
|
position: 'absolute',
|
|
zIndex: 99,
|
|
width: '500rpx',
|
|
top: res.top-100+'px',
|
|
left: 80*2+'rpx',
|
|
height: '200rpx',
|
|
/* px: ; */
|
|
},
|
|
isBtn: false
|
|
},
|
|
{
|
|
url: this.webUrl + '/引导页素材/千县名品/Group 3/Group 3-2.png',
|
|
style: {
|
|
position: 'absolute',
|
|
zIndex: 99,
|
|
width: '117rpx',
|
|
top: res.top-123+'px',
|
|
left: 60*2+'rpx',
|
|
right: 0,
|
|
margin: 'auto',
|
|
height: '46rpx',
|
|
},
|
|
isBtn: 'jump'
|
|
},
|
|
{
|
|
url: this.webUrl + '/引导页素材/千县名品/Group 3/Group 3-3.png',
|
|
style: {
|
|
position: 'absolute',
|
|
zIndex: 99,
|
|
width: '117rpx',
|
|
top: res.top-123+'px',
|
|
left: 260*2+'rpx',
|
|
height: '46rpx',
|
|
},
|
|
isBtn: 'next'
|
|
},
|
|
]
|
|
this.setFunctionGuideData({
|
|
imgs: imgs,
|
|
tipsPosition: '420rpx',
|
|
btnGroupPosition: '',
|
|
position: {
|
|
top: res.top + 'px',
|
|
left: res.left + 'px',
|
|
width: `${res.width}px`,
|
|
height: `${res.height}px`,
|
|
}
|
|
})
|
|
})
|
|
})
|
|
return
|
|
} else {
|
|
if(this.functionGuideData.step == 2) {
|
|
this._step = this.functionGuideData.step
|
|
this.activeIndex = 4
|
|
this.$nextTick(() => {
|
|
|
|
this.getElementData('#farmer1', res=>{
|
|
uni.pageScrollTo({
|
|
scrollTop: 100,
|
|
duration: 300
|
|
})
|
|
console.log(res.top);
|
|
const imgs = [
|
|
{
|
|
url: this.webUrl + '/引导页素材/千县名品/Group 4/Group 4-1.png',
|
|
style: {
|
|
position: 'absolute',
|
|
zIndex: 99,
|
|
width: '366rpx',
|
|
top: (res.top-180)*2+'rpx',
|
|
left: 80*2+'rpx',
|
|
height: '167rpx',
|
|
/* px: ; */
|
|
},
|
|
isBtn: false
|
|
},
|
|
{
|
|
url: this.webUrl + '/引导页素材/千县名品/Group 4/Group 4-2.png',
|
|
style: {
|
|
position: 'absolute',
|
|
zIndex: 99,
|
|
width: '117rpx',
|
|
top: (res.top-200)*2+'rpx',
|
|
left: -60*2+'rpx',
|
|
right: 0,
|
|
margin: 'auto',
|
|
height: '46rpx',
|
|
},
|
|
isBtn: 'jump'
|
|
},
|
|
{
|
|
url: this.webUrl + '/引导页素材/千县名品/Group 4/Group 4-3.png',
|
|
style: {
|
|
position: 'absolute',
|
|
zIndex: 99,
|
|
width: '117rpx',
|
|
top: (res.top-200)*2+'rpx',
|
|
left: 200*2+'rpx',
|
|
height: '46rpx',
|
|
},
|
|
isBtn: 'next'
|
|
},
|
|
]
|
|
this.setFunctionGuideData({
|
|
imgs: imgs,
|
|
tipsPosition: '420rpx',
|
|
btnGroupPosition: '',
|
|
position: {
|
|
top: res.top - 100 + 'px',
|
|
left: res.left + 'px',
|
|
width: `${res.width}px`,
|
|
height: `${res.height}px`,
|
|
}
|
|
})
|
|
})
|
|
})
|
|
return
|
|
}
|
|
return
|
|
}
|
|
},
|
|
handleSale(e) {
|
|
if(this.saleActived === e.id) {
|
|
this.saleActived = null
|
|
} else {
|
|
this.saleActived = e.id
|
|
}
|
|
this.getVillageListReq(true)
|
|
},
|
|
getSaleListReq() {
|
|
if (this.saleListInited) {
|
|
return Promise.resolve()
|
|
}
|
|
const params = {
|
|
countyFamousDataId: this.id
|
|
}
|
|
return getSaleList(params).then(res => {
|
|
this.saleList = [{name: '全部', id: ''}].concat(res.data || [])
|
|
this.saleListInited = true
|
|
})
|
|
},
|
|
goStore(item) {
|
|
if (item.farmerShopId === 0) {
|
|
uni.showToast({
|
|
title: '店铺装修中~',
|
|
icon: 'none',
|
|
duration: 3000
|
|
})
|
|
return
|
|
}
|
|
uni.navigateTo({
|
|
url: '/pagesInn/inn/farmerStore?id=' + item.farmerShopId + '&isQianxian=1&from=famous&isFarmer=1'
|
|
})
|
|
},
|
|
load() {
|
|
this.$refs.uReadMore.init();
|
|
},
|
|
goGoodsCon(item) {
|
|
this.$yrouter.push({
|
|
path: '/pages/shop/GoodsCon/index',
|
|
query: {
|
|
id: item.productId
|
|
}
|
|
})
|
|
},
|
|
getListReq() {
|
|
this.getIndustryReq(true)
|
|
this.getInvestmentFileReq(true)
|
|
getCountyFamousCityDetail(this.id).then(res => {
|
|
const { success, data } = res
|
|
if (success) {
|
|
this.detail = data
|
|
this.countyId = data.countyId
|
|
const products = data.products || []
|
|
const farmerShops = data.farmerShops || []
|
|
this.leftList = this.newSort(products, farmerShops)
|
|
}
|
|
})
|
|
},
|
|
newSort(a, b) {
|
|
const minLen = Math.min(a.length, b.length)
|
|
const megerMap = []
|
|
for (let i = 0; i < minLen; i ++) {
|
|
if(i % 2 === 0) {
|
|
megerMap.push(a[i], b[i])
|
|
} else {
|
|
megerMap.push(b[i], a[i])
|
|
}
|
|
}
|
|
if(a.length > minLen) {
|
|
megerMap.push(...a.slice(minLen))
|
|
}
|
|
if(b.length > minLen) {
|
|
megerMap.push(...b.slice(minLen))
|
|
}
|
|
return megerMap
|
|
},
|
|
shuffleArray(array) {
|
|
for (let i = array.length - 1; i > 0; i--) {
|
|
let j = Math.floor(Math.random() * (i + 1));
|
|
[array[i], array[j]] = [array[j], array[i]];
|
|
}
|
|
return array;
|
|
},
|
|
sortProductsAndStores(products, stores) {
|
|
const randomMap = []
|
|
const randomProduct = products.length === 0 ? null : products.length === 1 ? products[0] : products[Math.floor(Math.random() * products.length)]
|
|
const store = stores.length === 0 ? null : stores.length === 1 ? stores[0] : stores[Math.floor(Math.random() * stores.length)]
|
|
if(!randomProduct && !store) {
|
|
return []
|
|
}
|
|
if(!randomProduct && store) {
|
|
return stores
|
|
}
|
|
if(randomProduct && !store) {
|
|
return products
|
|
}
|
|
if(randomProduct && store) {
|
|
randomMap[0] = randomProduct
|
|
randomMap[1] = store
|
|
const _p = products.filter(e => e !== randomProduct)
|
|
const _s = stores.filter(e => e !== store)
|
|
const concatArr = this.shuffleArray(_p.concat(_s))
|
|
return randomMap.concat(concatArr);
|
|
}
|
|
},
|
|
getShopDetailReq() {
|
|
const _this = this
|
|
getCountyFamousCityShop({ countyFamousDataId: _this.id }).then((res) => {
|
|
const { success, data } = res
|
|
if (success) {
|
|
_this.inn = data
|
|
_this.isLike = data.hasZan
|
|
_this.isFavorite = data.hasFavorite
|
|
_this.favoriteCount = data.favoriteCount
|
|
_this.inn.latitude = _this.inn.latitude > 0 ? _this.inn.latitude : 24.993587
|
|
_this.inn.longitude = _this.inn.longitude > 0 ? _this.inn.longitude : 102.779656
|
|
// coverType: 1-图片,2-视频
|
|
if (data.coverType === 2) {
|
|
uni.getSystemInfo({
|
|
success: info => {
|
|
const screenWidth = info.windowWidth
|
|
_this.videoStyle.width = screenWidth + 'px'
|
|
_this.videoStyle.height = screenWidth * 500 / 750 + 'px'
|
|
}
|
|
})
|
|
}
|
|
_this.isLoad = true
|
|
}
|
|
}).finally(() => {
|
|
uni.stopPullDownRefresh()
|
|
})
|
|
},
|
|
// 资讯
|
|
getInfoReq(reset = false) {
|
|
const _this = this
|
|
if (_this.infoLoading) {
|
|
return
|
|
}
|
|
if (!reset && !_this.infoHasMore) {
|
|
return
|
|
}
|
|
_this.isLoadInfoListSuccess = false
|
|
_this.infoLoading = true
|
|
const page = reset ? 1 : _this.infoPage
|
|
if (reset) {
|
|
_this.infoPage = 1
|
|
_this.infoHasMore = true
|
|
_this.infoArray = []
|
|
}
|
|
const categoryId = this.newsCategoryList[this.newsCurrent] ? this.newsCategoryList[this.newsCurrent].id : ''
|
|
getCountyFamousCityNews({
|
|
page,
|
|
limit: this.pageSize,
|
|
countyFamousDataId: _this.id,
|
|
categoryId: categoryId
|
|
}).then(res => {
|
|
const { data } = res
|
|
const list = _this.formatInfoList(_this.getPageList(data))
|
|
const merged = page === 1 ? list : _this.infoArray.concat(list)
|
|
_this.infoArray = _this.toTop(merged)
|
|
_this.infoHasMore = _this.getHasMore(data, list, page)
|
|
_this.infoPage = page + 1
|
|
_this.infoInited = true
|
|
}).finally(() => {
|
|
_this.infoLoading = false
|
|
_this.isLoadInfoListSuccess = true
|
|
uni.stopPullDownRefresh()
|
|
})
|
|
},
|
|
toTop(arr) {
|
|
return arr.sort((a, b) => {
|
|
return b.isTop - a.isTop
|
|
})
|
|
},
|
|
// 攻略
|
|
getGuideReq(reset = false) {
|
|
const _this = this
|
|
if (_this.guideLoading) {
|
|
return
|
|
}
|
|
if (!reset && !_this.guideHasMore) {
|
|
return
|
|
}
|
|
_this.isLoadGuideListoSuccess = false
|
|
_this.guideLoading = true
|
|
const page = reset ? 1 : _this.guidePage
|
|
if (reset) {
|
|
_this.guidePage = 1
|
|
_this.guideHasMore = true
|
|
_this.guideList = []
|
|
}
|
|
getCountyFamousCityGuide({
|
|
page,
|
|
limit: this.pageSize,
|
|
countyFamousDataId: _this.id
|
|
}).then(res => {
|
|
const { data } = res
|
|
const list = _this.formatGuideList(_this.getPageList(data))
|
|
_this.guideList = page === 1 ? list : _this.guideList.concat(list)
|
|
_this.guideHasMore = _this.getHasMore(data, list, page)
|
|
_this.guidePage = page + 1
|
|
_this.guideInited = true
|
|
}).finally(() => {
|
|
_this.guideLoading = false
|
|
_this.isLoadGuideListoSuccess = true
|
|
uni.stopPullDownRefresh()
|
|
})
|
|
|
|
},
|
|
changeTab(index) {
|
|
this.activeIndex = index
|
|
this.loading = false
|
|
// 刷新数据
|
|
switch (this.activeIndex) {
|
|
case 3:
|
|
this.getCityNewsCategoryReq().finally(() => {
|
|
if (!this.infoInited) {
|
|
this.getInfoReq(true)
|
|
}
|
|
})
|
|
break
|
|
case 2:
|
|
if (!this.guideInited) {
|
|
this.getGuideReq(true)
|
|
}
|
|
break
|
|
case 0:
|
|
if (this.industryTabIndex === 1) {
|
|
if (!this.shopTypeInited) {
|
|
this.getShopTypeList()
|
|
}
|
|
if (!this.shopInited) {
|
|
this.getShopList(true)
|
|
}
|
|
}
|
|
if (this.industryTabIndex === 2 && !this.jiaLouInited) {
|
|
this.getJiaLouListReq(true)
|
|
}
|
|
if (this.industryTabIndex === 3) {
|
|
this.getSaleListReq()
|
|
if (!this.villageInited) {
|
|
this.getVillageListReq(true)
|
|
}
|
|
}
|
|
break
|
|
default:
|
|
break
|
|
}
|
|
},
|
|
changeShare() {
|
|
uni.showLoading()
|
|
getShareImg(this.id).then(res => {
|
|
this.posterUrl = res.data
|
|
this.showShare = !this.showShare
|
|
}).finally(() => {
|
|
uni.hideLoading()
|
|
})
|
|
},
|
|
closeShare() {
|
|
this.showShare = false
|
|
},
|
|
saveImg() {
|
|
const _this = this
|
|
uni.getSetting({
|
|
success: getRes => {
|
|
if (getRes.authSetting["scope.writePhotosAlbum"]) {
|
|
_this.downloadImage()
|
|
} else {
|
|
uni.authorize({
|
|
scope: "scope.writePhotosAlbum",
|
|
success: () => {
|
|
_this.downloadImage()
|
|
},
|
|
fail: () => {
|
|
uni.openSetting({
|
|
success: openRes => {
|
|
console.log(typeof openRes, openRes)
|
|
},
|
|
fail: () => {
|
|
uni.showToast({
|
|
title: "请在设置中打开对应权限",
|
|
icon: "none"
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
console.log(err, 2)
|
|
}
|
|
})
|
|
},
|
|
downloadImage() {
|
|
const _this = this
|
|
const randomID = () => Math.random().toString(36).substring(2)
|
|
uni.downloadFile({
|
|
url: this.posterUrl, // 网络图片的地址
|
|
filePath: wx.env.USER_DATA_PATH + "/share_" + randomID() + ".png", // 指定的本地文件路径
|
|
success: downRes => {
|
|
uni.saveImageToPhotosAlbum({
|
|
filePath: downRes.filePath, // 临时文件地址
|
|
success: function () {
|
|
uni.showToast({
|
|
title: "保存成功",
|
|
icon: "success",
|
|
success() {
|
|
_this.showShare = false
|
|
}
|
|
})
|
|
},
|
|
fail: function (err) {
|
|
uni.showToast({
|
|
title: err,
|
|
icon: "none"
|
|
})
|
|
}
|
|
})
|
|
},
|
|
fail: function (err) {
|
|
uni.showToast({
|
|
title: err.errMsg,
|
|
icon: "error"
|
|
})
|
|
}
|
|
})
|
|
},
|
|
zanInn() {
|
|
postCountyFamousShopZan({ countyFamousDataId: this.id }).then(() => {
|
|
this.isLike = !this.isLike
|
|
this.getShopDetailReq()
|
|
}).catch((err) => {
|
|
uni.showToast({
|
|
title: err.msg + '',
|
|
icon: 'none',
|
|
mask: false,
|
|
duration: 1500
|
|
})
|
|
})
|
|
},
|
|
coverPlay(){
|
|
this.videoPlayers.forEach(player => {
|
|
const playerCtx = uni.createVideoContext(player, this)
|
|
playerCtx.pause()
|
|
})
|
|
},
|
|
infoItemViewClick(item, index) {
|
|
if(item.type === 2) {
|
|
const coverCtx = uni.createVideoContext('coverVideo', this)
|
|
coverCtx.pause()
|
|
const playerId = 'video-item' + index
|
|
if(this.videoPlayers.includes(playerId)) {
|
|
this.videoPlayers.forEach(player => {
|
|
if(player === playerId) return
|
|
const playerCtx = uni.createVideoContext(player, this)
|
|
playerCtx.pause()
|
|
})
|
|
} {
|
|
this.videoPlayers.push(playerId)
|
|
this.videoPlayers.forEach(player => {
|
|
if(player === playerId) return
|
|
const playerCtx = uni.createVideoContext(player, this)
|
|
playerCtx.pause()
|
|
})
|
|
}
|
|
this.$emit('video')
|
|
}
|
|
uni.$u.debounce(() => {
|
|
postCountyFamousNewsView({ countyFamousNewsId: item.id }).finally(() => {
|
|
this.infoArray.map(info => {
|
|
if (info.id === item.id) {
|
|
info.pv += 1
|
|
}
|
|
})
|
|
})
|
|
}, 500)
|
|
},
|
|
// 定位
|
|
showLocation() {
|
|
if (!this.inn.latitude || !this.inn.longitude) {
|
|
this.$dialog.error('暂无位置信息')
|
|
} else {
|
|
uni.openLocation({
|
|
latitude: this.inn.latitude,
|
|
longitude: this.inn.longitude
|
|
})
|
|
}
|
|
},
|
|
async doneFavorite() {
|
|
if (this.isFavorite) {
|
|
const res = await postCountyFamousShopRemoveFavorite({ countyFamousDataId: this.id })
|
|
if (res.success) {
|
|
this.isFavorite = false
|
|
this.favoriteCount = res.data.favoriteCount
|
|
}
|
|
} else {
|
|
const res = await postCountyFamousShopAddFavorite({ countyFamousDataId: this.id })
|
|
if (res.success) {
|
|
this.isFavorite = true
|
|
this.favoriteCount = res.data.favoriteCount
|
|
}
|
|
}
|
|
},
|
|
call() {
|
|
if (this.inn.tel) {
|
|
uni.makePhoneCall({
|
|
phoneNumber: this.inn.tel
|
|
})
|
|
} else {
|
|
this.$dialog.error('电话为空')
|
|
}
|
|
},
|
|
// 展开收起
|
|
toggleCountyIntro() {
|
|
this.toggleCountyIntroStatus = !this.toggleCountyIntroStatus
|
|
},
|
|
parseCheckTimeResult(res) {
|
|
if (typeof res === 'boolean') return res
|
|
if (typeof (res && res.data) === 'boolean') return res.data
|
|
if (res && typeof res.success !== 'undefined') return Boolean(res.data)
|
|
return false
|
|
},
|
|
async goDrawActivity() {
|
|
const activityId = Number(this.detail.drawActivityId) || 0
|
|
if (!activityId) {
|
|
uni.showToast({
|
|
title: '活动暂未配置',
|
|
icon: 'none'
|
|
})
|
|
return
|
|
}
|
|
let opened = false
|
|
try {
|
|
const res = await checkDrawTime(activityId)
|
|
opened = this.parseCheckTimeResult(res)
|
|
} catch (e) {
|
|
opened = false
|
|
}
|
|
uni.navigateTo({
|
|
url: opened
|
|
? `/pkg-video/views/county-winners?activityId=${activityId}`
|
|
: `/pkg-video/views/county-lottery?activityId=${activityId}`
|
|
})
|
|
},
|
|
showPic(index) {
|
|
uni.previewImage({
|
|
current: index,
|
|
urls: this.inn.countyImages
|
|
})
|
|
},
|
|
likeInfoItemHandle(item, index, value, voValue) {
|
|
postCountyFamousNewsZan({ countyFamousNewsId: item.id }).then(res => {
|
|
const { success } = res
|
|
if (success) {
|
|
this.$dialog.toast({
|
|
mes: '操作成功!'
|
|
})
|
|
this.$set(this.infoArray[index], 'zan', value)
|
|
this.$set(this.infoArray[index], 'hasZan', voValue)
|
|
}
|
|
})
|
|
},
|
|
handleInfoHotelClick(item) {
|
|
if (!item || !item.linkHotelId) return
|
|
const { linkType, linkHotelId } = item
|
|
if (linkType === 'travel') {
|
|
uni.navigateTo({ url: `/pkg_product/views/sojoumStore?id=${linkHotelId}` })
|
|
return
|
|
}
|
|
this.hotelItemClick({ id: linkHotelId })
|
|
},
|
|
guideItemClickHandle(item) {
|
|
// 如果没有开启专题页,则不进入
|
|
if (!item.isContentPage) return
|
|
uni.navigateTo({ url: `/pkg_product/views/famousQianxianTheme?id=${item.id}` })
|
|
},
|
|
sujoumeClickHandle(item) {
|
|
if(item.dataType === 'countyFamousSojourn') {
|
|
uni.navigateTo({ url: '/pkg_product/views/oldSojumStore?id=' + item.id })
|
|
return
|
|
}
|
|
uni.navigateTo({ url: '/pkg_product/views/sojoumStore?id=' + item.id })
|
|
},
|
|
industryTabItemClick(index) {
|
|
if (index === this.industryTabIndex) return
|
|
this.industryTabIndex = index
|
|
if (index === 2) {
|
|
if (!this.jiaLouInited) {
|
|
this.getJiaLouListReq(true)
|
|
}
|
|
}
|
|
if (index === 1) {
|
|
this.shopTypeActive = ''
|
|
if (this.shopTypeList.length === 0) {
|
|
this.getShopTypeList()
|
|
}
|
|
if (!this.shopInited) {
|
|
this.getShopList(true)
|
|
}
|
|
}
|
|
if (index === 3) {
|
|
this.getSaleListReq()
|
|
if (!this.villageInited) {
|
|
this.getVillageListReq(true)
|
|
}
|
|
}
|
|
},
|
|
getShopTypeList() {
|
|
if (this.shopTypeInited) {
|
|
return
|
|
}
|
|
getCountyFamousHotelType({
|
|
page: 1,
|
|
limit: 9999
|
|
}).then(res => {
|
|
const listData = Array.isArray(res.data)
|
|
? res.data
|
|
: (res.data && (res.data.hotelTypeList || res.data.list || res.data.records)) || []
|
|
this.shopTypeList = [{ name: '全部', id: '' }].concat(listData || [])
|
|
this.shopTypeInited = true
|
|
})
|
|
},
|
|
getIndustryReq(reset = false) {
|
|
if (this.industryLoading) {
|
|
return
|
|
}
|
|
if (!reset && !this.industryHasMore) {
|
|
return
|
|
}
|
|
const page = reset ? 1 : this.industryPage
|
|
if (reset) {
|
|
this.industryPage = 1
|
|
this.industryHasMore = true
|
|
this.industryList = []
|
|
}
|
|
this.industryLoading = true
|
|
getCountyFamousIndustry({
|
|
countyFamousDataId: this.id,
|
|
page,
|
|
limit: this.pageSize
|
|
}).then(res => {
|
|
const { success, data } = res
|
|
if (success) {
|
|
const list = this.getPageList(data)
|
|
this.industryList = page === 1 ? list : this.industryList.concat(list)
|
|
this.industryHasMore = this.getHasMore(data, list, page)
|
|
this.industryPage = page + 1
|
|
this.industryInited = true
|
|
}
|
|
}).finally(() => {
|
|
this.industryLoading = false
|
|
})
|
|
},
|
|
getInvestmentFileReq(reset = false) {
|
|
if (this.investmentLoading) {
|
|
return
|
|
}
|
|
if (!reset && !this.investmentHasMore) {
|
|
return
|
|
}
|
|
const page = reset ? 1 : this.investmentPage
|
|
if (reset) {
|
|
this.investmentPage = 1
|
|
this.investmentHasMore = true
|
|
this.investmentFileList = []
|
|
}
|
|
this.investmentLoading = true
|
|
getCountyFamousInvestmentFile({
|
|
countyFamousDataId: this.id,
|
|
page,
|
|
limit: this.pageSize
|
|
}).then(res => {
|
|
const { success, data } = res
|
|
if (success) {
|
|
const list = this.getPageList(data)
|
|
this.investmentFileList = page === 1 ? list : this.investmentFileList.concat(list)
|
|
this.investmentHasMore = this.getHasMore(data, list, page)
|
|
this.investmentPage = page + 1
|
|
this.investmentInited = true
|
|
}
|
|
}).finally(() => {
|
|
this.investmentLoading = false
|
|
})
|
|
},
|
|
getJiaLouListReq(reset = false) {
|
|
if (this.jiaLouLoading || !this.countyId) {
|
|
return
|
|
}
|
|
if (!reset && !this.jiaLouHasMore) {
|
|
return
|
|
}
|
|
const page = reset ? 1 : this.jiaLouPage
|
|
if (reset) {
|
|
this.jiaLouPage = 1
|
|
this.jiaLouHasMore = true
|
|
this.jiaLouList = []
|
|
}
|
|
this.jiaLouLoading = true
|
|
const params = {
|
|
countyId: this.countyId,
|
|
shopType: 'countyFamous',
|
|
name: '',
|
|
page,
|
|
limit: this.pageSize
|
|
}
|
|
getJiaLouList(params).then(res => {
|
|
const list = this.getPageList(res.data)
|
|
this.jiaLouList = page === 1 ? list : this.jiaLouList.concat(list)
|
|
this.jiaLouHasMore = this.getHasMore(res.data, list, page)
|
|
this.jiaLouPage = page + 1
|
|
this.jiaLouInited = true
|
|
}).finally(() => {
|
|
this.jiaLouLoading = false
|
|
})
|
|
},
|
|
getShopList(reset = false) {
|
|
if (this.shopLoading) {
|
|
return
|
|
}
|
|
if (!reset && !this.shopHasMore) {
|
|
return
|
|
}
|
|
const page = reset ? 1 : this.shopPage
|
|
if (reset) {
|
|
this.shopPage = 1
|
|
this.shopHasMore = true
|
|
this.shopList = []
|
|
}
|
|
const params = {
|
|
countyFamousDataId: this.id,
|
|
page,
|
|
limit: this.pageSize
|
|
}
|
|
if (this.shopTypeActive) {
|
|
params.countyFamousHotelType = this.shopTypeActive
|
|
}
|
|
this.shopLoading = true
|
|
getCityShopList(params).then(res => {
|
|
const list = this.getPageList(res.data)
|
|
this.shopList = page === 1 ? list : this.shopList.concat(list)
|
|
this.shopHasMore = this.getHasMore(res.data, list, page)
|
|
this.shopPage = page + 1
|
|
this.shopInited = true
|
|
}).finally(() => {
|
|
this.shopLoading = false
|
|
})
|
|
},
|
|
handleShopType(type) {
|
|
if (this.shopTypeActive === type.id) return
|
|
this.shopTypeActive = type.id
|
|
this.getShopList(true)
|
|
},
|
|
getVillageListReq(reset = false) {
|
|
if (this.villageLoading) {
|
|
return
|
|
}
|
|
if (!reset && !this.villageHasMore) {
|
|
return
|
|
}
|
|
const page = reset ? 1 : this.villagePage
|
|
if (reset) {
|
|
this.villagePage = 1
|
|
this.villageHasMore = true
|
|
this.villageList = []
|
|
}
|
|
this.villageLoading = true
|
|
getCountyFamousVillage({
|
|
countyFamousDataId: this.id,
|
|
categoryId: this.saleActived,
|
|
page,
|
|
limit: this.pageSize
|
|
}).then(res => {
|
|
const { success, data } = res
|
|
if (success) {
|
|
const list = this.getPageList(data)
|
|
this.villageList = page === 1 ? list : this.villageList.concat(list)
|
|
this.villageHasMore = this.getHasMore(data, list, page)
|
|
this.villagePage = page + 1
|
|
this.villageInited = true
|
|
}
|
|
}).finally(() => {
|
|
this.villageLoading = false
|
|
})
|
|
},
|
|
fileItemClick(file) {
|
|
const url = file.attachment || ''
|
|
if (!url) return
|
|
uni.downloadFile({
|
|
url,
|
|
success: res => {
|
|
const filePath = res.tempFilePath
|
|
wx.openDocument({
|
|
filePath,
|
|
fail: (err) => {
|
|
console.log(err)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
gotoInvestment(title = '', type = 'investment', id = '') {
|
|
uni.navigateTo({ url: `/pkg_product/views/famousQianxianInvestment?id=${id || this.id}&title=${title}&type=${type}` })
|
|
},
|
|
hotelItemClick(item) {
|
|
this.$yrouter.push({
|
|
path: '/pagesInn/inn/innHome',
|
|
query: {
|
|
id: item.id
|
|
}
|
|
})
|
|
},
|
|
villageItemClick(item) {
|
|
uni.navigateTo({ url: `/pkg_product/views/famousQianxianVillageShop?id=${item.id}` })
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="less">
|
|
.tab-item0{
|
|
position: relative;
|
|
background-color: #fff !important;
|
|
padding: 10px 15px;
|
|
border-radius: 12px 12px 0 0;
|
|
cursor: pointer;
|
|
transition: .2s;
|
|
}
|
|
.tab-item0::before{
|
|
position: absolute;
|
|
bottom: 0;
|
|
content: '';
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 100%;
|
|
box-shadow: 0 0 0 40px #fff;
|
|
transition: .2s;
|
|
}
|
|
.tab-item0::before{
|
|
left: -20px;
|
|
clip-path: inset(50% -10px 0 50%);
|
|
}
|
|
.tab-item1{
|
|
position: relative;
|
|
background-color: #fff !important;
|
|
padding: 10px 15px;
|
|
border-radius: 12px 12px 0 0;
|
|
cursor: pointer;
|
|
transition: .2s;
|
|
}
|
|
.tab-item1::before,.tab-item1::after{
|
|
position: absolute;
|
|
bottom: 0;
|
|
content: '';
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 100%;
|
|
box-shadow: 0 0 0 40px #fff;
|
|
transition: .2s;
|
|
}
|
|
.tab-item1::before{
|
|
left: -20px;
|
|
clip-path: inset(50% -10px 0 50%);
|
|
}
|
|
.tab-item1::after{
|
|
right: -20px;
|
|
clip-path: inset(50% 50% 0 -10px);
|
|
}
|
|
.tab-item2{
|
|
position: relative;
|
|
background-color: #fff !important;
|
|
padding: 10px 15px;
|
|
border-radius: 12px 12px 0 0;
|
|
cursor: pointer;
|
|
transition: .2s;
|
|
}
|
|
.tab-item2::after{
|
|
position: absolute;
|
|
bottom: 0;
|
|
content: '';
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 100%;
|
|
box-shadow: 0 0 0 40px #fff;
|
|
transition: .2s;
|
|
}
|
|
.tab-item2::after{
|
|
right: -20px;
|
|
clip-path: inset(50% 50% 0 -10px);
|
|
}
|
|
@import "@/assets/css/store.less";
|
|
.saleActive{
|
|
background: #C52733 !important;
|
|
color: #fff !important;
|
|
}
|
|
.sale-wrap{
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-start;
|
|
view {
|
|
background: #f5f5f5;
|
|
border-radius: 6rpx;
|
|
padding: 6rpx 16rpx;
|
|
margin-right: 10rpx;
|
|
margin-bottom: 10rpx;
|
|
font-size: 26rpx;
|
|
font-weight: bold;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
.load-more-status{
|
|
padding: 24rpx 0 8rpx;
|
|
text-align: center;
|
|
font-size: 24rpx;
|
|
color: #999;
|
|
}
|
|
.video-item {
|
|
width: 100%;
|
|
height: 400rpx;
|
|
border-radius: 10rpx;
|
|
}
|
|
.focus-img {
|
|
position: relative;
|
|
.img {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: block;
|
|
width: 100%;
|
|
height: 345rpx;
|
|
border-radius: 20rpx;
|
|
}
|
|
.mark-img {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
z-index: 3;
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 0 25rpx 0 0;
|
|
}
|
|
}
|
|
.btn {
|
|
.img {
|
|
display: block;
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
}
|
|
}
|
|
.my-inn-page {
|
|
padding: 0 0 100rpx 0;
|
|
background-color: #f6f6f6;
|
|
}
|
|
.cover-box {
|
|
position: relative;
|
|
|
|
.full-img {
|
|
width: 750rpx;
|
|
}
|
|
.video {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
.guarantee {
|
|
margin-right: 16rpx;
|
|
padding: 8rpx 16rpx;
|
|
border-radius: 8rpx;
|
|
background: #0DC5C5;
|
|
color: #fff;
|
|
font-size: 22rpx;
|
|
line-height: 1;
|
|
}
|
|
.zan-favorite-wrap {
|
|
font-size: 32rpx;
|
|
color: #333;
|
|
.on {
|
|
color: #FF564A;
|
|
}
|
|
}
|
|
.zan-box {
|
|
.img {
|
|
width: 36rpx;
|
|
height: 36rpx;
|
|
margin: 0 8rpx 0 0;
|
|
vertical-align: middle;
|
|
}
|
|
}
|
|
.favorite-box {
|
|
.icon {
|
|
width: 36rpx;
|
|
height: 36rpx;
|
|
margin: 0 8rpx 0 30rpx;
|
|
}
|
|
}
|
|
.store-img {
|
|
width: 686rpx;
|
|
margin-bottom: 20rpx;
|
|
vertical-align: middle;
|
|
}
|
|
.container {
|
|
position: relative;
|
|
background: #FFFFFF;
|
|
}
|
|
.innInfoWrap {
|
|
position: relative;
|
|
margin-top: -76rpx;
|
|
padding: 20rpx 36rpx;
|
|
line-height: 1;
|
|
z-index: 1;
|
|
.bg-color {
|
|
position: absolute;
|
|
top: -5px;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 1;
|
|
height: 50%;
|
|
background: linear-gradient(-180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 100%);
|
|
|
|
.box-mask {
|
|
position: absolute;
|
|
bottom: 0;
|
|
right: 0;
|
|
left: 166rpx;
|
|
box-sizing: border-box;
|
|
padding: 0 32rpx 12rpx 0;
|
|
|
|
.city-section {
|
|
width: 100%;
|
|
}
|
|
}
|
|
}
|
|
.body-cont {
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
}
|
|
.inn-logo {
|
|
flex-shrink: 0;
|
|
width: 56*2rpx;
|
|
height: 56*2rpx;
|
|
margin-right: 18rpx;
|
|
}
|
|
.inn-logo image {
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 50%;
|
|
}
|
|
.inn-name {
|
|
width: 280rpx;
|
|
font-size: 32rpx;
|
|
color: #FFFFFF;
|
|
line-height: 48rpx;
|
|
}
|
|
.inn-owner {
|
|
font-size: 24rpx;
|
|
color: #8B8F99;
|
|
}
|
|
.inn-tag-wrap {
|
|
margin-top: 10rpx;
|
|
}
|
|
.inn-signature-wrap {
|
|
position: relative;
|
|
z-index: 5;
|
|
padding: 0 32rpx;
|
|
margin: 20rpx 0 0 0;
|
|
.triangle {
|
|
position: absolute;
|
|
top: -20rpx;
|
|
left: 72rpx;
|
|
width: 0;
|
|
height: 0;
|
|
border-left: 20rpx solid transparent;
|
|
border-right: 20rpx solid transparent;
|
|
border-bottom: 24rpx solid rgba(243,243,246,0.39);
|
|
}
|
|
.inn-signature {
|
|
position: relative;
|
|
padding: 20rpx;
|
|
border-radius: 8rpx;
|
|
font-size: 24rpx;
|
|
color: #080F1A;
|
|
background: rgba(243,243,246,0.39);
|
|
box-shadow: 0px 6px 12px rgba(0,0,0,0.12);
|
|
}
|
|
.draw-activity-entry {
|
|
padding: 0;
|
|
}
|
|
.draw-activity-image {
|
|
width: 100%;
|
|
display: block;
|
|
border-radius: 8rpx;
|
|
}
|
|
.share-btn {
|
|
position: absolute;
|
|
right: 0;
|
|
bottom: -68rpx;
|
|
.img {
|
|
width: 212rpx;
|
|
height: 60rpx;
|
|
}
|
|
}
|
|
}
|
|
.btLine {
|
|
width: 100%;
|
|
height: 6rpx;
|
|
margin-top: 18rpx;
|
|
background: #0DC5C5;
|
|
}
|
|
.tab-item-active {
|
|
color:#080F1A;
|
|
font-size:32rpx;
|
|
}
|
|
.tab-item-no-active {
|
|
color:#A6AAB3;
|
|
font-size:28rpx;
|
|
}
|
|
.map-wrapper {
|
|
position: relative;
|
|
z-index: 2;
|
|
height: 200rpx;
|
|
margin: 40rpx 0 0 0;
|
|
overflow: hidden;
|
|
.map-cont {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
z-index: 2;
|
|
width: 100%;
|
|
opacity: 0.3;
|
|
transform: translateY(-50rpx);
|
|
}
|
|
.bg {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 3;
|
|
height: 60rpx;
|
|
background: linear-gradient(180deg, #FFFFFF 0%, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
|
|
}
|
|
.map-info {
|
|
position: relative;
|
|
z-index: 5;
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 40rpx 10rpx 40rpx 32rpx;
|
|
color: #333;
|
|
font-size: 14px;
|
|
.map-info-hd {
|
|
.icon {
|
|
display: block;
|
|
width: 34rpx;
|
|
height: 42rpx;
|
|
}
|
|
}
|
|
.map-info-bd {
|
|
flex: 1;
|
|
padding: 0 60rpx 0 20rpx;
|
|
line-height: 60rpx;
|
|
}
|
|
.map-info-ft {
|
|
.item + .item {
|
|
margin: 0 0 0 6rpx;
|
|
}
|
|
.item {
|
|
text-align: center;
|
|
font-weight: 500;
|
|
.img {
|
|
display: block;
|
|
width: 64rpx;
|
|
height: 64rpx;
|
|
margin: 0 0 16rpx 16rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.top-tab {
|
|
padding: 40rpx 20rpx 20rpx 20rpx;
|
|
.tab {
|
|
width: 20%;
|
|
.tab-item {
|
|
height: 52rpx;
|
|
padding: 0 30rpx;
|
|
border-radius: 26rpx 0 0 26rpx;
|
|
font-size: 32rpx;
|
|
line-height: 52rpx;
|
|
font-weight: bold;
|
|
&.active {
|
|
color: #fff;
|
|
background: linear-gradient(90deg, #C52733 0%, rgba(211,92,101,0.91) 54%, rgba(255,255,255,0.62) 100%);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.info-section,
|
|
.guide-section {
|
|
position: relative;
|
|
background-color: #f6f6f6;
|
|
}
|
|
.info-section,
|
|
.guide-section {
|
|
padding: 22rpx;
|
|
}
|
|
.info-section {
|
|
.news-category {
|
|
padding-bottom: 20rpx;
|
|
.news-category-scroll {
|
|
white-space: nowrap;
|
|
width: 100%;
|
|
}
|
|
.news-category-wrapper {
|
|
overflow: scroll;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
.category-item {
|
|
display: inline-block;
|
|
padding: 10rpx 30rpx;
|
|
margin-right: 20rpx;
|
|
border-radius: 16rpx;
|
|
font-size: 28rpx;
|
|
font-weight: bold;
|
|
color: #333;
|
|
&.active {
|
|
color: #fff;
|
|
background: #C52733
|
|
}
|
|
}
|
|
}
|
|
.info-item + .info-item {
|
|
margin: 22rpx 0 0 0;
|
|
}
|
|
.info-item {
|
|
border-radius: 10rpx;
|
|
background-color: #fff;
|
|
.info-item-header {
|
|
position: relative;
|
|
padding: 20rpx 20rpx 0 20rpx;
|
|
&.info-item-top {
|
|
padding-top: 60rpx;
|
|
background-size: 100% 80rpx;
|
|
background-repeat: no-repeat;
|
|
background-image: url();
|
|
}
|
|
.name {
|
|
font-size: 16px;
|
|
color: #333;
|
|
font-weight: bold;
|
|
}
|
|
.intro {
|
|
margin: 10rpx 0 0 0;
|
|
color: #666;
|
|
font-size: 14px;
|
|
}
|
|
}
|
|
.info-item-body {
|
|
padding: 0 20rpx 20rpx 20rpx;
|
|
.video {
|
|
padding: 20rpx 0 0 0;
|
|
.video-item {
|
|
width: 100%;
|
|
height: 400rpx;
|
|
border-radius: 10rpx;
|
|
}
|
|
}
|
|
}
|
|
.info-shop-entry {
|
|
margin: 0 20rpx 16rpx 20rpx;
|
|
padding: 16rpx 20rpx;
|
|
border-radius: 12rpx;
|
|
background-color: #fafafa;
|
|
display: flex;
|
|
align-items: center;
|
|
column-gap: 16rpx;
|
|
}
|
|
.info-shop-logo {
|
|
width: 88rpx;
|
|
height: 88rpx;
|
|
border-radius: 12rpx;
|
|
overflow: hidden;
|
|
flex-shrink: 0;
|
|
}
|
|
.info-shop-logo image {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
.info-shop-main {
|
|
flex: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
column-gap: 16rpx;
|
|
}
|
|
.info-shop-name {
|
|
flex: 1;
|
|
font-size: 28rpx;
|
|
color: #333;
|
|
font-weight: 500;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
width: 300rpx;
|
|
}
|
|
.info-shop-btn {
|
|
padding: 8rpx 16rpx 8rpx 24rpx;
|
|
border-radius: 999rpx;
|
|
background-color: #C52733;
|
|
color: #fff;
|
|
font-size: 24rpx;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.info-item-bottom {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 20rpx;
|
|
border-top: 1px solid #f1f1f1;
|
|
font-size: 16px;
|
|
.time {
|
|
flex: 1;
|
|
color: #333;
|
|
}
|
|
.btns {
|
|
display: flex;
|
|
color: #999;
|
|
.flex + .flex {
|
|
margin: 0 0 0 32rpx;
|
|
}
|
|
.flex {
|
|
align-items: center;
|
|
}
|
|
.icon {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
margin: 0 8rpx 0 0;
|
|
}
|
|
.zan-off-icon {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
}
|
|
.zan-on-icon {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
}
|
|
.seeNum-txt {
|
|
&.on {
|
|
color: #D81E06;
|
|
}
|
|
}
|
|
.more-btn {
|
|
position: relative;
|
|
.more-wrapper {
|
|
position: absolute;
|
|
right: -20rpx;
|
|
top: -150rpx;
|
|
z-index: 5;
|
|
width: 200rpx;
|
|
border-radius: 12rpx;
|
|
background-color: #fff;
|
|
box-shadow: 0px 1px 6px rgba(0,0,0,0.16);
|
|
.more-item + .more-item {
|
|
border-top: 1px solid #d5d5d5;
|
|
}
|
|
.more-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 70rpx;
|
|
font-size: 14px;
|
|
color: #333;
|
|
.more-icon {
|
|
width: 36rpx;
|
|
height: 36rpx;
|
|
margin: 0 10rpx 0 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.county-section {
|
|
padding: 22rpx;
|
|
}
|
|
.county-intro-wrap {
|
|
padding: 22rpx;
|
|
border-radius: 16rpx;
|
|
background-color: #fff;
|
|
.title {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
font-size: 36rpx;
|
|
line-height: 40rpx;
|
|
font-weight: bold;
|
|
color: #333;
|
|
.btn {
|
|
display: flex;
|
|
align-items: center;
|
|
color: #999;
|
|
font-size: 24rpx;
|
|
font-weight: normal;
|
|
.icon {
|
|
display: block;
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
}
|
|
}
|
|
}
|
|
.intro-main {
|
|
position: relative;
|
|
height: 400rpx;
|
|
min-height: 400rpx;
|
|
margin: 30rpx 0 50rpx 0;
|
|
overflow: hidden;
|
|
&.show-more {
|
|
height: auto;
|
|
}
|
|
.layer {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
height: 144rpx;
|
|
background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #FFFFFF 51%, #FFFFFF 100%);
|
|
}
|
|
}
|
|
.pic-list {
|
|
width: 660rpx;
|
|
padding: 30rpx 0 0 0;
|
|
margin: 0 auto;
|
|
.item {
|
|
margin: 0 20rpx 20rpx 0;
|
|
.img {
|
|
display: block;
|
|
width: 320rpx;
|
|
height: 320rpx;
|
|
border-radius: 16rpx;
|
|
}
|
|
&:nth-child(2n) {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.guide-section {
|
|
.guide-item + .guide-item {
|
|
margin: 20rpx 0 0 0;
|
|
}
|
|
.guide-item {
|
|
border-radius: 16rpx;
|
|
background-color: #fff;
|
|
.img {
|
|
display: block;
|
|
width: 100%;
|
|
border-radius: 16rpx;
|
|
}
|
|
.info-wrap {
|
|
padding: 16rpx 16rpx 20rpx 16rpx;
|
|
.time {
|
|
font-size: 24rpx;
|
|
color: #ACACAC;
|
|
}
|
|
.title {
|
|
padding: 10rpx 0 0 0;
|
|
font-size: 28rpx;
|
|
color: #333;
|
|
line-height: 40rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.industry-section {
|
|
background-color: #F0F0F0;
|
|
.card-wrap {
|
|
position: relative;
|
|
height: 460rpx;
|
|
.bg {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: block;
|
|
width: 750rpx;
|
|
height: 518rpx;
|
|
}
|
|
.bg3 {
|
|
height: 1159rpx;
|
|
}
|
|
.card-cont {
|
|
position: absolute;
|
|
z-index: 5;
|
|
top: 20rpx;
|
|
left: 30rpx;
|
|
right: 30rpx;
|
|
.tab-wrap {
|
|
display: flex;
|
|
.item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex: 1;
|
|
// height: 80rpx;
|
|
font-size: 32rpx;
|
|
line-height: 36rpx;
|
|
font-weight: bold;
|
|
background-color: #eee;
|
|
.icon {
|
|
display: block;
|
|
width: 24rpx;
|
|
height: 26rpx;
|
|
margin: 0 12rpx 0 0;
|
|
}
|
|
&:nth-child(2) {
|
|
.icon {
|
|
width: 26rpx;
|
|
height: 22rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.file-wrap {
|
|
width: 100%;
|
|
min-height: 360rpx;
|
|
padding: 20rpx;
|
|
margin: -2rpx auto 0;
|
|
border-radius: 0 0 20rpx 20rpx;
|
|
box-sizing: border-box;
|
|
background: #fff;
|
|
.title {
|
|
display: flex;
|
|
align-items: center;
|
|
font-weight: bold;
|
|
font-size: 28rpx;
|
|
line-height: 36rpx;
|
|
.icon {
|
|
display: block;
|
|
width: 20rpx;
|
|
height: 20rpx;
|
|
margin: 0 8rpx 0 0;
|
|
}
|
|
}
|
|
.file-list {
|
|
height: 300rpx;
|
|
overflow-y: auto;
|
|
padding: 20rpx;
|
|
border-radius: 20rpx;
|
|
background: #eee;
|
|
.list-cont {
|
|
padding: 20rpx 0 0 0;
|
|
.file-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
height: 60rpx;
|
|
width: 100%;
|
|
padding: 0 20rpx;
|
|
margin: 0 0 20rpx 0;
|
|
border-radius: 20rpx;
|
|
box-sizing: border-box;
|
|
line-height: 36rpx;
|
|
background-color: #fff;
|
|
.name {
|
|
width: calc(100% - 40rpx);
|
|
font-size: 24rpx;
|
|
}
|
|
.icon {
|
|
display: block;
|
|
width: 26rpx;
|
|
height: 26rpx;
|
|
}
|
|
}
|
|
.file-item2 {
|
|
height: 100rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.village-wrap {
|
|
height: 980rpx;
|
|
// padding: 16rpx 0 0 0;
|
|
overflow-y: auto;
|
|
background: #fff;
|
|
border-radius: 0 0 20rpx 20rpx;
|
|
}
|
|
.village-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
width: 660rpx;
|
|
margin: 0 auto;
|
|
.village-item {
|
|
width: 320rpx;
|
|
height: 480rpx;
|
|
margin: 0 20rpx 20rpx 0;
|
|
border-radius: 16rpx;
|
|
background-color: #f0f0f0;
|
|
&:nth-child(2n) {
|
|
margin-right: 0;
|
|
}
|
|
.img-wrap {
|
|
position: relative;
|
|
.img {
|
|
display: block;
|
|
width: 320rpx;
|
|
height: 320rpx;
|
|
border-radius: 16rpx;
|
|
}
|
|
.location {
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 5;
|
|
display: flex;
|
|
align-items: center;
|
|
height: 60rpx;
|
|
padding: 0 20rpx;
|
|
border-radius: 0 0 16rpx 16rpx;
|
|
font-size: 28rpx;
|
|
line-height: 36rpx;
|
|
color: #fff;
|
|
background: linear-gradient(180deg, rgba(0,0,0,0) 0%, #000000 100%);
|
|
.icon {
|
|
display: block;
|
|
width: 28rpx;
|
|
height: 28rpx;
|
|
margin: 0 8rpx 0 0;
|
|
}
|
|
.addr {
|
|
width: calc(100% - 40rpx);
|
|
}
|
|
}
|
|
}
|
|
.info {
|
|
padding: 6rpx 8rpx 16rpx 8rpx;
|
|
.intro {
|
|
height: 80rpx;
|
|
line-height: 40rpx;
|
|
font-size: 30rpx;
|
|
font-weight: bold;
|
|
color: #333;
|
|
margin-top: 8rpx;
|
|
}
|
|
.name-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
.logo {
|
|
display: block;
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
margin: 0 8rpx 0 0;
|
|
border-radius: 50%;
|
|
}
|
|
.name {
|
|
width: calc(100% - 60rpx);
|
|
padding: 10rpx 0 0 0;
|
|
font-size: 28rpx;
|
|
line-height: 48rpx;
|
|
color: #999;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.project-wrap {
|
|
padding: 30rpx;
|
|
.title {
|
|
display: flex;
|
|
align-items: center;
|
|
font-weight: bold;
|
|
font-size: 28rpx;
|
|
line-height: 36rpx;
|
|
.icon {
|
|
display: block;
|
|
width: 20rpx;
|
|
height: 20rpx;
|
|
margin: 0 8rpx 0 0;
|
|
}
|
|
}
|
|
.list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
width: 100%;
|
|
padding: 20rpx 0 0 0;
|
|
.item {
|
|
width: calc(50% - 20rpx);
|
|
margin: 0 26rpx 26rpx 0;
|
|
&:nth-child(2n) {
|
|
margin-right: 0;
|
|
}
|
|
.img {
|
|
display: block;
|
|
width: 332rpx;
|
|
height: 98rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.no-data {
|
|
text-align: center;
|
|
line-height: 200rpx;
|
|
font-size: 32rpx;
|
|
color: #999;
|
|
}
|
|
.more-btn-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 30rpx 0 60rpx 0;
|
|
.more-btn {
|
|
width: 212rpx;
|
|
height: 62rpx;
|
|
border-radius: 32rpx;
|
|
text-align: center;
|
|
font-size: 32rpx;
|
|
line-height: 62rpx;
|
|
color: #fff;
|
|
background: #C52733;
|
|
}
|
|
}
|
|
}
|
|
.good-list-wrap {
|
|
background-color: #f6f6f6;
|
|
.loadend {
|
|
width: 100%;
|
|
}
|
|
}
|
|
.good-list-cont {
|
|
position: relative;
|
|
z-index: 2;
|
|
// display: flex;
|
|
// justify-content: space-between;
|
|
padding: 20rpx;
|
|
grid-column-gap: 10px;
|
|
grid-row-gap: 10px;
|
|
.list-cont-left,
|
|
.list-cont-right {
|
|
width: calc(50% - 11rpx);
|
|
}
|
|
.item {
|
|
position: relative;
|
|
margin: 21rpx 0 0 0;
|
|
}
|
|
}
|
|
.tab-no-data {
|
|
text-align: center;
|
|
font-size: 32rpx;
|
|
color: #999;
|
|
line-height: 200rpx;
|
|
}
|
|
.no-data-loadend {
|
|
width: 100%;
|
|
}
|
|
.f-wrap{
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
}
|
|
</style>
|