diff --git a/api/gift.js b/api/gift.js
new file mode 100644
index 0000000..a8b60ac
--- /dev/null
+++ b/api/gift.js
@@ -0,0 +1,58 @@
+import request from "@/utils/request";
+
+/**
+ * 礼品卡送礼订单确认
+ * @param {*} data
+ */
+export function getGiftCardSendOrderConfirm(data) {
+ return request.post("/giftCard/confirm", data);
+}
+
+/**
+ * 礼品卡送礼订单创建
+ * @param {*} data
+ */
+export function getGiftCardSendOrder(key, data) {
+ return request.post("/giftCard/create/" + key, data);
+
+}
+
+/**
+ * 礼品详情
+ * @param {*} data
+ */
+export function getGiftCardDetail(data) {
+ return request.get("/giftCard/info", data);
+}
+
+/**
+ * 领取礼品卡
+ * @param {*} data
+ */
+export function getGiftCardReceive(data) {
+ return request.post("/giftCard/receive", data);
+}
+
+/**
+ * 礼品卡赠礼须知
+ * @param {*} data
+ */
+export function getGiftCardSendNotice(data) {
+ return request.get("/giftCard/giftNotice", data);
+}
+
+/**
+ * 计算订单金额
+ * @param {*} data
+ */
+export function getGiftCardSendOrderAmount(key, data) {
+ return request.post("giftCard/computed/" + key, data);
+}
+
+/**
+ * 再送一份
+ * @param {*} data
+ */
+export function getGiftCardResend(data) {
+ return request.post("/giftCard/makeAgain", data);
+}
\ No newline at end of file
diff --git a/api/giftList.js b/api/giftList.js
new file mode 100644
index 0000000..ade0a4f
--- /dev/null
+++ b/api/giftList.js
@@ -0,0 +1,22 @@
+import request from '@/utils/request'
+
+/**
+ * 收到的礼品卡列表
+ * */
+export function giftCardReceiveList(param) {
+ return request.get('/giftCard/receiveList', param)
+}
+
+/**
+ * 送出的礼品卡列表
+ * */
+export function giftCardSendList(param) {
+ return request.get('/giftCard/sendList', param)
+}
+
+/**
+ * 赠礼须知
+ * */
+export function giftNotice(param) {
+ return request.get('/giftCard/giftNotice', param)
+}
diff --git a/api/search.js b/api/search.js
new file mode 100644
index 0000000..9f4a222
--- /dev/null
+++ b/api/search.js
@@ -0,0 +1,6 @@
+import request from '@/utils/request'
+
+// 文玩店铺列表
+export function getSearchPageConfig() {
+ return request.get('/searchPage', {}, { login: false })
+}
diff --git a/api/user.js b/api/user.js
index ebfe155..dd1ed6d 100644
--- a/api/user.js
+++ b/api/user.js
@@ -585,4 +585,17 @@ export function getHistory(params) {
*/
export function getUserLike(params) {
return request.get('/cart/guessYouLike',params)
+}
+
+/**
+ * 用户功能指引状态
+ * @param {*} params
+ * @returns
+ */
+export function queryUserGuide(params) {
+ return request.get('/user/guide/status', params)
+}
+
+export function setUserGuide(params) {
+ return request.post('/user/guide/status', params)
}
\ No newline at end of file
diff --git a/assets/css/product.less b/assets/css/product.less
index f76037e..6bc2c93 100644
--- a/assets/css/product.less
+++ b/assets/css/product.less
@@ -17,16 +17,15 @@
}
.search-box {
- width: 686rpx;
+ width: 90%;
height: 60rpx;
- margin: 0 auto;
padding: 0 24rpx 0 32rpx;
box-sizing: border-box;
background: #F7F7F7;
border-radius: 30rpx;
input {
- width: 560rpx;
+ width: 540rpx;
font-size: 24rpx;
}
@@ -66,8 +65,8 @@
}
.active {
- border-left: 6rpx solid #FD574B;
- color: #FD574B;
+ border-left: 6rpx solid #C52733;
+ color: #C52733;
font-weight: bold;
}
}
diff --git a/components/CitySelect.vue b/components/CitySelect.vue
index 226c9e2..3df9f07 100644
--- a/components/CitySelect.vue
+++ b/components/CitySelect.vue
@@ -87,7 +87,7 @@ export default {
components: {
uniPopup
},
- props: ["callback", "items", "defaultValue"],
+ props: ["callback", "items", "defaultValue", 'disabled'],
data() {
return {
value: "请选择",
@@ -107,7 +107,7 @@ export default {
},
defaultValue(newValue) {
this.value = newValue;
- // this.adjustDefaultValue();
+ this.adjustDefaultValue();
}
},
mounted() {
@@ -147,6 +147,7 @@ export default {
return idx;
},
open() {
+ if(this.disabled) return;
if (this.$refs.popup.showPopup) {
this.$refs.popup.close();
return;
diff --git a/components/CouponsPopup.vue b/components/CouponsPopup.vue
index be18a8a..6e42d75 100644
--- a/components/CouponsPopup.vue
+++ b/components/CouponsPopup.vue
@@ -1,7 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/components/ProductWindow.vue b/components/ProductWindow.vue
index c6a0f0f..3fbd413 100644
--- a/components/ProductWindow.vue
+++ b/components/ProductWindow.vue
@@ -1,6 +1,6 @@
-
+
@@ -59,6 +59,22 @@
>+
+
+ 加入购物车
+
+
+ 送给朋友
+
@@ -67,6 +83,18 @@
export default {
name: "ProductWindow",
props: {
+ isGift: {
+ type: Boolean,
+ default: false
+ },
+ paddingBottom: {
+ type: String,
+ default: '140rpx'
+ },
+ showOk: {
+ type: Boolean,
+ default: false
+ },
attr: {
type: Object,
default: () => {
diff --git a/components/UserEvaluation.vue b/components/UserEvaluation.vue
index 651652e..1c1b8fb 100644
--- a/components/UserEvaluation.vue
+++ b/components/UserEvaluation.vue
@@ -21,12 +21,31 @@
{{ item.comment }}
+
+
+
+
+
+
{
+ if(item !== video) {
+ uni.createVideoContext(item, this).pause();
+ }
+ })
+ } else {
+ this.videoPlayers.push(video);
+ }
}
}
};
@@ -80,4 +115,18 @@ export default {
.time{
padding: 0 !important;
}
+.evaluateWtapper .evaluateItem .imgList .pictrue{
+ position: relative;
+ width: 300rpx;
+ .play-icon {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ margin: auto;
+ width: 80rpx;
+ height: 80rpx;
+ }
+}
diff --git a/components/timePickerPopup/README.md b/components/timePickerPopup/README.md
new file mode 100644
index 0000000..91e3133
--- /dev/null
+++ b/components/timePickerPopup/README.md
@@ -0,0 +1,87 @@
+### 使用组件
+
+```html
+
+```
+
+### 引入组件
+
+```javascript
+import TimePickerPopup from '@/components/time-picker-popup/time-picker-popup.vue';
+```
+
+### 注册组件
+
+```javascript
+export default {
+ components: { TimePickerPopup },
+ data() {
+ return {
+ value: ['00', '00', '00', '00']
+ }
+ },
+ onReady() {
+ this.open();
+ },
+ methods: {
+ confirm(data) {
+ uni.showToast({
+ title: `${data[0]}:${data[1]}-${data[2]}:${data[3]}`
+ })
+ },
+ open() {
+ this.$refs.TimePickerPopupRef.open();
+ }
+ }
+}
+```
+
+### 参数
+
+```javascript
+// 当前选中的值
+value: {
+ type: Array,
+ default: () => (['00', '00', '00', '00'])
+},
+// 标题
+title: {
+ type: String,
+ default: '时间'
+},
+// 取消按钮文字
+cancelText: {
+ type: String,
+ default: '取消'
+},
+// 取消按钮颜色
+canceColor: {
+ type: String,
+ default: '#666666'
+},
+// 确定按钮文字
+confirmText: {
+ type: String,
+ default: '确定'
+},
+// 确定按钮颜色
+confirmColor: {
+ type: String,
+ default: '#2bb781'
+},
+// 分割符
+segmentation: {
+ type: String,
+ default: '-'
+},
+// 设置选择器中间选中框的类名 注意页面或组件的style中写了scoped时,需要在类名前写/deep/
+indicatorClass: {
+ type: String,
+ default: 'picker-view__indicator'
+},
+// 设置选择器中间选中框的样式
+indicatorStyle: {
+ type: String,
+ default: ''
+},
+```
diff --git a/components/timePickerPopup/time-picker-popup.vue b/components/timePickerPopup/time-picker-popup.vue
new file mode 100644
index 0000000..7a07f60
--- /dev/null
+++ b/components/timePickerPopup/time-picker-popup.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+ {{item}}
+
+
+ {{item}}
+
+ {{ segmentation }}
+
+ {{item}}
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/timePickerPopup/utils.js b/components/timePickerPopup/utils.js
new file mode 100644
index 0000000..e093659
--- /dev/null
+++ b/components/timePickerPopup/utils.js
@@ -0,0 +1,69 @@
+// 组件props
+const props = {
+ // 当前选中的值
+ value: {
+ type: Array,
+ default: () => (['00', '00', '00', '00'])
+ },
+ // 标题
+ title: {
+ type: String,
+ default: '时间'
+ },
+ // 取消按钮文字
+ cancelText: {
+ type: String,
+ default: '取消'
+ },
+ // 取消按钮颜色
+ canceColor: {
+ type: String,
+ default: '#666666'
+ },
+ // 确定按钮文字
+ confirmText: {
+ type: String,
+ default: '确定'
+ },
+ // 确定按钮颜色
+ confirmColor: {
+ type: String,
+ default: '#2bb781'
+ },
+ // 分割符
+ segmentation: {
+ type: String,
+ default: '-'
+ },
+ // 设置选择器中间选中框的类名 注意页面或组件的style中写了scoped时,需要在类名前写/deep/
+ indicatorClass: {
+ type: String,
+ default: 'picker-view__indicator'
+ },
+ // 设置选择器中间选中框的样式
+ indicatorStyle: {
+ type: String,
+ default: ''
+ },
+}
+
+// 滚动数据
+let range = [
+ [],
+ [],
+ [],
+ []
+];
+for (let i = 0; i < 24; i++) {
+ range[0].push(i >= 10 ? String(i) : `0${i}`);
+ range[2].push(i >= 10 ? String(i) : `0${i}`);
+}
+for (let i = 0; i < 60; i++) {
+ range[1].push(i >= 10 ? String(i) : `0${i}`);
+ range[3].push(i >= 10 ? String(i) : `0${i}`);
+}
+
+export default {
+ props,
+ range
+}
\ No newline at end of file
diff --git a/components/tpf-time-range/tpf-time-range.vue b/components/tpf-time-range/tpf-time-range.vue
new file mode 100644
index 0000000..ab34330
--- /dev/null
+++ b/components/tpf-time-range/tpf-time-range.vue
@@ -0,0 +1,316 @@
+
+
+
+
+ 取消
+ 营业时间
+ 确定
+
+
+
+
+
+ {{item}}
+
+
+ {{item}}
+
+
+
+ -
+
+
+
+ {{item}}
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/xdd-product-item/index.vue b/components/xdd-product-item/index.vue
index 466ea28..1f6ca9e 100644
--- a/components/xdd-product-item/index.vue
+++ b/components/xdd-product-item/index.vue
@@ -2,9 +2,26 @@
+
+
+
+
+
-
+ {{ item.farmerShopContent }}
+
{{ item[nameKey] }}
@@ -36,7 +60,7 @@
¥{{ item[priceKey] }}
-
+
+
+
+
+
+ {{ item.farmerShopName }}/{{ item.farmerShopCityName || '-' }}
+
@@ -89,6 +121,21 @@ export default {
diff --git a/pages/cloud/haveFun.vue b/pages/cloud/haveFun.vue
index c7f24d7..64d2817 100644
--- a/pages/cloud/haveFun.vue
+++ b/pages/cloud/haveFun.vue
@@ -3,7 +3,7 @@
-
+
{{ cityName }}
@@ -41,8 +41,7 @@
-
-
+
+
{{ item.name }}
-
+
@@ -104,7 +106,7 @@
-
+
@@ -160,6 +162,7 @@
:show-avatar="false"
/>
+
@@ -169,12 +172,15 @@ import { getCurAddress, getLocation } from "@/utils/common"
import FunHotelItem from './components/HotelItem'
import { pageListenMixins } from '@/mixins/pageListenMixins'
import XddTabbar from '@/components/xdd-tabbar'
+import FunctionGuide from '@/components/FunctionGuide'
+import GuideMixins from '@/mixins/GuideMixins'
export default {
components: {
FunHotelItem,
- XddTabbar
+ XddTabbar,
+ FunctionGuide
},
- mixins: [pageListenMixins],
+ mixins: [pageListenMixins, GuideMixins],
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
@@ -220,6 +226,7 @@ export default {
this.getMapData()
})
this.getIcon()
+ this.queryGuide('findFunIndex')
},
onShow() {
const memCityName = uni.getStorageSync('cityName')
@@ -244,6 +251,180 @@ export default {
}
},
methods: {
+ showFunctionGuide() {
+ if(this._step == this.functionGuideData.step) return
+ if(this.functionGuideData.step == 1) {
+ this._step = this.functionGuideData.step
+
+ this.getElementData('#city-box', res=>{
+ const imgs = [
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 1/Group 1-1.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '390rpx',
+ top: 0*2+'rpx',
+ left: res.width*2+'rpx',
+ height: '162rpx',
+ /* px: ; */
+ },
+ isBtn: false
+ },
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 1/Group 1-2.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '117rpx',
+ top: 80*2+'rpx',
+ left: -60*2+'rpx',
+ right: 0,
+ margin: 'auto',
+ height: '46rpx',
+ },
+ isBtn: 'jump'
+ },
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 1/Group 1-3.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '117rpx',
+ top: 80*2+'rpx',
+ left: 200*2+'rpx',
+ height: '46rpx',
+ },
+ isBtn: 'next'
+ },
+ ]
+ this.setFunctionGuideData({
+ imgs: imgs,
+ tipsPosition: '420rpx',
+ btnGroupPosition: '',
+ position: {
+ top: res.top + 'px',
+ left: res.left + 'px',
+ width: `${res.width}px`,
+ height: `${res.height}px`,
+ }
+ })
+ })
+ return
+ } else {
+ if(this.functionGuideData.step == 2) {
+ this._step = this.functionGuideData.step
+
+ this.getElementData('#type-box', res=>{
+ const imgs = [
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 2/Group 2-1.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '504rpx',
+ top: 170*2+'rpx',
+ left: 0+'rpx',
+ right: 0,
+ margin: 'auto',
+ height: '191rpx',
+ /* px: ; */
+ },
+ isBtn: false
+ },
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 2/Group 2-3.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '117rpx',
+ top: 270*2+'rpx',
+ left: -160*2+'rpx',
+ right: 0,
+ margin: 'auto',
+ height: '46rpx',
+ },
+ isBtn: 'jump'
+ },
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 2/Group 2-2.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '117rpx',
+ top: 270*2+'rpx',
+ left: 160*2+'rpx',
+ height: '46rpx',
+ },
+ isBtn: 'next'
+ },
+ ]
+ this.setFunctionGuideData({
+ imgs: imgs,
+ tipsPosition: '420rpx',
+ btnGroupPosition: '',
+ position: {
+ top: res.top + 'px',
+ left: res.left + 'px',
+ width: `${res.width}px`,
+ height: `${(res.height-20)}px`,
+ }
+ })
+ })
+ return
+ }
+ if(this.functionGuideData.step == 3) {
+ this._step = this.functionGuideData.step
+
+ this.getElementData('#body1', res=>{
+ const imgs = [
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 3/Group 3-1.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '290rpx',
+ top: 90*2+'rpx',
+ left: 0,
+ right: 0,
+ margin: 'auto',
+ height: '165rpx',
+ /* px: ; */
+ },
+ isBtn: false
+ },
+ {
+ url: this.webUrl + '/引导页素材/寻趣味/Group 3/Group 3-2.png',
+ style: {
+ position: 'absolute',
+ zIndex: 99,
+ width: '97rpx',
+ top: 60*2+'rpx',
+ left: 60*2+'rpx',
+ right: 0,
+ margin: 'auto',
+ height: '55rpx',
+ },
+ isBtn: 'jump'
+ },
+ ]
+ this.setFunctionGuideData({
+ imgs: imgs,
+ tipsPosition: '420rpx',
+ btnGroupPosition: '',
+ position: {
+ top: (res.top) + 'px',
+ left: res.left+10 + 'px',
+ width: `${res.width-20}px`,
+ height: `${res.height-20}px`,
+ }
+ })
+ })
+ return
+ }
+ return
+ }
+ },
handleRefresh() {
uni.showLoading()
this.page = 1
@@ -447,6 +628,7 @@ export default {
display: flex;
height: fit-content;
background: #fff;
+ overflow-x: scroll;
padding: 10rpx;
border-radius: 30rpx;
}
diff --git a/pages/home/components/goods.vue b/pages/home/components/goods.vue
index 0a9d10b..8c043f8 100644
--- a/pages/home/components/goods.vue
+++ b/pages/home/components/goods.vue
@@ -21,6 +21,7 @@
¥{{ item.price }}
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 92c1bc7..2241fab 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -16,13 +16,27 @@
/>
-
+
+
+
+
+
+
+
-
+
-
+
@@ -31,7 +44,7 @@
{{ item.word }}
@@ -51,45 +64,168 @@
-
+
+
+
+
+
+
+
+
+
+
+ {{ good.productName }}
+
+
+
+ ¥{{ good.price }}
+
+
+ ¥{{ good.otPrice }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/shop/GoodsCon/index.vue b/pages/shop/GoodsCon/index.vue
index 0f59784..785ae49 100644
--- a/pages/shop/GoodsCon/index.vue
+++ b/pages/shop/GoodsCon/index.vue
@@ -29,7 +29,7 @@
-
+
-
- 预计获得{{ attr.productSelect.earnPoints }}积分
-
+
+
+ 预计获得{{ attr.productSelect.earnPoints }}积分
+
{{ storeInfo.storeName }}
+
+
+
+ 支持礼包赠送
+
+
+ 送给朋友
+
+
@@ -182,7 +192,7 @@
-
+
@@ -463,6 +473,8 @@
:attr="attr"
:cartNum="cart_num"
@changeFun="changeFun"
+ @gift="gift"
+ :isGift="isGift"
/>
-
+
@@ -544,6 +556,7 @@ export default {
mixins: [pageListenMixins],
data: function () {
return {
+ isGift: false,
// 商品信息是否展开
isProductInfoExpand: true,
shareInfoStatus: false,
@@ -617,7 +630,8 @@ export default {
isFavorite: false,
pageKeyId: '',
couponListLimit2ToShow: [],
- qualifications: []
+ qualifications: [],
+ couponId: null
}
},
computed: mapGetters(['isLogin', 'location', 'userInfo']),
@@ -761,6 +775,24 @@ export default {
}
},
methods: {
+ gift() {
+ this.goCat(2)
+ },
+ toGift() {
+ if ((this.attr.productSelect.stock === 0 && this.attr.cartAttr) || this.storeInfo.stock === 0) {
+ uni.showToast({
+ title: '商品库存不足',
+ icon: 'none'
+ })
+ return
+ }
+ this.isGift = true
+ // 2=送给朋友
+ this.goCat(2)
+ // uni.navigateTo({
+ // url: '/pkg_user/views/gift/gift'
+ // })
+ },
showService() {
this.$refs.serviceWin.show = true
},
@@ -775,7 +807,7 @@ export default {
},
goRoom() {
const params = {
- goodsId: this.productId,
+ goodsId: this.id,
goodsName: this.attr.productSelect.store_name,
skuStr: this.attrValue,
price: this.attr.productSelect.price,
@@ -785,7 +817,7 @@ export default {
seckillData: ''
}
uni.navigateTo({
- url: `/pkg_common/views/room?id=${this.storeInfo.merId}&name=${this.storeInfo.merName}¶ms=${JSON.stringify(params)}`
+ url: `/pkg_common/views/room?id=${this.storeInfo.merId}&name=${this. systemStore.name}¶ms=${JSON.stringify(params)}`
})
},
goodsDetail(item) {
@@ -1009,6 +1041,7 @@ export default {
// 产品详情接口
productCon() {
const from = this.location
+
if (this.$deviceType == 'app') {
from.from = 'app'
}
@@ -1251,6 +1284,7 @@ export default {
changeattr(msg) {
// 修改了规格
this.attr.cartAttr = msg
+ this.$set(this.attr.productSelect, 'cart_num', 1)
this.isOpen = false
},
// 选择属性
@@ -1317,6 +1351,7 @@ export default {
return
}
// 0=加入购物车
+ this.isGift = false
this.goCat(0)
},
// 立即购买
@@ -1325,12 +1360,15 @@ export default {
return
}
// 1=直接购买
+ this.isGift = false
this.goCat(1)
},
// 加入购物车
goCat(news) {
const that = this
const productSelect = this.getAttrItemData(this.attrValue)
+ console.log(this.attr);
+
// 打开属性
if (that.attrValue) {
// 默认选中了属性,但是没有打开过属性弹窗还是自动打开让用户查看默认选中的属性
@@ -1359,7 +1397,7 @@ export default {
const q = {
productId: that.id,
cartNum: that.attr.productSelect.cart_num,
- new: news,
+ new: news === 2 ? 1 : news,
uniqueId: that.attr.productSelect !== undefined ?
that.attr.productSelect.unique : ""
}
@@ -1378,14 +1416,23 @@ export default {
postCartAdd(q).then(function (res) {
that.isOpen = false
that.attr.cartAttr = false
- if (news) {
+ if (news === 1) {
that.$yrouter.push({
path: "/pages/order/OrderSubmission/index",
query: {
- id: res.data.cartId
+ id: res.data.cartId,
+ couponId: that.couponId // 优惠券ID
}
})
- } else {
+ return
+ }
+ if(news === 2) {
+ const coupId = that.couponId ? that.couponId : (that.couponList.usable[0] && that.couponList.usable[0].id || '')
+ uni.navigateTo({
+ url: '/pkg_user/views/gift/gift?cartId=' + res.data.cartId + '&couponId=' + coupId
+ })
+ }
+ if(news === 0) {
uni.showToast({
title: "添加购物车成功",
icon: "success",
@@ -1394,6 +1441,7 @@ export default {
that.getCartCount(true)
}
})
+ return
}
}).catch(error => {
that.isOpen = false;
@@ -1433,9 +1481,12 @@ export default {
this.posters = false
},
// v9-2
- changeCoupons() {
+ changeCoupons(e) {
this.show = !this.show
},
+ setCoupon(couponId) {
+ this.couponId = couponId
+ },
async checkFavorite() {
const res = await checkProduct(this.id, this.uniqueId)
if (res.success) this.isFavorite = res.data.hasFavorite
@@ -1878,6 +1929,8 @@ export default {
}
.store-title{
width: 400rpx;
+ height: 40rpx;
+ line-height: 40rpx;
}
.product-con .store-info .praise .iconfont {
font-size: 0.28 * 100rpx;
@@ -2069,7 +2122,16 @@ export default {
}
.earn-points {
flex: 1;
- padding: 0 0 0 12rpx;
+ // padding: 0 0 0 12rpx;
+ margin-bottom: 10rpx;
box-sizing: border-box;
}
+.gift-btn{
+ padding: 10rpx;
+}
+.gift-img{
+ width: 34rpx;
+ height: 34rpx;
+ margin-right: 10rpx;
+}
diff --git a/pages/shop/GoodsList/index.vue b/pages/shop/GoodsList/index.vue
index aa25eb2..2c5856c 100644
--- a/pages/shop/GoodsList/index.vue
+++ b/pages/shop/GoodsList/index.vue
@@ -16,6 +16,11 @@
/>
+
+
+ {{ CartCount > 99 ? '99+' : CartCount }}
+
+
@@ -76,7 +81,10 @@
¥{{ force2Decimal(item.otPrice) }}
- 已售{{ item.sales }}件
+
+
+
+
@@ -160,26 +168,40 @@
v-if="searchType === 'good' && loadend && list.length === 0"
/>
+
\ No newline at end of file
diff --git a/pkg_user/views/addBankCard.vue b/pkg_user/views/addBankCard.vue
index 63baf31..2071b80 100644
--- a/pkg_user/views/addBankCard.vue
+++ b/pkg_user/views/addBankCard.vue
@@ -203,7 +203,7 @@ export default {
height: 80rpx;
margin-top: 56rpx;
border-radius: 8rpx;
- background: #FD574B;
+ background: #C52733;
color: #FFFFFF;
font-size: 28rpx;
}
diff --git a/pkg_user/views/bankCardList.vue b/pkg_user/views/bankCardList.vue
index 42b0afd..91d2685 100644
--- a/pkg_user/views/bankCardList.vue
+++ b/pkg_user/views/bankCardList.vue
@@ -97,7 +97,7 @@ export default {
},
isSelectMode: false,
webUrl: this.$VUE_APP_RESOURCES_URL,
- bgColor: ["#FD574B", "#0DC5C5", "#3F57DA", "#FF4F48"],
+ bgColor: ["#C52733", "#0DC5C5", "#3F57DA", "#FF4F48"],
pageKeyId: Object.freeze('userBankCardIndex')
}
},
diff --git a/pkg_user/views/bindPhone.vue b/pkg_user/views/bindPhone.vue
index 7227785..f51ddb7 100644
--- a/pkg_user/views/bindPhone.vue
+++ b/pkg_user/views/bindPhone.vue
@@ -216,7 +216,7 @@ export default {
.btn-save {
height: 80rpx;
margin-top: 80rpx;
- background: #FD574B;
+ background: #C52733;
line-height: 80rpx;
}
}
diff --git a/pkg_user/views/gift/components/AddressDialog.vue b/pkg_user/views/gift/components/AddressDialog.vue
new file mode 100644
index 0000000..4f419cf
--- /dev/null
+++ b/pkg_user/views/gift/components/AddressDialog.vue
@@ -0,0 +1,428 @@
+
+
+
+ 填写收货地址
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 清空
+
+
+ 识别
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pkg_user/views/gift/components/AddressList.vue b/pkg_user/views/gift/components/AddressList.vue
new file mode 100644
index 0000000..fe99f91
--- /dev/null
+++ b/pkg_user/views/gift/components/AddressList.vue
@@ -0,0 +1,168 @@
+
+
+
+ 收货地址
+
+
+
+
+
+ 收货地址:
+
+
+
+ {{ item.realName }}
+ {{ item.phone }}
+
+
+ {{ item.province + item.city + item.district + item.detail }}
+
+
+
+
+
+
+
+
+
+
+ 添加新地址
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_user/views/gift/components/CoverPicker.vue b/pkg_user/views/gift/components/CoverPicker.vue
new file mode 100644
index 0000000..86e5ae7
--- /dev/null
+++ b/pkg_user/views/gift/components/CoverPicker.vue
@@ -0,0 +1,170 @@
+
+
+
+ 选择封面
+
+
+
+
+
+
+
+
+ {{ message || '礼笺轻启,礼藏心意' }}
+
+ {{ item.name }}
+
+
+
+
+
+ 确定
+
+
+ 红包封面在对方领取时展示
+
+
+
+
+
+
+
diff --git a/pkg_user/views/gift/components/GiftCard.vue b/pkg_user/views/gift/components/GiftCard.vue
new file mode 100644
index 0000000..ffed8c7
--- /dev/null
+++ b/pkg_user/views/gift/components/GiftCard.vue
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ card.message || '礼笺轻启,礼藏心意' }}
+
+
+
+
+
+
+
+
+
+ 您已领取礼包
+
+ 查看礼包详情>>
+
+
+
+ 礼包已被领取
+
+ 去商城看看>>
+
+
+
+ 未领取礼包,将于24小时后自动退回
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pkg_user/views/gift/components/PayPicker.vue b/pkg_user/views/gift/components/PayPicker.vue
new file mode 100644
index 0000000..0d46d27
--- /dev/null
+++ b/pkg_user/views/gift/components/PayPicker.vue
@@ -0,0 +1,106 @@
+
+
+
+ 选择支付方式
+
+
+ 微信支付
+
+
+
+
+ 余额支付
+
+
+
+ 确定
+
+
+
+
+
+
+
diff --git a/pkg_user/views/gift/components/giftTips.vue b/pkg_user/views/gift/components/giftTips.vue
new file mode 100644
index 0000000..a09aec9
--- /dev/null
+++ b/pkg_user/views/gift/components/giftTips.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pkg_user/views/gift/gift.vue b/pkg_user/views/gift/gift.vue
new file mode 100644
index 0000000..92925d7
--- /dev/null
+++ b/pkg_user/views/gift/gift.vue
@@ -0,0 +1,538 @@
+
+
+
+
+
+
+
+
+ 送礼寄语
+
+
+
+
+
+
+ {{ cover }}封面
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ goodsInfo.productInfo.storeName }}
+
+
+ {{ goodsInfo.productInfo.attrInfo.sku }}
+
+
+
+ ¥
+ {{ payPrice }}
+
+
+
+
+
+
+
+
+
+
+ {{ goodsInfo['cartNum'] }}
+
+
+
+
+
+
+
+ x{{ goodsInfo['cartNum'] }}
+
+
+
+
+
+
+ 赠言:{{ message || '礼笺轻启,礼藏心意'}}
+
+
+
+ 是否支持好友转赠
+
+
+
+
+
+
+ 付款并赠送
+
+
+ 再送一份
+
+
+ 好友未收下礼包,将于24小时后自动退款
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_user/views/gift/receive.vue b/pkg_user/views/gift/receive.vue
new file mode 100644
index 0000000..8572c2e
--- /dev/null
+++ b/pkg_user/views/gift/receive.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+ 礼包超过24小时未领取,订单已取消
+ 去商城看看
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_user/views/giftList.vue b/pkg_user/views/giftList.vue
new file mode 100644
index 0000000..cc8e735
--- /dev/null
+++ b/pkg_user/views/giftList.vue
@@ -0,0 +1,553 @@
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ cart.productInfo.storeName }}
+
+
+ {{ cart.productInfo.attrInfo.sku }}
+
+
+
+ ¥{{ item.payPrice }}
+
+ 数量 X {{ cart.cartNum }}
+
+
+
+
+
+ 赠言:{{ item.message || '' }}
+
+
+
+
+
+ 已全部领取
+
+
+ 已过期
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ cart.productInfo.storeName }}
+
+
+ {{ cart.productInfo.attrInfo.sku }}
+
+
+
+ ¥{{ cart.productInfo.attrInfo.price }}
+
+
+
+
+
+
+ 赠言:{{ item.message || '' }}
+
+
+ {{ getStatus(item) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg_user/views/myFavorite.vue b/pkg_user/views/myFavorite.vue
index dcaa107..9cf896e 100644
--- a/pkg_user/views/myFavorite.vue
+++ b/pkg_user/views/myFavorite.vue
@@ -77,16 +77,16 @@
:src="item['image']"
mode="scaleToFill"
class="cover flex-0"
- @click="navToGoods(item['productId'])"
+ @click="navToGoods(item)"
/>
{{ item['storeName'] }}
- 规格:{{ item['sku'] }}
+ 规格:{{ item['sku'] }}
-
+
¥
{{ item['price'] }}
¥{{ item['otPrice'] }}
@@ -347,9 +347,16 @@ export default {
this.fetchProduct()
},
methods: {
- navToGoods(id) {
+ navToGoods(item) {
+ if(item.isInvalid) {
+ uni.showToast({
+ title: '商品已下架',
+ icon: 'none'
+ })
+ return
+ }
uni.navigateTo({
- url: "/pages/shop/GoodsCon/index?id=" + id
+ url: "/pages/shop/GoodsCon/index?id=" + item.productId
})
},
changeTabs(index) {
diff --git a/pkg_user/views/payPassword.vue b/pkg_user/views/payPassword.vue
index 7604153..d90d181 100644
--- a/pkg_user/views/payPassword.vue
+++ b/pkg_user/views/payPassword.vue
@@ -223,7 +223,7 @@ export default {
.btn-save {
height: 80rpx;
margin-top: 80rpx;
- background: #FD574B;
+ background: #C52733;
line-height: 80rpx;
}
}
diff --git a/pkg_user/views/withdrawal.vue b/pkg_user/views/withdrawal.vue
index 48c988e..bd42753 100644
--- a/pkg_user/views/withdrawal.vue
+++ b/pkg_user/views/withdrawal.vue
@@ -464,7 +464,7 @@ export default {
height: 80rpx;
margin: 54rpx 0 40rpx;
border-radius: 8rpx;
- background: #FD574B;
+ background: #C52733;
color: #FFFFFF;
font-size: 28rpx;
font-weight: bold;
diff --git a/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue b/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue
index fc39532..ea73eca 100644
--- a/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue
+++ b/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue
@@ -108,6 +108,7 @@
methods: {
noticeChange(e){
this.index = e.detail.current
+ this.$emit('change', this.index)
},
// 点击通告栏
clickHandler() {
diff --git a/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue b/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue
index a06eb39..00d3319 100644
--- a/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue
+++ b/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue
@@ -19,6 +19,7 @@
:duration="duration"
@close="close"
@click="click"
+ @change="change"
>
@@ -73,6 +74,9 @@
}
},
methods: {
+ change(index) {
+ this.$emit('change', index)
+ },
// 点击通告栏
click(index) {
this.$emit('click', index)
diff --git a/utils/request.js b/utils/request.js
index d4e17fd..0823f73 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -8,7 +8,7 @@ const http = new Request();
/* 设置全局配置 */
http.setConfig((config) => {
config.baseURL = VUE_APP_API_URL;
- config.timeout = 2 * 60 * 1000;
+ config.timeout = 4 * 60 * 1000;
config.method = "POST";
config.responseType = "text";
config.header = {
diff --git a/v4/views/attract/attract.vue b/v4/views/attract/attract.vue
index ead0ecd..682f42b 100644
--- a/v4/views/attract/attract.vue
+++ b/v4/views/attract/attract.vue
@@ -89,6 +89,15 @@ export default {
onLoad: function () {
this.init()
this.getCityList()
+ const localData = uni.getStorageSync('investmentIndex')
+ if (localData) {
+ this.businessApply = localData
+ this.addressText = localData.addressText
+ this.address = localData.address
+ }
+ },
+ onUnload() {
+ uni.setStorageSync('investmentIndex', {...this.businessApply, addressText: this.addressText, address: this.address})
},
methods: {
init() {
@@ -119,7 +128,7 @@ export default {
this.total = data.total
this.businessApplyList = data.businessApplyList
if (data.businessApply) {
- this.businessApply = data.businessApply
+ // this.businessApply = data.businessApply
this.address = {
province: data.businessApply.provinceName || "",
city: data.businessApply.cityName || "",
diff --git a/v4/views/attract/project.vue b/v4/views/attract/project.vue
index cea573b..d429e06 100644
--- a/v4/views/attract/project.vue
+++ b/v4/views/attract/project.vue
@@ -97,11 +97,11 @@ export default {
width: 68rpx;
height: 48rpx;
padding-bottom: 8rpx;
- border-bottom: 6rpx solid #FD574B;
+ border-bottom: 6rpx solid #C52733;
font-size: 32rpx;
font-weight: bold;
line-height: 48rpx;
- color: #FD574B;
+ color: #C52733;
}
.item {
diff --git a/v4/views/attract/projectList.vue b/v4/views/attract/projectList.vue
index 01e65e7..ebcf627 100644
--- a/v4/views/attract/projectList.vue
+++ b/v4/views/attract/projectList.vue
@@ -130,7 +130,7 @@ export default {
.btn {
width: 128rpx;
height: 54rpx;
- background: #FD574B;
+ background: #C52733;
border-radius: 28rpx;
color: #fff;
}
diff --git a/wenwan/views/storeList.vue b/wenwan/views/storeList.vue
index c79d730..1fe9d2d 100644
--- a/wenwan/views/storeList.vue
+++ b/wenwan/views/storeList.vue
@@ -18,7 +18,7 @@
-
+
@@ -36,13 +36,20 @@
暂无数据
+