diff --git a/api/product.js b/api/product.js
index 2226f4e..da4eaf6 100644
--- a/api/product.js
+++ b/api/product.js
@@ -61,4 +61,51 @@ export function getSeason(id) {
* */
export function getSeasonPoster(id) {
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})
}
\ No newline at end of file
diff --git a/api/share.js b/api/share.js
new file mode 100644
index 0000000..b36a748
--- /dev/null
+++ b/api/share.js
@@ -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})
+}
diff --git a/components/Loading.vue b/components/Loading.vue
index 1a643bc..39481e7 100644
--- a/components/Loading.vue
+++ b/components/Loading.vue
@@ -1,7 +1,7 @@
@@ -10,9 +10,9 @@
>
正在加载中
-
- 上拉加载更多
-
+
+
+
@@ -20,7 +20,7 @@
export default {
name: "Loading",
props: {
- loaded: Boolean,
+ loadend: Boolean,
loading: Boolean
}
};
diff --git a/components/ProductWindow.vue b/components/ProductWindow.vue
index 7dfadc2..e1f954c 100644
--- a/components/ProductWindow.vue
+++ b/components/ProductWindow.vue
@@ -17,7 +17,7 @@
- {{ item.attrName }} 438
+ {{ item.attrName }}
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.mapTitle }}
+
+
+
+
+
+
+
+ {{ item.provinceName }}
+
+
+
+
+
+
+
+ {{ mapData.recommended.title }}
+ {{ mapData.recommended.description }}
+
+
+
+
+
+
+
+ {{ item.title }}
+
+ ¥{{ item.price }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/shop/GoodsCon/index.vue b/pages/shop/GoodsCon/index.vue
index d422c2e..b7f6ba9 100644
--- a/pages/shop/GoodsCon/index.vue
+++ b/pages/shop/GoodsCon/index.vue
@@ -4,15 +4,16 @@
-
+
-
+
-
+
-
+
{{ storeInfo.storeName }}
@@ -52,15 +53,15 @@
-
+
+
+
+
+
-
+
{{ storeInfo.storeName }}
@@ -110,7 +111,7 @@
-
+
@@ -141,7 +142,7 @@
-
+
{{ killInfo.storeInfo.title }}
@@ -167,7 +168,7 @@
-
+
{{ dayInfo.title }}
@@ -400,12 +401,12 @@
-
-
+
+
-
+
-
+
@@ -501,6 +502,7 @@ import {mapGetters} from "vuex";
import {diffDay, formatDateTime} from "@/utils/index";
import {getCurAddress, getLocation, getUrlParam} from "@/utils/common.js";
import cookie from "@/utils/store/cookie";
+import {famousGoodsShareImage, secKillGoodsShareImage} from "@/api/share";
export default {
name: "GoodsCon",
@@ -542,7 +544,7 @@ export default {
id: null,
partnerId: null,
activityId: 0, // v4 add
- from: "", // v4 add
+ source: "", // v4 add
preInfo: {},
killInfo: {},
dayInfo: {},
@@ -582,7 +584,28 @@ export default {
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) {
// test data
console.log("getLaunchOptionsSync", uni.getLaunchOptionsSync());
@@ -595,7 +618,7 @@ export default {
this.id = options.id || null;
this.partnerId = options.partnerId || null;
this.activityId = this._route.query.activityId;
- this.from = this._route.query.from || "";
+ this.source = this._route.query.from || "";
} else {
let obj = uni.getEnterOptionsSync();
if (options.scene != null || obj.query.scene != null) {
@@ -625,7 +648,7 @@ export default {
this.productCon();
this.fetchCompanyDatea();
- switch (this.from) {
+ switch (this.source) {
case "pre":
this.getPreInfo();
break;
@@ -942,7 +965,7 @@ export default {
that.isWenwan = res.data.isWenwan;
// 给 attr 赋值,将请求回来的规格赋值给 attr
- if (this.from === "") {
+ if (this.source === "" || this.source === 'famous') {
that.$set(that.attr, "productAttr", res.data.productAttr);
that.$set(that, "productValue", res.data.productValue);
}
@@ -1229,7 +1252,7 @@ export default {
};
// v4 新增活动ID
- switch (this.from) {
+ switch (this.source) {
case "pre":
q.preSaleId = Number(this.activityId)
break;
diff --git a/pages/shop/GoodsList/index.vue b/pages/shop/GoodsList/index.vue
index ce6af5a..1b4ec27 100644
--- a/pages/shop/GoodsList/index.vue
+++ b/pages/shop/GoodsList/index.vue
@@ -68,7 +68,7 @@
-
+
{{ item.price }}
+
+
@@ -38,6 +41,11 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_product/views/healthList.vue b/pkg_product/views/healthList.vue
index 554594f..37f401c 100644
--- a/pkg_product/views/healthList.vue
+++ b/pkg_product/views/healthList.vue
@@ -1,31 +1,26 @@
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
- 暂无内容
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -40,7 +35,8 @@
+ :scroll-with-animation="true" :enable-back-to-top="true" @scrolltolower="onLower"
+ v-if="dataList.length>0">
@@ -59,8 +55,11 @@
-
-
+
+
+
+
@@ -92,7 +91,9 @@ export default {
},
methods: {
init() {
- wellnessFood().then(({data}) => this.bannerList = data.banner);
+ wellnessFood().then(({data}) => {
+ this.bannerList = data.banner
+ });
fetchCity(4).then(({data}) => {
this.asideList = data.group;
this.search();
@@ -128,7 +129,7 @@ export default {
});
}
},
- handleData(data){
+ handleData(data) {
let that = this;
if (this.page === 1) {
this.dataList = [];
@@ -138,7 +139,6 @@ export default {
success: function (res) {
let len = that.dataList.length;
let {windowHeight} = res;
- console.log("test data",windowHeight)
that.listHeight = "auto";
if (windowHeight > 600 && len > 4) {
that.listHeight = "100%";
@@ -179,8 +179,22 @@ export default {
padding-top: 16rpx;
background: #fff;
+ .first-half {
+ height: 612rpx;
+ z-index: 20;
+ }
+
+ .search-box {
+ margin-bottom: 32rpx;
+ }
+
+ .swiper-box {
+ margin-bottom: 32rpx;
+ }
+
.tab-box {
margin: 0 32rpx;
+ padding-bottom: 32rpx;
.active {
width: 342rpx;
@@ -195,14 +209,10 @@ export default {
}
}
- .swiper-box {
- margin: 20rpx auto 30rpx;
- }
-
.body-box {
- position: fixed;
- top: 610rpx;
- height: calc(100vh - 610rpx);
+ position: relative;
+ height: calc(100vh - 612rpx);
+ z-index: 10;
.store {
image {
@@ -218,14 +228,15 @@ export default {
}
}
- .img-nodata{
- position: relative;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
+ .article-box {
+ padding-bottom: 20rpx;
+ }
+
+ .img-nodata {
width: 360rpx;
height: 360rpx;
vertical-align: middle;
+ margin-top: 60rpx;
}
}
}
diff --git a/pkg_product/views/heritage.vue b/pkg_product/views/heritage.vue
new file mode 100644
index 0000000..623266e
--- /dev/null
+++ b/pkg_product/views/heritage.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_product/views/heritageGoods.vue b/pkg_product/views/heritageGoods.vue
new file mode 100644
index 0000000..31d4e3c
--- /dev/null
+++ b/pkg_product/views/heritageGoods.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item.storeName }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_product/views/heritageVideo.vue b/pkg_product/views/heritageVideo.vue
new file mode 100644
index 0000000..5c77a69
--- /dev/null
+++ b/pkg_product/views/heritageVideo.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_product/views/homestay.vue b/pkg_product/views/homestay.vue
new file mode 100644
index 0000000..9954444
--- /dev/null
+++ b/pkg_product/views/homestay.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_product/views/nativeList.vue b/pkg_product/views/nativeList.vue
index f09ef77..f7dfc74 100644
--- a/pkg_product/views/nativeList.vue
+++ b/pkg_product/views/nativeList.vue
@@ -39,6 +39,8 @@
¥{{ item.price }}
+
+
@@ -58,7 +60,7 @@ export default {
dataList: [], // 列表数据
tabList: [],
cityId: null,
- cityName: "桂林市",
+ cityName: "",
page: 1,
listHeight: "auto"
}
@@ -173,5 +175,14 @@ export default {
}
}
}
+
+ .img-nodata {
+ position: relative;
+ top: 200rpx;
+ left: 50%;
+ transform: translate(-50%, 0);
+ width: 352rpx;
+ height: 338rpx;
+ }
}
\ No newline at end of file
diff --git a/pkg_product/views/season.vue b/pkg_product/views/season.vue
index c159861..86c1f3a 100644
--- a/pkg_product/views/season.vue
+++ b/pkg_product/views/season.vue
@@ -32,8 +32,8 @@ export default {
this.init();
},
methods: {
- changeShare(){
- this.showShare=!this.showShare
+ changeShare() {
+ this.showShare = !this.showShare
},
init() {
getSeason(this.id).then(({data}) => {
@@ -44,11 +44,17 @@ export default {
getSeasonPoster(this.id).then(({data}) => this.posterUrl = data);
},
tapLeft() {
- if (this.current === 0) return;
+ if (this.current === 0) {
+ this.current = this.info.swiper.length - 1;
+ return
+ }
this.current--;
},
tapRight() {
- if (this.current + 1 === this.info.swiper.length) return;
+ if (this.current + 1 === this.info.swiper.length) {
+ this.current = 0;
+ return
+ }
this.current++;
},
@@ -149,7 +155,8 @@ export default {
-
@@ -192,7 +199,7 @@ export default {
.share-label {
position: fixed;
top: 50%;
- right: 32rpx;
+ right: 0;
width: 200rpx;
height: 56rpx;
background: rgba(255, 255, 255, 0.39);
@@ -208,12 +215,13 @@ export default {
}
}
- .box-share{
- .box-img{
+ .box-share {
+ .box-img {
width: 500rpx;
height: 889.5rpx;
}
- .main-img{
+
+ .main-img {
width: 500rpx;
height: 889.5rpx;
}
diff --git a/pkg_product/views/seckill.vue b/pkg_product/views/seckill.vue
index ac170df..a360157 100644
--- a/pkg_product/views/seckill.vue
+++ b/pkg_product/views/seckill.vue
@@ -100,6 +100,11 @@