Feat:接口对接
This commit is contained in:
@@ -61,4 +61,51 @@ export function getSeason(id) {
|
|||||||
* */
|
* */
|
||||||
export function getSeasonPoster(id) {
|
export function getSeasonPoster(id) {
|
||||||
return request.get("/seasonalFood/poster/" + id, {}, {login: true})
|
return request.get("/seasonalFood/poster/" + id, {}, {login: true})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 民宿专题
|
||||||
|
* */
|
||||||
|
export function getHomestay(id) {
|
||||||
|
return request.get(`/contentHomestay/${id}`, {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 节日专题
|
||||||
|
* */
|
||||||
|
export function getFestival() {
|
||||||
|
return request.get('/contentFestival', {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 非遗文化
|
||||||
|
* */
|
||||||
|
export function getICH() {
|
||||||
|
return request.get('/ich/index', {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 非遗文化详情
|
||||||
|
* */
|
||||||
|
export function getICHDetails(id) {
|
||||||
|
return request.get(`/ich/content/${id}`, {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 地标好物-省份列表
|
||||||
|
* */
|
||||||
|
export function getProvinceList() {
|
||||||
|
return request.get('/landmarkGoods/provinceList', {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 地标好物-地图数据
|
||||||
|
* */
|
||||||
|
export function getProvince(id) {
|
||||||
|
return request.get(`/landmarkGoods/province/${id}`, {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getProvinceGoods(parentId, keyword, page) {
|
||||||
|
const params = `?parentId=${parentId}&keyword=${keyword}&page=${page}&limit=10`;
|
||||||
|
return request.get('/landmarkGoods/productList' + params, {}, {login: false})
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import request from "@/utils/request";
|
||||||
|
|
||||||
|
// 天天秒杀分享图片
|
||||||
|
export function secKillShareImage() {
|
||||||
|
return request.get('/seckill/shareImage', {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 天天秒杀商品分享图片
|
||||||
|
export function secKillGoodsShareImage(id) {
|
||||||
|
return request.get('/seckill/shareImage/'+id, {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 千县名品分享图片
|
||||||
|
export function famousShareImage() {
|
||||||
|
return request.get('/countyFamous/shareImage', {}, {login: false})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 千县名品商品分享图片
|
||||||
|
export function famousGoodsShareImage(id) {
|
||||||
|
return request.get('/countyFamous/shareImage/'+id, {}, {login: false})
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view
|
<view
|
||||||
class="Loads acea-row row-center-wrapper"
|
class="Loads acea-row row-center-wrapper"
|
||||||
v-if="loading || !loaded"
|
v-if="loading || !loadend"
|
||||||
style="margin-top: 20rpx;"
|
style="margin-top: 20rpx;"
|
||||||
>
|
>
|
||||||
<template v-if="loading">
|
<template v-if="loading">
|
||||||
@@ -10,9 +10,9 @@
|
|||||||
></view>
|
></view>
|
||||||
正在加载中
|
正在加载中
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<!-- <template v-else>-->
|
||||||
上拉加载更多
|
<!-- 上拉加载更多-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
export default {
|
export default {
|
||||||
name: "Loading",
|
name: "Loading",
|
||||||
props: {
|
props: {
|
||||||
loaded: Boolean,
|
loadend: Boolean,
|
||||||
loading: Boolean
|
loading: Boolean
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="productWinList">
|
<view class="productWinList">
|
||||||
<view class="item" v-for="(item, indexw) in attr.productAttr" :key="indexw">
|
<view class="item" v-for="(item, indexw) in attr.productAttr" :key="indexw">
|
||||||
<view class="title">{{ item.attrName }} 438</view>
|
<view class="title">{{ item.attrName }}</view>
|
||||||
<view class="listn acea-row row-middle">
|
<view class="listn acea-row row-middle">
|
||||||
<view
|
<view
|
||||||
class="itemn"
|
class="itemn"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<Loading :loaded="loadend" :loading="loading"></Loading>
|
<Loading :loadend="loadend" :loading="loading"></Loading>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
+58
-29
@@ -36,6 +36,12 @@
|
|||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "white"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/home/landMark",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "地标好物"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "components/chose-city/chose-city",
|
"path": "components/chose-city/chose-city",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -104,12 +110,6 @@
|
|||||||
"navigationBarTitleText": "404"
|
"navigationBarTitleText": "404"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// "path": "pages/cloud/cloud",
|
|
||||||
// "style": {
|
|
||||||
// "navigationBarTitleText": "七彩云上"
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
"path": "pages/cloud/haveFun",
|
"path": "pages/cloud/haveFun",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -607,12 +607,42 @@
|
|||||||
{
|
{
|
||||||
"root": "pkg_product",
|
"root": "pkg_product",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/festival",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "views/healthList",
|
"path": "views/healthList",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "康养 · 食材"
|
"navigationBarTitleText": "康养 · 食材"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "views/heritage",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "非遗文化"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/heritageGoods",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/heritageVideo",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/homestay",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "views/giftList",
|
"path": "views/giftList",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -620,12 +650,6 @@
|
|||||||
"onReachBottomDistance": 100
|
"onReachBottomDistance": 100
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "views/landMark",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "地标好物"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "views/famousList",
|
"path": "views/famousList",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -671,7 +695,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "views/seasonList",
|
"path": "views/seasonList",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "时令尝鲜"
|
"navigationBarTitleText": "时令尝鲜"
|
||||||
}
|
}
|
||||||
@@ -876,18 +900,18 @@
|
|||||||
"selectedIconPath": "static/tabbar/icon-home-hot.png",
|
"selectedIconPath": "static/tabbar/icon-home-hot.png",
|
||||||
"text": "首页"
|
"text": "首页"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/home/landMark",
|
||||||
|
"iconPath": "static/tabbar/icon-land.png",
|
||||||
|
"selectedIconPath": "static/tabbar/icon-land-hot.png",
|
||||||
|
"text": "地标好物"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"pagePath": "pages/shop/ShoppingCart/index",
|
"pagePath": "pages/shop/ShoppingCart/index",
|
||||||
"iconPath": "static/tabbar/icon-cart.png",
|
"iconPath": "static/tabbar/icon-cart.png",
|
||||||
"selectedIconPath": "static/tabbar/icon-cart-hot.png",
|
"selectedIconPath": "static/tabbar/icon-cart-hot.png",
|
||||||
"text": "购物车"
|
"text": "购物车"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"pagePath": "pages/cloud/haveFun",
|
|
||||||
"iconPath": "static/tabbar/icon-cloud.png",
|
|
||||||
"selectedIconPath": "static/tabbar/icon-cloud-hot.png",
|
|
||||||
"text": "寻趣味"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"pagePath": "pages/user/User/index",
|
"pagePath": "pages/user/User/index",
|
||||||
"iconPath": "static/tabbar/icon-user.png",
|
"iconPath": "static/tabbar/icon-user.png",
|
||||||
@@ -897,27 +921,32 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"condition": {
|
||||||
"current": 0,
|
"current": 3,
|
||||||
"list": [
|
"list": [
|
||||||
{
|
{
|
||||||
"name": "商品详情",
|
"name": "商品详情",
|
||||||
"path": "pages/shop/GoodsCon/index",
|
"path": "pages/shop/GoodsCon/index",
|
||||||
"query": "id=369"
|
"query": "id=303&from=famous"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "DEBUG",
|
"name": "DEBUG",
|
||||||
"path": "pages/shop/ShoppingCart/index",
|
"path": "pkg_product/views/healthList",
|
||||||
"query": "id=297"
|
"query": "id=32"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "No.8",
|
"name": "节日",
|
||||||
"path": "pages/shop/GoodsEvaluate/index",
|
"path": "pkg_product/views/festival",
|
||||||
"query": "id=eb30f8a98b1c4952addbdccb1d37533d"
|
"query": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "时令尝鲜",
|
"name": "非遗",
|
||||||
"path": "pkg_product/views/season",
|
"path": "pkg_product/views/heritage",
|
||||||
"query": "id=20"
|
"query": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "地标好物",
|
||||||
|
"path": "pages/home/landMark",
|
||||||
|
"query": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+129
-33
@@ -66,10 +66,10 @@
|
|||||||
</view>
|
</view>
|
||||||
<!-- 快捷跳转块v4end -->
|
<!-- 快捷跳转块v4end -->
|
||||||
|
|
||||||
<view style="padding-bottom:20rpx;background: #fff;">
|
<!-- <view style="padding-bottom:20rpx;background: #fff;">-->
|
||||||
<!-- 转盘-->
|
<!-- 转盘-->
|
||||||
<!-- <image class="home-luck" :src="`${webUrl}/20220519145845818243.png`" mode="scaleToFill" @click="goLuck"></image>-->
|
<!-- <image class="home-luck" :src="`${webUrl}/20220519145845818243.png`" mode="scaleToFill" @click="goLuck"></image>-->
|
||||||
</view>
|
<!-- </view>-->
|
||||||
|
|
||||||
<!-- 伴手礼精品 -->
|
<!-- 伴手礼精品 -->
|
||||||
<!-- <view class="wrapper hot" v-if="likeInfo.length > 0">-->
|
<!-- <view class="wrapper hot" v-if="likeInfo.length > 0">-->
|
||||||
@@ -212,30 +212,48 @@
|
|||||||
<!-- v4 每天特价结束 -->
|
<!-- v4 每天特价结束 -->
|
||||||
|
|
||||||
<!-- v9 专题 -->
|
<!-- v9 专题 -->
|
||||||
<!-- <view class="subject-box">-->
|
<view class="subject-box">
|
||||||
<!-- <view class="section-half flex jc-between">-->
|
<view class="section-half flex jc-between">
|
||||||
<!-- <image src="@/static/images/v9/subject-148@2x.png" mode="scaleToFill"/>-->
|
<image class="bg-img" :src="countyFamous.backgroundImage" mode="scaleToFill"
|
||||||
<!-- <image src="@/static/images/v9/subject-149@2x.png" mode="scaleToFill"/>-->
|
@click="$global.commonJump('/pkg_product/views/famousList')" v-if="countyFamous.backgroundImage"/>
|
||||||
<!-- </view>-->
|
<view class="food-box" @click="$global.commonJump('/pkg_product/views/seasonList')">
|
||||||
<!-- <view class="section-full flex jc-between">-->
|
<image class="bg-img" :src="seasonalFood.backgroundImage" mode="scaleToFill"
|
||||||
<!-- <image src="@/static/images/v9/subject-148@2x.png" mode="scaleToFill"/>-->
|
v-if="seasonalFood.backgroundImage"/>
|
||||||
<!-- <image src="@/static/images/v9/subject-149@2x.png" mode="scaleToFill"/>-->
|
|
||||||
<!-- </view>-->
|
<swiper class="swiper" circular autoplay :interval="3000">
|
||||||
<!-- </view>-->
|
<swiper-item v-for="(arr,arrIndex) in seasonalFood.groupList" :key="arrIndex">
|
||||||
|
<view class="flex">
|
||||||
|
<image :src="item.image" mode="scaleToFill" v-for="(item,index) in arr" :key="index"/>
|
||||||
|
</view>
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="section-full flex jc-between">
|
||||||
|
<swiper class="swiper" circular autoplay :interval="3000">
|
||||||
|
<swiper-item v-for="(stay,stayIndex) in contentHomestay" :key="stayIndex">
|
||||||
|
<image :src="stay.indexImage" mode="scaleToFill" @click="goHomeStay(stay)"/>
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
<!-- <image :src="contentHomestay.indexImage" mode="scaleToFill" @click="goHomeStay" v-if="contentHomestay.indexImage"/>-->
|
||||||
|
<image :src="contentFestival.indexImage" mode="scaleToFill" @click="goFestival"
|
||||||
|
v-if="contentFestival.indexImage"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<!-- v9 老用户弹窗 -->
|
<!-- v9 老用户弹窗 -->
|
||||||
<!-- <u-popup :show="isOldUser" mode="center" bgColor="transparent">-->
|
<u-popup :show="isOldUser" mode="center" bgColor="transparent">
|
||||||
<!-- <view class="popup-old-user flex flex-col ai-center">-->
|
<view class="popup-old-user flex flex-col ai-center">
|
||||||
<!-- <image class="main" src="@/static/images/v9/subject-149@2x.png" mode="scaleToFill"/>-->
|
<image class="main" :src="oldUserPopup.image" mode="scaleToFill" @click="$global.commonJump(oldUserPopup.url)"/>
|
||||||
<!-- <view class="icon-box flex jc-center ai-center" @click="isOldUser=false">-->
|
<view class="icon-box flex jc-center ai-center" @click="changeOldPopup(false)">
|
||||||
<!-- <image :src="webUrl+'/20230608112219219303.png'" mode="scaleToFill"/>-->
|
<image :src="webUrl+'/20230608112219219303.png'" mode="scaleToFill"/>
|
||||||
<!-- </view>-->
|
</view>
|
||||||
<!-- </view>-->
|
</view>
|
||||||
<!-- </u-popup>-->
|
</u-popup>
|
||||||
|
|
||||||
<!-- 2022/6/20 add 尖货推荐 special-offer-->
|
<!-- 2022/6/20 add 尖货推荐 special-offer-->
|
||||||
<view class="bast-box">
|
<view class="bast-box">
|
||||||
<view style="padding: 0 32rpx">
|
<view style="padding: 0 32rpx;background: #FFFFFF;">
|
||||||
<image class="bast-title" :src="webUrl+'/20230407111908318221.png'" mode="scaleToFill"/>
|
<image class="bast-title" :src="webUrl+'/20230407111908318221.png'" mode="scaleToFill"/>
|
||||||
</view>
|
</view>
|
||||||
<view class="list flex" v-if="bastList.length">
|
<view class="list flex" v-if="bastList.length">
|
||||||
@@ -431,6 +449,11 @@ export default {
|
|||||||
bannarList: [], // 尖货推荐横幅
|
bannarList: [], // 尖货推荐横幅
|
||||||
shareAppImg: "", // 发送给朋友
|
shareAppImg: "", // 发送给朋友
|
||||||
isOldUser: true, // 老用户弹窗
|
isOldUser: true, // 老用户弹窗
|
||||||
|
oldUserPopup: {},
|
||||||
|
contentHomestay: {},
|
||||||
|
contentFestival: {},
|
||||||
|
countyFamous: {},
|
||||||
|
seasonalFood: {}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onLoad: function (options) {
|
onLoad: function (options) {
|
||||||
@@ -545,6 +568,23 @@ export default {
|
|||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
}));
|
}));
|
||||||
|
that.$set(that, 'oldUserPopup', res.data.oldUserPopup)
|
||||||
|
that.$set(that, 'contentHomestay', res.data.contentHomestay)
|
||||||
|
that.$set(that, 'contentFestival', res.data.contentFestival)
|
||||||
|
that.$set(that, 'countyFamous', res.data.countyFamous)
|
||||||
|
|
||||||
|
// 处理时令尝鲜轮播图所需数据
|
||||||
|
const foodLen = res.data.seasonalFood.productsCarousels.length;
|
||||||
|
const foods = res.data.seasonalFood.productsCarousels;
|
||||||
|
let groupList = [];
|
||||||
|
if (foodLen) {
|
||||||
|
const count = 4;
|
||||||
|
for (let i = 0; i < foodLen; i += count) {
|
||||||
|
groupList.push(foods.slice(i, i + count))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res.data.seasonalFood.groupList = groupList;
|
||||||
|
that.$set(that, 'seasonalFood', res.data.seasonalFood)
|
||||||
|
|
||||||
if (that.firstList.length > 0) {
|
if (that.firstList.length > 0) {
|
||||||
that.newGoods = that.firstList[0];
|
that.newGoods = that.firstList[0];
|
||||||
@@ -575,12 +615,12 @@ export default {
|
|||||||
}, 1)
|
}, 1)
|
||||||
|
|
||||||
// 尖货推荐
|
// 尖货推荐
|
||||||
let temp = {
|
// let temp = {
|
||||||
storeName: "swiper",
|
// storeName: "swiper",
|
||||||
image: "https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg",
|
// image: "https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg",
|
||||||
bannarList: that.bannarList
|
// bannarList: that.bannarList
|
||||||
}
|
// }
|
||||||
res.data.bastList.unshift(temp);
|
// res.data.bastList.unshift(temp);
|
||||||
for (let i = 0; i < res.data.bastList.length; i++) {
|
for (let i = 0; i < res.data.bastList.length; i++) {
|
||||||
res.data.bastList[i].hide = true;
|
res.data.bastList[i].hide = true;
|
||||||
}
|
}
|
||||||
@@ -838,6 +878,28 @@ export default {
|
|||||||
from
|
from
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
changeOldPopup(state) {
|
||||||
|
this.isOldUser = state;
|
||||||
|
},
|
||||||
|
|
||||||
|
goHomeStay(stay) {
|
||||||
|
if (stay.type === 2 && stay.isLinkToProduct) {
|
||||||
|
this.$yrouter.push({
|
||||||
|
path: '/pages/shop/GoodsCon/index',
|
||||||
|
query: {
|
||||||
|
id: stay.productId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (stay.type === 1) {
|
||||||
|
uni.navigateTo({url: '/pkg_product/views/homestay?id=' + stay.id})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
goFestival() {
|
||||||
|
uni.navigateTo({url: '/pkg_product/views/festival'})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1721,7 +1783,8 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.subject-box {
|
.subject-box {
|
||||||
padding: 40rpx 32rpx;
|
padding: 20rpx 32rpx 40rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
|
||||||
image {
|
image {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
@@ -1730,10 +1793,38 @@ export default {
|
|||||||
.section-half {
|
.section-half {
|
||||||
margin-bottom: 16rpx;
|
margin-bottom: 16rpx;
|
||||||
|
|
||||||
image {
|
.bg-img {
|
||||||
width: 336rpx;
|
width: 336rpx;
|
||||||
height: 180rpx;
|
height: 180rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.food-box {
|
||||||
|
position: relative;
|
||||||
|
width: 336rpx;
|
||||||
|
height: 180rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.swiper {
|
||||||
|
position: absolute;
|
||||||
|
left:20rpx;
|
||||||
|
bottom:20rpx;
|
||||||
|
width: 296rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 72rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
margin-right: 4rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
image:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-full {
|
.section-full {
|
||||||
@@ -1741,6 +1832,11 @@ export default {
|
|||||||
width: 336rpx;
|
width: 336rpx;
|
||||||
height: 480rpx;
|
height: 480rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.swiper {
|
||||||
|
width: 336rpx;
|
||||||
|
height: 480rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1759,10 +1855,10 @@ export default {
|
|||||||
width: 96rpx;
|
width: 96rpx;
|
||||||
height: 96rpx;
|
height: 96rpx;
|
||||||
margin-top: 40rpx;
|
margin-top: 40rpx;
|
||||||
background: rgba(51,51,51,.4);
|
background: rgba(51, 51, 51, .4);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
|
||||||
image{
|
image {
|
||||||
width: 40rpx;
|
width: 40rpx;
|
||||||
height: 40rpx;
|
height: 40rpx;
|
||||||
}
|
}
|
||||||
@@ -1773,7 +1869,7 @@ export default {
|
|||||||
.bast-title {
|
.bast-title {
|
||||||
width: 312rpx;
|
width: 312rpx;
|
||||||
height: 40rpx;
|
height: 40rpx;
|
||||||
margin: 32rpx 0 16rpx;
|
margin: 16rpx 0 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bannar-swiper {
|
.bannar-swiper {
|
||||||
@@ -1786,7 +1882,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.list {
|
.list {
|
||||||
padding: 0 32rpx 32rpx;
|
padding: 32rpx;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@@ -0,0 +1,426 @@
|
|||||||
|
<script>
|
||||||
|
import {getProvince, getProvinceGoods, getProvinceList} from "@/api/product";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "landMark",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
webUrl: this.$VUE_APP_RESOURCES_URL,
|
||||||
|
keyword: '',
|
||||||
|
page: 1,
|
||||||
|
navList: [],
|
||||||
|
navIndex: 0,
|
||||||
|
mapData: null,
|
||||||
|
mapLocations: [],
|
||||||
|
goods: [],
|
||||||
|
directionClass: ['', 'up', 'right', 'down', 'left'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
topBoxBgColor() {
|
||||||
|
return this.navList.length > 0 ? this.navList[this.navIndex]['backgroundColor'] : '#FFFFFF';
|
||||||
|
},
|
||||||
|
viewBoxBgColor() {
|
||||||
|
return this.mapData?.backgroundColor || '#FFFFFF';
|
||||||
|
},
|
||||||
|
scale() {
|
||||||
|
return 718 / (this.mapData?.mapImageWidth || 1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.getNavList();
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.page++;
|
||||||
|
this.fetchGoods();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getNavList() {
|
||||||
|
getProvinceList().then(({data}) => {
|
||||||
|
this.navList = data;
|
||||||
|
this.changeNav(this.navIndex);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
search() {
|
||||||
|
this.page = 1;
|
||||||
|
this.fetchGoods();
|
||||||
|
},
|
||||||
|
|
||||||
|
changeNav(index) {
|
||||||
|
this.navIndex = index;
|
||||||
|
this.page = 1;
|
||||||
|
this.getMap();
|
||||||
|
this.fetchGoods();
|
||||||
|
},
|
||||||
|
|
||||||
|
getMap() {
|
||||||
|
const id = this.navList[this.navIndex]['id']
|
||||||
|
getProvince(id).then(({data}) => {
|
||||||
|
this.mapData = data;
|
||||||
|
this.mapLocations = data.mapLocations;
|
||||||
|
this.calcPosition();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 计算位置
|
||||||
|
calcPosition() {
|
||||||
|
this.mapLocations?.forEach(item => {
|
||||||
|
item.gx = item.x * this.scale;
|
||||||
|
item.gy = item.y * this.scale;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
fetchGoods() {
|
||||||
|
const id = this.navList[this.navIndex]['id']
|
||||||
|
getProvinceGoods(id, this.keyword, this.page).then(({data}) => {
|
||||||
|
if (this.page === 1) this.goods = [];
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
this.goods.push(data[i]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view class="pkg-product-land-mark" v-if="mapData">
|
||||||
|
<view class="top-box" :style="{'backgroundColor':topBoxBgColor}">
|
||||||
|
<view class="view-box">
|
||||||
|
<view class="search-box flex ai-center">
|
||||||
|
<input type="text" v-model="keyword" placeholder="搜索商品" placeholder-style="color:#999"
|
||||||
|
@confirm="search()"/>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="map-box">
|
||||||
|
<image class="img-map" :src="mapData.mapImage" mode="widthFix"/>
|
||||||
|
|
||||||
|
<view class="item" :style="{'left':item.gx+'rpx','top':item.gy+'rpx'}" v-for="item in mapLocations" @click="$global.navToGoods(item.productId)">
|
||||||
|
<view class="round">
|
||||||
|
<view class="line" :class="'line-'+directionClass[item.labelDirection]"></view>
|
||||||
|
</view>
|
||||||
|
<view class="label flex ai-end" :class="'label-'+directionClass[item.labelDirection]">
|
||||||
|
<image class="cover flex-0" :src="item.mapImage" mode="scaleToFill" v-if="item.labelDirection===4"/>
|
||||||
|
<view class="title flex ai-center">{{ item.mapTitle }}</view>
|
||||||
|
<image class="cover flex-0" :src="item.mapImage" mode="scaleToFill" v-if="item.labelDirection!==4"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="nav flex">
|
||||||
|
<view class="flex flex-0 ai-center" :class="{'active': navIndex===index}" v-for="(item,index) in navList"
|
||||||
|
:key="index" @click="changeNav(index)">{{ item.provinceName }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="main-box" v-if="mapData.recommended.storeImage"
|
||||||
|
@click="$global.navToGoods(mapData.recommended.productId)">
|
||||||
|
<image class="bg-main" :src="mapData.recommended.storeImage" mode="scaleToFill"/>
|
||||||
|
<view class="box-mask flex flex-col jc-end">
|
||||||
|
<view class="one-t bold">{{ mapData.recommended.title }}</view>
|
||||||
|
<view class="more-t">{{ mapData.recommended.description }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="list-box flex flex-wrap">
|
||||||
|
<view class="item" v-for="item in goods" :key="item.id" @click="$global.navToGoods(item.productId)">
|
||||||
|
<image :src="item.storeImage" mode="scaleToFill"/>
|
||||||
|
<view class="content flex flex-col jc-between">
|
||||||
|
<view class="more-t bold">{{ item.title }}</view>
|
||||||
|
<view class="flex jc-between ai-center">
|
||||||
|
<text class="price">¥{{ item.price }}</text>
|
||||||
|
<image class="btn" :src="webUrl+'/20231114151028082368.png'" mode="scaleToFill"/>
|
||||||
|
<!-- <view class="btn flex jc-center ai-center">立即购买</view>-->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<image class="img-nodata" :src="webUrl+'/20231023131208675588.png'" mode="scaleToFill"
|
||||||
|
v-if="goods.length===0"/>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.pkg-product-land-mark {
|
||||||
|
background: #F7F3ED;
|
||||||
|
|
||||||
|
image {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-box {
|
||||||
|
padding: 32rpx 0 20rpx;
|
||||||
|
|
||||||
|
.view-box {
|
||||||
|
position: relative;
|
||||||
|
margin: 0 16rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.search-box {
|
||||||
|
position: absolute;
|
||||||
|
top: 20rpx;
|
||||||
|
left: 34rpx;
|
||||||
|
width: 650rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
padding: 0 32rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
line-height: 64rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.map-box {
|
||||||
|
position: relative;
|
||||||
|
width: 718rpx;
|
||||||
|
|
||||||
|
.img-map {
|
||||||
|
width: 718rpx;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
position: absolute;
|
||||||
|
|
||||||
|
.round {
|
||||||
|
width: 8rpx;
|
||||||
|
height: 8rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 8rpx rgba(225, 38, 65, .4);;
|
||||||
|
background: #E12641;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line {
|
||||||
|
position: relative;
|
||||||
|
border: 2rpx solid #E12641;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-up {
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -100%);
|
||||||
|
width: 0;
|
||||||
|
height: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-right {
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(0, -50%);
|
||||||
|
width: 30rpx;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-down {
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
width: 0;
|
||||||
|
height: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-left {
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-100%, -50%);
|
||||||
|
width: 30rpx;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.cover {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: 6rpx solid #E12641;
|
||||||
|
border-radius: 50%;
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
height: 32rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
padding: 0 16rpx;
|
||||||
|
background: #E12641;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 22rpx;
|
||||||
|
line-height: 32rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.label-up {
|
||||||
|
top: -80rpx;
|
||||||
|
left: -50%;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-right: -9rpx;
|
||||||
|
border-radius: 20rpx 0 0 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.label-right {
|
||||||
|
top: -40rpx;
|
||||||
|
left: 32rpx;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-right: -9rpx;
|
||||||
|
border-radius: 20rpx 0 0 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.label-down {
|
||||||
|
left: -50%;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-right: -9rpx;
|
||||||
|
border-radius: 20rpx 0 0 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.label-left {
|
||||||
|
left: -100%;
|
||||||
|
transform: translate(-30rpx, -40rpx);
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-left: -9rpx;
|
||||||
|
border-radius: 0 20rpx 20rpx 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav {
|
||||||
|
padding: 30rpx 20rpx 0;
|
||||||
|
overflow-x: scroll;
|
||||||
|
|
||||||
|
view {
|
||||||
|
height: 52rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0 18rpx;
|
||||||
|
border: 4rpx solid transparent;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active {
|
||||||
|
border-color: #FFFFFF;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-box {
|
||||||
|
position: relative;
|
||||||
|
width: 718rpx;
|
||||||
|
height: 360rpx;
|
||||||
|
margin: 24rpx 16rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.bg-main {
|
||||||
|
width: 718rpx;
|
||||||
|
height: 360rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-mask {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 200rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 20rpx 16rpx 16rpx;
|
||||||
|
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000000 100%);
|
||||||
|
color: #FFFFFF;
|
||||||
|
|
||||||
|
.one-t {
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
font-size: 46rpx;
|
||||||
|
line-height: 52rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.more-t {
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-top: 10rpx;
|
||||||
|
border-top: 1rpx solid #FFFFFF;
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 32rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-box {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
padding: 0 16rpx 34rpx;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 234rpx;
|
||||||
|
height: 380rpx;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
margin-bottom: 24rpx;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 234rpx;
|
||||||
|
height: 234rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
height: 122rpx;
|
||||||
|
margin: 6rpx 6rpx 18rpx;
|
||||||
|
|
||||||
|
.more-t {
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price {
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #DC1616;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
width: 118rpx;
|
||||||
|
height: 42rpx;
|
||||||
|
//background: linear-gradient(180deg, #EFEDC7 0%, #EAC94B 100%);
|
||||||
|
//border-radius: 4rpx;
|
||||||
|
//color: #764A00;
|
||||||
|
//font-size: 24rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item:nth-child(3n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-nodata {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
width: 352rpx;
|
||||||
|
height: 338rpx;
|
||||||
|
margin-bottom: 60rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -4,15 +4,16 @@
|
|||||||
</hx-navbar>
|
</hx-navbar>
|
||||||
<view v-if="storeInfo.id">
|
<view v-if="storeInfo.id">
|
||||||
<!-- 原模块 -->
|
<!-- 原模块 -->
|
||||||
<product-con-swiper :img-urls="storeInfo.sliderImageArr" v-if="from!='pre' && from!='day'"></product-con-swiper>
|
<product-con-swiper :img-urls="storeInfo.sliderImageArr"
|
||||||
|
v-if="source!='pre' && source!='day'"></product-con-swiper>
|
||||||
<!-- v4 预售轮播图 -->
|
<!-- v4 预售轮播图 -->
|
||||||
<product-con-swiper :img-urls="preInfo.sliderImageArr" v-if="from==='pre'"></product-con-swiper>
|
<product-con-swiper :img-urls="preInfo.sliderImageArr" v-if="source==='pre'"></product-con-swiper>
|
||||||
<!-- v4 每日特价轮播图 -->
|
<!-- v4 每日特价轮播图 -->
|
||||||
<product-con-swiper :img-urls="dayInfo.sliderImageArr" v-if="from==='day'"></product-con-swiper>
|
<product-con-swiper :img-urls="dayInfo.sliderImageArr" v-if="source==='day'"></product-con-swiper>
|
||||||
|
|
||||||
<view class="wrapper">
|
<view class="wrapper">
|
||||||
<!-- 原模块 -->
|
<!-- 原模块 -->
|
||||||
<view class="change-section bg-white" v-if="from===''">
|
<view class="change-section bg-white" v-if="source==='' || source==='famous' ">
|
||||||
<view class="introduce bold">{{ storeInfo.storeName }}</view>
|
<view class="introduce bold">{{ storeInfo.storeName }}</view>
|
||||||
<rich-text class="subInfo" :nodes="storeInfo.storeInfo" v-if="storeInfo.storeInfo"/>
|
<rich-text class="subInfo" :nodes="storeInfo.storeInfo" v-if="storeInfo.storeInfo"/>
|
||||||
<view class="share acea-row row-between row-middle" style="flex-wrap: nowrap;">
|
<view class="share acea-row row-between row-middle" style="flex-wrap: nowrap;">
|
||||||
@@ -52,15 +53,15 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 文玩 -->
|
<!-- 文玩 -->
|
||||||
<!-- <view class="wenwan-info flex jc-between ai-center" v-if="isWenwan===1">
|
<!-- <view class="wenwan-info flex jc-between ai-center" v-if="isWenwan===1">-->
|
||||||
<text>产地:{{ storeInfo.origin }}</text>
|
<!-- <text>产地:{{ storeInfo.origin }}</text>-->
|
||||||
<text>单位:{{ storeInfo.unitName }}</text>
|
<!-- <text>单位:{{ storeInfo.unitName }}</text>-->
|
||||||
<text>规格:{{ storeInfo.storeInfo }}</text>
|
<!-- <text>规格:{{ storeInfo.storeInfo }}</text>-->
|
||||||
</view> -->
|
<!-- </view>-->
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- v4 特产 -->
|
<!-- v4 特产 -->
|
||||||
<view class="spe-section change-section bg-white" v-if="from==='spe'">
|
<view class="spe-section change-section bg-white" v-if="source==='spe'">
|
||||||
<view class="spe-line-1 flex ai-center">
|
<view class="spe-line-1 flex ai-center">
|
||||||
<img class="icon-spe" :src="webUrl+'/20220514112935428191.png'" mode="scaleToFill">
|
<img class="icon-spe" :src="webUrl+'/20220514112935428191.png'" mode="scaleToFill">
|
||||||
<view class="one-t">{{ storeInfo.storeName }}</view>
|
<view class="one-t">{{ storeInfo.storeName }}</view>
|
||||||
@@ -110,7 +111,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- v4 预售抬头 -->
|
<!-- v4 预售抬头 -->
|
||||||
<view class="pre-section change-section bg-white" v-if="from==='pre'">
|
<view class="pre-section change-section bg-white" v-if="source==='pre'">
|
||||||
|
|
||||||
<view class="pre-line-1 flex">
|
<view class="pre-line-1 flex">
|
||||||
<view class="surplus flex">
|
<view class="surplus flex">
|
||||||
@@ -141,7 +142,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- v4 秒杀抬头 -->
|
<!-- v4 秒杀抬头 -->
|
||||||
<view class="kill-section change-section bg-white" v-if="from==='kill'">
|
<view class="kill-section change-section bg-white" v-if="source==='kill'">
|
||||||
|
|
||||||
<view class="kill-line-1 more-t">{{ killInfo.storeInfo.title }}</view>
|
<view class="kill-line-1 more-t">{{ killInfo.storeInfo.title }}</view>
|
||||||
|
|
||||||
@@ -167,7 +168,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- v4 每日特价抬头 -->
|
<!-- v4 每日特价抬头 -->
|
||||||
<view class="day-section change-section bg-white" v-if="from==='day'">
|
<view class="day-section change-section bg-white" v-if="source==='day'">
|
||||||
<view class="day-line-1 flex ai-center">
|
<view class="day-line-1 flex ai-center">
|
||||||
<img class="icon-day" :src="webUrl+'/20220514103348573632.png'" mode="scaleToFill">
|
<img class="icon-day" :src="webUrl+'/20220514103348573632.png'" mode="scaleToFill">
|
||||||
<view class="one-t">{{ dayInfo.title }}</view>
|
<view class="one-t">{{ dayInfo.title }}</view>
|
||||||
@@ -400,12 +401,12 @@
|
|||||||
<!-- 商品详情开始 -->
|
<!-- 商品详情开始 -->
|
||||||
<view class="product-intro" style="margin-top: 24rpx">
|
<view class="product-intro" style="margin-top: 24rpx">
|
||||||
<!-- 原模块 -->
|
<!-- 原模块 -->
|
||||||
<!-- <view class="conter" v-html="storeInfo.description" ></view>-->
|
<!-- <view class="conter" v-html="storeInfo.description" ></view>-->
|
||||||
<rich-text :nodes="storeInfo.description" v-if="from!='pre' && from!='day'"/>
|
<rich-text :nodes="storeInfo.description" v-if="source!='pre' && source!='day'"/>
|
||||||
<!-- v4 预售详情 -->
|
<!-- v4 预售详情 -->
|
||||||
<rich-text :nodes="preInfo.description" v-if="from==='pre'"/>
|
<rich-text :nodes="preInfo.description" v-if="source==='pre'"/>
|
||||||
<!-- v4 每日特价详情 -->
|
<!-- v4 每日特价详情 -->
|
||||||
<rich-text :nodes="dayInfo.description" v-if="from==='day'"/>
|
<rich-text :nodes="dayInfo.description" v-if="source==='day'"/>
|
||||||
</view>
|
</view>
|
||||||
<!-- 商品详情结束 -->
|
<!-- 商品详情结束 -->
|
||||||
|
|
||||||
@@ -501,6 +502,7 @@ import {mapGetters} from "vuex";
|
|||||||
import {diffDay, formatDateTime} from "@/utils/index";
|
import {diffDay, formatDateTime} from "@/utils/index";
|
||||||
import {getCurAddress, getLocation, getUrlParam} from "@/utils/common.js";
|
import {getCurAddress, getLocation, getUrlParam} from "@/utils/common.js";
|
||||||
import cookie from "@/utils/store/cookie";
|
import cookie from "@/utils/store/cookie";
|
||||||
|
import {famousGoodsShareImage, secKillGoodsShareImage} from "@/api/share";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "GoodsCon",
|
name: "GoodsCon",
|
||||||
@@ -542,7 +544,7 @@ export default {
|
|||||||
id: null,
|
id: null,
|
||||||
partnerId: null,
|
partnerId: null,
|
||||||
activityId: 0, // v4 add
|
activityId: 0, // v4 add
|
||||||
from: "", // v4 add
|
source: "", // v4 add
|
||||||
preInfo: {},
|
preInfo: {},
|
||||||
killInfo: {},
|
killInfo: {},
|
||||||
dayInfo: {},
|
dayInfo: {},
|
||||||
@@ -582,7 +584,28 @@ export default {
|
|||||||
webUrl: this.$VUE_APP_RESOURCES_URL
|
webUrl: this.$VUE_APP_RESOURCES_URL
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: mapGetters(["isLogin", "location"]),
|
computed: mapGetters(["isLogin", "location", "userInfo"]),
|
||||||
|
onShareAppMessage() {
|
||||||
|
return new Promise(async (resolve, reject) => {
|
||||||
|
let result;
|
||||||
|
let params = `?id=${this.id}&partnerId=${this.userInfo.uid}`;
|
||||||
|
if (this.source === 'famous') {
|
||||||
|
result = await famousGoodsShareImage(this.id);
|
||||||
|
}
|
||||||
|
if (this.source === 'kill') {
|
||||||
|
result = await secKillGoodsShareImage(this.activityId);
|
||||||
|
params += `&activityId=${this.activityId}`
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.status === 200) {
|
||||||
|
resolve({
|
||||||
|
title: this.storeInfo.storeName,
|
||||||
|
path: '/pages/shop/GoodsCon/index' + params,
|
||||||
|
imageUrl: result.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
onLoad: function (options) {
|
onLoad: function (options) {
|
||||||
// test data
|
// test data
|
||||||
console.log("getLaunchOptionsSync", uni.getLaunchOptionsSync());
|
console.log("getLaunchOptionsSync", uni.getLaunchOptionsSync());
|
||||||
@@ -595,7 +618,7 @@ export default {
|
|||||||
this.id = options.id || null;
|
this.id = options.id || null;
|
||||||
this.partnerId = options.partnerId || null;
|
this.partnerId = options.partnerId || null;
|
||||||
this.activityId = this._route.query.activityId;
|
this.activityId = this._route.query.activityId;
|
||||||
this.from = this._route.query.from || "";
|
this.source = this._route.query.from || "";
|
||||||
} else {
|
} else {
|
||||||
let obj = uni.getEnterOptionsSync();
|
let obj = uni.getEnterOptionsSync();
|
||||||
if (options.scene != null || obj.query.scene != null) {
|
if (options.scene != null || obj.query.scene != null) {
|
||||||
@@ -625,7 +648,7 @@ export default {
|
|||||||
this.productCon();
|
this.productCon();
|
||||||
this.fetchCompanyDatea();
|
this.fetchCompanyDatea();
|
||||||
|
|
||||||
switch (this.from) {
|
switch (this.source) {
|
||||||
case "pre":
|
case "pre":
|
||||||
this.getPreInfo();
|
this.getPreInfo();
|
||||||
break;
|
break;
|
||||||
@@ -942,7 +965,7 @@ export default {
|
|||||||
that.isWenwan = res.data.isWenwan;
|
that.isWenwan = res.data.isWenwan;
|
||||||
|
|
||||||
// 给 attr 赋值,将请求回来的规格赋值给 attr
|
// 给 attr 赋值,将请求回来的规格赋值给 attr
|
||||||
if (this.from === "") {
|
if (this.source === "" || this.source === 'famous') {
|
||||||
that.$set(that.attr, "productAttr", res.data.productAttr);
|
that.$set(that.attr, "productAttr", res.data.productAttr);
|
||||||
that.$set(that, "productValue", res.data.productValue);
|
that.$set(that, "productValue", res.data.productValue);
|
||||||
}
|
}
|
||||||
@@ -1229,7 +1252,7 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// v4 新增活动ID
|
// v4 新增活动ID
|
||||||
switch (this.from) {
|
switch (this.source) {
|
||||||
case "pre":
|
case "pre":
|
||||||
q.preSaleId = Number(this.activityId)
|
q.preSaleId = Number(this.activityId)
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<Loading :loaded="loadend" :loading="loading"></Loading>
|
<!-- <Loading :loaded="loadend" :loading="loading"></Loading>-->
|
||||||
<view
|
<view
|
||||||
class="noCommodity"
|
class="noCommodity"
|
||||||
style="background-color: #fff;"
|
style="background-color: #fff;"
|
||||||
|
|||||||
@@ -0,0 +1,924 @@
|
|||||||
|
{
|
||||||
|
"easycom": {
|
||||||
|
"^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
|
||||||
|
},
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "pages/Loading/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "香道滇",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/authorization/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "微信授权"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/Login/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "登录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/RetrievePassword/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "重置密码"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/home/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "香道滇",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "components/chose-city/chose-city",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "选择城市"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/foodInfomation/information",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "彩云资讯"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/foodInfomation/foodInfomation",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "美食攻略",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "white",
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/foodInfomation/foodInfomationDetail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "资讯详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/GoodSearch/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "搜索商品"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/GoodsClass/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "分类",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/ShoppingCart/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "购物车",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/StoreList/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商家列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/GoodsList/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商品列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/NotDefined/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "404"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// "path": "pages/cloud/cloud",
|
||||||
|
// "style": {
|
||||||
|
// "navigationBarTitleText": "七彩云上"
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
"path": "pages/cloud/haveFun",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "寻趣味",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/User/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我的",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/GoodsCollection/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商品收藏"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/EvaluateList/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "评价列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/GoodsEvaluate/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商品评价"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/GoodsPromotion/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "促销商品"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/HotNewGoods/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "热门商品"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/shop/GoodsCon/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商品详情",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/address/AddAddress/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "新增收货地址"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/UserAccount/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "账户余额"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/address/AddressManagement/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "收货地址"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/Poster/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "推广名片"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/signIn/Sign/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "签到"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/signIn/SignRecord/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "签到记录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/CashAudit/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "提现结果"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/PromoterOrder/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "分销详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/PromoterList/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "分销列表",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/UserPromotion/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "团队管理",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/UserBill/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "账单记录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/CashRecord/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "提现记录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/CommissionDetails/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "佣金明细"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/signIn/Integral/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我的积分"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/UserVip/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "用户vip"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/coupon/UserCoupon/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "优惠券"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/coupon/GetCoupon/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "领取优惠券"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/promotion/UserCash/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "提现"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/CustomerList/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "客服列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/Recharge/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "充值"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order/MyOrder/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我的订单",
|
||||||
|
"navigationBarBackgroundColor": "#fff"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order/Logistics/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "查看物流"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order/OrderDetails/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "订单详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order/OrderSubmission/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "提交订单",
|
||||||
|
"navigationBarBackgroundColor": "#fff"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order/PaymentStatus/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "支付状态"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order/GoodsReturn/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商品退货"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order/ReturnList/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "退货列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/orderAdmin/OrderIndex/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商家订单统计"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/orderAdmin/AdminOrderList/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "订单"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/orderAdmin/GoodsDeliver/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "发货"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/orderAdmin/AdminOrder/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商家订单列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/orderAdmin/Statistics/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商家统计数据"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/orderAdmin/OrderCancellation/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商家取消订单"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/Poster/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "推广海报"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/DargainDetails/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "帮砍价"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/GoodsBargain/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "砍价列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/BargainRecord/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "砍价记录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/GoodsGroup/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "团购商品列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/GroupDetails/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "团购商品详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/GroupRule/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "团购规则"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/GoodsSeckill/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "秒杀"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/activity/SeckillDetails/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "秒杀详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/map/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "地图"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/Message/Message",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "消息",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/MessageDetail/MessageDetail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "消息详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/MemberUpgradeIntro/MemberUpgradeIntro",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "升级说明",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/VideoPlayBackList/VideoPlayBackList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "寻看点",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/VideoPlayBackList/VideoPlayBackDetail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "视频详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/UpgradeElectronicProtocol/UpgradeElectronicProtocol",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "升级",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/UpgradeProtocolDetail/UpgradeProtocolDetail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "共享股东协议"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/LiveAndShortVideo/LiveAndShortVideo",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "直播/视频"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/LiveBroadcastList/LiveBroadcastList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "直播列表"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/UserFavorite/UserFavorite",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我的喜欢"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subPackages": [
|
||||||
|
{
|
||||||
|
"root": "pagesInn",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "inn/innHome",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "inn/innApply",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "店铺申请"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "inn/innInfoPublish",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "发布店铺动态"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "inn/innProfileEdit",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "修改店铺资料"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "inn/innInfoDetail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "资讯详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "inn/innPartnerAgreement",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "店主合伙人条款协议"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "pkg_common",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/pdf",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/room",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "客服"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/roomLogs",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "历史会话"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/xiaoZhi",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "pkg_join",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "商户入驻"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/shop",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "店铺入驻"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/supplier",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "供应商入驻"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/wholesaler",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "采购批发商入驻"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "pkg_orders",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/refund",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "申请退款"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "pkg_product",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/healthList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "康养 · 食材"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/giftList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "特色礼品",
|
||||||
|
"onReachBottomDistance": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/landMark",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "地标好物"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/famousList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "千县名品"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/famousStory",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "名品故事"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/famousHot",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "爆款主推"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/scenicSpot",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "景点门票"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/seckill",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "天天秒杀"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/sharpList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "尖货推荐"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/nativeList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "特产",
|
||||||
|
"navigationBarTextStyle": "white",
|
||||||
|
"navigationBarBackgroundColor": "#FF564A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/seasonList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "时令尝鲜"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/season",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "时令尝鲜"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "pkg_user",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/bankCardList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "银行卡列表",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/addBankCard",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "添加银行卡",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/withdrawal",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "提现",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/personalData",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "个人资料"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/bindPhone",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "绑定手机号"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/payPassword",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "修改支付密码"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "v4",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/preSale/preSale",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "预售"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/seckill/seckill",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "限时秒杀"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/offer/offer",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "每天特价"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "components/select-city",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/specialty/specialty",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "特产",
|
||||||
|
"enablePullDownRefresh": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/shop/shop",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "店铺"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/shop/detail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "店铺详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/trial/trial",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "体验店"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/live/live",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "直播"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/attract/attract",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "招商"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/attract/project",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "招商项目"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/attract/projectList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "招商项目"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/luck/luck",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "幸运抽奖"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/luck/logs",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "抽奖记录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/luck/receive",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "选择收货地址"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "wenwan",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "views/goodsClass",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "文玩"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/store",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "文玩店铺详情",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTextStyle": "white"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "views/storeList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "文玩"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"preloadRule": {
|
||||||
|
"pages/user/User/index": {
|
||||||
|
"network": "all",
|
||||||
|
"packages": [
|
||||||
|
"pagesInn"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"globalStyle": {
|
||||||
|
"navigationBarTextStyle": "black",
|
||||||
|
"navigationBarTitleText": "uni-app",
|
||||||
|
"navigationBarBackgroundColor": "#F8F8F8",
|
||||||
|
"backgroundColor": "#F8F8F8"
|
||||||
|
},
|
||||||
|
"tabBar": {
|
||||||
|
"color": "#8B8F99",
|
||||||
|
"selectedColor": "#FF564A",
|
||||||
|
"borderStyle": "black",
|
||||||
|
"backgroundColor": "#ffffff",
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"pagePath": "pages/home/index",
|
||||||
|
"iconPath": "static/tabbar/icon-home.png",
|
||||||
|
"selectedIconPath": "static/tabbar/icon-home-hot.png",
|
||||||
|
"text": "首页"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/shop/ShoppingCart/index",
|
||||||
|
"iconPath": "static/tabbar/icon-cart.png",
|
||||||
|
"selectedIconPath": "static/tabbar/icon-cart-hot.png",
|
||||||
|
"text": "购物车"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/cloud/haveFun",
|
||||||
|
"iconPath": "static/tabbar/icon-cloud.png",
|
||||||
|
"selectedIconPath": "static/tabbar/icon-cloud-hot.png",
|
||||||
|
"text": "寻趣味"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/user/User/index",
|
||||||
|
"iconPath": "static/tabbar/icon-user.png",
|
||||||
|
"selectedIconPath": "static/tabbar/icon-user-hot.png",
|
||||||
|
"text": "我的"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"condition": {
|
||||||
|
"current": 0,
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"name": "商品详情",
|
||||||
|
"path": "pages/shop/GoodsCon/index",
|
||||||
|
"query": "id=369"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DEBUG",
|
||||||
|
"path": "pages/shop/ShoppingCart/index",
|
||||||
|
"query": "id=297"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "No.8",
|
||||||
|
"path": "pages/shop/GoodsEvaluate/index",
|
||||||
|
"query": "id=eb30f8a98b1c4952addbdccb1d37533d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "时令尝鲜",
|
||||||
|
"path": "pkg_product/views/season",
|
||||||
|
"query": "id=20"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,6 +31,9 @@
|
|||||||
<text class="bold">{{ item.price }}</text>
|
<text class="bold">{{ item.price }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<image class="img-nodata" :src="webUrl+'/20231023131208675588.png'" mode="scaleToFill"
|
||||||
|
v-if="dataList.length===0"/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@@ -38,6 +41,11 @@
|
|||||||
<script>
|
<script>
|
||||||
import {countyFamous} from "@/api/product";
|
import {countyFamous} from "@/api/product";
|
||||||
import {getProducts} from "@/api/store";
|
import {getProducts} from "@/api/store";
|
||||||
|
import {famousShareImage} from "@/api/share";
|
||||||
|
import {mapGetters} from "vuex";
|
||||||
|
import cookie from "@/utils/store/cookie";
|
||||||
|
import {userBindParent} from "@/api/user";
|
||||||
|
import {getUrlParam} from "@/utils/common.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "famousList",
|
name: "famousList",
|
||||||
@@ -49,10 +57,38 @@ export default {
|
|||||||
bannerList: [],
|
bannerList: [],
|
||||||
dataList: [],
|
dataList: [],
|
||||||
navList: [],
|
navList: [],
|
||||||
navIndex: 0
|
navIndex: 0,
|
||||||
|
partnerId: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
computed: mapGetters(["userInfo", "isLogin"]),
|
||||||
|
onShareAppMessage() {
|
||||||
|
return new Promise(async (resolve, reject) => {
|
||||||
|
const {status, data} = await famousShareImage();
|
||||||
|
if (status === 200) {
|
||||||
|
resolve({
|
||||||
|
title: '探寻有趣有味的生活方式',
|
||||||
|
path: '/pkg_product/views/famousList?partnerId=' + this.userInfo.uid,
|
||||||
|
imageUrl: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
if (options.partnerId) {
|
||||||
|
this.partnerId = options.partnerId || null;
|
||||||
|
} else {
|
||||||
|
let obj = uni.getEnterOptionsSync();
|
||||||
|
if (options.scene != null || obj.query.scene != null) {
|
||||||
|
let query = options ? decodeURIComponent(options.scene) : decodeURIComponent(obj.query.scene);
|
||||||
|
this.partnerId = getUrlParam(query, "partnerId") || null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.partnerId) {
|
||||||
|
cookie.set("spread", this.partnerId);
|
||||||
|
userBindParent({spread: parseInt(this.partnerId)});
|
||||||
|
}
|
||||||
|
|
||||||
countyFamous().then(({data}) => {
|
countyFamous().then(({data}) => {
|
||||||
this.bannerList = data.banner;
|
this.bannerList = data.banner;
|
||||||
this.navList = data.countyFamousAreaList;
|
this.navList = data.countyFamousAreaList;
|
||||||
@@ -91,7 +127,7 @@ export default {
|
|||||||
},
|
},
|
||||||
goGoods(id) {
|
goGoods(id) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pages/shop/GoodsCon/index?id=" + id
|
url: `/pages/shop/GoodsCon/index?id=${id}&from=famous`
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
goStory() {
|
goStory() {
|
||||||
@@ -207,6 +243,15 @@ export default {
|
|||||||
.item:nth-child(2n) {
|
.item:nth-child(2n) {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.img-nodata {
|
||||||
|
position: relative;
|
||||||
|
top: 40rpx;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
width: 352rpx;
|
||||||
|
height: 338rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
<script>
|
||||||
|
import {getFestival} from "@/api/product";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "festival", // 节日专题
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
webUrl: this.$VUE_APP_RESOURCES_URL,
|
||||||
|
topImage: '',
|
||||||
|
contents: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
getFestival().then(({data}) => {
|
||||||
|
this.topImage = data.topImage;
|
||||||
|
this.contents = data.contents;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view class="pkg-product-festival">
|
||||||
|
<image class="top-img" mode="widthFix" :src="topImage" v-if="topImage"/>
|
||||||
|
|
||||||
|
<view class="section" v-for="(content,cIndex) in contents" :key="cIndex">
|
||||||
|
<image class="section-bg" :src="content.backgroundImage" mode="widthFix"/>
|
||||||
|
|
||||||
|
<view class="list flex flex-wrap" :class="cIndex===0?'section12':'section8'">
|
||||||
|
<image :class="cIndex===0?'span12':'span8'" mode="scaleToFill" :src="item.image"
|
||||||
|
v-for="(item,index) in content.products" :key="index" @click="$global.navToGoods(item.id)"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.pkg-product-festival {
|
||||||
|
image {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-img {
|
||||||
|
width: 100vw;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section12 {
|
||||||
|
padding: 0 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section8 {
|
||||||
|
padding: 0 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
position: relative;
|
||||||
|
width: 100vw;
|
||||||
|
|
||||||
|
.section-bg {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
position: absolute;
|
||||||
|
top: 350rpx;
|
||||||
|
left: 0;
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
.span12 {
|
||||||
|
width: 332rpx;
|
||||||
|
height: 520rpx;
|
||||||
|
margin: 0 22rpx 24rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.span12:nth-child(2n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.span8 {
|
||||||
|
width: 234rpx;
|
||||||
|
height: 384rpx;
|
||||||
|
margin: 0 8rpx 24rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.span8:nth-child(3n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,31 +1,26 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="pkg-product-list">
|
<view class="pkg-product-list">
|
||||||
<view class="search-box flex jc-between ai-center">
|
<view class="first-half">
|
||||||
<input type="text" v-model="keyword" placeholder="搜索商品" placeholder-style="color:#949494" @confirm="search">
|
<view class="search-box flex jc-between ai-center">
|
||||||
<image class="icon" :src="webUrl+'/20220903142935869059.png'" mode="scaleToFill" @click="search"></image>
|
<input type="text" v-model="keyword" placeholder="搜索商品" placeholder-style="color:#949494" @confirm="search">
|
||||||
</view>
|
<image class="icon" :src="webUrl+'/20220903142935869059.png'" mode="scaleToFill" @click="search"></image>
|
||||||
|
</view>
|
||||||
|
|
||||||
<swiper class="swiper-box" indicator-dots indicator-color="rgba(255,255,255,.3)" indicator-active-color="#fff"
|
<swiper class="swiper-box" indicator-dots indicator-color="rgba(255,255,255,.3)" indicator-active-color="#fff"
|
||||||
autoplay circular v-if="bannerList.length>0">
|
autoplay circular v-if="bannerList.length>0">
|
||||||
<swiper-item v-for="(item,index) in bannerList" :key="index">
|
<swiper-item v-for="(item,index) in bannerList" :key="index">
|
||||||
<image :src="item.pic" mode="scaleToFill" @click="$global.commonJump(item.uniappUrl)"/>
|
<image :src="item.pic" mode="scaleToFill" @click="$global.commonJump(item.uniappUrl)"/>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
|
|
||||||
<swiper class="swiper-box" indicator-dots indicator-color="rgba(255,255,255,.3)" indicator-active-color="#fff"
|
<view class="tab-box flex jc-center ai-center" v-show="tabIndex===0">
|
||||||
autoplay circular v-else>
|
<image class="active" src="/static/images/v6/btn_active_left.png" @click="changeTab(0)"/>
|
||||||
<swiper-item>
|
<image class="inactive" src="/static/images/v6/btn_right.png" @click="changeTab(1)"/>
|
||||||
<view class="swiper-item uni-bg-blue">暂无内容</view>
|
</view>
|
||||||
</swiper-item>
|
<view class="tab-box flex jc-center ai-center" v-show="tabIndex===1">
|
||||||
</swiper>
|
<image class="inactive" src="/static/images/v6/btn_left.png" @click="changeTab(0)"/>
|
||||||
|
<image class="active" src="/static/images/v6/btn_active_right.png" @click="changeTab(1)"/>
|
||||||
<view class="tab-box flex jc-center ai-center" v-show="tabIndex===0">
|
</view>
|
||||||
<image class="active" src="/static/images/v6/btn_active_left.png" @click="changeTab(0)"/>
|
|
||||||
<image class="inactive" src="/static/images/v6/btn_right.png" @click="changeTab(1)"/>
|
|
||||||
</view>
|
|
||||||
<view class="tab-box flex jc-center ai-center" v-show="tabIndex===1">
|
|
||||||
<image class="inactive" src="/static/images/v6/btn_left.png" @click="changeTab(0)"/>
|
|
||||||
<image class="active" src="/static/images/v6/btn_active_right.png" @click="changeTab(1)"/>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="body-box">
|
<view class="body-box">
|
||||||
@@ -40,7 +35,8 @@
|
|||||||
<scroll-view class="list flex flex-wrap" :style="{'height':listHeight}" :enable-flex="true"
|
<scroll-view class="list flex flex-wrap" :style="{'height':listHeight}" :enable-flex="true"
|
||||||
:scroll-anchoring="true"
|
:scroll-anchoring="true"
|
||||||
:scroll-y="true"
|
:scroll-y="true"
|
||||||
:scroll-with-animation="true" :enable-back-to-top="true" @scrolltolower="onLower" v-if="dataList.length>0">
|
:scroll-with-animation="true" :enable-back-to-top="true" @scrolltolower="onLower"
|
||||||
|
v-if="dataList.length>0">
|
||||||
<view v-for="(item, index) in dataList" :key="index">
|
<view v-for="(item, index) in dataList" :key="index">
|
||||||
<view class="item item-store" @click="goStore(item.id)" v-if="tabIndex===0">
|
<view class="item item-store" @click="goStore(item.id)" v-if="tabIndex===0">
|
||||||
<image class="cover" :src="item.cover" mode="scaleToFill"/>
|
<image class="cover" :src="item.cover" mode="scaleToFill"/>
|
||||||
@@ -59,8 +55,11 @@
|
|||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
|
|
||||||
<image class="img-nodata" :src="webUrl+'/20230912145123537792.png'" mode="scaleToFill" v-else-if="tabIndex===0"/>
|
<view class="tc" v-else>
|
||||||
<image class="img-nodata" :src="webUrl+'/20230912145113749133.png'" mode="scaleToFill" v-else/>
|
<image class="img-nodata" :src="webUrl+'/20230912145123537792.png'" mode="scaleToFill"
|
||||||
|
v-if="tabIndex===0"/>
|
||||||
|
<image class="img-nodata" :src="webUrl+'/20230912145113749133.png'" mode="scaleToFill" v-else/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -92,7 +91,9 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init() {
|
init() {
|
||||||
wellnessFood().then(({data}) => this.bannerList = data.banner);
|
wellnessFood().then(({data}) => {
|
||||||
|
this.bannerList = data.banner
|
||||||
|
});
|
||||||
fetchCity(4).then(({data}) => {
|
fetchCity(4).then(({data}) => {
|
||||||
this.asideList = data.group;
|
this.asideList = data.group;
|
||||||
this.search();
|
this.search();
|
||||||
@@ -128,7 +129,7 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleData(data){
|
handleData(data) {
|
||||||
let that = this;
|
let that = this;
|
||||||
if (this.page === 1) {
|
if (this.page === 1) {
|
||||||
this.dataList = [];
|
this.dataList = [];
|
||||||
@@ -138,7 +139,6 @@ export default {
|
|||||||
success: function (res) {
|
success: function (res) {
|
||||||
let len = that.dataList.length;
|
let len = that.dataList.length;
|
||||||
let {windowHeight} = res;
|
let {windowHeight} = res;
|
||||||
console.log("test data",windowHeight)
|
|
||||||
that.listHeight = "auto";
|
that.listHeight = "auto";
|
||||||
if (windowHeight > 600 && len > 4) {
|
if (windowHeight > 600 && len > 4) {
|
||||||
that.listHeight = "100%";
|
that.listHeight = "100%";
|
||||||
@@ -179,8 +179,22 @@ export default {
|
|||||||
padding-top: 16rpx;
|
padding-top: 16rpx;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
|
|
||||||
|
.first-half {
|
||||||
|
height: 612rpx;
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-box {
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-box {
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.tab-box {
|
.tab-box {
|
||||||
margin: 0 32rpx;
|
margin: 0 32rpx;
|
||||||
|
padding-bottom: 32rpx;
|
||||||
|
|
||||||
.active {
|
.active {
|
||||||
width: 342rpx;
|
width: 342rpx;
|
||||||
@@ -195,14 +209,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.swiper-box {
|
|
||||||
margin: 20rpx auto 30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.body-box {
|
.body-box {
|
||||||
position: fixed;
|
position: relative;
|
||||||
top: 610rpx;
|
height: calc(100vh - 612rpx);
|
||||||
height: calc(100vh - 610rpx);
|
z-index: 10;
|
||||||
|
|
||||||
.store {
|
.store {
|
||||||
image {
|
image {
|
||||||
@@ -218,14 +228,15 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.img-nodata{
|
.article-box {
|
||||||
position: relative;
|
padding-bottom: 20rpx;
|
||||||
top: 50%;
|
}
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%,-50%);
|
.img-nodata {
|
||||||
width: 360rpx;
|
width: 360rpx;
|
||||||
height: 360rpx;
|
height: 360rpx;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
margin-top: 60rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
<script>
|
||||||
|
import {getICH} from "@/api/product";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "heritage",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
contents: [],
|
||||||
|
topImage: '',
|
||||||
|
backgroundImage: '',
|
||||||
|
bgImgWidth: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
scale() {
|
||||||
|
return 750 / this.bgImgWidth;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init() {
|
||||||
|
getICH().then(({data}) => {
|
||||||
|
this.contents = data.contents;
|
||||||
|
this.topImage = data.topImage;
|
||||||
|
this.backgroundImage = data.backgroundImage;
|
||||||
|
this.bgImgWidth = data.backgroundImageWidth;
|
||||||
|
this.calcPosition();
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 计算位置
|
||||||
|
calcPosition() {
|
||||||
|
this.contents?.forEach(item => {
|
||||||
|
item.gx = item.x * this.scale;
|
||||||
|
item.gy = item.y * this.scale;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
goDetails(item) {
|
||||||
|
if (!item.isLink) return;
|
||||||
|
if (item.type === 1) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pkg_product/views/heritageVideo?id=' + item.id
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pkg_product/views/heritageGoods?id=' + item.id
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view class="pkg-product-heritage">
|
||||||
|
<image style="width: 100%" :src="topImage" mode="widthFix"/>
|
||||||
|
|
||||||
|
<view class="main-box">
|
||||||
|
<image style="width: 100%" :src="backgroundImage" mode="widthFix"/>
|
||||||
|
|
||||||
|
<view class="item" :style="{'left':item.gx+'rpx','top':item.gy+'rpx'}" v-for="(item,index) in contents"
|
||||||
|
:key="index" @click="goDetails(item)">
|
||||||
|
<image class="img-item" :src="item.image"/>
|
||||||
|
<view class="title flex jc-center">{{ item.title }}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.pkg-product-heritage {
|
||||||
|
image {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-box {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
position: absolute;
|
||||||
|
width: 160rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-item {
|
||||||
|
width: 160rpx;
|
||||||
|
height: 160rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
<script>
|
||||||
|
import {getICHDetails} from "@/api/product";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "heritageGoods",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
id: null,
|
||||||
|
info: null,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.id = options.id;
|
||||||
|
this.getDetails();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDetails() {
|
||||||
|
getICHDetails(this.id).then(({data}) => this.info = data);
|
||||||
|
},
|
||||||
|
|
||||||
|
goGoods(id) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/pages/shop/GoodsCon/index?id=" + id
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view class="heritage-goods" v-if="info">
|
||||||
|
<image class="page-bg" :src="info.backgroundImage" mode="widthFix"/>
|
||||||
|
|
||||||
|
<view class="list-box flex flex-wrap">
|
||||||
|
<view class="item flex flex-col jc-between" v-for="(item,index) in info.products" :key="index"
|
||||||
|
@click="goGoods(item.productId)">
|
||||||
|
<view class="flex flex-col ai-center">
|
||||||
|
<image :src="item.image" mode="scaleToFill"/>
|
||||||
|
<view class="more-t">{{ item.storeName }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="footer flex jc-between">
|
||||||
|
<view class="price">¥
|
||||||
|
<text>{{ item.price }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="btn flex jc-center ai-center">立即购买</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.heritage-goods {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
image {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-bg {
|
||||||
|
width: 100vw;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-box {
|
||||||
|
position: absolute;
|
||||||
|
top: 9000rpx;
|
||||||
|
left: 0;
|
||||||
|
width: 100vw;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 332rpx;
|
||||||
|
height: 490rpx;
|
||||||
|
margin-right: 22rpx;
|
||||||
|
margin-bottom: 22rpx;
|
||||||
|
background: #FFFEF3;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 304rpx;
|
||||||
|
height: 304rpx;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.more-t {
|
||||||
|
width: 304rpx;
|
||||||
|
margin-top: 6rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 48rpx;
|
||||||
|
color: #650000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
padding: 0 14rpx 16rpx;
|
||||||
|
|
||||||
|
.price {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 52rpx;
|
||||||
|
color: #C40303;
|
||||||
|
|
||||||
|
text {
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
background: linear-gradient(180deg, #F57F25 0%, #F05353 100%);
|
||||||
|
border-radius: 4rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item:nth-child(2n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<script>
|
||||||
|
import {getICHDetails} from "@/api/product";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "heritageVideo",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
id: null,
|
||||||
|
info: null,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.id = options.id;
|
||||||
|
this.getDetails();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDetails() {
|
||||||
|
getICHDetails(this.id).then(({data}) => this.info = data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view class="heritage-video" v-if="info">
|
||||||
|
<image class="page-bg" :src="info.backgroundImage" mode="widthFix"/>
|
||||||
|
<video :src="info.video" autoplay show-center-play-btn/>
|
||||||
|
|
||||||
|
<!-- <video id="myVideo" src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4"-->
|
||||||
|
<!-- autoplay controls></video>-->
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.heritage-video {
|
||||||
|
position: relative;
|
||||||
|
min-height: 100vh;
|
||||||
|
|
||||||
|
.page-bg {
|
||||||
|
width: 100vw;
|
||||||
|
height: auto;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
video {
|
||||||
|
position: absolute;
|
||||||
|
left: 33rpx;
|
||||||
|
top: 880rpx;
|
||||||
|
width: 684rpx;
|
||||||
|
height: 424rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
<script>
|
||||||
|
import {getHomestay} from "@/api/product";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "homestay", // 民宿专题
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
webUrl: this.$VUE_APP_RESOURCES_URL,
|
||||||
|
topImage: '',
|
||||||
|
contents: [],
|
||||||
|
id: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.id = options.id;
|
||||||
|
|
||||||
|
getHomestay(this.id).then(({data}) => {
|
||||||
|
this.topImage = data.topImage;
|
||||||
|
this.contents = data.contents;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
goInnDetail(item) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pagesInn/inn/innHome?id=${item.id}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<view class="pkg-product-homestay">
|
||||||
|
<image class="top-img" mode="widthFix" :src="topImage" v-if="topImage"/>
|
||||||
|
|
||||||
|
<view class="section" v-for="(content,cIndex) in contents" :key="cIndex">
|
||||||
|
<image class="section-bg" :src="content.backgroundImage" mode="widthFix"/>
|
||||||
|
|
||||||
|
<view class="list flex flex-wrap" :class="cIndex===2?'section12':'section24'">
|
||||||
|
<image :class="cIndex===2?'span12':'span24'" mode="scaleToFill" :src="item.image"
|
||||||
|
v-for="(item,index) in content.hotels" :key="index" @click="goInnDetail(item)"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.pkg-product-homestay {
|
||||||
|
image {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-img {
|
||||||
|
width: 100vw;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.section12 {
|
||||||
|
padding: 0 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section24 {
|
||||||
|
padding: 0 61rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
position: relative;
|
||||||
|
width: 100vw;
|
||||||
|
|
||||||
|
.section-bg{
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list{
|
||||||
|
position: absolute;
|
||||||
|
top: 350rpx;
|
||||||
|
left: 0;
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
.span24 {
|
||||||
|
width: 628rpx;
|
||||||
|
height: 320rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.span12 {
|
||||||
|
width: 332rpx;
|
||||||
|
height: 500rpx;
|
||||||
|
margin: 0 22rpx 24rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.span12:nth-child(2n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -39,6 +39,8 @@
|
|||||||
<view class="price bold">¥{{ item.price }}</view>
|
<view class="price bold">¥{{ item.price }}</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
|
|
||||||
|
<image class="img-nodata" :src="webUrl+'/20231023131208675588.png'" mode="scaleToFill" v-if="dataList.length===0"/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -58,7 +60,7 @@ export default {
|
|||||||
dataList: [], // 列表数据
|
dataList: [], // 列表数据
|
||||||
tabList: [],
|
tabList: [],
|
||||||
cityId: null,
|
cityId: null,
|
||||||
cityName: "桂林市",
|
cityName: "",
|
||||||
page: 1,
|
page: 1,
|
||||||
listHeight: "auto"
|
listHeight: "auto"
|
||||||
}
|
}
|
||||||
@@ -173,5 +175,14 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.img-nodata {
|
||||||
|
position: relative;
|
||||||
|
top: 200rpx;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
width: 352rpx;
|
||||||
|
height: 338rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -32,8 +32,8 @@ export default {
|
|||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
changeShare(){
|
changeShare() {
|
||||||
this.showShare=!this.showShare
|
this.showShare = !this.showShare
|
||||||
},
|
},
|
||||||
init() {
|
init() {
|
||||||
getSeason(this.id).then(({data}) => {
|
getSeason(this.id).then(({data}) => {
|
||||||
@@ -44,11 +44,17 @@ export default {
|
|||||||
getSeasonPoster(this.id).then(({data}) => this.posterUrl = data);
|
getSeasonPoster(this.id).then(({data}) => this.posterUrl = data);
|
||||||
},
|
},
|
||||||
tapLeft() {
|
tapLeft() {
|
||||||
if (this.current === 0) return;
|
if (this.current === 0) {
|
||||||
|
this.current = this.info.swiper.length - 1;
|
||||||
|
return
|
||||||
|
}
|
||||||
this.current--;
|
this.current--;
|
||||||
},
|
},
|
||||||
tapRight() {
|
tapRight() {
|
||||||
if (this.current + 1 === this.info.swiper.length) return;
|
if (this.current + 1 === this.info.swiper.length) {
|
||||||
|
this.current = 0;
|
||||||
|
return
|
||||||
|
}
|
||||||
this.current++;
|
this.current++;
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -149,7 +155,8 @@ export default {
|
|||||||
</u-popup>
|
</u-popup>
|
||||||
|
|
||||||
<view class="scroll-item">
|
<view class="scroll-item">
|
||||||
<u-swiper :autoplay="false" :current="current" :list="info.swiper" height="1200rpx" radius="0" indicator
|
<u-swiper :autoplay="true" circular :current="current" :list="info.swiper" height="1200rpx" radius="0"
|
||||||
|
indicator
|
||||||
imgMode="scaleToFill"></u-swiper>
|
imgMode="scaleToFill"></u-swiper>
|
||||||
<image class="icon-direction icon-left" :src="webUrl+'/20230911105736198247.png'" mode="scaleToFill"
|
<image class="icon-direction icon-left" :src="webUrl+'/20230911105736198247.png'" mode="scaleToFill"
|
||||||
@click="tapLeft"/>
|
@click="tapLeft"/>
|
||||||
@@ -192,7 +199,7 @@ export default {
|
|||||||
.share-label {
|
.share-label {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
right: 32rpx;
|
right: 0;
|
||||||
width: 200rpx;
|
width: 200rpx;
|
||||||
height: 56rpx;
|
height: 56rpx;
|
||||||
background: rgba(255, 255, 255, 0.39);
|
background: rgba(255, 255, 255, 0.39);
|
||||||
@@ -208,12 +215,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-share{
|
.box-share {
|
||||||
.box-img{
|
.box-img {
|
||||||
width: 500rpx;
|
width: 500rpx;
|
||||||
height: 889.5rpx;
|
height: 889.5rpx;
|
||||||
}
|
}
|
||||||
.main-img{
|
|
||||||
|
.main-img {
|
||||||
width: 500rpx;
|
width: 500rpx;
|
||||||
height: 889.5rpx;
|
height: 889.5rpx;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,6 +100,11 @@
|
|||||||
<script>
|
<script>
|
||||||
import CountDownUnit from "@/pkg_product/components/CountDownUnit.vue";
|
import CountDownUnit from "@/pkg_product/components/CountDownUnit.vue";
|
||||||
import {getSeckillRule, getSeckillTopList, getYxStoreSeckillIndex, getYxStoreSeckillPageList} from "@/api/goods";
|
import {getSeckillRule, getSeckillTopList, getYxStoreSeckillIndex, getYxStoreSeckillPageList} from "@/api/goods";
|
||||||
|
import {secKillShareImage} from "@/api/share";
|
||||||
|
import {mapGetters} from "vuex";
|
||||||
|
import cookie from "@/utils/store/cookie";
|
||||||
|
import {userBindParent} from "@/api/user";
|
||||||
|
import {getUrlParam} from "@/utils/common.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "seckill",
|
name: "seckill",
|
||||||
@@ -119,10 +124,38 @@ export default {
|
|||||||
endReach: false,
|
endReach: false,
|
||||||
timeId: null,
|
timeId: null,
|
||||||
nextList: [],
|
nextList: [],
|
||||||
ruleContent: null
|
ruleContent: null,
|
||||||
|
partnerId: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
computed: mapGetters(["userInfo", "isLogin"]),
|
||||||
|
onShareAppMessage() {
|
||||||
|
return new Promise(async (resolve, reject) => {
|
||||||
|
const {status, data} = await secKillShareImage();
|
||||||
|
if (status === 200) {
|
||||||
|
resolve({
|
||||||
|
title: '探寻有趣有味的生活方式',
|
||||||
|
path: '/pkg_product/views/seckill?partnerId=' + this.userInfo.uid,
|
||||||
|
imageUrl: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
if (options.partnerId) {
|
||||||
|
this.partnerId = options.partnerId || null;
|
||||||
|
} else {
|
||||||
|
let obj = uni.getEnterOptionsSync();
|
||||||
|
if (options.scene != null || obj.query.scene != null) {
|
||||||
|
let query = options ? decodeURIComponent(options.scene) : decodeURIComponent(obj.query.scene);
|
||||||
|
this.partnerId = getUrlParam(query, "partnerId") || null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.partnerId) {
|
||||||
|
cookie.set("spread", this.partnerId);
|
||||||
|
userBindParent({spread: parseInt(this.partnerId)});
|
||||||
|
}
|
||||||
|
|
||||||
this.fetchSession();
|
this.fetchSession();
|
||||||
getSeckillRule().then(({data}) => this.ruleContent = data);
|
getSeckillRule().then(({data}) => this.ruleContent = data);
|
||||||
getSeckillTopList(1, 10).then(({data}) => this.topList = data.records);
|
getSeckillTopList(1, 10).then(({data}) => this.topList = data.records);
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -38,10 +38,10 @@
|
|||||||
<text>{{ item.storeName }}</text>
|
<text>{{ item.storeName }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="info-line flex jc-between ai-center">
|
<view class="info-line flex jc-between ai-center">
|
||||||
<text>产地:{{ item.origin || "" }}</text>
|
<!-- <text>产地:{{ item.origin || "" }}</text>-->
|
||||||
<!-- <text>单位:{{ item.unitName || "" }}</text>-->
|
<!-- <text>单位:{{ item.unitName || "" }}</text>-->
|
||||||
</view>
|
</view>
|
||||||
<view class="info-line" style="margin-top: 4rpx">规格:{{ item.storeInfo || "" }}</view>
|
<!-- <view class="info-line" style="margin-top: 4rpx">规格:{{ item.storeInfo || "" }}</view>-->
|
||||||
<view class="price-line">¥{{ item.price }}</view>
|
<view class="price-line">¥{{ item.price }}</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
Reference in New Issue
Block a user