瀏覽代碼

新版本

linwu 1 年之前
父節點
當前提交
7c233170be
共有 41 個文件被更改,包括 2184 次插入564 次删除
  1. 1 0
      .gitignore
  2. 8 6
      components/pretty-times/pretty-times.scss
  3. 3 2
      components/pretty-times/pretty-times.vue
  4. 2 2
      components/utils/date.js
  5. 0 2
      components/views/diyfields/diyfields.vue
  6. 6 6
      components/views/diyitem/goods.vue
  7. 189 0
      components/views/diyitem/goodscard.vue
  8. 3 3
      components/views/diyitem/miaosha.vue
  9. 80 0
      components/views/diyitem/store.vue
  10. 3 3
      components/views/diyitem/tuan.vue
  11. 4 2
      components/views/t-select-coupons/t-select-coupons.vue
  12. 404 0
      components/views/t-select-goodsgiftcard/t-select-goodsgiftcard.vue
  13. 0 1
      main.js
  14. 6 12
      manifest.json
  15. 14 1
      pages.json
  16. 1 1
      pages/bargain/bargain_process.vue
  17. 9 13
      pages/category/category.vue
  18. 11 17
      pages/coupon/coupon.vue
  19. 22 31
      pages/goodsDetail/goodsDetail.vue
  20. 8 7
      pages/index/index.vue
  21. 535 153
      pages/store_details/store_details.vue
  22. 2 2
      pagesA/my/address/editAddress.vue
  23. 1 1
      pagesA/my/adminstore/index.vue
  24. 5 5
      pagesA/my/admintechnical/index.vue
  25. 9 7
      pagesA/my/admintuanzhang/index.vue
  26. 1 1
      pagesA/my/fx/index.vue
  27. 1 1
      pagesA/my/invoiceDetail/invoiceDetail.vue
  28. 204 0
      pagesA/my/myCard/myCard.vue
  29. 12 18
      pagesA/my/myCoupon/myCoupon.vue
  30. 343 0
      pagesA/my/myOrder/myTimes - 副本.vue
  31. 108 212
      pagesA/my/myOrder/myTimes.vue
  32. 7 3
      pagesA/my/myOrder/myTimesDetail.vue
  33. 38 36
      pagesA/my/myOrder/yuyuetime.vue
  34. 1 1
      pagesA/my/partner/index.vue
  35. 10 1
      pagesA/my/publicOrder/timescard.vue
  36. 17 0
      pagesA/my/publicOrder/timescardDetail.vue
  37. 1 2
      pagesA/my/signin/index.vue
  38. 3 4
      pagesA/my/userInfo/index.vue
  39. 110 6
      pagesA/submitOrder/submitOrder.vue
  40. 2 2
      siteinfo.js
  41. 二進制
      static/logo.png

+ 1 - 0
.gitignore

@@ -1 +1,2 @@
 /unpackage
+/.hbuilderx

+ 8 - 6
components/pretty-times/pretty-times.scss

@@ -5,11 +5,10 @@
 	scroll-view{
 		width: 100%;
 		white-space: nowrap;
-		height: 75px;
+		height: 63px;
 		background-color: #fff;
 		position: relative;
-		padding-top: 10px;
-
+		padding-top: 10rpx;
 		// margin-top:10px;
 		&::after{
 			background: #e5e5e5;
@@ -63,15 +62,18 @@
 		
 	}
 	.time-box{
-		padding:28upx 12upx 26upx;
+		padding-top: 28upx;
+		padding-left: 14upx;
+		padding-right: 10upx;
+		padding-bottom: 200upx;
 		display: flex;
 		flex-wrap: wrap;
 		// margin-top:10px;
 		background-color:#fff;
 		.item{
 			width: 33%;
-			padding: 0 9upx;
-			margin:10px 0;
+			padding: 9upx;
+
 			&-box{
 				width: 100%;
 				height: 154upx;

+ 3 - 2
components/pretty-times/pretty-times.vue

@@ -35,7 +35,6 @@
 		</view>
 	</view>
 </template>
-
 <script>
 	import {
 		initData,
@@ -289,7 +288,9 @@
 		display: flex;
 		flex-direction: row;
 		position: fixed;
-		bottom: 8px;
+		bottom: 0;
+		padding-top: 20rpx;
+		padding-bottom: env(safe-area-inset-bottom);
 		top: auto;
 		left: 0px;
 		width: 100%;

+ 2 - 2
components/utils/date.js

@@ -38,7 +38,7 @@ export function timeStamp(time) {
 	}
 }
 
-//获取最近7天的日期和礼拜天数
+//获取最近30天的日期和礼拜天数
 export function initData() {
 	const time = []
 	const date = new Date()
@@ -50,7 +50,7 @@ export function initData() {
 		1: "明天",
 		2: "后天"
 	}
-	for (let i = 0; i < 7; i++) {
+	for (let i = 0; i < 30; i++) {
 		const timeObj = {}
 		timeObj.date = timeStamp(now + timeStr * i).date //保存日期
 		timeObj.timeStamp = now + timeStr * i //保存时间戳

+ 0 - 2
components/views/diyfields/diyfields.vue

@@ -269,11 +269,9 @@
 							_this.registerfield[key].fieldsvalue = {
 								region_name: res.name,
 								address: res.address,
-
 								province_name: apires.data.province_name,
 								city_name: apires.data.city_name,
 								district_name: apires.data.district_name || '',
-
 								latitude: res.latitude,
 								longitude: res.longitude,
 							};

+ 6 - 6
components/views/diyitem/goods.vue

@@ -30,11 +30,11 @@
 										<view class="tui-goodli-price">
 											<text class="tui-goodli-present">
 												<text class="f-24">¥</text>{{ dataItem.price}}
-												<block v-if="dataItem.ptype==2">
+												<block v-if="dataItem.ptype==2 && dataItem.quantity_unit">
 													<text v-if="dataItem.time_amount > 0"
 														class="f-24">/{{dataItem.time_amount}}{{dataItem.quantity_unit}}</text>
-													<text v-else class="f-24">/<text
-															v-if="dataItem.is_times">{{dataItem.timesmum}}</text>次</text>
+													<text v-else class="f-24"><text
+															v-if="dataItem.is_times && dataItem.timesmum">/{{dataItem.timesmum}}</text>{{dataItem.quantity_unit}}</text>
 												</block>
 											</text>
 											<text v-if="dataItem.original_price > 0" class="tui-factory-price">¥{{ dataItem.original_price
@@ -77,11 +77,11 @@
 													dataItem.pay_points }}</text>
 												<text v-if="dataItem.is_points_goods != 1"><text class="f-24">¥</text>{{
 													dataItem.price }}
-													<block v-if="dataItem.ptype==2">
+													<block v-if="dataItem.ptype==2 && dataItem.quantity_unit">
 														<text v-if="dataItem.time_amount > 0"
 															class="f-24">/{{dataItem.time_amount}}{{dataItem.quantity_unit}}</text>
-														<text v-else class="f-24">/<text
-																v-if="dataItem.is_times">{{dataItem.timesmum}}</text>次</text>
+														<text v-else class="f-24"><text
+																v-if="dataItem.is_times && dataItem.timesmum">/{{dataItem.timesmum}}</text>{{dataItem.quantity_unit}}</text>
 													</block>
 												</text><text v-if="dataItem.original_price > 0"
 													class="tui-factory-price">¥{{

+ 189 - 0
components/views/diyitem/goodscard.vue

@@ -0,0 +1,189 @@
+<template>
+	<view class="tui-product-box">
+		<view class="tui-block__box" :style="diyitem.base.bgstyle">
+			<view v-if="diyitem.title.title.show" class="group-name-box">
+				<view class="tui-group-name">
+					<view class="tui-seckill__box">
+						<text>{{ diyitem.title.title.txt }}</text>
+					</view>
+					<view v-if="diyitem.title.more.show" class="tui-more__box" @tap="seckill">
+						<text>{{ diyitem.title.more.txt }}</text>
+						<tui-icon name="arrowright" :size="36" unit="rpx" color="#999"></tui-icon>
+					</view>
+				</view>
+			</view>
+			<view v-if="diyitem.list.length > 0" class="tui-group-list">
+				<view class="diy-goods">
+					<view :class="'goods-list display__' + diyitem.base.display + ' column__' + diyitem.base.column">
+						<scroll-view :scroll-x="diyitem.base.display === 'slide' ? true : false">
+							<block v-for="(dataItem, index) in diyitem.list" :key="index">
+								<view class="goods-item">
+									<navigator hover-class="none"
+										:url="'/pages/goodsDetail/goodsDetail?id=' + dataItem.id">
+										<view class="goods-image">
+											<image :style="diyitem.base.widthheight ? diyitem.base.widthheight : ''"
+												:src="dataItem.image"></image>
+										</view>
+										<view class="detail">
+											<view v-if="diyitem.base.text.show > 0"
+												class="goods-name twolist-hidden f-28">
+												{{ dataItem.goods_name }}
+											</view>
+											<view v-if="diyitem.base.sjg" class="goods-price col-m">
+												<text v-if="dataItem.is_points_goods == 1">{{lang.points}}:{{
+													dataItem.pay_points }}</text>
+												<text v-if="dataItem.is_points_goods != 1"><text class="f-24">¥</text>{{
+													dataItem.price }}
+													<block v-if="dataItem.ptype==2 && dataItem.quantity_unit">
+														<text v-if="dataItem.time_amount > 0"
+															class="f-24">/{{dataItem.time_amount}}{{dataItem.quantity_unit}}</text>
+														<text v-else class="f-24"><text
+																v-if="dataItem.is_times && dataItem.timesmum">/{{dataItem.timesmum}}</text>{{dataItem.quantity_unit}}</text>
+													</block>
+												</text>
+												<text v-if="dataItem.minimum > 1"
+													style="color:#999;font-size:24rpx;">起售量
+													{{ dataItem.minimum }}</text>
+											</view>
+										</view>
+									</navigator>
+								</view>
+							</block>
+						</scroll-view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'miaosha',
+		props: {
+			diyitem: {
+				type: Object,
+				default () {
+					return {};
+				}
+			},
+			pagestyleconfig: {
+				type: Object,
+				default () {
+					return {};
+				}
+			}
+		},
+		computed: {
+
+		},
+		data() {
+			return {
+				lang: {}
+			};
+		},
+		mounted() {
+			let _this = this
+			_this.$request.get('Lang.getlang').then(res => {
+				if (res.errno == 0) {
+					_this.lang = res.data;
+				}
+			});
+		},
+		methods: {
+			navigateTo: function(e) {
+				this.sam.diynavigateTo(e)
+			},
+			seckill() {
+				let url = '/pages/seckillList/seckillList';
+				this.tui.href(url);
+			},
+		}
+	};
+</script>
+<style>
+	@import './diyapge.css';
+	.tui-product-box {
+		margin-top: 20rpx;
+		padding: 0 25rpx;
+		box-sizing: border-box;
+	}
+	.tui-block__box {
+		width: 100%;
+		box-sizing: border-box;
+		background-color: #ffffff;
+		border-radius: 20rpx;
+		overflow: hidden;
+	}
+	.group-name-box {
+		padding-left: 25rpx;
+		padding-right: 25rpx;
+	}
+	.tui-seckill__box {
+		display: flex;
+		align-items: center;
+	}	
+	.tui-seckill__img {
+		width: 40rpx;
+	}
+	.tui-countdown__box {
+		width: 228rpx;
+		display: flex;
+		align-items: center;
+	
+		color: #fff;
+		background-color: #fff;
+		font-weight: 400;
+		height: 40rpx;
+		border-radius: 30px;
+		overflow: hidden;
+		margin-left: 25rpx;
+	}
+	
+	.tui-countdown__title {
+		width: 100rpx;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		flex-shrink: 0;
+		font-size: 24rpx;
+		line-height: 24rpx;
+	}
+	.tui-countdown__title {
+		width: 100rpx;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		flex-shrink: 0;
+		font-size: 24rpx;
+		line-height: 24rpx;
+	}
+	
+	.tui-flex__center {
+		flex: 1;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+	.tui-more__box {
+		display: flex;
+		align-items: center;
+		font-weight: 400;
+		color: #999;
+	}
+	
+	.tui-more__box text {
+		font-size: 24rpx;
+		line-height: 24rpx;
+	}
+	
+	.tui-group-list {
+		padding-left: 10rpx;
+		padding-right: 10rpx;
+		justify-content: space-between;
+		box-sizing: border-box;
+		/* padding-top: 20rpx; */
+	}
+</style>

+ 3 - 3
components/views/diyitem/miaosha.vue

@@ -46,11 +46,11 @@
 													dataItem.pay_points }}</text>
 												<text v-if="dataItem.is_points_goods != 1"><text class="f-24">¥</text>{{
 													dataItem.price }}
-													<block v-if="dataItem.ptype==2">
+													<block v-if="dataItem.ptype==2 && dataItem.quantity_unit">
 														<text v-if="dataItem.time_amount > 0"
 															class="f-24">/{{dataItem.time_amount}}{{dataItem.quantity_unit}}</text>
-														<text v-else class="f-24">/<text
-																v-if="dataItem.is_times">{{dataItem.timesmum}}</text>次</text>
+														<text v-else class="f-24"><text
+																v-if="dataItem.is_times && dataItem.timesmum">/{{dataItem.timesmum}}</text>{{dataItem.quantity_unit}}</text>
 													</block>
 												</text>
 												<text v-if="dataItem.minimum > 1"

+ 80 - 0
components/views/diyitem/store.vue

@@ -0,0 +1,80 @@
+<template>
+	<view class="tui-product-box">
+		<view class="tui-block__box" :style="diyitem.base.bgstyle">
+			<view v-if="diyitem.title.title.show" class="group-name-box">
+				<view class="tui-group-name">
+					<view>
+						<text>{{ diyitem.title.title.txt }}</text>
+					</view>
+					<view v-if="diyitem.title.more.show" class="tui-more__box" @tap="gotostore">
+						<text>{{ diyitem.title.more.txt }}</text>
+						<tui-icon name="arrowright" :size="36" unit="rpx" color="#999"></tui-icon>
+					</view>
+				</view>
+			</view>
+			<view v-if="diyitem.list.length > 0" class="tui-product-list">
+				<view class="diy-goods" :style="diyitem.base.bgstyle">
+					<view :class="'goods-list display__' + diyitem.base.display + ' column__' + diyitem.base.column">
+						<scroll-view :scroll-x="diyitem.base.display === 'slide' ? true : false">
+							<block v-for="(dataItem, index) in diyitem.list" :key="index">
+								<view v-if="dataItem.id" class="goods-item">
+									<navigator hover-class="none"
+										:url="dataItem.id > 0 ? '/pages/store_details/store_details?id=' + dataItem.id : ''">
+										<view class="goods-image">
+											<image :style="diyitem.base.widthheight ? diyitem.base.widthheight : ''"
+												:src="dataItem.store_logo || '/static/images/default_img.png'">
+											</image>
+										</view>
+										<view class="technicaldetail">
+											<view class="goods-name twolist-hidden f-28">
+												{{ dataItem.title }}
+											</view>
+										</view>
+									</navigator>
+								</view>
+							</block>
+						</scroll-view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'store',
+		props: {
+			diyitem: {
+				type: Object,
+				default () {
+					return {};
+				}
+			},
+			pagestyleconfig: {
+				type: Object,
+				default () {
+					return {};
+				}
+			}
+		},
+		computed: {
+
+		},
+		data() {
+			return {};
+		},
+		methods: {
+			navigateTo: function(e) {
+				this.sam.diynavigateTo(e)
+			},
+			gotostore() {
+				let url = '/pages/store_list/store_list?from=bottom';
+				this.tui.href(url);
+			},
+		}
+	};
+</script>
+<style>
+	@import './diyapge.css';
+</style>

+ 3 - 3
components/views/diyitem/tuan.vue

@@ -37,11 +37,11 @@
 												<text v-if="dataItem.is_points_goods != 1"><text
 														class="f-24">¥</text>{{
 													dataItem.price }}
-													<block v-if="dataItem.ptype==2">
+													<block v-if="dataItem.ptype==2 && dataItem.quantity_unit">
 														<text v-if="dataItem.time_amount > 0"
 															class="f-24">/{{dataItem.time_amount}}{{dataItem.quantity_unit}}</text>
-														<text v-else class="f-24">/<text
-																v-if="dataItem.is_times">{{dataItem.timesmum}}</text>次</text>
+														<text v-else class="f-24"><text
+																v-if="dataItem.is_times && dataItem.timesmum">/{{dataItem.timesmum}}</text>{{dataItem.quantity_unit}}</text>
 													</block>
 												</text>
 											</view>

+ 4 - 2
components/views/t-select-coupons/t-select-coupons.vue

@@ -29,8 +29,10 @@
 								<view class="tui-coupon-item-right">
 									<view class="tui-coupon-content">
 										<view class="tui-coupon-title-box">
-											<view class="tui-coupon-btn">全场券</view>
-											<view class="tui-coupon-title">{{item.name}}</view>
+											<view v-if="item.sid==0" class="tui-coupon-btn" :class="{'tui-bg-grey':i>0}">全场券</view>
+											<view v-if="item.use_goods==0" class="tui-coupon-title">全部商品可用</view>
+											<view v-if="item.use_goods==1" class="tui-coupon-title">{{item.cat_ids_name}}类目可用</view>
+											<view v-if="item.use_goods==2" class="tui-coupon-title">{{item.goods_ids_name}}可用</view>
 										</view>
 										<view class="tui-coupon-rule">
 											<view class="tui-rule-box tui-padding-btm">

+ 404 - 0
components/views/t-select-goodsgiftcard/t-select-goodsgiftcard.vue

@@ -0,0 +1,404 @@
+<template>
+	<view>
+		<tui-bottom-popup :show="show" @close="close">
+			<view class="tui-goodsgiftcard__box">
+				<view class="tui-goodsgiftcard__title">
+					<text>购物卡</text>
+					<view class="tui-icon-close" @tap="close">
+						<tui-icon name="shut" :size="22" color="#BFBFBF"></tui-icon>
+					</view>
+				</view>
+				<scroll-view scroll-y class="tui-goodsgiftcard__list">
+					<radio-group @change="radioChange">
+						<label class="tui-not-used  tui-top20">
+							<text>不使用购物卡</text>
+							<radio value="-1" class="tui-goodsgiftcard-radio" color="#e41f19" />
+						</label>
+						<view class="tui-bankcard__list tui-top20">
+							<view class="tui-bankcard__item"  @click="Change(index)" :class="'cardbg'+item.styleno" v-for="(item,index) in dataList"
+								:key="index">
+								<view class="tui-card__info">
+										<view class="tui-logo__box">
+											<radio :value="index" class="tui-goodsgiftcard-radio" color="#e41f19" :checked="selIndex==index" />
+										</view>
+										<view class="tui-name__box">
+											<view class="tui-name">{{item.name}}</view>
+											<view class="tui-desc">余额:{{item.balance}}</view>
+											</view>
+										</view>
+								</view>
+							</view>
+					</radio-group>
+					<view class="tui-seat__box tui-top20"></view>
+				</scroll-view>
+				<view class="tui-btn-pay">
+					<tui-button height="88rpx" type="danger" shape="circle" shadow @click="btnConfirm">确定</tui-button>
+				</view>
+			</view>
+		</tui-bottom-popup>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'tSelectgoodsgiftcard',
+		props: {
+			dataList: {
+				type: Array,
+				default () {
+					return [{}, {}, {}, {}, {}];
+				}
+			},
+			//控制显示
+			show: {
+				type: Boolean,
+				default: false
+			},
+			page: {
+				type: Number,
+				default: 1
+			}
+		},
+		data() {
+			return {
+				selIndex:'-1'
+			};
+		},
+		methods: {
+			btnConfirm() {
+				this.$emit("ChangeGoodsgiftcard", {selIndex:this.selIndex})
+			},
+			radioChange(e) {				
+				this.selIndex = e.target.value					  
+			},
+			Change(e) {
+				this.selIndex = e				  
+			},
+			close() {
+				this.$emit("close", {})
+			},
+			
+		}
+	};
+</script>
+
+<style scoped>
+	.tui-goodsgiftcard__box {
+		width: 100%;
+	}
+
+	.tui-goodsgiftcard__title {
+		width: 100%;
+		padding: 40rpx 30rpx;
+		box-sizing: border-box;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		position: relative;
+	}
+
+	.tui-icon-close {
+		position: absolute;
+		right: 30rpx;
+		top: 50%;
+		transform: translateY(-50%);
+	}
+
+	.tui-goodsgiftcard__list {
+		width: 100%;
+		height: 640rpx;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		background-color: #FAFAFA;
+	}
+	.tui-not-used{
+		width: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		font-size: 28rpx;
+		color: #333333;
+		background-color: #fff;
+		padding:20rpx 30rpx;
+		box-sizing: border-box;
+		border-radius:6rpx;
+	}
+
+	.tui-goodsgiftcard-item {
+		width: 100%;
+		height: 210rpx;
+		position: relative;
+		display: flex;
+		align-items: center;
+		padding-right: 30rpx;
+		box-sizing: border-box;
+		overflow: hidden;
+	}
+
+	.tui-goodsgiftcard-bg {
+		width: 100%;
+		height: 210rpx;
+		position: absolute;
+		left: 0;
+		top: 0;
+		z-index: 1;
+	}
+
+	.tui-goodsgiftcard-sign {
+		height: 110rpx;
+		width: 110rpx;
+		position: absolute;
+		z-index: 9;
+		top: -30rpx;
+		right: 40rpx;
+	}
+
+	.tui-goodsgiftcard-item-left {
+		width: 218rpx;
+		height: 210rpx;
+		position: relative;
+		z-index: 2;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		flex-direction: column;
+		flex-shrink: 0;
+	}
+
+	.tui-goodsgiftcard-price-box {
+		display: flex;
+		color: #e41f19;
+		align-items: flex-end;
+	}
+
+	.tui-goodsgiftcard-price-sign {
+		font-size: 30rpx;
+	}
+
+	.tui-goodsgiftcard-price {
+		font-size: 70rpx;
+		line-height: 68rpx;
+		font-weight: bold;
+	}
+
+	.tui-price-small {
+		font-size: 58rpx !important;
+		line-height: 56rpx !important;
+	}
+
+	.tui-goodsgiftcard-intro {
+		background: #f7f7f7;
+		padding: 8rpx 10rpx;
+		font-size: 26rpx;
+		line-height: 26rpx;
+		font-weight: 400;
+		color: #666;
+		margin-top: 18rpx;
+	}
+
+	.tui-goodsgiftcard-item-right {
+		flex: 1;
+		height: 210rpx;
+		position: relative;
+		z-index: 2;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		padding-left: 24rpx;
+		box-sizing: border-box;
+		overflow: hidden;
+	}
+
+	.tui-goodsgiftcard-content {
+		width: 82%;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+	}
+
+	.tui-goodsgiftcard-title-box {
+		display: flex;
+		align-items: center;
+	}
+
+	.tui-goodsgiftcard-btn {
+		padding: 6rpx;
+		background: #ffebeb;
+		color: #e41f19;
+		font-size: 25rpx;
+		line-height: 25rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		transform: scale(0.9);
+		transform-origin: 0 center;
+		border-radius: 4rpx;
+		flex-shrink: 0;
+	}
+
+	.tui-goodsgiftcard-title {
+		width: 100%;
+		font-size: 26rpx;
+		color: #333;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
+	}
+
+	.tui-goodsgiftcard-rule {
+		padding-top: 52rpx;
+	}
+
+	.tui-rule-box {
+		display: flex;
+		align-items: center;
+		transform: scale(0.8);
+		transform-origin: 0 100%;
+	}
+
+	.tui-padding-btm {
+		padding-bottom: 6rpx;
+	}
+
+	.tui-goodsgiftcard-circle {
+		width: 8rpx;
+		height: 8rpx;
+		background: rgb(160, 160, 160);
+		border-radius: 50%;
+	}
+
+	.tui-goodsgiftcard-text {
+		font-size: 28rpx;
+		line-height: 28rpx;
+		font-weight: 400;
+		color: #666;
+		padding-left: 8rpx;
+		white-space: nowrap;
+	}
+
+	.tui-top20 {
+		margin-top: 20rpx;
+	}
+
+	.tui-goodsgiftcard-title {
+		font-size: 28rpx;
+		line-height: 28rpx;
+	}
+
+	.tui-goodsgiftcard-radio {
+		transform: scale(0.7);
+		transform-origin: 100% center;
+	}
+
+	/* #ifdef APP-PLUS || MP */
+	.wx-radio-input {
+		margin-right: 0 !important;
+	}
+
+	/* #endif */
+
+	/* #ifdef H5 */
+	>>>uni-radio .uni-radio-input {
+		margin-right: 0 !important;
+	}
+
+	/* #endif */
+	.tui-seat__box {
+		width: 100%;
+		height: 1rpx;
+	}
+
+	.tui-btn-pay {
+		width: 100%;
+		padding: 20rpx 60rpx 40rpx;
+		box-sizing: border-box;
+	}
+	
+	.tui-bankcard__item {
+		width: 100%;
+		height: 240rpx;
+		padding: 30rpx;
+		box-sizing: border-box;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+	}
+	
+	.tui-logo__box {
+		width: 80rpx;
+		height: 80rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin-right: 20rpx;
+	}
+	
+	.tui-logo {
+		width: 52rpx;
+		height: 52rpx;
+	}
+	
+	.tui-card__info {
+		display: flex;
+		align-items: center;
+		color: #fff;
+	}
+	
+	.tui-name {
+		font-size: 30rpx;
+		font-weight: 500;
+	}
+	
+	.tui-desc {
+		font-size: 24rpx;
+		opacity: 0.7;
+	}
+	
+	.tui-card__no {
+		margin-left: auto;
+	}
+	
+	.cardbg0 {
+		background: linear-gradient(to right, #FEAD4B, #FF9225);
+	}
+	.cardbg1 {
+		background: linear-gradient(to right, #2C85D5, #2D66D1);
+	}
+	.cardbg2 {
+		background: linear-gradient(to right, #2C87D6, #2D69D0);
+	}
+	.cardbg3 {
+		background: linear-gradient(to right, #01ADA3, #0291A9);
+	}
+	
+	.cardbg4 {
+		background: linear-gradient(to right, #FF6F64, #FE5762);
+	}
+	
+	.cardbg5 {
+		background: linear-gradient(to right, #FF7065, #FD4754);
+	}
+	
+	.tui-ping_an {
+		background: linear-gradient(to right, #FEAD4B, #FF9225);
+	}
+	
+	.tui-jian_she {
+		background: linear-gradient(to right, #2C85D5, #2D66D1);
+	}
+	
+	.tui-min_sheng {
+		background: linear-gradient(to right, #2C87D6, #2D69D0);
+	}
+	
+	.tui-nong_ye {
+		background: linear-gradient(to right, #01ADA3, #0291A9);
+	}
+	
+	.tui-zhao_shang {
+		background: linear-gradient(to right, #FF6F64, #FE5762);
+	}
+	
+	.tui-zhong_xin {
+		background: linear-gradient(to right, #FF7065, #FD4754);
+	}
+</style>

+ 0 - 1
main.js

@@ -25,7 +25,6 @@ Vue.prototype.$module = App.module
 Vue.prototype.$version2 = xm + App.version2
 Vue.prototype.$version3 = xm + App.version3
 
-
 App.mpType = 'app'
 App.util = util
 App.siteInfo = siteInfo

+ 6 - 12
manifest.json

@@ -19,7 +19,6 @@
         /* 模块配置 */
         "modules" : {
             "Payment" : {},
-            "Maps" : {},
             "VideoPlayer" : {}
         },
         /* 应用发布信息 */
@@ -65,19 +64,14 @@
                         "__platform__" : [ "ios", "android" ]
                     }
                 },
-                "maps" : {
-                    "amap" : {
-                        "appkey_ios" : "b8b98e8147cca3ce628ea45c5cc7c7d4",
-                        "appkey_android" : "b8b98e8147cca3ce628ea45c5cc7c7d5"
-                    }
-                }
+                "maps" : {}
             },
             "icons" : {
                 "android" : {
-                    "hdpi" : "",
-                    "xhdpi" : "",
-                    "xxhdpi" : "",
-                    "xxxhdpi" : ""
+                    "hdpi" : "static/logo.png",
+                    "xhdpi" : "static/logo.png",
+                    "xxhdpi" : "static/logo.png",
+                    "xxxhdpi" : "static/logo.png"
                 }
             }
         }
@@ -129,7 +123,7 @@
         "sdkConfigs" : {
             "maps" : {
                 "qqmap" : {
-                    "key" : "6CNBZ-UQZKG-ML2QR-Q4KYL-LJEBQ-B6FTT"
+                    "key" : "W4WBZ-TUD65-IDAIR-QPM36-HMFQ5-CGBZP"
                 }
             }
         },

+ 14 - 1
pages.json

@@ -762,7 +762,7 @@
 			}, {
 				"path": "my/myOrder/myTimes",
 				"style": {
-					"navigationBarTitleText": "我的卡",
+					"navigationBarTitleText": "我的卡",
 					"enablePullDownRefresh": true,
 					"onReachBottomDistance": 50,
 					"app-plus": {
@@ -1681,6 +1681,19 @@
 						"titleNView": false
 					}
 				}
+			}, {
+				"path": "my/myCard/myCard",
+				"style": {
+					"navigationBarTitleText": "我的卡",
+					"enablePullDownRefresh": true,
+					"onReachBottomDistance": 50,
+					"app-plus": {
+						"bounce": "vertical"
+					},
+					"h5": {
+						"titleNView": false
+					}
+				}
 			}, {
 				"path": "my/admintuanzhang/index",
 				"style": {

+ 1 - 1
pages/bargain/bargain_process.vue

@@ -479,7 +479,7 @@
 <style lang="scss">
     .bargain-process-container {
         .bargain-process-header {
-            background-image: url(../../static/images/bg_hometop.png);
+            background-image: url(https://daopic.samcms.com/xm_static/images/bg_hometop.png);
             height: 420rpx;
             background-size: 100% 100%;
             padding-top: 30rpx;

+ 9 - 13
pages/category/category.vue

@@ -11,7 +11,7 @@
 			:style="{ height: height + 'px', top: top + 'px' }">
 			<view :id="`id_${index}`" v-for="(item, index) in Category" :key="item.id" class="tab-bar-item"
 				:class="[currentTab == index ? 'active' : '']" :data-current="index"
-				@tap.stop="swichNav(item.id,index)">
+				@tap="swichNav(item.id,index)">
 				<text>{{ item.title }}</text>
 			</view>
 		</scroll-view>
@@ -34,14 +34,10 @@
 								<view class="goods-info">
 									<text>{{goods.name}}</text>
 									<text class="price" style="color:red;"><text class="f-24">¥</text>{{goods.price}}
-										<block v-if="goods.ptype==2">
-											<block v-if="goods.is_times == 0">
-												<text v-if="goods.time_amount > 0"
-													class="f-24">/{{goods.time_amount}}{{goods.quantity_unit}}</text>
-												<text v-if="goods.time_amount == 0"
-													class="f-24">/{{goods.quantity_unit}}</text>
-											</block>
-											<text v-if="goods.is_times == 1" class="f-24">
+										<block v-if="goods.ptype==2 && goods.quantity_unit">
+											<text v-if="goods.time_amount > 0"
+												class="f-24">/{{goods.time_amount}}{{goods.quantity_unit}}</text>
+											<text v-else class="f-24">
 												/<text v-if="goods.is_times">{{goods.timesmum}}</text>
 												次</text>
 										</block>
@@ -66,17 +62,17 @@
 					<block v-if="categorystyle==3">
 						<view class="class-item main-item">
 							<view class="g-container">
-								<view class="g-box" v-for="(goods, i1) in goodsList" :key="i2" @tap.stop="toDetailsTap"
+								<view class="g-box" v-for="(goods, i1) in goodsList" :key="i2"
 									@tap="toDetailsTap" :data-id="goods.id">
 									<image :src="goods.image" class="g-image" mode="widthFix" />
 									<view class="g-title">{{ goods.name }}</view>
 									<view class="price" style="color:red;">
 										<text class="f-24">¥</text>{{goods.price}}
-										<block v-if="goods.ptype==2">
+										<block v-if="goods.ptype==2 && goods.quantity_unit">
 											<text v-if="goods.time_amount > 0"
 												class="f-24">/{{goods.time_amount}}{{goods.quantity_unit}}</text>
-											<text v-else class="f-24">/<text
-													v-if="goods.is_times">{{goods.timesmum}}</text>次</text>
+											<text v-else class="f-24"><text
+													v-if="goods.is_times && goods.timesmum">/{{goods.timesmum}}</text>{{goods.quantity_unit}}</text>
 										</block>
 									</view>
 								</view>

+ 11 - 17
pages/coupon/coupon.vue

@@ -18,8 +18,10 @@
 				<view class="tui-coupon-item-right">
 					<view class="tui-coupon-content">
 						<view class="tui-coupon-title-box">
-							<view class="tui-coupon-btn">全场券</view>
-							<view class="tui-coupon-title">{{item.name}}</view>
+							<view v-if="item.sid==0" class="tui-coupon-btn" :class="{'tui-bg-grey':i>0}">全场券</view>
+							<view v-if="item.use_goods==0" class="tui-coupon-title">全部商品可用</view>
+							<view v-if="item.use_goods==1" class="tui-coupon-title">{{item.cat_ids_name}}类目可用</view>
+							<view v-if="item.use_goods==2" class="tui-coupon-title">{{item.goods_ids_name}}可用</view>
 						</view>
 						<view class="tui-coupon-rule">
 							<view class="tui-rule-box tui-padding-btm">
@@ -267,6 +269,12 @@
 	.tui-coupon-title-box {
 		display: flex;
 		align-items: center;
+		font-size: 28rpx;
+	}
+	.tui-coupon-title {
+		width: 100%;
+		font-size: 26rpx;
+		color: #333;
 	}
 
 	.tui-coupon-btn {
@@ -293,17 +301,8 @@
 		color: #888 !important;
 	}
 
-	.tui-coupon-title {
-		width: 100%;
-		font-size: 26rpx;
-		color: #333;
-		white-space: nowrap;
-		overflow: hidden;
-		text-overflow: ellipsis;
-	}
-
 	.tui-coupon-rule {
-		padding-top: 52rpx;
+		padding-top: 22rpx;
 	}
 
 	.tui-rule-box {
@@ -337,11 +336,6 @@
 		margin-top: 20rpx;
 	}
 
-	.tui-coupon-title {
-		font-size: 28rpx;
-		line-height: 28rpx;
-	}
-
 
 	.tui-coupon-radio {
 		transform: scale(0.7);

+ 22 - 31
pages/goodsDetail/goodsDetail.vue

@@ -29,11 +29,11 @@
 							<view>
 								<text>¥</text>
 								<text class="tuan-price">{{goodsDetail.price}}
-									<block v-if="goodsDetail.ptype==2">
+									<block v-if="goodsDetail.ptype==2 && goodsDetail.quantity_unit">
 										<text v-if="goodsDetail.time_amount > 0"
 											class="f-30">/{{goodsDetail.time_amount}}{{goodsDetail.quantity_unit}}</text>
-										<text v-else class="f-30">/<text
-												v-if="goodsDetail.is_times">{{goodsDetail.timesmum}}</text>次</text>
+										<text v-else class="f-30"><text
+												v-if="goodsDetail.is_times && goodsDetail.timesmum">/{{goodsDetail.timesmum}}</text>{{goodsDetail.quantity_unit}}</text>
 									</block>
 								</text>
 							</view>
@@ -63,16 +63,11 @@
 							<view>
 								<text>¥</text>
 								<text class="tuan-price">{{goodsDetail.price}}
-									<block v-if="goodsDetail.ptype==2">
-										<block v-if="goodsDetail.is_times == 0">
-											<text v-if="goodsDetail.time_amount > 0"
-												class="f-24">/{{goodsDetail.time_amount}}{{goodsDetail.quantity_unit}}</text>
-											<text v-if="goodsDetail.time_amount == 0"
-												class="f-24">/{{goodsDetail.quantity_unit}}1</text>
-										</block>
-										<text v-if="goodsDetail.is_times == 1" class="f-24">
-											/<text v-if="goodsDetail.is_times">{{goodsDetail.timesmum}}</text>
-											次</text>
+									<block v-if="goodsDetail.ptype==2 && goodsDetail.quantity_unit">
+										<text v-if="goodsDetail.time_amount > 0"
+											class="f-30">/{{goodsDetail.time_amount}}{{goodsDetail.quantity_unit}}</text>
+										<text v-else class="f-30"><text
+												v-if="goodsDetail.is_times && goodsDetail.timesmum">/{{goodsDetail.timesmum}}</text>{{goodsDetail.quantity_unit}}</text>
 									</block>
 								</text>
 							</view>
@@ -101,16 +96,11 @@
 							<view v-if="goodsDetail.is_points_goods!=1">
 								<text>¥</text>
 								<text class="tui-price">{{goodsDetail.price}}
-									<block v-if="goodsDetail.ptype==2">
-										<block v-if="goodsDetail.is_times == 0">
-											<text v-if="goodsDetail.time_amount > 0"
-												class="f-24">/{{goodsDetail.time_amount}}{{goodsDetail.quantity_unit}}</text>
-											<text v-if="goodsDetail.time_amount == 0"
-												class="f-24">/{{goodsDetail.quantity_unit}}</text>
-										</block>
-										<text v-if="goodsDetail.is_times == 1" class="f-24">
-											/<text v-if="goodsDetail.is_times">{{goodsDetail.timesmum}}</text>
-											次</text>
+									<block v-if="goodsDetail.ptype==2 && goodsDetail.quantity_unit">
+										<text v-if="goodsDetail.time_amount > 0"
+											class="f-30">/{{goodsDetail.time_amount}}{{goodsDetail.quantity_unit}}</text>
+										<text v-else class="f-30"><text
+												v-if="goodsDetail.is_times && goodsDetail.timesmum">/{{goodsDetail.timesmum}}</text>{{goodsDetail.quantity_unit}}</text>
 									</block>
 								</text>
 								<text v-if="goodsDetail.is_additional==1" class="dingjing">(定金)</text>
@@ -163,7 +153,6 @@
 						<view class="tui-combination-title">套装商品</view>
 					</view>
 				</tui-list-cell>
-
 				<block v-for="(item, index) in goodsDetail.combination" :key="index">
 					<view class="border-flex">
 						<!-- 图片 -->
@@ -179,7 +168,6 @@
 					</view>
 				</block>
 			</view>
-
 			<!--
 			<view class="tui-discount-box tui-radius-all tui-mtop">
 				<view class="tui-list-cell" @tap="coupon">
@@ -257,7 +245,6 @@
 							<view class="tui-group-title">{{tuangoods.TuanFound.length}}人正在拼团,可直接参与</view>
 						</view>
 					</tui-list-cell>
-
 					<!-- :style="{ height: list.length === 1 ? '156rpx' : '312rpx' }" -->
 					<!-- :display-multiple-items="list.length === 1 ? 1 : 2" -->
 					<swiper :indicator-dots="false" :autoplay="true" :interval="5000" :duration="500" :circular="true"
@@ -398,10 +385,7 @@
 							</view>
 						</view>
 					</view>
-
-
 				</view>
-
 			</view>
 			<!--正在拼团中end-->
 			<view v-if="goodscomment && goodscomment.length>0 && goodsDetail.ptype==1"
@@ -494,6 +478,12 @@
 						</tui-button>
 					</view>
 				</view>
+				<view v-if="goodsDetail.is_times>0" class="tui-operation-right tui-right-flex tui-btnbox-4">
+					<view class="tui-flex-1">
+						<tui-button height="68rpx" :size="32" type="warning" shape="circle" @click="buyNow">立即购买
+						</tui-button>
+					</view>
+				</view>
 				<view v-else-if="tuanid>0" class="tuan-operation-right tui-right-flex tui-btnbox-4">
 					<view class="tuan-flex">
 						<button class="itembutton100" @click="tuanfound"
@@ -892,7 +882,8 @@
 			_this.uuid = e.uuid;
 			_this.getgoodscomment(e.id);
 
-			this.current = this.current + '?id=' + e.id + " & reid = " + _this.uid + " & msid =" +_this.msid + "&tuanid=" + _this.tuanid;
+			this.current = this.current + '?id=' + e.id + "&reid=" + _this.uid + "&msid=" + _this.msid + "&tuanid=" +
+				_this.tuanid;
 
 			_this.$request.post('Config.memberislogin', {
 				samkey: (new Date()).valueOf()
@@ -1437,7 +1428,7 @@
 		//发送给朋友
 		onShareAppMessage: function() {
 			let _this = this;
-			//console.log(_this.uid);
+			console.log(_this.current);
 			return {
 				title: _this.goodsDetail.name || "",
 				path: _this.current,

+ 8 - 7
pages/index/index.vue

@@ -74,8 +74,8 @@
 					<richtext v-if="diyitem.type === 'richText'" :diyitem="diyitem" />
 					<!--秒杀-->
 					<miaosha v-if="diyitem.type === 'miaosha'" :diyitem="diyitem" :pagestyleconfig="pagestyleconfig" />
-					<!--会员礼包-->
-					<membergoods v-if="diyitem.type === 'membergoods'" :diyitem="diyitem"
+					<!--购物卡-->
+					<goodscard v-if="diyitem.type === 'goodscard'" :diyitem="diyitem"
 						:pagestyleconfig="pagestyleconfig" />
 					<!--超值拼团-->
 					<tuan v-if="diyitem.type === 'tuan'" :diyitem="diyitem" :pagestyleconfig="pagestyleconfig" />
@@ -83,6 +83,8 @@
 					<goods v-if="diyitem.type === 'goods'" :diyitem="diyitem" :pagestyleconfig="pagestyleconfig" />
 					<!-- 师傅组 -->
 					<technical v-if="diyitem.type === 'technical'" :diyitem="diyitem" />
+					<!-- 商家组 -->
+					<store v-if="diyitem.type === 'store'" :diyitem="diyitem" />
 					<!-- 优惠券组 -->
 					<coupon v-if="diyitem.type === 'coupon'" :diyitem="diyitem" :itemindex="itemindex"
 						@receiveTap="receiveTap" />
@@ -120,8 +122,6 @@
 						</view>
 					</block>
 				</block>
-
-
 			</view>
 		</view>
 		<!--加载loadding-->
@@ -191,7 +191,6 @@
 <script>
 	import uniNoticeBar from "@/components/uni-notice-bar/uni-notice-bar.vue"
 	import PengpaiFadeInOut from "@/components/Pengpai-FadeInOut/Pengpai-FadeInOut.vue"
-
 	import search from '@/components/views/diyitem/search.vue';
 	import navbar from '@/components/views/diyitem/navbar.vue';
 	import imagesingle from '@/components/views/diyitem/imagesingle.vue';
@@ -200,7 +199,7 @@
 	import tuwen from '@/components/views/diyitem/tuwen.vue';
 	import diyvideo from '@/components/views/diyitem/diyvideo.vue';
 	import miaosha from '@/components/views/diyitem/miaosha.vue';
-	import membergoods from '@/components/views/diyitem/membergoods.vue';
+	import goodscard from '@/components/views/diyitem/goodscard.vue';
 	import tuan from '@/components/views/diyitem/tuan.vue';
 	import goods from '@/components/views/diyitem/goods.vue';
 	import notice from '@/components/views/diyitem/notice.vue';
@@ -208,6 +207,7 @@
 	import guide from '@/components/views/diyitem/guide.vue';
 	import richtext from '@/components/views/diyitem/richtext.vue';
 	import technical from '@/components/views/diyitem/technical.vue';
+	import store from '@/components/views/diyitem/store.vue';
 	import coupon from '@/components/views/diyitem/coupon.vue';
 
 	export default {
@@ -222,7 +222,7 @@
 			tuwen,
 			diyvideo,
 			miaosha,
-			membergoods,
+			goodscard,
 			tuan,
 			goods,
 			notice,
@@ -230,6 +230,7 @@
 			guide,
 			richtext,
 			technical,
+			store,
 			coupon
 		},
 		data() {

+ 535 - 153
pages/store_details/store_details.vue

@@ -1,18 +1,21 @@
 <template>
 	<view class="container">
-		<view class="tui-shop__info">
-			<image :src="storeDetail.store_logo" class="tui-logo"></image>
-			<view class="tui-shop__desc">
-				<view class="tui-shop__name">
-					<text>{{storeDetail.title}}</text>
-				</view>
-				<view class="tui-shop__rate" @tap="storeopenLocation">
-					<!--<view class="tui-rate__box"><tui-rate :current="5" :score="0.6" disabled :size="12"></tui-rate></view>-->
-					<view class="tui-shop__address">{{storeDetail.address}}<image src="/static/images/map.png" class="map-img"> </image><text
-							style="color: #fff;">导航到这里</text></view>
+		<view class="tui-header">
+			<view class="tui-shop__info">
+				<image :src="storeDetail.store_logo" class="tui-logo"></image>
+				<view class="tui-shop__desc">
+					<view class="tui-shop__name">
+						<text>{{storeDetail.title}}</text>
+					</view>
+					<view class="tui-shoprate" @tap="storeopenLocation">
+						<!--<view class="tui-rate__box"><tui-rate :current="5" :score="0.6" disabled :size="12"></tui-rate></view>-->
+						<view class="tui-shop__address">{{storeDetail.address}}
+							<image src="/static/images/map.png" class="map-img"> </image><text
+								style="color: #fff;">导航到这里</text>
+						</view>
+					</view>
 				</view>
-			</view>
-			<!--
+				<!--
 			<view class="tui-btn__follow">
 				<tui-button :size="24" width="116rpx" height="48rpx" shape="circle" type="danger">
 					<tui-icon name="like" color="#fff" :size="24" unit="rpx"></tui-icon>
@@ -20,47 +23,75 @@
 				</tui-button>
 				<tui-button :size="24" width="116rpx" height="48rpx" shape="circle" type="white" disabled>已关注</tui-button>
 			</view>-->
+			</view>
+			<tui-tabs @change="change" :currentTab="current" :tabs="tabs" itemWidth="33%" backgroundColor="#5796fd"
+				color="rgba(255,255,255,.7)" selectedColor="#fff" sliderBgColor="#fff" bottom="8rpx" unlined :size="30"
+				:sliderWidth="60"></tui-tabs>
 		</view>
-		<tui-tabs @change="change" :currentTab="current" :tabs="tabs" itemWidth="33%" backgroundColor="#5796fd"
-			color="rgba(255,255,255,.7)" selectedColor="#fff" sliderBgColor="#fff" bottom="8rpx" unlined :size="30"
-			:sliderWidth="60"></tui-tabs>
-		<!--=======推荐 start=======-->
-		<view class="tui-items__1 tui-padding" v-if="current == 0">
-			<block v-if="is_recommendgoods==1">
-				<view class="tui-ranking__header">
-					<view class="tui-ranking__title">平台推荐</view>
-				</view>
-				<view class="tui-ranking__list">
-					<view class="tui-ranking__item" @tap="detail(item.id)" v-for="(item, index) in recommendgoods"
-						v-if="index<3" :key="index">
-						<image :src="item.pic"></image>
-						<view class="tui-ranking__gtitle">{{ item.name }}</view>
-						<view class="tui-sale-price">¥{{ item.price }}</view>
-					</view>
-				</view>
-			</block>
-			
-			<view class="tui-recommend__title">服务/商品</view>
-			<view class="tui-recommend__item" @tap="detail(item.id)" v-for="(item, index) in goodsList" :key="index">
-				<image :src="item.pic" class="tui-rg__img" mode="widthFix"></image>
-				<view class="tui-recommend__right">
-					<view class="tui-rg__title">
-						{{ item.name }}
+
+		<view class="tui-body">
+			<view class="tui-items__1 tui-padding" v-if="current == 0">
+				<!--=======猜你喜欢 start=======-->
+				<block v-if="is_recommendgoods==1 && Category.length<1">
+					<view class="tui-ranking__header">
+						<view class="tui-ranking__title">猜你喜欢</view>
 					</view>
-					<view class="tui-sale-price">¥{{ item.price }}</view>
-					<view v-if="item.sale_count>1" class="tui-rg__interested">
-						<tui-icon name="like" :size="26" unit="rpx" color="#EB0909"></tui-icon>				
-						<text class="tui-interested__num">{{ item.sale_count }}人购买</text>
+					<view class="tui-ranking__list">
+						<view class="tui-ranking__item" @tap="toDetailsTap" v-for="(item, index) in recommendgoods"
+						:data-id="item.id" v-if="index<3" :key="index">
+							<image :src="item.pic"></image>
+							<view class="tui-ranking__gtitle">{{ item.name }}</view>
+							<view class="tui-sale-price">¥{{ item.price }}</view>
+						</view>
 					</view>
-				</view>
+				</block>
+				<!--=======猜你喜欢 end=======-->
+				<block v-if="Category.length>0">
+					<scroll-view scroll-y scroll-with-animation class="tab-view" :scroll-into-view="scrollViewId"
+						:style="{ height: height + 'px', top: top + 'px' }">
+						<view :id="`id_${index}`" v-for="(item, index) in Category" :key="item.id" class="tab-bar-item"
+							:class="[currentTab == index ? 'active' : '']" :data-current="index"
+							@tap="swichNav(item.id,index)">
+							<text>{{ item.title }}</text>
+						</view>
+					</scroll-view>
+					<scroll-view @scrolltolower="tolower" scroll-y class="right-box" :scroll-into-view="floorNum"
+						:style="{ height: height + 'px', top: top + 'px' }" @scroll="mainScroll">
+						<view class="page-view" id="scroll-panel">
+							<view class="class-box">
+								<view class="class-item main-item" :id="'b'+item.id" v-if="Category.length>0"
+									v-for="(item, index) in Category" :key="index">
+									<view class="class-name">{{ item.title }}</view>
+									<view class="g-container">
+										<view class="g-box" v-for="(goods, i1) in item.goodslist" :key="i2"
+											 @tap="toDetailsTap" :data-id="goods.id">
+											<image :src="goods.image" class="g-image" mode="widthFix" />
+											<view class="g-title">{{ goods.name }}</view>
+											<view class="price" style="color:red;">¥{{goods.price}}
+											<block v-if="goods.ptype==2 && goods.quantity_unit">
+												<text v-if="goods.time_amount > 0"
+													class="f-24">/{{goods.time_amount}}{{goods.quantity_unit}}</text>
+												<text v-else class="f-24"><text
+														v-if="goods.is_times && goods.timesmum">/{{goods.timesmum}}</text>{{goods.quantity_unit}}</text>
+											</block>
+											</view>
+											
+										</view>
+									</view>
+								</view>
+								<view class="fill-last" :style="{ 'height':fillHeight + 'px' }"></view>
+							</view>
+						</view>
+						<view :style='"height:"+(height-300)+"rpx;"' v-if="number<15"></view>
+					</scroll-view>
+				</block>
 			</view>
-		</view>
-		<!--=======推荐 end=======-->
-		<!--=======活动 start=======-->
-		<view class="tui-items__3 tui-padding" v-if="current == 1">
-			<view class="tui-activity__box">
-				<view class="tui-activity__title">用户评价</view>
-				<!-- 
+
+			<!--=======用户评价 start=======-->
+			<view class="tui-items__3 tui-padding" v-if="current == 1">
+				<view class="tui-activity__box">
+					<view class="tui-activity__title">用户评价</view>
+					<!-- 
 				<view class="tui-activity__item" @tap="detail" v-for="(item, index) in 12" :key="index">
 					<image :src="`/static/images/product/${index % 2 == 0 ? 4 : 3}.jpg`"></image>
 					<view class="tui-activity__right">
@@ -81,84 +112,83 @@
 						</view>
 					</view>
 				</view>-->
+				</view>
 			</view>
-		</view>
-		<!--=======活动 end=======-->
-		<!--=======新品 start=======-->
-		<view class="tui-items__4" v-if="current == 2">
-			<view class="tui-score__bg"></view>
-			<view class="tui-info__box">
-				<view class="tui-score__box tui-common__box">
-					<view class="tui-flex__center">
-						<text>店铺星级</text>
-						<view class="tui-rate__box">
-							<tui-rate :current="5" :score="0.6" disabled :size="12"></tui-rate>
+			<!--=======用户评价 end=======-->
+			<!--=======店铺 start=======-->
+			<view class="tui-items__4" v-if="current == 2">
+				<view class="tui-score__bg"></view>
+				<view class="tui-info__box">
+					<view class="tui-score__box tui-common__box">
+						<view class="tui-flex__center">
+							<text>店铺星级</text>
+							<view class="tui-rate__box">
+								<tui-rate :current="5" :score="0.6" disabled :size="12"></tui-rate>
+							</view>
 						</view>
-					</view>
-					<view class="tui-flex__center">
-						<text>用户评价</text>
-						<view class="tui-score tui-color__red">
-							<text>9.90分</text>
-							<text>高</text>
+						<view class="tui-flex__center">
+							<text>用户评价</text>
+							<view class="tui-score tui-color__red">
+								<text>9.90分</text>
+								<text>高</text>
+							</view>
 						</view>
-					</view>
-					<view class="tui-flex__center">
-						<text>专业程度</text>
-						<view class="tui-score tui-color__red">
-							<text>9.99分</text>
-							<text>高</text>
+						<view class="tui-flex__center">
+							<text>专业程度</text>
+							<view class="tui-score tui-color__red">
+								<text>9.99分</text>
+								<text>高</text>
+							</view>
 						</view>
-					</view>
-					<view class="tui-flex__center">
-						<text>服务态度</text>
-						<view class="tui-score tui-color__green">
-							<text>8.95分</text>
-							<text>低</text>
+						<view class="tui-flex__center">
+							<text>服务态度</text>
+							<view class="tui-score tui-color__green">
+								<text>8.95分</text>
+								<text>低</text>
+							</view>
 						</view>
 					</view>
-				</view>
-				<view class="tui-common__box tui-top__20">
-					<!--<tui-list-cell arrow>证照信息</tui-list-cell>-->
-					<tui-list-cell arrow unlined @click="qrcode">店铺二维码</tui-list-cell>
-				</view>
-				<view class="tui-common__box tui-top__20">
-					<tui-list-cell :hover="false">
-						<view class="tui-flex">
-							<text class="tui-text__shrink">店铺简介</text>
-							<text class="tui-sub__info">{{storeDetail.content}}</text>
-						</view>
-					</tui-list-cell>
-					<tui-list-cell :hover="false">
-						<view class="tui-flex">
-							<text class="tui-text__shrink">地址</text>
-							<text class="tui-sub__info">{{storeDetail.province_name}}{{storeDetail.city_name}}{{storeDetail.district_name}}<br />{{storeDetail.address}}</text>
-						</view>
-					</tui-list-cell>
-					<tui-list-cell :hover="false" unlined>
-						<view class="tui-flex">
-							<text class="tui-text__shrink">开店时间</text>
-							<text class="tui-sub__info">{{storeDetail.create_time}}</text>
-						</view>
-					</tui-list-cell>
+					<view class="tui-common__box tui-top__20">
+						<!--<tui-list-cell arrow>证照信息</tui-list-cell>-->
+						<tui-list-cell arrow unlined @click="qrcode">店铺二维码</tui-list-cell>
+					</view>
+					<view class="tui-common__box tui-top__20">
+						<tui-list-cell :hover="false">
+							<view class="tui-flex">
+								<text class="tui-text__shrink">店铺简介</text>
+								<text class="tui-sub__info">{{storeDetail.content}}</text>
+							</view>
+						</tui-list-cell>
+						<tui-list-cell :hover="false">
+							<view class="tui-flex">
+								<text class="tui-text__shrink">地址</text>
+								<text
+									class="tui-sub__info">{{storeDetail.province_name}}{{storeDetail.city_name}}{{storeDetail.district_name}}<br />{{storeDetail.address}}</text>
+							</view>
+						</tui-list-cell>
+						<tui-list-cell :hover="false" unlined>
+							<view class="tui-flex">
+								<text class="tui-text__shrink">开店时间</text>
+								<text class="tui-sub__info">{{storeDetail.create_time}}</text>
+							</view>
+						</tui-list-cell>
+					</view>
 				</view>
 			</view>
-
-
-
+			<!--=======店铺 end=======-->
+			<!--=======二维码 start=======-->
+			<tui-modal custom :show="modalShow" backgroundColor="transparent" padding="0" @cancel="hideModal">
+				<view class="tui-poster__box" :style="{marginTop:height+'px'}">
+					<image src="/static/images/mall/icon_popup_closed.png" class="tui-close__img" @tap.stop="hideModal">
+					</image>
+					<image :src="qrcodeImg" v-if="qrcodeImg" class="tui-poster__img"></image>
+					<tui-button type="danger" width="460rpx" height="80rpx" shape="circle" @click="savePic">保存图片
+					</tui-button>
+					<view class="tui-share__tips">保存二维图片到手机相册后,分享到您的圈子</view>
+				</view>
+			</tui-modal>
+			<!--=======二维码 end=======-->
 		</view>
-		<!--=======新品 end=======-->
-		<!--=======二维码 start=======-->
-		<tui-modal custom :show="modalShow" backgroundColor="transparent" padding="0" @cancel="hideModal">
-			<view class="tui-poster__box" :style="{marginTop:height+'px'}">
-				<image src="/static/images/mall/icon_popup_closed.png" class="tui-close__img" @tap.stop="hideModal">
-				</image>
-				<image :src="qrcodeImg" v-if="qrcodeImg" class="tui-poster__img"></image>
-				<tui-button type="danger" width="460rpx" height="80rpx" shape="circle" @click="savePic">保存图片
-				</tui-button>
-				<view class="tui-share__tips">保存二维图片到手机相册后,分享到您的圈子</view>
-			</view>
-		</tui-modal>
-		<!--=======二维码 end=======-->
 	</view>
 </template>
 
@@ -168,8 +198,6 @@
 		data() {
 			return {
 				uid: '',
-				width: 350,
-				height: 64,
 				modalShow: false,
 				qrcodeImg: '',
 				statusBarHeight: 20,
@@ -183,17 +211,39 @@
 						name: '商家简介'
 					}
 				],
-				is_recommendgoods:'',
+				is_recommendgoods: '',
 				storeDetail: {},
 				current: 0,
 				recommendgoods: [],
 				rankingTab: 0,
-				goodsList: []
+				scrollViewId: "id_0",
+				height: 0, //scroll-view高度
+				top: 0,
+				Category: [],
+				currentTab: 0, //预设当前项的值
+				floorNum: '',
+				number: "",
+				scrollViewId: "id_0",
+				scrollHeight: 400,
+				scrollTopSize: 0,
+				fillHeight: 0, // 填充高度,用于最后一项低于滚动区域时使用
+				topArr: [], // 左侧列表元素
 			};
 		},
 		onLoad: function(e) {
 			const _this = this;
-			
+			setTimeout(() => {
+				uni.getSystemInfo({
+					success: res => {
+						let header = 182;
+						let top = 0;
+						console.log(res.windowHeight);
+						this.height = res.windowHeight - uni.upx2px(header);
+						this.top = top + uni.upx2px(header);
+					}
+				});
+			}, 50);
+
 			if (e && e.scene) {
 				const scene = decodeURIComponent(e.scene) // 处理扫码进商品详情页面的逻辑
 				if (scene) {
@@ -203,7 +253,7 @@
 					}
 				}
 			}
-			
+
 			if (e.reid) {
 				uni.setStorageSync('reid', e.reid)
 			}
@@ -222,28 +272,24 @@
 					}
 				}
 			});
+			this.getCategoryall(e.id);
 			this.getStoreDetail(e.id);
+
 			_this.$request.get('Goods.recommend').then(res => {
 				if (res.errno == 0) {
 					_this.recommendgoods = res.data;
 				}
 			});
-			_this.$request.post('Goods.index',{sid:e.id}).then(res => {
-				if (res.errno == 0) {
-					_this.goodsList = res.data.data;
-				}
-			});
-
 		},
 		methods: {
 			getStoreDetail(sId) {
 				const _this = this;
 				_this.$request.get('store.detail', {
-		 		id: sId
+					id: sId
 				}).then(res => {
 					if (res.errno == 0) {
 						_this.storeDetail = res.data
-						if(_this.storeDetail.storeconfig){
+						if (_this.storeDetail.storeconfig) {
 							_this.is_recommendgoods = _this.storeDetail.storeconfig.is_recommendgoods
 						}
 					}
@@ -261,7 +307,24 @@
 						console.log('fail');
 					}
 				})
-			
+
+			},
+			getCategoryall: function(sId) {
+				let _this = this;
+				this.$request.get('store.goodslist', {
+					sid: sId,
+					showLoading: true
+				}).then(res => {
+					if (res.errno == 0) {
+						_this.Category = res.data;
+						_this.categoryId = _this.Category[0].id;
+						setTimeout(function() {
+							_this.infoScroll();
+							_this.getElementTop();
+						}, 500)
+						console.info("services---request---getsonList--右侧二级三级分类成功")
+					}
+				})
 			},
 			initHeader(e) {
 				this.width = Number(e.left);
@@ -275,6 +338,11 @@
 			detail(id) {
 				this.tui.href('/pages/goodsDetail/goodsDetail?id=' + id);
 			},
+			toDetailsTap: function(e) {
+				uni.navigateTo({
+					url: "/pages/goodsDetail/goodsDetail?id=" + e.currentTarget.dataset.id
+				});
+			},
 			async qrcode() {
 				const _this = this;
 				if (this.qrcodeImg) {
@@ -291,7 +359,7 @@
 					is_hyaline: true,
 					expireHours: 1
 				})
-				
+
 				//console.log(qrdata);
 
 				if (qrdata.errno == 0) {
@@ -300,7 +368,7 @@
 					setTimeout(() => {
 						this.modalShow = true;
 					}, 60);
-					
+
 				} else {
 					uni.hideLoading();
 					this.tui.toast('生成二维图片失败,请稍后再试');
@@ -316,15 +384,106 @@
 						urls: [this.qrcodeImg]
 					});
 					// #endif
-			
+
 					// #ifndef H5
 					this.sam.saveImage(this.qrcodeImg);
 					//console.log(this.qrcodeImg);
 					// #endif
-			
+
 					this.hideModal();
 				}
 			},
+			// 点击标题切换当前页时改变样式
+			swichNav: function(Categoryid, e) {
+				let cur = e;
+				if (this.currentTab == cur) {
+					return false;
+				} else {
+					this.currentTab = cur;
+					this.checkCor();
+				}
+				this.floorNum = 'b' + Categoryid;
+
+			},
+			/* 获取元素顶部信息 */
+			getElementTop() {
+				new Promise((resolve, reject) => {
+					let view = uni.createSelectorQuery().selectAll('.main-item');
+					view.boundingClientRect(data => {
+						resolve(data);
+					}).exec();
+				}).then((res) => {
+					console.log('res', res);
+					let topArr = res.map((item) => {
+						return item.top - this.scrollTopSize; /* 减去滚动容器距离顶部的距离 */
+					});
+					this.topArr = topArr;
+					/* 获取最后一项的高度,设置填充高度。判断和填充时做了 +-20 的操作,是为了滚动时更好的定位 */
+					let last = res[res.length - 1].height;
+					if (last - 20 < this.scrollHeight) {
+						this.fillHeight = this.scrollHeight - last + 20;
+					}
+				});
+			},
+			/* 主区域滚动监听 */
+			mainScroll(e) {
+				// 节流方法
+				clearTimeout(this.mainThrottle);
+				this.mainThrottle = setTimeout(() => {
+					scrollFn();
+				}, 10);
+				let scrollFn = () => {
+					let top = e.detail.scrollTop;
+					let index = 0;
+					/* 查找当前滚动距离 */
+					this.topArr.forEach((item, id) => {
+						/*
+						console.log('------------**');
+						console.log(top);
+						console.log('------------');
+						console.log(item);
+						console.log('------------+++');
+						console.log(id);
+						*/
+						if ((top + 100) >= item) {
+							index = id;
+							this.currentTab = (index < 0 ? 0 : index);
+							//console.log(index);
+						}
+					})
+				}
+			},
+			//判断当前滚动超过一屏时,设置tab标题滚动条。
+			checkCor: function() {
+				if (this.currentTab > 6) {
+					this.scrollViewId = `id_${this.currentTab - 2}`;
+				} else {
+					this.scrollViewId = `id_0`;
+				}
+			},
+			infoScroll: function() {
+				let _this = this;
+				let len = _this.Category.length;
+				if (_this.Category[len - 1].son) {
+					this.number = _this.Category[len - 1].son.length;
+				}
+			},
+			/* 初始化滚动区域 */
+			initScrollView() {
+				return new Promise((resolve, reject) => {
+					let view = uni.createSelectorQuery().select('#scroll-panel');
+					view.boundingClientRect(res => {
+						this.scrollTopSize = res.top;
+						this.scrollHeight = res.height;
+						this.$nextTick(() => {
+							resolve();
+						});
+					}).exec();
+				});
+			},
+			tolower: function() {
+				
+			}
 		},
 		/**
 		 * 页面相关事件处理函数--监听用户下拉动作
@@ -343,7 +502,7 @@
 				path: "/pages/store_details/store_details?id=" + _this.storeDetail.id + "&reid=" + _this.uid,
 			};
 		},
-		
+
 		onShareTimeline(res) { //分享到朋友圈
 			return {}
 		},
@@ -353,10 +512,20 @@
 <style>
 	.tui-header {
 		width: 100%;
-		display: flex;
+		height: 182rpx;
+		background-color: #5796fd;
 		align-items: center;
-		padding: 0 8rpx;
+		padding: 0;
 		box-sizing: border-box;
+		position: fixed;
+		overflow: hidden;
+		left: 0;
+		top: 0;
+		z-index: 999;
+	}
+
+	.tui-body {
+		
 	}
 
 	.tui-back__box {
@@ -378,8 +547,13 @@
 
 	.tui-shop__info {
 		width: 100%;
+		height: 103rpx;
+		overflow: hidden;
 		background-color: #5796fd;
-		padding: 0 25rpx 16rpx;
+		padding-top: 0;
+		padding-left: 25rpx;
+		padding-right: 25rpx;
+		padding-bottom: 0;
 		box-sizing: border-box;
 		display: flex;
 		align-items: center;
@@ -396,16 +570,16 @@
 	}
 
 	.tui-shop__name {
-		width: 440rpx;
 		font-size: 30rpx;
 		font-weight: 500;
-		padding-bottom: 6rpx;
 		white-space: nowrap;
 		overflow: hidden;
 		text-overflow: ellipsis;
 	}
 
-	.tui-shop__rate {
+	.tui-shoprate {
+		padding: 0;
+		margin: 0;
 		display: flex;
 		align-items: center;
 	}
@@ -421,9 +595,7 @@
 	}
 
 	.tui-shop__address {
-		font-size: 30rpx;
-		transform: scale(0.8);
-		transform-origin: 0 center;
+		font-size: 24rpx;
 	}
 
 	.tui-shop__follow {
@@ -801,8 +973,9 @@
 		padding-left: 40rpx;
 		word-break: break-all;
 
-	
+
 	}
+
 	.map-img {
 		width: 50rpx;
 		height: 50rpx;
@@ -811,7 +984,8 @@
 		margin-top: -30rpx;
 		margin-bottom: -10rpx;
 	}
-	/*二维码modal弹层*/	
+
+	/*二维码modal弹层*/
 	.tui-poster__box {
 		width: 100%;
 		position: relative;
@@ -820,7 +994,7 @@
 		align-items: center;
 		flex-direction: column;
 	}
-	
+
 	.tui-close__img {
 		width: 48rpx;
 		height: 48rpx;
@@ -828,14 +1002,14 @@
 		right: 0;
 		top: -60rpx;
 	}
-	
+
 	.tui-poster__img {
 		width: 560rpx;
 		height: 560rpx;
 		border-radius: 20rpx;
 		margin-bottom: 40rpx;
 	}
-	
+
 	.tui-share__tips {
 		font-size: 24rpx;
 		transform: scale(0.8);
@@ -843,4 +1017,212 @@
 		color: #ffffff;
 		padding-top: 12rpx;
 	}
-</style>
+
+	/* 左侧导航布局 start*/
+
+	/* 隐藏scroll-view滚动条*/
+
+	::-webkit-scrollbar {
+		width: 0;
+		height: 0;
+		color: transparent;
+	}
+
+	.tui-searchbox {
+		width: 100%;
+		height: 92rpx;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		background: #fff;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		position: fixed;
+		left: 0;
+		top: 0;
+		z-index: 100;
+	}
+
+	.tui-searchbox::after {
+		content: '';
+		position: absolute;
+		border-bottom: 1rpx solid #d2d2d2;
+		-webkit-transform: scaleY(0.5);
+		transform: scaleY(0.5);
+		bottom: 0;
+		right: 0;
+		left: 0;
+	}
+
+	.tui-search-input {
+		width: 100%;
+		height: 60rpx;
+		background: #f1f1f1;
+		border-radius: 30rpx;
+		font-size: 26rpx;
+		color: #999;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.tui-search-text {
+		padding-left: 16rpx;
+	}
+
+	.tab-view {
+		/* height: 100%; */
+		background: #f6f6f6;
+		width: 200rpx;
+		position: fixed;
+		left: 0;
+		z-index: 10;
+		padding-bottom: 100rpx;
+	}
+
+	.tab-bar-item {
+		width: 200rpx;
+		height: 110rpx;
+		background: #f6f6f6;
+		box-sizing: border-box;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		font-size: 26rpx;
+		color: #444;
+		font-weight: 400;
+	}
+
+	.active {
+		position: relative;
+		color: #000;
+		font-size: 30rpx;
+		font-weight: 600;
+		background: #fcfcfc;
+	}
+
+	.active::before {
+		content: '';
+		position: absolute;
+		border-left: 8rpx solid #e41f19;
+		height: 30rpx;
+		left: 0;
+	}
+
+	/* 左侧导航布局 end*/
+
+	.right-box {
+		width: 100%;
+		position: fixed;
+		padding-left: 220rpx;
+		box-sizing: border-box;
+		left: 0;
+	}
+
+	.page-view {
+		width: 100%;
+		overflow: hidden;
+		padding-top: 20rpx;
+		padding-right: 20rpx;
+		box-sizing: border-box;
+		padding-bottom: env(safe-area-inset-bottom);
+	}
+
+	.class-box {
+		padding-top: 10rpx;
+	}
+
+	.class-item {
+		background: #fff;
+		width: 100%;
+		box-sizing: border-box;
+		padding: 20rpx;
+		margin-bottom: 20rpx;
+		border-radius: 12rpx;
+	}
+
+	.class-name {
+		font-size: 26rpx;
+	}
+
+	.g-container {
+		/* padding-top: 20rpx; */
+		display: flex;
+		display: -webkit-flex;
+		justify-content: flex-start;
+		flex-direction: row;
+		flex-wrap: wrap;
+	}
+
+	.g-box {
+		width: 48%;
+		margin-left: 1%;
+		margin-right: 1%;
+		text-align: center;
+		padding-top: 40rpx;
+	}
+
+	.price {
+		font-weight: normal;
+		font-size: 36rpx;
+	}
+
+	.c-image {
+		width: 120rpx;
+		height: 120rpx;
+		border-radius: 12rpx;
+	}
+
+	.g-image {
+		width: 100%;
+	}
+
+	.g-title {
+		font-size: 22rpx;
+		padding-right: 8rpx;
+		padding-left: 8rpx;
+		word-break: break-all;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		-webkit-box-orient: vertical;
+		-webkit-line-clamp: 2;
+	}
+
+	.goods-item {
+		width: 96%;
+		height: 150rpx;
+		display: flex;
+		padding-left: 5px;
+		padding-right: 5px;
+		padding-top: 12px;
+		padding-bottom: 12px;
+		flex-direction: row;
+		margin-left: 20rpx;
+		align-items: center;
+		justify-content: flex-start;
+		border-bottom: 1rpx dotted #f2f2f2;
+	}
+
+	.goods-pic {
+		width: 80px;
+		height: 80px;
+		flex-shrink: 0;
+	}
+
+	.goods-info {
+		display: flex;
+		font-weight: bold;
+		flex-direction: column;
+		padding: 6px 5px 0px 5px;
+		height: 70px;
+		font-size: 28rpx;
+		justify-content: space-between;
+	}
+
+	.fill-last {
+		height: 0;
+		width: 100%;
+		background: none;
+	}
+</style>

+ 2 - 2
pagesA/my/address/editAddress.vue

@@ -233,7 +233,7 @@
 							latitude: res.latitude,
 							longitude: res.longitude
 						}).then(apires => {
-							//console.log(apires.data);							
+							//console.log(apires.data);
 							_this.province_name = apires.data.province_name;
 							_this.city_name = apires.data.city_name;
 							_this.district_name = apires.data.district_name || '';
@@ -248,7 +248,7 @@
 				const _this = this
 				uni.chooseAddress({
 					success: function(res) {
-						//console.log(res)						
+						//console.log(res)
 						_this.showRegionStr = res.provinceName + res.cityName + res.countyName;
 						_this.wxaddress = res;
 					}

+ 1 - 1
pagesA/my/adminstore/index.vue

@@ -113,7 +113,7 @@
 				<view class="tui-box tui-tool-box">
 					<tui-list-view>
 						<tui-list-cell v-if="module==version3"
-							@tap="navigateTo('/pagesA/my/publicOrder/timescard')" :arrow="true">
+							@tap="navigateTo('/pagesA/my/publicOrder/timescard?identity=store')" :arrow="true">
 							<view class="tui-item-box">
 								<tui-icon name="bankcard" :size="24" color="#5677fc"></tui-icon>
 								<view class="tui-list-cell_name">次卡订单</view>

+ 5 - 5
pagesA/my/admintechnical/index.vue

@@ -84,7 +84,7 @@
 				<view class="tui-box tui-tool-box">
 					<tui-list-view>
 						<tui-list-cell
-							@tap="navigateTo('/pagesA/my/publicOrder/timescard')" :arrow="true">
+							@tap="navigateTo('/pagesA/my/publicOrder/timescard?identity=technical')" :arrow="true">
 							<view class="tui-item-box">
 								<tui-icon name="bankcard" :size="24" color="#5677fc"></tui-icon>
 								<view class="tui-list-cell_name">次卡订单</view>
@@ -209,6 +209,10 @@
 					this.scrollH = res.windowWidth * 0.6;
 				}
 			});
+			
+		},
+		onShow() {
+			let _this = this;
 			_this.$request.get('admintechnical.check', {
 				samkey: (new Date()).valueOf()
 			}).then(res => {
@@ -233,11 +237,7 @@
 						}
 					});
 				}
-
 			});
-		},
-		onShow() {
-
 		},
 		methods: {
 			//business请求

+ 9 - 7
pagesA/my/admintuanzhang/index.vue

@@ -7,7 +7,7 @@
 					</image>
 					<view class="tui-info">
 						<view class="tui-nickname">
-						{{tuanzhang.community_title}}	
+							{{tuanzhang.community_title}}
 						</view>
 						<view class="tui-explain">{{lang.tuanzhang}}:{{tuanzhang.title}}</view>
 					</view>
@@ -197,10 +197,14 @@
 				if (res.errno == 0) {
 					_this.lang = res.data;
 					uni.setNavigationBarTitle({
-						title: _this.lang.communitytuanzhang+'工作台'
+						title: _this.lang.communitytuanzhang + '工作台'
 					});
 				}
 			});
+
+		},
+		onShow() {
+			let _this = this;
 			_this.$request.get('admintuanzhang.check', {
 				samkey: (new Date()).valueOf()
 			}).then(res => {
@@ -224,9 +228,6 @@
 					});
 				}
 			});
-		},
-		onShow() {
-
 		},
 		methods: {
 			navigateTo(url) {
@@ -235,7 +236,7 @@
 				});
 
 			},
-			goadminstore(){
+			goadminstore() {
 				this.sam.navigateTo('/pagesA/my/adminstore/index')
 			},
 			initNavigation(e) {
@@ -740,12 +741,13 @@
 		color: #ffffff;
 		padding-top: 12rpx;
 	}
+
 	.tui-share-position {
 		position: absolute;
 		right: 0;
 		top: 60rpx;
 	}
-	
+
 	.tui-share-text {
 		color: #333;
 		padding-left: 8rpx;

+ 1 - 1
pagesA/my/fx/index.vue

@@ -94,7 +94,7 @@
 
 			<!--为你推荐-->
 			<block v-if="recommendgoods.length>0">
-				<tui-divider :size="28" :bold="true" color="#333" width="50%">为你推荐</tui-divider>
+				<tui-divider :size="28" :bold="true" color="#333" width="50%">猜你喜欢</tui-divider>
 				<view class="tui-product-list">
 					<view class="tui-product-container">
 						<block v-for="(item, index) in recommendgoods" :key="index">

+ 1 - 1
pagesA/my/invoiceDetail/invoiceDetail.vue

@@ -69,7 +69,7 @@
 		methods: {
 			view() {
 				uni.previewImage({
-					urls: ['/static/images/mall/img_invoice.jpg']
+					urls: ['https://daopic.samcms.com/xm_static/images/img_invoice.jpg']
 				})
 			},
 			sendEmail() {

+ 204 - 0
pagesA/my/myCard/myCard.vue

@@ -0,0 +1,204 @@
+<template>
+	<view class="container">
+		<view class="tui-header">
+			<view>
+				<text class="tui-title">我的卡</text>
+				<text class="tui-total">(共6张)</text>
+			</view>
+			<tui-tag plain type="danger" shape="circle" hover padding="12rpx 20rpx" @click="addBankCard">+ 添加银行卡</tui-tag>
+		</view>
+		<view class="tui-bankcard__list">
+			<view class="tui-bankcard__item tui-ping_an">
+				<view class="tui-card__info">
+					<view class="tui-logo__box">
+						<image class="tui-logo" src="/static/images/mall/bank/p_a.png"></image>
+					</view>
+					<view class="tui-name__box">
+						<view class="tui-name">平安银行</view>
+						<view class="tui-desc">储蓄卡</view>
+					</view>
+					<view class="tui-card__no">**** 6674</view>
+				</view>
+			</view>
+			<view class="tui-bankcard__item tui-min_sheng">
+				<view class="tui-card__info">
+					<view class="tui-logo__box">
+						<image class="tui-logo" src="/static/images/mall/bank/m_s.png"></image>
+					</view>
+					<view class="tui-name__box">
+						<view class="tui-name">中国民生银行</view>
+						<view class="tui-desc">储蓄卡</view>
+					</view>
+					<view class="tui-card__no">**** 9970</view>
+				</view>
+			</view>
+			<view class="tui-bankcard__item tui-nong_ye">
+				<view class="tui-card__info">
+					<view class="tui-logo__box">
+						<image class="tui-logo" src="/static/images/mall/bank/n_y.png"></image>
+					</view>
+					<view class="tui-name__box">
+						<view class="tui-name">中国农业银行</view>
+						<view class="tui-desc">储蓄卡</view>
+					</view>
+					<view class="tui-card__no">**** 6475</view>
+				</view>
+			</view>
+
+			<view class="tui-bankcard__item tui-zhong_xin">
+				<view class="tui-card__info">
+					<view class="tui-logo__box">
+						<image class="tui-logo" src="/static/images/mall/bank/z_x.png"></image>
+					</view>
+					<view class="tui-name__box">
+						<view class="tui-name">中信银行</view>
+						<view class="tui-desc">储蓄卡</view>
+					</view>
+					<view class="tui-card__no">**** 6516</view>
+				</view>
+			</view>
+
+			<view class="tui-bankcard__item tui-zhao_shang">
+				<view class="tui-card__info">
+					<view class="tui-logo__box">
+						<image class="tui-logo" src="/static/images/mall/bank/z_s.png"></image>
+					</view>
+					<view class="tui-name__box">
+						<view class="tui-name">招商银行</view>
+						<view class="tui-desc">储蓄卡</view>
+					</view>
+					<view class="tui-card__no">**** 1316</view>
+				</view>
+			</view>
+
+			<view class="tui-bankcard__item tui-jian_she">
+				<view class="tui-card__info">
+					<view class="tui-logo__box">
+						<image class="tui-logo" src="/static/images/mall/bank/j_s.png"></image>
+					</view>
+					<view class="tui-name__box">
+						<view class="tui-name">中国建设银行</view>
+						<view class="tui-desc">储蓄卡</view>
+					</view>
+					<view class="tui-card__no">**** 4216</view>
+				</view>
+			</view>
+
+
+		</view>
+	</view>
+</template>
+
+<script>
+	/*
+	 更多银行logo下载请前往:
+	 https://github.com/dingyong0214/bank-logo
+	*/
+	export default {
+		data() {
+			return {
+
+			}
+		},
+		methods: {
+			addBankCard() {
+               this.tui.toast('功能开发中~')
+			}
+		}
+	}
+</script>
+
+<style>
+	.container {
+		width: 100%;
+		padding: 0 40rpx 40rpx;
+		box-sizing: border-box;
+	}
+
+	.tui-header {
+		width: 100%;
+		padding: 36rpx 0;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+	}
+
+	.tui-title {
+		font-size: 30rpx;
+		font-weight: bold;
+	}
+
+	.tui-total {
+		font-size: 24rpx;
+		color: #999;
+	}
+
+	.tui-bankcard__item {
+		width: 100%;
+		height: 240rpx;
+		padding: 30rpx;
+		box-sizing: border-box;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+	}
+
+	.tui-logo__box {
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 50%;
+		background-color: #fff;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin-right: 20rpx;
+	}
+
+	.tui-logo {
+		width: 52rpx;
+		height: 52rpx;
+	}
+
+	.tui-card__info {
+		display: flex;
+		align-items: center;
+		color: #fff;
+	}
+
+	.tui-name {
+		font-size: 30rpx;
+		font-weight: 500;
+	}
+
+	.tui-desc {
+		font-size: 24rpx;
+		opacity: 0.7;
+	}
+
+	.tui-card__no {
+		margin-left: auto;
+	}
+
+	.tui-ping_an {
+		background: linear-gradient(to right, #FEAD4B, #FF9225);
+	}
+
+	.tui-jian_she {
+		background: linear-gradient(to right, #2C85D5, #2D66D1);
+	}
+
+	.tui-min_sheng {
+		background: linear-gradient(to right, #2C87D6, #2D69D0);
+	}
+
+	.tui-nong_ye {
+		background: linear-gradient(to right, #01ADA3, #0291A9);
+	}
+
+	.tui-zhao_shang {
+		background: linear-gradient(to right, #FF6F64, #FE5762);
+	}
+
+	.tui-zhong_xin {
+		background: linear-gradient(to right, #FF7065, #FD4754);
+	}
+</style>

+ 12 - 18
pagesA/my/myCoupon/myCoupon.vue

@@ -23,8 +23,10 @@
 				<view class="tui-coupon-item-right">
 					<view class="tui-coupon-content">
 						<view class="tui-coupon-title-box">
-							<view class="tui-coupon-btn" :class="{'tui-bg-grey':i>0}">全场券</view>
-							<view class="tui-coupon-title">全部商品可用</view>
+							<view v-if="item.sid==0" class="tui-coupon-btn" :class="{'tui-bg-grey':i>0}">全场券</view>
+							<view v-if="item.use_goods==0" class="tui-coupon-title">全部商品可用</view>
+							<view v-if="item.use_goods==1" class="tui-coupon-title">{{item.cat_ids_name}}类目可用</view>
+							<view v-if="item.use_goods==2" class="tui-coupon-title">{{item.goods_ids_name}}可用</view>
 						</view>
 						<view class="tui-coupon-rule">
 							<view class="tui-rule-box tui-padding-btm">
@@ -149,7 +151,7 @@
 		height: 110rpx;
 		width: 110rpx;
 		position: absolute;
-		z-index: 9;
+		z-index: 999;
 		top: -30rpx;
 		right: 40rpx;
 	}
@@ -221,6 +223,12 @@
 	.tui-coupon-title-box {
 		display: flex;
 		align-items: center;
+		font-size: 28rpx;
+	}
+	.tui-coupon-title {
+		width: 100%;
+		font-size: 26rpx;
+		color: #333;
 	}
 
 	.tui-coupon-btn {
@@ -247,17 +255,8 @@
 		color: #888 !important;
 	}
 
-	.tui-coupon-title {
-		width: 100%;
-		font-size: 26rpx;
-		color: #333;
-		white-space: nowrap;
-		overflow: hidden;
-		text-overflow: ellipsis;
-	}
-
 	.tui-coupon-rule {
-		padding-top: 52rpx;
+		padding-top: 22rpx;
 	}
 
 	.tui-rule-box {
@@ -291,11 +290,6 @@
 		margin-top: 20rpx;
 	}
 
-	.tui-coupon-title {
-		font-size: 28rpx;
-		line-height: 28rpx;
-	}
-
 	.tui-btn-box {
 		position: absolute;
 		width: 146rpx;

+ 343 - 0
pagesA/my/myOrder/myTimes - 副本.vue

@@ -0,0 +1,343 @@
+<template>
+	<view class="container">
+		<tui-tabs :top="0" :tabs="statusType" :isFixed="scrollTop>=0" :currentTab="currentTab" selectedColor="#E41F19"
+			sliderBgColor="#E41F19" @change="statusTap" itemWidth="20%"></tui-tabs>
+		<!--选项卡逻辑自己实现即可,此处未做处理-->
+		<view :class="{'tui-order-list':scrollTop>=0}">
+			<view class="tui-order-item" v-for="(item,orderIndex) in orderList" :key="orderIndex">
+				<tui-list-cell :hover="false" :lineLeft="false">
+					<view class="tui-goods-title">
+						<view>订单号:{{item.order_num_alias}}</view>
+						<view class="tui-order-status">{{item.statusStr}}</view>
+					</view>
+				</tui-list-cell>
+				<block v-for="(goodsitem,index) in item.goodsMap" :key="index">
+					<tui-list-cell padding="0" @click="orderDetail(item.id)">
+						<view class="tui-goods-item">
+							<image :src="goodsitem.image" class="tui-goods-img" mode="widthFix"></image>
+							<view class="tui-goods-center">
+								<view class="tui-goods-name">{{goodsitem.name}}</view>
+								<view v-if="goodsitem.label" class="tui-goods-attr">{{goodsitem.label}}</view>
+								<view v-if="index ==0" class="tui-goods-attr">次卡:{{item.timesmum}}次,剩余:{{item.remain}}次</view>
+								<view v-if="index ==0 && item.timeslabel" class="tui-goods-attr">{{item.timeslabel}}
+								</view>
+							</view>
+							<view class="tui-price-right">
+								<view>¥{{goodsitem.price}}</view>
+								<view>x{{goodsitem.quantity}}</view>
+							</view>
+						</view>
+					</tui-list-cell>
+				</block>
+				<tui-list-cell :hover="false" unlined>
+					<view class="tui-goods-price">
+						<view>
+							<!--共4件商品--> 合计:
+						</view>
+						<view class="tui-size-24">¥</view>
+						<view class="tui-price-large">{{item.total}}</view>
+						<view class="tui-size-24"></view>
+					</view>
+				</tui-list-cell>
+				<view class="tui-order-btn">
+					<view v-if="item.order_status_id==1" class="tui-btn-ml">
+						<tui-button @click="cancelOrderTap(item.id)" type="black" plain width="152rpx" height="56rpx"
+							:size="26" shape="circle">取消订单</tui-button>
+					</view>
+					<view v-if="item.order_status_id==2 && item.is_times==1 && item.timesmum>0 && item.is_timing==1" class="tui-btn-ml">
+						<tui-button @click="yuyueTime(item.id)" type="black" plain width="152rpx" height="56rpx"
+							:size="26" shape="circle">预约时间</tui-button>
+					</view>
+					<view class="tui-btn-ml">
+						<tui-button @click="orderDetail(item.id)" type="black" plain width="152rpx" height="56rpx"
+							:size="26" shape="circle">详情</tui-button>
+					</view>
+					<view v-if="item.paymethod.code=='offline_pay' && item.is_offline_pay<1 && item.order_status_id==1"
+						class="tui-btn-ml">
+						<tui-button type="black" plain width="152rpx" height="56rpx" :size="26" shape="circle"
+							@click="offlinepaymentTap(item.id)">支付凭证</tui-button>
+					</view>
+					<view v-if="item.paymethod.code=='wx_pay' && item.order_status_id==1" class="tui-btn-ml">
+						<tui-button type="danger" plain width="152rpx" height="56rpx" :size="26" shape="circle"
+							@click="toPayTap(item.total,item.id)">立即支付</tui-button>
+					</view>
+				</view>
+			</view>
+		</view>
+		<!--加载loadding-->
+		<tui-loadmore v-if="loadding" :index="3" type="red"></tui-loadmore>
+		<tui-nomore v-if="!pullUpOn" backgroundColor="#fafafa"></tui-nomore>
+		<!--加载loadding-->
+	</view>
+</template>
+
+<script>
+	import pay from '@/common/pay.js'
+	export default {
+		data() {
+			return {
+				tabBar: [],
+				statusType: [],
+				ptype: 2,
+				currentType: 0,
+				currentTab: 0,
+				pageIndex: 1,
+				loadding: false,
+				pullUpOn: true,
+				scrollTop: 0,
+				orderList: [],
+				where: {
+					status: 0,
+					ptype:0,
+					is_times:1,
+					keyword: '',
+					page: 1,
+					limit: 10,
+				},
+			}
+		},
+		onLoad: function(e) {
+			let _this = this
+			if(e.currentTab){
+				_this.currentTab = e.currentTab;
+			}
+			_this.$request.get('orderstatus.listname', {
+				ptype: _this.ptype,
+				samkey: (new Date()).valueOf(),
+			}).then(res => {
+				if (res.errno == 0) {
+					_this.statusType = res.data;
+					_this.currentType = _this.statusType[_this.currentTab].id;
+				}
+			})
+		},
+		onShow: function(e) {
+			this.getorderlist(true);
+		},
+		methods: {
+			statusTap: function(e) {
+				this.currentTab = e.index
+				this.currentType = this.statusType[this.currentTab].id;
+				this.getorderlist(true);
+			},
+			getorderlist: function(isPage) {
+				var _this = this
+				console.log(_this.loadend);
+				
+				if (_this.loading) return;
+				
+				if (isPage === true) {
+					_this.where.page = 1;
+					_this.orderList = [];
+				}else{
+					if (_this.loadend) return;
+				}
+				
+				_this.where.samkey = (new Date()).valueOf();
+				_this.where.ptype = _this.ptype;
+				_this.where.status = _this.currentType;
+				//console.log(_this.where);
+				_this.$request.post('order.myorder', _this.where).then(res => {
+					if (res.errno == 0) {
+						_this.orderList = _this.orderList.concat(res.data.data);
+						_this.where.page = _this.where.page + 1
+						_this.loadend = _this.orderList.length < _this.where.limit;
+					}
+					_this.loading = false;
+				})
+			},
+			toPayTap: function(total, orderid) {
+				const redirectUrl = "/pagesA/my/myOrder/myTimes";
+				pay.wxpay('order', total, orderid, redirectUrl);
+			},
+			cancelOrderTap: function(orderid) {
+				var _this = this;
+				uni.showModal({
+					title: '确定要取消该订单吗?',
+					content: '',
+					success: function(res) {
+						if (res.confirm) {
+							_this.$request.post('order.cancel', {
+								orderid: orderid
+							}).then(res => {
+								if (res.errno == 0) {
+									_this.getorderlist();
+								}
+							})
+						}
+					}
+				})
+			},
+			yuyueTime(orderid) {
+				this.tui.href("/pagesA/my/myOrder/yuyuetime?id=" + orderid)
+			},
+			orderDetail: function(orderid) {
+				var url = '/pagesA/my/myOrder/myTimesDetail?id=' + orderid;
+				uni.navigateTo({
+					url: url
+				})
+			},
+			//线下付款处理
+			offlinepaymentTap: function(orderid) {
+				uni.navigateTo({
+					url: '/pagesA/submitOrder/offlinepayment?id=' + orderid
+				})
+			},
+			invoiceDetail() {
+				this.tui.href('/pagesA/my/invoiceDetail/invoiceDetail')
+			},
+			addEvaluate() {
+				this.tui.href('/pagesA/my/addEvaluate/addEvaluate')
+			}
+		},
+		/**
+		 * 页面相关事件处理函数--监听用户下拉动作
+		 */
+		onPullDownRefresh: function() {			
+			this.where.page = 1;
+			this.loadend = false;
+			this.orderList = [];
+			this.getorderlist();
+			setTimeout(() => {
+				uni.stopPullDownRefresh()
+			}, 200);
+		},
+		/**
+		 * 页面上拉触底事件的处理函数
+		 */
+		onReachBottom() {
+			//只是测试效果,逻辑以实际数据为准
+			this.loadding = true
+			this.pullUpOn = true
+			this.getorderlist();
+			setTimeout(() => {
+				this.loadding = false
+				this.pullUpOn = false
+			}, 1000)
+		},
+		onPageScroll(e) {
+			this.scrollTop = e.scrollTop;
+		}
+	}
+</script>
+
+<style>
+	.container {
+		padding-bottom: env(safe-area-inset-bottom);
+	}
+
+	.tui-order-list {
+		margin-top: 80rpx;
+	}
+
+	.tui-order-item {
+		margin-top: 20rpx;
+		border-radius: 10rpx;
+		overflow: hidden;
+	}
+
+	.tui-goods-title {
+		width: 100%;
+		font-size: 28rpx;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+	}
+
+	.tui-order-status {
+		color: #888;
+		font-size: 26rpx;
+	}
+
+	.tui-goods-item {
+		width: 100%;
+		padding: 20rpx 30rpx;
+		box-sizing: border-box;
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.tui-goods-img {
+		width: 180rpx;
+		height: 180rpx;
+		display: block;
+		flex-shrink: 0;
+	}
+
+	.tui-goods-center {
+		flex: 1;
+		padding: 20rpx 8rpx;
+		box-sizing: border-box;
+	}
+
+	.tui-goods-name {
+		max-width: 310rpx;
+		word-break: break-all;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		-webkit-box-orient: vertical;
+		-webkit-line-clamp: 2;
+		font-size: 26rpx;
+		line-height: 32rpx;
+	}
+
+	.tui-goods-attr {
+		font-size: 22rpx;
+		color: #888888;
+		line-height: 20rpx;
+		padding-top: 18rpx;
+		word-break: break-all;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		-webkit-box-orient: vertical;
+		-webkit-line-clamp: 2;
+	}
+
+	.tui-price-right {
+		text-align: right;
+		font-size: 24rpx;
+		color: #888888;
+		line-height: 30rpx;
+		padding-top: 20rpx;
+	}
+
+	.tui-color-red {
+		color: #E41F19;
+		padding-right: 30rpx;
+	}
+
+	.tui-goods-price {
+		width: 100%;
+		display: flex;
+		align-items: flex-end;
+		justify-content: flex-end;
+		font-size: 24rpx;
+	}
+
+	.tui-size-24 {
+		font-size: 24rpx;
+		line-height: 24rpx;
+	}
+
+	.tui-price-large {
+		font-size: 32rpx;
+		line-height: 30rpx;
+		font-weight: 500;
+	}
+
+	.tui-order-btn {
+		width: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: flex-end;
+		background: #fff;
+		padding: 10rpx 30rpx 20rpx;
+		box-sizing: border-box;
+	}
+
+	.tui-btn-ml {
+		margin-left: 20rpx;
+	}
+</style>

+ 108 - 212
pagesA/my/myOrder/myTimes.vue

@@ -1,78 +1,31 @@
 <template>
 	<view class="container">
-		<tui-tabs :top="0" :tabs="statusType" :isFixed="scrollTop>=0" :currentTab="currentTab" selectedColor="#E41F19"
-			sliderBgColor="#E41F19" @change="statusTap" itemWidth="20%"></tui-tabs>
-		<!--选项卡逻辑自己实现即可,此处未做处理-->
-		<view :class="{'tui-order-list':scrollTop>=0}">
-			<view class="tui-order-item" v-for="(item,orderIndex) in orderList" :key="orderIndex">
-				<tui-list-cell :hover="false" :lineLeft="false">
-					<view class="tui-goods-title">
-						<view>订单号:{{item.order_num_alias}}</view>
-						<view class="tui-order-status">{{item.statusStr}}</view>
-					</view>
-				</tui-list-cell>
-				<block v-for="(goodsitem,index) in item.goodsMap" :key="index">
-					<tui-list-cell padding="0" @click="orderDetail(item.id)">
-						<view class="tui-goods-item">
-							<image :src="goodsitem.image" class="tui-goods-img" mode="widthFix"></image>
-							<view class="tui-goods-center">
-								<view class="tui-goods-name">{{goodsitem.name}}</view>
-								<view v-if="goodsitem.label" class="tui-goods-attr">{{goodsitem.label}}</view>
-								<view v-if="index ==0" class="tui-goods-attr">次卡:{{item.timesmum}}次,剩余:{{item.remain}}次</view>
-								<view v-if="index ==0 && item.timeslabel" class="tui-goods-attr">{{item.timeslabel}}
-								</view>
-							</view>
-							<view class="tui-price-right">
-								<view>¥{{goodsitem.price}}</view>
-								<view>x{{goodsitem.quantity}}</view>
-							</view>
+		<view class="tui-bankcard__list">
+			<view class="tui-bankcard__item" @click="orderDetail(item.id,item.is_times)" :class="'cardbg'+item.styleno" v-for="(item,orderIndex) in orderList"
+				:key="orderIndex">
+				<view class="tui-card__info">
+					<block v-for="(goodsitem,index) in item.goodsMap" :key="index">
+						<view class="tui-logo__box">
+							<image class="tui-logo" :src="goodsitem.image"></image>
 						</view>
-					</tui-list-cell>
-				</block>
-				<tui-list-cell :hover="false" unlined>
-					<view class="tui-goods-price">
-						<view>
-							<!--共4件商品--> 合计:
+						<view class="tui-name__box">
+							<view class="tui-name">{{goodsitem.name}}</view>
+							
+							<view v-if="goodsitem.label" class="tui-desc">{{goodsitem.label}}</view>
+							<view v-if="index ==0 && item.is_times==1" class="tui-desc">次卡:{{item.OrderCard.timesmum}}次,剩余:{{item.remain}}次</view>
+							<view v-if="index ==0 && item.is_times==3" class="tui-desc">面值:{{item.OrderCard.facevalue}},余额:{{item.OrderCard.balance}}</view>
+							<view v-if="index ==0 && item.timeslabel" class="tui-desc">{{item.timeslabel}}
+							</view>
 						</view>
-						<view class="tui-size-24">¥</view>
-						<view class="tui-price-large">{{item.total}}</view>
-						<view class="tui-size-24"></view>
-					</view>
-				</tui-list-cell>
-				<view class="tui-order-btn">
-					<view v-if="item.order_status_id==1" class="tui-btn-ml">
-						<tui-button @click="cancelOrderTap(item.id)" type="black" plain width="152rpx" height="56rpx"
-							:size="26" shape="circle">取消订单</tui-button>
-					</view>
-					<view v-if="item.order_status_id==2 && item.is_times==1 && item.timesmum>0 && item.is_timing==1" class="tui-btn-ml">
-						<tui-button @click="yuyueTime(item.id)" type="black" plain width="152rpx" height="56rpx"
-							:size="26" shape="circle">预约时间</tui-button>
-					</view>
-					<view class="tui-btn-ml">
-						<tui-button @click="orderDetail(item.id)" type="black" plain width="152rpx" height="56rpx"
-							:size="26" shape="circle">详情</tui-button>
-					</view>
-					<view v-if="item.paymethod.code=='offline_pay' && item.is_offline_pay<1 && item.order_status_id==1"
-						class="tui-btn-ml">
-						<tui-button type="black" plain width="152rpx" height="56rpx" :size="26" shape="circle"
-							@click="offlinepaymentTap(item.id)">支付凭证</tui-button>
-					</view>
-					<view v-if="item.paymethod.code=='wx_pay' && item.order_status_id==1" class="tui-btn-ml">
-						<tui-button type="danger" plain width="152rpx" height="56rpx" :size="26" shape="circle"
-							@click="toPayTap(item.total,item.id)">立即支付</tui-button>
-					</view>
+					</block>
+					<view class="tui-card__no">**** {{item.minialias}}</view>
 				</view>
 			</view>
 		</view>
-		<!--加载loadding-->
-		<tui-loadmore v-if="loadding" :index="3" type="red"></tui-loadmore>
-		<tui-nomore v-if="!pullUpOn" backgroundColor="#fafafa"></tui-nomore>
-		<!--加载loadding-->
 	</view>
 </template>
 
 <script>
-	import pay from '@/common/pay.js'
 	export default {
 		data() {
 			return {
@@ -88,8 +41,8 @@
 				orderList: [],
 				where: {
 					status: 0,
-					ptype:0,
-					is_times:1,
+					ptype: 0,
+					is_times: 1,
 					keyword: '',
 					page: 1,
 					limit: 10,
@@ -98,41 +51,24 @@
 		},
 		onLoad: function(e) {
 			let _this = this
-			if(e.currentTab){
-				_this.currentTab = e.currentTab;
-			}
-			_this.$request.get('orderstatus.listname', {
-				ptype: _this.ptype,
-				samkey: (new Date()).valueOf(),
-			}).then(res => {
-				if (res.errno == 0) {
-					_this.statusType = res.data;
-					_this.currentType = _this.statusType[_this.currentTab].id;
-				}
-			})
 		},
 		onShow: function(e) {
 			this.getorderlist(true);
 		},
 		methods: {
-			statusTap: function(e) {
-				this.currentTab = e.index
-				this.currentType = this.statusType[this.currentTab].id;
-				this.getorderlist(true);
-			},
 			getorderlist: function(isPage) {
 				var _this = this
 				console.log(_this.loadend);
-				
+
 				if (_this.loading) return;
-				
+
 				if (isPage === true) {
 					_this.where.page = 1;
 					_this.orderList = [];
-				}else{
+				} else {
 					if (_this.loadend) return;
 				}
-				
+
 				_this.where.samkey = (new Date()).valueOf();
 				_this.where.ptype = _this.ptype;
 				_this.where.status = _this.currentType;
@@ -146,54 +82,19 @@
 					_this.loading = false;
 				})
 			},
-			toPayTap: function(total, orderid) {
-				const redirectUrl = "/pagesA/my/myOrder/myTimes";
-				pay.wxpay('order', total, orderid, redirectUrl);
-			},
-			cancelOrderTap: function(orderid) {
-				var _this = this;
-				uni.showModal({
-					title: '确定要取消该订单吗?',
-					content: '',
-					success: function(res) {
-						if (res.confirm) {
-							_this.$request.post('order.cancel', {
-								orderid: orderid
-							}).then(res => {
-								if (res.errno == 0) {
-									_this.getorderlist();
-								}
-							})
-						}
-					}
-				})
-			},
-			yuyueTime(orderid) {
-				this.tui.href("/pagesA/my/myOrder/yuyuetime?id=" + orderid)
-			},
-			orderDetail: function(orderid) {
-				var url = '/pagesA/my/myOrder/myTimesDetail?id=' + orderid;
-				uni.navigateTo({
-					url: url
-				})
-			},
-			//线下付款处理
-			offlinepaymentTap: function(orderid) {
-				uni.navigateTo({
-					url: '/pagesA/submitOrder/offlinepayment?id=' + orderid
-				})
-			},
-			invoiceDetail() {
-				this.tui.href('/pagesA/my/invoiceDetail/invoiceDetail')
-			},
-			addEvaluate() {
-				this.tui.href('/pagesA/my/addEvaluate/addEvaluate')
+			orderDetail: function(orderid,is_times) {
+				if(is_times!=3){
+					var url = '/pagesA/my/myOrder/myTimesDetail?id=' + orderid;
+					uni.navigateTo({
+						url: url
+					})
+				}
 			}
 		},
 		/**
 		 * 页面相关事件处理函数--监听用户下拉动作
 		 */
-		onPullDownRefresh: function() {			
+		onPullDownRefresh: function() {
 			this.where.page = 1;
 			this.loadend = false;
 			this.orderList = [];
@@ -223,121 +124,116 @@
 
 <style>
 	.container {
-		padding-bottom: env(safe-area-inset-bottom);
-	}
-
-	.tui-order-list {
-		margin-top: 80rpx;
-	}
-
-	.tui-order-item {
-		margin-top: 20rpx;
-		border-radius: 10rpx;
-		overflow: hidden;
+		width: 100%;
+		padding: 30rpx 40rpx 40rpx;
+		box-sizing: border-box;
 	}
 
-	.tui-goods-title {
+	.tui-header {
 		width: 100%;
-		font-size: 28rpx;
+		padding: 36rpx 0;
 		display: flex;
 		align-items: center;
 		justify-content: space-between;
 	}
 
-	.tui-order-status {
-		color: #888;
-		font-size: 26rpx;
+	.tui-title {
+		font-size: 30rpx;
+		font-weight: bold;
 	}
 
-	.tui-goods-item {
+	.tui-total {
+		font-size: 24rpx;
+		color: #999;
+	}
+
+	.tui-bankcard__item {
 		width: 100%;
-		padding: 20rpx 30rpx;
+		height: 240rpx;
+		padding: 30rpx;
 		box-sizing: border-box;
-		display: flex;
-		justify-content: space-between;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
 	}
 
-	.tui-goods-img {
-		width: 180rpx;
-		height: 180rpx;
-		display: block;
-		flex-shrink: 0;
+	.tui-logo__box {
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 50%;
+		background-color: #fff;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin-right: 20rpx;
 	}
 
-	.tui-goods-center {
-		flex: 1;
-		padding: 20rpx 8rpx;
-		box-sizing: border-box;
+	.tui-logo {
+		width: 52rpx;
+		height: 52rpx;
 	}
 
-	.tui-goods-name {
-		max-width: 310rpx;
-		word-break: break-all;
-		overflow: hidden;
-		text-overflow: ellipsis;
-		display: -webkit-box;
-		-webkit-box-orient: vertical;
-		-webkit-line-clamp: 2;
-		font-size: 26rpx;
-		line-height: 32rpx;
+	.tui-card__info {
+		display: flex;
+		align-items: center;
+		color: #fff;
 	}
 
-	.tui-goods-attr {
-		font-size: 22rpx;
-		color: #888888;
-		line-height: 20rpx;
-		padding-top: 18rpx;
-		word-break: break-all;
-		overflow: hidden;
-		text-overflow: ellipsis;
-		display: -webkit-box;
-		-webkit-box-orient: vertical;
-		-webkit-line-clamp: 2;
+	.tui-name {
+		font-size: 30rpx;
+		font-weight: 500;
 	}
 
-	.tui-price-right {
-		text-align: right;
+	.tui-desc {
 		font-size: 24rpx;
-		color: #888888;
-		line-height: 30rpx;
-		padding-top: 20rpx;
+		opacity: 0.7;
 	}
 
-	.tui-color-red {
-		color: #E41F19;
-		padding-right: 30rpx;
+	.tui-card__no {
+		margin-left: auto;
 	}
 
-	.tui-goods-price {
-		width: 100%;
-		display: flex;
-		align-items: flex-end;
-		justify-content: flex-end;
-		font-size: 24rpx;
+	.cardbg0 {
+		background: linear-gradient(to right, #FEAD4B, #FF9225);
+	}
+	.cardbg1 {
+		background: linear-gradient(to right, #2C85D5, #2D66D1);
+	}
+	.cardbg2 {
+		background: linear-gradient(to right, #2C87D6, #2D69D0);
+	}
+	.cardbg3 {
+		background: linear-gradient(to right, #01ADA3, #0291A9);
+	}
+	
+	.cardbg4 {
+		background: linear-gradient(to right, #FF6F64, #FE5762);
+	}
+	
+	.cardbg5 {
+		background: linear-gradient(to right, #FF7065, #FD4754);
 	}
 
-	.tui-size-24 {
-		font-size: 24rpx;
-		line-height: 24rpx;
+	.tui-ping_an {
+		background: linear-gradient(to right, #FEAD4B, #FF9225);
 	}
 
-	.tui-price-large {
-		font-size: 32rpx;
-		line-height: 30rpx;
-		font-weight: 500;
+	.tui-jian_she {
+		background: linear-gradient(to right, #2C85D5, #2D66D1);
 	}
 
-	.tui-order-btn {
-		width: 100%;
-		display: flex;
-		align-items: center;
-		justify-content: flex-end;
-		background: #fff;
-		padding: 10rpx 30rpx 20rpx;
-		box-sizing: border-box;
+	.tui-min_sheng {
+		background: linear-gradient(to right, #2C87D6, #2D69D0);
+	}
+
+	.tui-nong_ye {
+		background: linear-gradient(to right, #01ADA3, #0291A9);
+	}
+
+	.tui-zhao_shang {
+		background: linear-gradient(to right, #FF6F64, #FE5762);
 	}
 
-	.tui-btn-ml {
-		margin-left: 20rpx;
+	.tui-zhong_xin {
+		background: linear-gradient(to right, #FF7065, #FD4754);
 	}
-</style>
+</style>

+ 7 - 3
pagesA/my/myOrder/myTimesDetail.vue

@@ -188,11 +188,14 @@
 		</view>
 		<view class="tui-safe-area"></view>
 		<view class="tui-tabbar tui-order-btn">
-			<view v-if="orderDetail.orderInfo.is_times==1 && orderDetail.orderInfo.timesmum>0 && orderDetail.orderInfo.is_timing==1" class="tui-btn-mr">
+			<view
+				v-if="orderDetail.orderInfo.is_times==1 && orderDetail.orderInfo.timesmum>0 && orderDetail.orderInfo.is_timing==1"
+				class="tui-btn-mr">
 				<tui-button type="black" :plain="true" width="152rpx" height="56rpx" :size="26" shape="circle"
 					@click="yuyueTime">预约时间</tui-button>
 			</view>
-			<view v-if="orderDetail.orderInfo.order_status_id==2 || orderDetail.orderInfo.order_status_id==3"
+			<view
+				v-if="orderDetail.is_times!=3 && (orderDetail.orderInfo.order_status_id==2 || orderDetail.orderInfo.order_status_id==3)"
 				class="tui-btn-mr">
 				<tui-button type="black" :plain="true" width="152rpx" height="56rpx" :size="26" shape="circle"
 					@click="refund">申请退款</tui-button>
@@ -706,7 +709,8 @@
 		width: 132rpx;
 		flex-shrink: 0;
 	}
-	.item-title{
+
+	.item-title {
 		width: 100%;
 		font-size: 28rpx;
 		line-height: 28rpx;

+ 38 - 36
pagesA/my/myOrder/yuyuetime.vue

@@ -54,7 +54,7 @@
 			},
 			selectedItemColor: { // 时间选中的颜色
 				type: String,
-				default: "#FB4B5C"
+				default: "rgba(255, 69, 0, 1)"
 			},
 
 		},
@@ -248,24 +248,21 @@
 	.panel {
 		background-color: #fff;
 		margin-bottom: 20rpx;
-		padding: 20rpx 20rpx 0 20rpx;
-
+		padding-left: 10rpx;
+		padding-right: 10rpx;
 		&-body {
-			margin-top: 20rpx;
-			padding: 20rpx 0 0 0;
+			padding: 10rpx 0 20rpx 0;
 			overflow: hidden;
-
 			>button {
-				width: 10%;
+				width: 12%;
 				display: block;
 				float: left;
-				margin-top: 20rpx;
-				margin-left: 2%;
-				margin-right: 2%;
-				border: #999999 solid 1px;
+				margin-top: 10rpx;
+				margin-left: 1%;
+				margin-right: 1%;
+				margin-bottom: 10rpx;
 				padding: 0 20rpx;
 				border-radius: 0;
-
 				&:after {
 					display: none;
 				}
@@ -273,19 +270,18 @@
 		}
 
 		&-weeks {
-			margin-top: 20rpx;
-			padding: 10rpx 0 0 0;
+			padding: 10rpx 0 10rpx 0;
 			overflow: hidden;
-
 			>button {
-				width: 13%;
+				width: 12%;
 				display: block;
 				float: left;
-				margin: 0 10rpx 10rpx 0;
-				border: #999999 solid 1px;
-				padding: 0 20rpx;
+				margin-top: 10rpx;
+				margin-bottom: 10rpx;
+				margin-left: 1%;
+				margin-right: 1%;
+				padding: 0 10rpx;
 				border-radius: 0;
-
 				&:after {
 					display: none;
 				}
@@ -375,7 +371,10 @@
 		}
 
 		.time-box {
-			padding: 28upx 12upx 26upx;
+			padding-top: 28upx;
+			padding-left: 14upx;
+			padding-right: 10upx;
+			padding-bottom: 200upx;
 			display: flex;
 			flex-wrap: wrap;
 			// margin-top:10px;
@@ -383,9 +382,7 @@
 
 			.item {
 				width: 33%;
-				padding: 0 9upx;
-				margin: 10px 0;
-
+				padding: 9upx;
 				&-box {
 					width: 100%;
 					height: 154upx;
@@ -408,7 +405,7 @@
 
 					&.active {
 						// background: #0094D7;
-						border: 1px solid #FB5D6B;
+						border: 1px solid rgba(255, 69, 0, 1);
 						font-weight: bold;
 					}
 
@@ -436,7 +433,9 @@
 		display: flex;
 		flex-direction: row;
 		position: fixed;
-		bottom: 8px;
+		bottom: 0;
+		padding-top: 20rpx;
+		padding-bottom: env(safe-area-inset-bottom);
 		top: auto;
 		left: 0px;
 		width: 100%;
@@ -454,15 +453,14 @@
 	}
 
 	.submit-btn {
-		width: 25%;
-		height: 40px;
-		color: white;
-		background-color: #ff1e02;
-		font-size: 15px;
-		line-height: 40px;
-		text-align: center;
-		margin: auto;
-		padding: 0;
+		width: 200rpx;
+		height: 70rpx;
+		line-height: 70rpx;
+		font-size: 28rpx;
+		border-radius: 50rpx;
+		color: #ffffff;
+		align-items: center;
+		background-color: rgba(255, 69, 0, 1);
 	}
 
 	.fontw {
@@ -470,6 +468,10 @@
 	}
 
 	.borderb {
-		border-bottom: 2px solid #FB4B5C;
+		border-bottom: 2px solid rgba(255, 69, 0, 1);
+	}
+	button[type=primary] {
+	    background-color: rgba(255, 69, 0, 1);
+	    color: #fff;
 	}
 </style>

+ 1 - 1
pagesA/my/partner/index.vue

@@ -75,7 +75,7 @@
 
 			<!--为你推荐-->
 			<block v-if="recommendgoods.length>0">
-				<tui-divider :size="28" :bold="true" color="#333" width="50%">为你推荐</tui-divider>
+				<tui-divider :size="28" :bold="true" color="#333" width="50%">猜你喜欢</tui-divider>
 				<view class="tui-product-list">
 					<view class="tui-product-container">
 						<block v-for="(item, index) in recommendgoods" :key="index">

+ 10 - 1
pagesA/my/publicOrder/timescard.vue

@@ -115,6 +115,7 @@
 					"name": "已完成",
 				}],
 				ptype: 2,
+				identity: "technical",
 				currentType: 0,
 				currentTab: 0,
 				pageIndex: 1,
@@ -137,6 +138,9 @@
 			if(e.currentTab){
 				_this.currentTab = e.currentTab;
 			}
+			if (e.identity) {
+				_this.identity = e.identity;
+			}
 			_this.currentType = _this.statusType[_this.currentTab].id;
 		},
 		onShow: function(e) {
@@ -169,8 +173,13 @@
 				_this.where.status = _this.currentType;
 				_this.where.currentTab = _this.currentTab;
 				
+				var posturl = 'order.technicalorder';
+				if(_this.identity =="store"){
+					posturl = 'order.storeorder';
+				}
+				
 				//console.log(_this.where);
-				_this.$request.post('order.technicalorder', _this.where).then(res => {
+				_this.$request.post(posturl, _this.where).then(res => {
 					if (res.errno == 0) {
 						_this.orderList = _this.orderList.concat(res.data.data);
 						_this.where.page = _this.where.page + 1

+ 17 - 0
pagesA/my/publicOrder/timescardDetail.vue

@@ -128,6 +128,21 @@
 				</view>
 			</view>
 		</view>
+		<view v-if="orderDetail.orderInfo.is_timing==1" class="tui-order-item">
+			<tui-list-cell :hover="false" :lineLeft="false">
+				<view class="item-title">
+					定期服务时间
+				</view>
+			</tui-list-cell>
+			<tui-list-cell v-for="(item,orderIndex) in orderDetail.orderInfo.timesremainlist" :key="orderIndex">
+				<view class="tui-goods-title">
+					<view>{{item.yue_begin_time}} - {{item.yue_end_time}}</view>
+					<view class="tui-order-status">
+						
+					</view>
+				</view>
+			</tui-list-cell>
+		</view>
 		<view class="tui-order-item">
 			<tui-list-cell :hover="false" :lineLeft="false">
 				<view class="item-title">
@@ -287,6 +302,8 @@
 				_this.$request.post('Ordertimescardtecord.writeoff', {
 					orderid: _this.orderDetail.orderInfo.id,
 					uid:_this.orderDetail.orderInfo.uid,
+					is_timing:_this.orderDetail.orderInfo.is_timing,
+					samkey: (new Date()).valueOf(),
 				}).then(function(res) {
 					if (res.errno == 0) {
 						_this.detail();

+ 1 - 2
pagesA/my/signin/index.vue

@@ -20,7 +20,7 @@
 						<view class='num' :class="sign_index >= index + 1 ? 'on' : ''">+{{item.number}}</view>
 					</view>
 				</view>
-				<button class='but bg-color on' v-if="memberinfo.is_day_sgin">已签到</button>
+				<button class='but bg-color on' v-if="memberinfo.is_day_sgin">今天已签到</button>
 				<form @submit="goSign" v-else>
 					<button class='but bg-color' formType="submit">立即签到</button>
 				</form>
@@ -170,7 +170,6 @@
 					that.$request.get('signin.add').then(res => {
 						if (res.errno == 0) {
 							that.active = true;
-
 							that.memberinfo = res.data;
 							that.sign_index = that.memberinfo.sign_index;
 							that.getpoints = that.memberinfo.getpoints;

+ 3 - 4
pagesA/my/userInfo/index.vue

@@ -12,7 +12,7 @@
 			<image v-if="pagestyleconfig.userstylebgimg" :src="pagestyleconfig.userstylebgimg" class="tui-my-bg"
 				mode="widthFix"></image>
 			<image v-if="!pagestyleconfig.userstylebgimg && !pagestyleconfig.userstylebgcolor"
-				src="/static/images/mall/my/img_bg_3x.png" class="tui-my-bg" mode="widthFix"></image>
+				src="https://daopic.samcms.com/xm_static/images/img_bg_3x.png" class="tui-my-bg" mode="widthFix"></image>
 			<view class="tui-header-center">
 				<image v-if="memberinfo.is_online"
 					:src="memberinfo.userpic || '/static/images/my/mine_def_touxiang_3x.png'" class="tui-avatar"
@@ -241,10 +241,9 @@
 					</tui-list-cell>
 				</tui-list-view>
 			</view>
-
-			<!--为你推荐-->
+			<!--猜你喜欢-->
 			<block v-if="recommendgoods.length>0">
-				<tui-divider :size="28" :bold="true" color="#333" width="50%">为你推荐</tui-divider>
+				<tui-divider :size="28" :bold="true" color="#333" width="50%">猜你喜欢</tui-divider>
 				<view class="tui-product-list">
 					<view class="tui-product-container">
 						<block v-for="(item, index) in recommendgoods" :key="index">

+ 110 - 6
pagesA/submitOrder/submitOrder.vue

@@ -62,8 +62,8 @@
 						</view>
 					</view>
 				</tui-list-cell>
-				<tui-list-cell v-if="(deliverymode==1 || deliverymode==2 || deliverymode==4) && is_times==0" :arrow="true" unlined
-					:radius="true" @click="chooseTime">
+				<tui-list-cell v-if="(deliverymode==1 || deliverymode==2 || deliverymode==4) && is_times==0"
+					:arrow="true" unlined :radius="true" @click="chooseTime">
 					<view class="tui-address">
 						<view v-if="servicetime">
 							<view class="tui-addr">
@@ -103,6 +103,13 @@
 							<view :class="{'tui-color-red':hasCoupon}">{{curCouponname||"选择优惠券"}}</view>
 						</view>
 					</tui-list-cell>
+					<tui-list-cell v-if="!hasNogoodsgiftcard" :arrow="hasgoodsgiftcard" :hover="hasgoodsgiftcard"
+						@click="goodsgiftcardShow=true">
+						<view class="tui-padding tui-flex">
+							<view>使用购物卡抵扣</view>
+							<view :class="{'tui-color-red':hasgoodsgiftcard}">{{curGoodsgiftcardname||"选择购物卡"}}</view>
+						</view>
+					</tui-list-cell>
 					<tui-list-cell v-if="totalPayPoints>0" @tap="PayPoints">
 						<view class="tui-item-box">
 							<view class="tui-icon-box">
@@ -201,6 +208,8 @@
 				@close="popupClose"></t-pay-way>
 			<t-select-coupons :couponList="coupons" :show="couponShow" @ChangeCoupon="ChangeCoupon"
 				@close="couponsClose"></t-select-coupons>
+			<t-select-goodsgiftcard :dataList="goodsgiftcard" :show="goodsgiftcardShow"
+				@ChangeGoodsgiftcard="ChangeGoodsgiftcard" @close="goodsgiftcardShowClose"></t-select-goodsgiftcard>
 		</form>
 	</view>
 </template>
@@ -208,11 +217,13 @@
 <script>
 	import tPayWay from "@/components/views/t-pay-way/t-pay-way"
 	import tSelectCoupons from "@/components/views/t-select-coupons/t-select-coupons"
+	import tSelectGoodsgiftcard from "@/components/views/t-select-goodsgiftcard/t-select-goodsgiftcard"
 	import pay from '@/common/pay.js'
 	export default {
 		components: {
 			tPayWay,
-			tSelectCoupons
+			tSelectCoupons,
+			tSelectGoodsgiftcard
 		},
 		data() {
 			return {
@@ -220,10 +231,12 @@
 				technicalId: '',
 				sid: '',
 				hasCoupon: true,
+				hasgoodsgiftcard: true,
 				insufficient: false,
 				pagestyleconfig: [],
 				show: false,
 				couponShow: false,
+				goodsgiftcardShow: false,
 				islogin: 1, //是否要需要登录,需要在onLoad加截 app.page.onLoad(this,e);
 				totalPayPoints: 0,
 				distance: 0,
@@ -244,19 +257,24 @@
 				buyNowgoods: [],
 				orderType: "", //订单类型,购物车下单或立即支付下单,默认是购物车,
 				hasNoCoupons: true,
+				hasNogoodsgiftcard: true,
 				coupons: [],
+				goodsgiftcard: [],
 				selIndex: 0,
 				coupon_type: 0, //优惠券类型
 				discount: 0, //优惠券折扣
 				youhuijine: 0, //优惠券金额
 				curCoupon: null, // 当前选择使用的优惠券
 				curCouponname: null, // 当前选择使用的优惠券
+				curGoodsgiftcard: null,
+				curGoodsgiftcardname: null,
 				allowSelfCollection: '0', // 是否允许到店自提
 				payment: '0', //是否支持货到付款
 				paymentType: "",
 				deliverymode: '',
 				deliverymodearray: {},
 				is_times: 0,
+				is_timing: 0,
 				ptype: 1,
 				paymethod: [],
 				is_PayPoints: 0,
@@ -341,6 +359,7 @@
 								}
 								_this.deliverymodearray = buyNowInfoMem.deliverymodearray;
 								_this.is_times = buyNowInfoMem.is_times;
+								_this.is_timing = buyNowInfoMem.is_timing;
 								_this.ptype = buyNowInfoMem.ptype;
 
 								if (buyNowInfoMem && buyNowInfoMem.shopList) {
@@ -362,7 +381,6 @@
 								}
 							}
 
-
 							_this.goodsList = shopList;
 							_this.$config.init(function() {
 								_this.payment = _this.$config.getConf("payment");
@@ -450,7 +468,8 @@
 			},
 			chooseTime() {
 				uni.navigateTo({
-					url: "/pagesA/submitOrder/timelist?technicalId=" + this.technicalId + "&buynowinfoid=" + this.buynowinfoid,
+					url: "/pagesA/submitOrder/timelist?technicalId=" + this.technicalId + "&buynowinfoid=" + this
+						.buynowinfoid,
 				})
 			},
 			btnPay() {
@@ -465,6 +484,12 @@
 					this.createOrder();
 				} else if (this.setyouhuijine(this.setPayPoints(this.allGoodsAndYunPrice)) == 0) {
 					this.createOrder();
+				} else if (this.curGoodsgiftcard) {
+					if (this.curGoodsgiftcard.id) {
+						this.createOrder();
+					} else {
+						this.show = true
+					}
 				} else {
 					this.show = true
 				}
@@ -475,6 +500,10 @@
 			couponsClose() {
 				this.couponShow = false
 			},
+			goodsgiftcardShowClose() {
+				this.goodsgiftcardShow = false
+			},
+
 			invoice() {
 				this.tui.href('/pagesA/submitOrder/invoice')
 			},
@@ -569,6 +598,7 @@
 					}
 
 					_this.getMyCoupons();
+					_this.getMygoodsgiftcard();
 					return;
 				})
 			},
@@ -632,7 +662,7 @@
 				}
 				postData.payment = postData.paymentType;
 				postData.is_times = _this.is_times;
-
+				postData.is_timing = _this.is_timing;
 
 				if (_this.deliverymode == 1) {
 					if (_this.is_times == 0) {
@@ -707,6 +737,10 @@
 				if (_this.curCoupon) {
 					postData.couponId = _this.curCoupon.id;
 				}
+				if (_this.curGoodsgiftcard) {
+					postData.goodsgiftcardId = _this.curGoodsgiftcard.id;
+				}
+
 				postData.is_PayPoints = _this.is_PayPoints;
 				postData.deliverymode = _this.deliverymode;
 				//console.log(postData);
@@ -745,7 +779,35 @@
 										});
 									}
 								})
+								_this.$request.post('message.payorder', {
+									orderid: orderid
+								}).then(res => {
+
+								})
 
+							} else {
+								wx.showModal({
+									title: '失败',
+									content: res.msg,
+									showCancel: false
+								})
+							}
+						})
+					} else if (res.data.payment_code == 'goodsgiftcard_pay') {
+						_this.$request.post('order.goodsgiftcardpay', {
+							orderid: orderid
+						}).then(res => {
+							if (res.errno == 0) {
+								wx.showModal({
+									title: '成功',
+									content: '使用购物卡抵扣成功',
+									showCancel: false,
+									success: function(res) {
+										wx.redirectTo({
+											url: redirectUrl
+										});
+									}
+								})
 								_this.$request.post('message.payorder', {
 									orderid: orderid
 								}).then(res => {
@@ -863,6 +925,8 @@
 				var _this = this;
 				_this.$request.get('Couponreceive.submitorder', {
 					price: _this.allGoodsAndYunPrice,
+					goodsId: _this.buyNowgoods.goods_id,
+					sid: _this.sid,
 					samkey: (new Date()).valueOf()
 				}).then(res => {
 					if (res.errno == 0) {
@@ -874,6 +938,23 @@
 					}
 				})
 			},
+			getMygoodsgiftcard: function() {
+				var _this = this;
+				_this.$request.get('Ordercard.goodsgiftcard', {
+					price: _this.allGoodsAndYunPrice,
+					goodsId: _this.buyNowgoods.goods_id,
+					sid: _this.sid,
+					samkey: (new Date()).valueOf()
+				}).then(res => {
+					if (res.errno == 0) {
+						var goodsgiftcard = res.data;
+						if (goodsgiftcard.length > 0) {
+							_this.hasNogoodsgiftcard = false;
+							_this.goodsgiftcard = goodsgiftcard;
+						}
+					}
+				})
+			},
 			setyouhuijine: function(amount) {
 				if (this.coupon_type == 10) {
 					return (amount - this.youhuijine).toFixed(2);
@@ -934,6 +1015,29 @@
 				this.curCoupon = this.coupons[selIndex];
 				this.curCouponname = this.coupons[selIndex].name;
 			},
+			ChangeGoodsgiftcard: function(e) {
+				this.goodsgiftcardShow = false
+				const selIndex = e.selIndex;
+
+				if (selIndex == -1) {
+					this.curGoodsgiftcard = null;
+					this.curGoodsgiftcardname = null;
+					return;
+				}
+				if (parseFloat(this.goodsgiftcard[selIndex].balance) < parseFloat(this.allGoodsAndYunPrice)) {
+					this.curGoodsgiftcard = null;
+					this.curGoodsgiftcardname = null;
+					uni.showModal({
+						title: '提示',
+						content: '这张购物卡余额不足!',
+						showCancel: false
+					})
+					return;
+				}
+
+				this.curGoodsgiftcard = this.goodsgiftcard[selIndex];
+				this.curGoodsgiftcardname = this.goodsgiftcard[selIndex].name;
+			},
 			remarkInput: function(e) {
 				this.remark = e.target.value;
 			},

+ 2 - 2
siteinfo.js

@@ -3,8 +3,8 @@ var siteinfo = {
 	"acid": "1",
 	"multiid": "0",
 	"version": "1",
-	"siteroot": "https://jbangjia.jinjianghc.com/app/index.php",
-	// "siteroot": "http://bd.jbangjia.com/app/index.php",
+	// "siteroot": "https://jbangjia.jinjianghc.com/app/index.php",
+	"siteroot": "http://bd.jbangjia.com/app/index.php",
 	"design_method": "2"
 }
 module.exports = siteinfo

二進制
static/logo.png