|
|
- <template>
- <view class="page">
- <navbar/>
-
- <view class="content">
- <!-- 顶部横幅广告 -->
- <view class="banner">
- <image src="https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain" mode="widthFix"></image>
- </view>
-
- <!-- 通知区域 -->
- <view class="notice">
- <view class="notice-icon">
- <image src="https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain" mode="widthFix"></image>
- </view>
- <view class="notice-text">
- 2025年2月平台福利活动截稿作品公示
- </view>
- <view class="notice-more">
- <uv-icon name="arrow-right" color="#999" size="24rpx"></uv-icon>
- </view>
- </view>
-
- <!-- 最近更新 -->
-
- <view class="section">
- <view class="section-header">
- <text class="section-title">最近更新</text>
-
- </view>
- <view class="recommend-list">
- <view class="recommend-item" v-for="(item, index) in recommendList" :key="index" @click="$utils.navigateTo('/pages_order/product/productDetail?id='+index)">
- <image class="recommend-cover" :src="item.cover" mode="aspectFill"></image>
- <view class="recommend-title">{{item.title}}</view>
- </view>
- </view>
- </view>
- </view>
-
- <!-- 精品推荐 -->
- <view class="section1">
- <view class="section-header">
- <text class="section-title">精品推荐</text>
- <text class="section-more" @click="$utils.navigateTo('/pages/index/category')">查看更多 ></text>
- </view>
- <view class="novel-list">
- <view class="novel-item" v-for="(item, index) in 5" :key="index" @click="$utils.navigateTo('/pages_order/product/productDetail?id='+index)">
- <image class="novel-cover" :src="novelCovers[index]" mode="aspectFill"></image>
- <view class="novel-info">
- <view class="novel-title">{{novelTitles[index]}}</view>
- <view class="novel-desc">{{novelDescs[index]}}</view>
- </view>
- </view>
- </view>
- </view>
-
-
- <PrivacyAgreementPoup/>
-
- <tabber select="home"/>
- </view>
- </template>
-
- <script>
- import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
- import Position from '@/utils/position.js'
- import tabber from '@/components/base/tabbar.vue'
- import productList from '@/components/user/productList.vue'
- import { mapGetters } from 'vuex'
- // import selectArea from '../../components/selectArea.vue';
- export default {
- components : {
- tabber,
- productList,
- PrivacyAgreementPoup,
- },
- data() {
- return {
- area: '长沙',
- text : '长沙市刘师傅在服务过程中客户投诉"服务过程中有不文明的行为".....',
- queryParams: {
- pageNo: 1,
- pageSize: 10,
- title: ''
- },
- bannerList: [
- {
- url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
- },
- {
- url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
- },
- {
- url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
- },
- ],
- productList: [],
- // 精品推荐
- novelCovers: [
- 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain',
- 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain',
- 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain',
- 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain',
- 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain'
- ],
- // 小说标题数据
- novelTitles: [
- '我是半妖',
- '兽王进化',
- '魔法少女纯爷们',
- '我是一条小青龙',
- '女帝归来'
- ],
- // 小说描述数据
- novelDescs: [
- '都市玄幻小说,主角获得半妖化能力,通过吸收妖气不断变强...',
- '一场意外让主角获得兽王血脉,开始了进化之路...',
- '一个普通男孩意外获得魔法少女的力量,开始了奇妙冒险...',
- '重生为一条小青龙,主角在修仙世界中成长的故事...',
- '曾经的女帝重生归来,开始了复仇之路...'
- ],
- // 最近更新
- recommendList: [
- {
- title: '重生后,我给妹妹假装动漫女主角',
- cover: 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain'
- },
- {
- title: '我在亮剑提前帮助',
- cover: 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain'
- },
- {
- title: '斗罗:开局魂师测试99级',
- cover: 'https://tse4-mm.cn.bing.net/th/id/OIP-C.iUyxJ_fxLjjX3kEBjteXWwAAAA?rs=1&pid=ImgDetMain'
- }
- ]
- }
- },
- computed : {
- ...mapGetters(['userShop']),
- },
- methods: {
- //显示选择地区
- showSelectArea() {
- // this.$refs.selectArea.open()
- },
- //搜索地址
- searchAddress() {
- Position.getLocation(res => {
- Position.selectAddress(res.longitude, res.latitude, success => {
- let address = this.extractProvinceAndCity(success)
- this.queryParams.title = address.city
- })
- })
- },
- //提取用户选择的地址信息(省市县信息)
- extractProvinceAndCity(res) { //提取用户选择的地址信息(省市)
- if (!res.address && res.name) { //用户直接选择城市的逻辑
- return {
- province: '',
- city: res.name
- };
- }
-
- if (res.address) { //用户选择了详细地址,要从详细地址中提取出省市县信息
- // 使用正则表达式匹配省市县
- const regex = /(?<province>[\u4e00-\u9fa5]+?省)(?<city>[\u4e00-\u9fa5]+?(?:市|自治州|盟|地区))/;
- const match = res.address.match(regex);
- if (match) { // 如果匹配成功,则返回省和市的信息
- return {
- province: match.groups.province,
- city: match.groups.city
- };
- }
- }
-
- return { //用户没选择地址就点了确定按钮
- province: '',
- city: ''
- }
- },
- }
- }
- </script>
-
- <style scoped lang="scss">
- .page {
- background-color: #f5f5f5;
- // min-height: 100vh;
-
- .content {
- padding-bottom: 75rpx;
- }
-
- .banner {
- padding: 0;
-
-
- image {
- width: 100%;
- height: 250rpx;
- border-radius: 0;
- }
- }
-
- .notice {
- display: flex;
- align-items: center;
- background-color: #fff;
- margin: 0;
- padding: 20rpx 30rpx;
- border-radius: 0;
-
- .notice-icon {
- margin-right: 20rpx;
-
- image {
- width: 80rpx;
- height: 80rpx;
- }
- }
-
- .notice-text {
- flex: 1;
- font-size: 28rpx;
- color: #333;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
-
- .notice-more {
- margin-left: 20rpx;
- }
- }
-
- .section {
- background-color: #fff;
- margin: 30rpx 0 0 0;
- padding: 10rpx 30rpx;
- border-radius: 0;
-
- .section-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 20rpx;
-
- .section-title {
- font-size: 32rpx;
- font-weight: bold;
- color: #333;
- }
-
- .section-more {
- font-size: 24rpx;
- color: #999;
- }
- }
-
- .novel-list {
- .novel-item {
- display: flex;
- padding: 20rpx 0;
- border-bottom: 1px solid #eee;
-
- &:last-child {
- border-bottom: none;
- }
-
- .novel-cover {
- width: 160rpx;
- height: 200rpx;
- border-radius: 8rpx;
- margin-right: 20rpx;
- }
-
- .novel-info {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
-
- .novel-title {
- font-size: 28rpx;
- font-weight: bold;
- color: #333;
- margin-bottom: 10rpx;
- }
-
- .novel-desc {
- font-size: 24rpx;
- color: #999;
- line-height: 1.5;
- display: -webkit-box;
- -webkit-box-orient: vertical;
- -webkit-line-clamp: 3;
- overflow: hidden;
- }
- }
- }
- }
-
- .recommend-list {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
-
- .recommend-item {
- width: 30%;
- margin-bottom: 20rpx;
-
- .recommend-cover {
- width: 100%;
- height: 200rpx;
- border-radius: 8rpx;
- margin-bottom: 10rpx;
- }
-
- .recommend-title {
- font-size: 24rpx;
- color: #333;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- }
- }
- }
- .section1 {
- background-color: #fff;
- margin: 0rpx 0 0 0;
- padding: 20rpx 30rpx;
- border-radius: 0;
-
- .section-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 20rpx;
-
- .section-title {
- font-size: 32rpx;
- font-weight: bold;
- color: #333;
- }
-
- .section-more {
- font-size: 24rpx;
- color: #999;
- }
- }
-
- .novel-list {
- .novel-item {
- display: flex;
- padding: 20rpx 0;
- border-bottom: 1px solid #eee;
-
- &:last-child {
- border-bottom: none;
- }
-
- .novel-cover {
- width: 160rpx;
- height: 200rpx;
- border-radius: 8rpx;
- margin-right: 20rpx;
- }
-
- .novel-info {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
-
- .novel-title {
- font-size: 28rpx;
- font-weight: bold;
- color: #333;
- margin-bottom: 10rpx;
- }
-
- .novel-desc {
- font-size: 24rpx;
- color: #999;
- line-height: 1.5;
- display: -webkit-box;
- -webkit-box-orient: vertical;
- -webkit-line-clamp: 3;
- overflow: hidden;
- }
- }
- }
- }
-
- .recommend-list {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
-
- .recommend-item {
- width: 30%;
- margin-bottom: 20rpx;
-
- .recommend-cover {
- width: 100%;
- height: 200rpx;
- border-radius: 8rpx;
- margin-bottom: 10rpx;
- }
-
- .recommend-title {
- font-size: 24rpx;
- color: #333;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- }
- }
- }
- }
- </style>
|