diff --git a/api/inn.js b/api/inn.js
index dbd61a4..83a09ad 100644
--- a/api/inn.js
+++ b/api/inn.js
@@ -197,4 +197,26 @@ export function getHotelTypeList() {
* */
export function getPoster(id) {
return request.get("/api/hotelMain/poster/" + id, {}, {login: true})
+}
+
+/**
+ * 获取客栈商品列表
+ * @param data
+ * @returns {*}
+ */
+export function getHotelGoodList(data) {
+ return request.get("/api/hotelMain/goodsList", data, {
+ login: false
+ });
+}
+
+/**
+ * 置顶客栈资讯
+ * @param data
+ * @returns {*}
+ */
+export function setTopHotelNew(data) {
+ return request.post("/api/hotelNews/setIsTop", data, {
+ login: true
+ });
}
\ No newline at end of file
diff --git a/api/product.js b/api/product.js
index da4eaf6..9df683e 100644
--- a/api/product.js
+++ b/api/product.js
@@ -16,9 +16,17 @@ export function wellnessPlaceList(param) {
/**
* 特色礼品首页
- * */
+ */
export function customizedGift() {
- return request.get("/customizedGift/index", {}, {login: true})
+ return request.get("/customizedGift/index", {}, {login: false})
+}
+
+/**
+ * 特色礼品省份专题页
+ *
+ */
+export function customizedGiftContent(param) {
+ return request.get("/customizedGift/cityContent", param, {login: false})
}
/**
diff --git a/api/user.js b/api/user.js
index 07dcb0a..ab4ac36 100644
--- a/api/user.js
+++ b/api/user.js
@@ -534,3 +534,8 @@ export function setDetection() {
export function getRechargeApi() {
return request.get("recharge/index");
}
+
+
+export function getUserCenterBanner() {
+ return request.get("userCenterBanner");
+}
diff --git a/assets/css/goods.less b/assets/css/goods.less
index 8c575ba..ed2ccdf 100644
--- a/assets/css/goods.less
+++ b/assets/css/goods.less
@@ -25,7 +25,7 @@
}
.goods-section {
- margin: 24rpx;
+ margin: 0 24upx 24upx 24upx;
padding: 30rpx 24rpx;
border-radius: 20rpx;
background: #fff;
@@ -103,6 +103,15 @@
color: #333;
font-size: 30rpx;
}
+ .store-btn {
+ display: flex;
+ padding: 12upx;
+ border-radius: 6upx;
+ color: #fff;
+ line-height: 20upx;
+ font-size: 24rpx;
+ background-color: #FF564A;
+ }
.value {
color: #666;
diff --git a/assets/css/style.less b/assets/css/style.less
index 1dff01f..79d1604 100644
--- a/assets/css/style.less
+++ b/assets/css/style.less
@@ -274,7 +274,10 @@ page {
}
.noCommodity {
- padding-top: 0.75*100rpx;
+ display: flex;
+ justify-content: center;
+ padding: 75rpx 0;
+ background-color: #fff;
}
.noCommodity .noPictrue {
@@ -644,6 +647,7 @@ page {
}
.product-window .productWinList .item .listn .itemn {
+ position: relative;
border: 1px solid #bbb;
font-size: 0.26*100rpx;
color: #282828;
@@ -657,6 +661,23 @@ page {
background-color: #eb3729;
border-color: #eb3729;
}
+.product-window .productWinList .item .listn .itemn.disabled {
+ color: #333;
+ background-color: #F1F1F1;
+ border-color: #F1F1F1;
+}
+.product-window .productWinList .item .listn .itemn.disabled .tag {
+ position: absolute;
+ top: -18upx;
+ right: -18upx;
+ height: 28upx;
+ padding: 0 6upx;
+ border-radius: 6upx;
+ color: #fff;
+ line-height: 28upx;
+ font-size: 10px;
+ background-color: #FD5749;
+}
.product-window .cart {
margin-top: 0.36*100rpx;
@@ -2397,11 +2418,25 @@ page {
.user .wrapper .myOrder .title,
.user .wrapper .myService .title {
- height: 0.88*100rpx;
- padding: 0 0.3*100rpx;
- border-bottom: 1px dashed #eee;
- font-size: 0.3*100rpx;
- color: #282828;
+ height: 88rpx;
+ padding: 0 30rpx;
+ border-bottom: 1px solid #ECECEE;
+ font-size: 28rpx;
+ color: #333;
+ font-weight: 600;
+}
+.user .wrapper .myService .title {
+ border-bottom: 0;
+}
+
+.user .wrapper .myOrder .title .line,
+.user .wrapper .myService .title .line {
+ display: block;
+ width: 6rpx;
+ height: 28rpx;
+ margin: 0 15rpx 0 0;
+ border-radius: 6rpx;
+ background-color: #FF564A;
}
.user .wrapper .myOrder .title .allOrder {
@@ -2428,16 +2463,11 @@ page {
}
.user .wrapper .myOrder .orderState .item .pictrue {
- width: 0.49*100rpx;
- height: 0.42*100rpx;
+ width: 52rpx;
+ height: 52rpx;
margin: 0 auto 0.18*100rpx auto;
}
-.user .wrapper .myOrder .orderState .item .pictrue image {
- width: 100%;
- height: 100%;
-}
-
.user .wrapper .myService {
background-color: #fff;
margin-top: 0.15*100rpx;
diff --git a/components/Coupons.vue b/components/Coupons.vue
index 54ba702..bd82d9e 100644
--- a/components/Coupons.vue
+++ b/components/Coupons.vue
@@ -17,7 +17,12 @@
使用规则
-
+
+
+
@@ -124,6 +129,14 @@ export default {
transform: rotate(180deg);
}
}
+ .coupon-html {
+ height: 80rpx;
+ overflow: hidden;
+ transition: all .3s;
+ &.auto-height {
+ height: auto;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/components/GooSkeleton/README.md b/components/GooSkeleton/README.md
new file mode 100644
index 0000000..140fff1
--- /dev/null
+++ b/components/GooSkeleton/README.md
@@ -0,0 +1,62 @@
+# skeleton
+uni-app 骨架屏组件,用于数据加载时显示占位元素
+
+## 属性说明
+
+|属性名|类型|默认值|说明|
+| -- | -- | --|--|
+| loading | Boolean | true | 是否显示占位图 |
+| showAvatar | Boolean | true | 是否显示头像占位图 |
+| AvatarSize | String | 50px | 头像站占位图大小 |
+| AvatarShape | String | round | 头像形状,可选值:round, square |
+| showTitle | Boolean | true | 是否显示标题占位图 |
+| titleWidth | String | 40% | 标题占位图宽度 |
+| row | Number| 3 | 段落占位图行数 |
+| animate | Boolean | true | 是否开启动画 |
+
+## 使用示例
+
+```html
+
+ 我是段落1
+
+```
+
+```javascript
+import Skeleton from '../components/skeleton/index.vue'
+export default {
+ components: {
+ Skeleton
+ },
+ data() {
+ return {
+ loading: true,
+ skeleton1 : {
+ avatarSize: '52px',
+ row: 3,
+ showTitle: true,
+ }
+ }
+ },
+ created() {
+ this.reloadData()
+ },
+ methods: {
+ reloadData() {
+ this.loading = true
+ setTimeout(() => {
+ this.loading = false
+ }, 3000)
+ },
+ },
+}
+```
+
+## 效果图
+
+
diff --git a/components/GooSkeleton/index.vue b/components/GooSkeleton/index.vue
new file mode 100644
index 0000000..a7e3669
--- /dev/null
+++ b/components/GooSkeleton/index.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/ProductWindow.vue b/components/ProductWindow.vue
index a0b1065..4d7f731 100644
--- a/components/ProductWindow.vue
+++ b/components/ProductWindow.vue
@@ -20,12 +20,21 @@
{{ item.attrName }}
{{ itemn.attr }}
+ :class="{
+ 'on': item.index == indexn,
+ 'disabled': productValue[itemn.attr].stock === 0
+ }"
+ class="itemn"
+ @click="tapAttr(indexw, indexn, itemn)"
+ >
+ {{ itemn.attr }}
+ 缺货
+
@@ -57,6 +66,10 @@ export default {
type: Object,
default: () => {}
},
+ productValue: {
+ type: Object,
+ default: () => {}
+ },
cartNum: {
type: Number,
default: () => 1
@@ -80,7 +93,10 @@ export default {
CartNumAdd: function() {
this.$emit("changeFun", { action: "ChangeCartNum", value: 1 });
},
- tapAttr: function(indexw, indexn) {
+ tapAttr: function(indexw, indexn, itemn) {
+ if (this.productValue[itemn.attr].stock === 0) {
+ return
+ }
// 修改商品规格不生效的原因:
// H5端下面写法,attr更新,但是除H5外其他端不支持,
// 尽量避免下面的骚写法,不要在子组件内更新props
diff --git a/components/good/NoData.vue b/components/good/NoData.vue
new file mode 100644
index 0000000..4562662
--- /dev/null
+++ b/components/good/NoData.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/pages.json b/pages.json
index 781aff0..1b1d2c9 100644
--- a/pages.json
+++ b/pages.json
@@ -43,7 +43,7 @@
}
},
{
- "path": "components/chose-city/chose-city",
+ "path": "pages/chose-city/chose-city",
"style": {
"navigationBarTitleText": "选择城市"
}
@@ -461,6 +461,12 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "inn/innGoodList",
+ "style": {
+ "navigationBarTitleText": "店铺商品列表"
+ }
+ },
{
"path": "inn/innApply",
"style": {
@@ -632,9 +638,15 @@
},
{
"path": "views/giftList",
+ "style": {
+ "navigationBarTitleText": "特色礼品"
+ }
+ },
+ {
+ "path": "views/giftContent",
"style": {
"navigationBarTitleText": "特色礼品",
- "onReachBottomDistance": 100
+ "navigationBarTextStyle": "black"
}
},
{
@@ -951,9 +963,9 @@
"query": ""
},
{
- "name": "提交订单",
- "path": "pages/order/OrderSubmission/index",
- "query": "lotteryRecordId=217"
+ "name": "特色礼品",
+ "path": "pkg_product/views/giftList",
+ "query": ""
}
]
}
diff --git a/pages/authorization/index.vue b/pages/authorization/index.vue
index b337241..e01b481 100644
--- a/pages/authorization/index.vue
+++ b/pages/authorization/index.vue
@@ -41,7 +41,7 @@
请完善您的头像和昵称
-