twt vor 1 Jahr
Ursprung
Commit
1c5e19e18f

+ 4 - 0
components/timeSelect/timeSelect.vue

@@ -147,6 +147,10 @@ export default {
 		display: flex;
 		background: #fff;
 	}
+	.time-select-popup-body-left{
+		height: calc(50vh - 120rpx);
+		    overflow-y: auto;
+	}
 	.time-select-popup-body-left-item{
 	  width: 172rpx;
 	  height: 94rpx;

+ 7 - 0
pages.json

@@ -559,6 +559,13 @@
 								"navigationStyle": "custom",
 								"enablePullDownRefresh": true
 							}
+					},{
+						"path": "chooseCity",
+						"style": {
+							"navigationBarTitleText": "选择城市",
+							"enablePullDownRefresh": false
+						}
+
 					}
 				]
 				

+ 3 - 3
pages/index/confirmYuyue.vue

@@ -38,7 +38,7 @@
 			</view>
 			<view class="kkline2" v-for="(item,index) in yuyueData">
 			  <view class="kklineLeft3">{{item.ItemName}}</view>
-			  <view class="kklineRight3">¥{{item.Price}}</view>
+			  <view class="kklineRight3" v-if="item.Price">¥{{item.Price}}</view>
 			</view>
 		</view>
 		<view class="contkk" style="margin-top: 20rpx;">
@@ -54,7 +54,7 @@
 	<view style="height: 120rpx;"></view>
 	<view class="bottom-container">
 		<view>
-			<view class="bottom-container-price"><span class="qianhaospan" >¥</span> {{totalPrice}} <span></span></view>
+			<view class="bottom-container-price"><span class="qianhaospan"v-if="totalPrice" >¥</span> {{totalPrice}} <span></span></view>
 			<view class="ckj">参考价格(到店支付)</view>
 		</view>
 	  <view  class="newyyBotbutton" :style="{background:'#'+themeColor}" @click="yuyue">立即预约</view>
@@ -73,7 +73,7 @@
 		data() {
 			return {
 				comment:'',
-				totalPrice:99,
+				totalPrice:'',
 				userInfo:'',
 				timedata:'',
 				billDate:'',

+ 125 - 10
pages/index/discountCard.vue

@@ -16,15 +16,29 @@
 			
 			<view style="height: 92rpx;"></view>
 			<view class="itemBg" v-for="(item,index) in currentList" @click="goDetail(item.id)">
-				<view class="itemTop">
-					<view class="leftB">
+				<view class="leftB" v-if="item.discountType==1 " style="display: flex;align-items: center;justify-content: center;">
+					<view>
 						<view class="use" v-if="item.state==0">¥<span class="use2">{{item.actMoney}}</span></view>
 						<view class="used" v-else>¥<span class="used2">{{item.actMoney}}</span></view>
 						<view class="tiaojian">{{item.whereMoney!==0?'满'+item.whereMoney+'元可用':'满任意金额可用'}}</view>
 					</view>
+					
+				</view>
+				
+				<view class="leftB" v-if="item.discountType!=1" style="display: flex;align-items: center;justify-content: center;">
+					<image src="http://dmsphoto.66km.com.cn/thFiles/5340A784-FEE2-43FA-8ED1-C509FADFDBED.png"
+					 mode="" style="width: 77rpx;height:48rpx;"></image>
+				</view>
+				<view style="width: 460rpx;">
+					
+				<view class="itemTop">
+					
+					
 					<view class="centerB">
 						<view class="name" >
-						 <span class="djq">代金券</span>
+						 <span class="djq" v-if="item.discountType==1">代金券</span>
+						 <span class="djq" v-if="item.discountType==2">商品券</span>
+						 <span class="djq" v-if="item.discountType==3">服务券</span>
 						 <span>{{item.actName}}</span>
 						</view>
 						<view class="plateNumer" v-if="item.plateNumer">限鲁{{item.plateNumer}}使用</view>
@@ -45,7 +59,8 @@
 					<view  class="rightJian">使用规则
 					  <image src="../../static/img/little_rightArrow.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 					</view>
-					<view class="gouse" v-if="item.usedState==0">去使用</view>
+					<view class="gouse" v-if="item.state==0" @click="goUseFn(item)">去使用</view>
+				</view>
 				</view>
 
 				<!-- <view class="itemBottom">
@@ -60,14 +75,38 @@
 			<!-- 无数据空白页 -->
 			<nodata v-if="items.length==0"></nodata>
 		</view>
+		
+		<!-- 核销码 -->
+		<view class="authorizBox" v-if="hxShow" @click="hxclose">
+			<view class="hxBox" @click.stop="">
+				<view class="chBox">
+					<img src="../../static/timg/chahao.png" alt="" class="chahaoImg" @click="hxclose"/>
+				</view>
+				<view class="hxName">{{detail.actName}}</view>
+				<view class="hxTime" v-if="detail.startTime">
+					有效期:{{detail.startTime.slice(0,10)}}至{{detail.endTime.slice(0,10)}}</view>
+				<view class="hxTime" v-else>有效期:领取后{{detail.endOffsetDays}}天</view>
+				<view style="display: flex;justify-content: center;padding-top:50rpx;">
+					<tki-qrcode cid="qrcode1" ref="qrcode" :val="detail.couponCode" :size="400" :unit="unit"
+						:pdground="pdground" :icon="icon" :iconSize="iconsize" :lv="lv" :onval="onval"
+						:loadMake="loadMake" :usingComponents="true" @result="qrR" />
+					
+				</view>
+				<view class="couponCode">{{detail.couponCode}}</view>
+				<view class="couponCodeTs">请到店出示券码即可开始服务</view>
+				
+			</view>
+		</view>
+		
 	</view>
 </template>
 
 <script>
 	import nodata from '@/components/nodata/nodata.vue'
+	import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
 	export default {
 		components: {
-			nodata
+			nodata,tkiQrcode
 		},
 		computed: {
 		  currentList () {
@@ -80,10 +119,22 @@
 		},
 		data() {
 			return {
-
 				tabIndex: 1,
 				tabIndex2: 0,
 				items: [],
+				onval: true, // val值变化时自动重新生成二维码
+				loadMake: true, // 组件加载完成后自动生成二维码
+				val: '二维码', // 要生成的二维码值
+				unit: 'upx', // 单位
+				background: '#b4e9e2', // 背景色
+				foreground: '#309286', // 前景色
+				pdground: '#262637', // 角标色
+				icon: '', // 二维码图标
+				iconsize: 40, // 二维码图标大小
+				lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
+				src: '', // 二维码生成后的图片地址或base64
+				hxShow:false,
+				detail:'',
 
 			}
 		},
@@ -106,7 +157,13 @@
 					url: 'discountCardDetail?id=' + id
 				})
 			},
-
+             hxclose(){
+             	this.hxShow=false;
+             },
+			 goUseFn(item){
+				 this.detail=item;
+				 this.hxShow=true;
+			 },
 			tabClick(num) {
 				this.tabIndex = num;
 
@@ -183,9 +240,10 @@
 	width: 99rpx;
 	height: 44rpx;
 	border-radius: 22rpx;
-	border: 1rpx solid #FF0000;
+	border: 1px solid #FF0000;
 	text-align: center;
 	line-height: 42rpx;
+	color: #FF0000;
 }
 	.tab {
 		background: #FFFFFF;
@@ -270,16 +328,20 @@
 		background-color: #FFFFFF;
 		border-radius: 10rpx;
 		padding: 40rpx 20rpx 20rpx;
+		    display: flex;
+	}
+	.leftB{
+		width: 200rpx;
 	}
 
 	.itemTop {
 		display: flex;
 		justify-content: space-between;
-		margin-bottom: 40rpx;
+		margin-bottom: 12rpx;
 	}
 
 	.use {
-
+            text-align: center;
 		font-size: 26rpx;
 		color: #FF0000;
 	}
@@ -363,4 +425,57 @@
 		display: flex;
 		align-items: center;
 	}
+	.authorizBox{
+			width: 100vw;
+			height: 100vh;
+			background: rgba(0, 0, 0, 0.5);
+			position: fixed;
+			top: 0;
+			left: 0;
+			z-index: 11;
+		}
+		.hxBox{
+			width: 750rpx;
+			height: 75vh;
+			margin-top: 25vh;
+			background: #FFFFFF;
+			border-radius: 32rpx 32rpx 0rpx 0rpx;
+			z-index: 222;
+		}
+		.couponCode{
+			font-weight: 500;
+			color: #333333;
+			font-size: 30rpx;
+			padding-top: 40rpx;
+			text-align: center;
+		}
+		.couponCodeTs{
+			color: #666666;font-size: 24rpx;
+			text-align: center;padding-top: 10rpx;
+		}
+		.hxName{
+			font-weight: 500;
+			color: #333333;
+			line-height: 42rpx;
+			font-size: 30rpx;
+			text-align: center;
+			padding-top: 26rpx;
+		}
+		.hxTime{
+			color: #3C3C3C;font-size: 24rpx;	text-align: center;padding-top: 16rpx;
+			padding-bottom: 50rpx;
+			border-bottom: 1px dashed #C3C3C3;
+		}
+		.chahaoImg{
+			width: 36rpx;height: 36rpx;
+		}
+		.chBox{
+			text-align: right;
+			padding-top: 33rpx;
+			padding-right: 24rpx;
+		}
+		.couponCodeBox{
+			display: flex;
+			padding-top: 15rpx;
+		}
 </style>

+ 34 - 19
pages/index/discountCardDetail.vue

@@ -10,9 +10,15 @@
 					<view class="tiaojian">{{detail.whereMoney!==0?'满'+detail.whereMoney+'元可用':'满任意金额可用'}}</view>
 				</view>
 				<view class="centerB">
-					<view class="name">{{detail.actName}}</view>
+					<view class="name">
+					<span class="djq" v-if="detail.discountType==1">代金券</span>
+					<span class="djq" v-if="detail.discountType==2">商品券</span>
+					<span class="djq" v-if="detail.discountType==3">服务券</span>
+					<span>{{detail.actName}}</span>
+					
+					</view>
 					<view class="time" v-if="detail.startTime">
-						有效期:{{detail.startTime.slice(0,10)}}-{{detail.endTime.slice(0,10)}}</view>
+						有效期:{{detail.startTime.slice(0,10)}}{{detail.endTime.slice(0,10)}}</view>
 					<view class="time" v-else>有效期:领取后{{detail.endOffsetDays}}天</view>
 				</view>
 
@@ -21,15 +27,7 @@
 
 
 		<view class="comtentBox">
-			<view style="margin-bottom: 30rpx;">
-				<!-- <view class="titleBox">
-					
-					<image src="../../static/img/icon_youhui_red.png" mode="" class="redPoint"></image>
-					<view class="title">可用次数</view>
-				</view>
-				<view class="content">{{detail.avaQty}}次</view> -->
-
-			</view>
+			
 			<view style="margin-bottom: 30rpx;">
 					<view style="display: flex;justify-content: space-between;">
 						<view class="titleBox">
@@ -55,7 +53,7 @@
 					<image src="../../static/img/icon_youhui_red.png" mode="" class="redPoint"></image>
 					<view class="title">使用说明</view>
 					</view>
-					<view v-if="detail.couContent" v-html="detail.couContent"></view>
+					<view style="font-size: 20rpx;" v-if="detail.couContent" v-html="detail.couContent"></view>
 					<view v-else class="content">暂无</view>
 				</view>
 
@@ -95,10 +93,10 @@
 			</view>
 			<view class="hxName">{{detail.actName}}</view>
 			<view class="hxTime" v-if="detail.startTime">
-				有效期:{{detail.startTime.slice(0,10)}}-{{detail.endTime.slice(0,10)}}</view>
+				有效期:{{detail.startTime.slice(0,10)}}{{detail.endTime.slice(0,10)}}</view>
 			<view class="hxTime" v-else>有效期:领取后{{detail.endOffsetDays}}天</view>
 			<view style="display: flex;justify-content: center;padding-top:50rpx;">
-				<tki-qrcode cid="qrcode1" ref="qrcode" :val="detail.code" :size="400" :unit="unit"
+				<tki-qrcode cid="qrcode1" ref="qrcode" :val="detail.couponCode" :size="400" :unit="unit"
 					:pdground="pdground" :icon="icon" :iconSize="iconsize" :lv="lv" :onval="onval"
 					:loadMake="loadMake" :usingComponents="true" @result="qrR" />
 				
@@ -117,7 +115,7 @@
 				<img src="../../static/timg/chahao.png" alt="" class="chahaoImg" @click="spShopHide"/>
 			</view>
 			<view class="spShopLineBox">
-				<view class="spShopLine">连锁一号门店</view>
+				<view class="spShopLine" v-for="(item,index) in detail.shopNames.split(',')">{{item}}</view>
 			</view>
 		</view>
 		
@@ -227,6 +225,9 @@
 				}
 				this.$http(url, params, 'GET').then(res => {
 					uni.hideLoading();
+					res.data.couContent=res.data.couContent.replaceAll('font-size:15px', 'font-size:12px');
+					res.data.couContent=res.data.couContent.replaceAll('font-size: 15px', 'font-size:12px');
+					res.data.couContent=res.data.couContent.replaceAll('font-size:14px', 'font-size:12px');
 					this.detail = res.data;
 
 
@@ -237,6 +238,21 @@
 </script>
 
 <style scoped>
+	.djq{
+		background: linear-gradient(128deg, #FFE4C5 0%, #FDC692 100%);
+		border-radius: 4rpx;
+		height: 34rpx;
+		width: 76rpx;
+		line-height: 34rpx;
+		text-align: center;
+		color: #2B2219;
+		font-size: 20rpx;
+		margin-top: 4rpx;
+		margin-right: 10rpx;
+	}
+	.titleBox span{
+		font-size: 12px;
+	}
 .syShopBox{
 	background: #FFFFFF;
 	border-radius: 32rpx 32rpx 0rpx 0rpx;
@@ -384,7 +400,7 @@
 	}
 
 	.use {
-
+        text-align: center;
 		font-size: 26rpx;
 		color: #FF0000;
 	}
@@ -420,12 +436,11 @@
 	}
 
 	.name {
-
+line-height: 42rpx;
 		font-size: 30rpx;
-
+display: flex;
 		font-weight: 500;
 		color: #333333;
-		line-height: 56rpx;
 	}
 
 	.time {

+ 2 - 2
pages/index/onlineBooking.vue

@@ -97,7 +97,7 @@
 					<view class="itemSm">
 						{{item.Comment}}
 					</view>
-					<view class="Price">
+					<view class="Price" v-if="item.Price">
 						<view class="yuyue-price"> <span class="qianhaospan">¥</span> {{item.Price||'--'}} </view>
 					</view>
 				</view>
@@ -140,7 +140,7 @@
 				<view class="yydetailContLine" v-for="(item,index) in  selectedItems">
 					<view class="yydlineName">{{item.ItemName}}</view>
 					<view class="yydlineCommnt" v-if="true">{{item.Comment}}</view>
-					<view class="yydPrice">¥{{item.Price}}</view>
+					<view class="yydPrice" v-if="item.Price">¥{{item.Price||'--'}}</view>
 				</view>
 			</view>
 

+ 13 - 5
pages/index/rescue.vue

@@ -18,19 +18,19 @@
 
 
 			<view class="typeBox">
-				<view class="box2" @click="typeClick(1)" :class="{typeActive:typeIndex==1}">
+				<view class="box2" v-if="setting.indexOf(1)!=-1" @click="typeClick(1)" :class="{typeActive:typeIndex==1}">
 					<image src="../../static/img/icon_dadian_N.png" mode="" class="typeImg"></image>
 					<view class="title">搭电</view>
 				</view>
-				<view class="box2" @click="typeClick(2)" :class="{typeActive:typeIndex==2}">
+				<view class="box2" v-if="setting.indexOf(2)!=-1" @click="typeClick(2)" :class="{typeActive:typeIndex==2}">
 					<image src="../../static/img/icon_tuoche_N.png" mode="" class="typeImg"></image>
 					<view class="title">拖车</view>
 				</view>
-				<view class="box2"  @click="typeClick(3)" :class="{typeActive:typeIndex==3}">
+				<view class="box2" v-if="setting.indexOf(3)!=-1"  @click="typeClick(3)" :class="{typeActive:typeIndex==3}">
 					<image src="../../static/img/icon_luntai_N.png" mode="" class="typeImg"></image>
 					<view class="title">换胎</view>
 				</view>
-				<view class="box2"  @click="typeClick(4)" :class="{typeActive:typeIndex==4}">
+				<view class="box2" v-if="setting.indexOf(4)!=-1" @click="typeClick(4)" :class="{typeActive:typeIndex==4}">
 					<image src="../../static/timg/icon_luntai_def.png" mode="" class="typeImg"></image>
 					<view class="title">未知原因</view>
 				</view>
@@ -149,6 +149,7 @@
 				msg:'',
 				helpPrice:'',
 				helptime:'',
+				setting:'',
 			}
 		},
 		onLoad() {
@@ -156,7 +157,7 @@
 			this.userInfo=this.$store.state.userInfo;
 			this.ext=this.$common.getExtStoreId();
 			if(this.userInfo){
-				
+				this.getsetting()
 			}else{
 				this.$common.automaticlogin().then(val => {
 					this.userInfo=this.$store.state.userInfo;
@@ -219,6 +220,13 @@
 		},
 		
 		methods: {
+			getsetting(){
+				this.$http('openShopHelpSheetOrder/help-type-setting', {
+				 
+				 },'POST').then(res => {
+					this.setting=res.data	
+				 })
+			},
 			decryptPhoneNumber: function(e) {
 			  console.log(e);
 			  this.code=e.detail.code

+ 183 - 22
pages/index/shopList.vue

@@ -1,20 +1,41 @@
 <template>
 	<view class="box">
-
-		<view class="shopline" v-for="(item,index) in queryShopList" @click="goDetail(item)">
+        <view class="regionBox">
+			<view class="regionLine" @click="gocity">
+				<view class="regionTxt">{{cityName}}</view>
+				<image src="../../static/timg/icon_arrow_def@2x.png" mode="" class="jtbelow"></image>
+			</view>
+			<view class="regionSx"></view>
+			<view class="regionLine">
+				<picker @change="bindPickerChange" :value="index" :range="areaList" range-key='area'>
+					<view class="regionTxt">{{areaName}}</view>
+				</picker>
+				
+				<image src="../../static/timg/icon_arrow_def@2x.png" mode="" class="jtbelow"></image>
+			</view>
+		</view>
+		<view class="shopline" v-for="(item,index) in queryShopList" >
 			<view class="shoplineLeft">
 				<image :src="item.photoPath" mode="" class="shopImg" v-if="item.photoPath"></image>
 				<image src="../../static/timg/noimg.png" mode="" class="shopImg" v-else></image>
 			</view>
 			<view class="shopright">
-				<view class="shopTop">
-					<view class="shopName">{{item.shopName}}</view>
-				</view>
-
-				<view class="brandsBg" v-if="item.brands">
-
-					<view class="brands" v-for="(v,index2) in item.brands.split(',')">{{v}}</view>
-				</view>
+				<view style="display: flex;justify-content: space-between;">
+					<view style="width: 410rpx;">
+						<view class="shopTop">
+							<view class="shopName">{{item.shopName}}</view>
+						</view>
+						<view class="brandsBg" v-if="item.brands">
+							<view class="brands" v-for="(v,index2) in item.brands.split(',')">{{v}}</view>
+						</view>
+					</view>
+					<view class="yuyuBtnBox" @click="goDetail(item)">
+						<view>预约</view>
+						<image style="width: 21rpx;height: 21rpx;margin-top: 4rpx;margin-left: 5rpx;" src="http://dmsphoto.66km.com.cn/thFiles/1D60717A-DC1D-43BC-BBFE-EE0FAFD1A470.png" mode=""></image>
+					</view>
+				</view>	
+				
+				
 
 				<view class="shopTime"><span v-if="item.startTime">{{item.startTime}}</span> - <span
 						v-if="item.endTime">{{item.endTime}}</span> </view>
@@ -25,6 +46,16 @@
 						v-if="item.address">{{item.provinceName}}{{item.cityName}}{{item.areaName}}{{item.address}}</span>
 					<span v-if="item.distance&&item.distance!= '0.00'">{{item.distance}}km</span>
 				</view>
+				<view class="shopdhBox">
+				  <view class="shopcall" @click="makePhoneCall(item.mobilePhone)">
+					  <image class="shopcallIcon" src="http://dmsphoto.66km.com.cn/thFiles/AB063613-7B7A-4BD4-AF43-9ECC082FF5C6.png" mode=""></image>
+				      <view class="shopcallTxt">{{item.mobilePhone}}</view>
+				  </view>
+				  <view class="shopcall" style="padding-left: 65rpx;" @click="goMap(item)">
+				  	  <image class="shopcallIcon" src="http://dmsphoto.66km.com.cn/thFiles/5479ED98-61D3-41CB-8080-889E851FF6C0.png" mode=""></image>
+				      <view class="shopcallTxt">一键导航</view>
+				  </view>
+				</view>
 
 			</view>
 
@@ -56,32 +87,125 @@
 				},
 				queryShopList: '',
 				noMoreShow: false,
-
-
-
+                regionName:'',
+                twoRegionName:'',
+                cityName:'',
+				area:'',
+				cityCode:'',
+				areaList:'',
+				index:'',
+				areaName:'区域',
 			}
 		},
 
 		onLoad() {
 			var that = this;
+			uni.removeStorageSync('selectCity');
 			uni.getLocation({
 				type: 'gcj02',
 				success: function(res) {
 					console.log(res)
 					that.location.lat = res.latitude
 					that.location.lng = res.longitude
-
-					that.getqueryShopList() //获取全部门店列表
+                    that.getAdress();
+					//that.getqueryShopList() //获取全部门店列表
 
 				},
 				fail(err) {
 
 				}
 			});
+			
+		},
+		onShow() {
+			const selectCity = uni.getStorageSync('selectCity');
+			if(selectCity){
+				this.cityName=selectCity.city
+				this.cityCode=selectCity.code
+				this.getqueryShopList() //获取门店列表
+			}
 		},
 		methods: {
-
-
+			gocity(){
+				uni.navigateTo({
+					url:'/pages/subPack/chooseCity'
+				})
+			},
+			bindPickerChange(e){
+				//console.log(e)
+				this.areaName=this.areaList[e.detail.value].area
+				this.area=this.areaList[e.detail.value].code
+				this.getqueryShopList() //获取门店列表
+			},
+            makePhoneCall(num){
+				uni.makePhoneCall({
+					phoneNumber:num
+				});
+			},
+            goMap(item){
+				var that = this;
+				if (!item.lat || !item.lng) {
+					uni.showToast({
+						title: '该店铺未设置定位',
+						icon: 'none',
+						duration: 3000
+					});
+				} else {
+					uni.openLocation({
+						latitude: Number(item.lat),
+						longitude: Number(item.lng),
+						name: item.shopName,
+						address: item.provinceName + item.cityName + item.areaName +
+							item.address,
+						success: function() {
+							console.log('success');
+						},
+						fail(err) {
+							console.log(err)
+						}
+					});
+				}
+			},
+			getAdress(){
+				var that=this;
+				var location = this.location.lng + ',' + this.location.lat
+				uni.request({
+					url: 'https://restapi.amap.com/v3/geocode/regeo',
+					data: {
+						key: '389a059efa3f499d9145eb84b1c3248d',
+						location: location,
+					},
+					dataType: "json",
+					success: (res) => {
+						console.log('定位城市', res);
+						if(res.data.regeocode){
+							console.log("城市名称")
+							 console.log(res.data.regeocode.addressComponent.city)
+							// console.log(res.data.pois[0].cityname)
+							let cityname = res.data.regeocode.addressComponent.city;
+							var cityCode = res.data.regeocode.addressComponent.adcode
+							cityCode = cityCode.slice(0, -2)
+							cityCode = cityCode + '00'
+							this.cityName = cityname
+							this.cityCode = cityCode
+							that.getqueryShopList() //获取全部门店列表
+							that.getAreaList()
+							
+						}else{
+							console.log("接口获取失败")
+						}
+						
+					}
+				});
+			},
+			getAreaList(){
+				this.$http('opencarOwnerHome/shop-area-list', {
+				    city:this.cityCode
+				}, 'GET').then(res => {
+				    this.areaList=res.data
+				
+				})
+			},
 			getqueryShopList() {
 				uni.showLoading({
 					title: '加载中'
@@ -90,11 +214,11 @@
 
 					lat: this.location.lat ? this.location.lat : '',
 					lng: this.location.lng ? this.location.lng : '',
-
-
+                    city:this.cityCode,
+                    area:this.area
 				}, 'GET').then(res => {
 					uni.hideLoading();
-					this.queryShopList = res.data
+					this.queryShopList = res.data.shop
 					console.log('list+=', this.queryShopList);
 
 				})
@@ -123,12 +247,49 @@
 </script>
 
 <style scoped>
+.jtbelow{
+	width: 14rpx;height: 7rpx;
+	margin-left: 10rpx;margin-top: 10rpx;
+}
+.regionSx{
+	width: 2rpx;height: 33rpx;background:#EEEEEE;
+}
+.regionLine{
+	display: flex;justify-content: center;font-size: 26rpx;
+	width: 370rpx;line-height: 33rpx;color: #3C3C3C;
+}
+.regionBox{
+	display: flex;
+	justify-content: center;
+	background: #FFFFFF;
+	padding: 20rpx 0;
+	margin-bottom: 20rpx;
+}
 	.box {
 		min-height: 100vh;
-		background-color: #F4F5F7;
-		padding-top: 20rpx;
+		background-color: #F4F5F7;
 		padding-bottom: 60rpx;
 	}
+	.shopdhBox{
+		display: flex;padding-top: 16rpx;
+	}
+	.shopcall{
+		display: flex;
+	}
+	.shopcallIcon{
+		width: 23rpx;height: 23rpx;margin-top: 5rpx;
+	}
+	.shopcallTxt{
+		color: #3C3C3C;font-size: 24rpx;
+		line-height: 33rpx;padding-left: 8rpx;
+	}
+	.yuyuBtnBox{
+		    display: flex;
+		    font-size: 24rpx;
+		    color: #FF8113;
+		    align-items: center;
+		    justify-items: center;
+	}
 
 	.shopline {
 		margin: 0rpx 24rpx 20rpx;

+ 380 - 0
pages/subPack/chooseCity.vue

@@ -0,0 +1,380 @@
+<template>
+	<view class="content">
+		
+
+		<!-- 城市列表 -->
+		<scroll-view class="scroll-view" scroll-y scroll-with-animation="true" enable-back-to-top="true"
+			:scroll-into-view="toIndex" >
+
+			<view class="listContent">
+				<view class="city-list">
+					<!-- 城市列表  -->
+					<view v-for="(item, index) in cityData">
+						<view class="c-title"  :id="item['首字母']">{{item['首字母']}}</view>
+						<view class="item" v-for="(city,index2) in item['城市列表']" @click="selectCity(city)">
+							{{city.city}}
+						</view>
+					</view>
+				</view>
+
+				<!-- 字母列表 -->
+				<view class="zhimubox">
+					<view v-for="(item, index) in alphabet">
+						<view class="alphabet" :class="{select:toIndex == item}" @click="tap(item)">
+							{{item}}
+						</view>
+					</view>
+				</view>
+			</view>
+
+
+
+		</scroll-view>
+		
+		
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				searchValue: '',
+				cityData: [],
+				alphabet: [],
+				toIndex: '', //跳转的索引的字母
+				searchData:[],
+				locationCity: {
+					cityName: '',
+					cityCode: '',
+					lng: '',
+					lat: '',
+				},
+				
+
+			}
+		},
+		onLoad() {
+			this.getData();
+		},
+		onShow() {
+			/* var nowCity = uni.getStorageSync("locationCity");
+			if (nowCity) {
+				this.locationCity = nowCity
+			} else {
+
+				this.getLocation()
+			} */
+			this.getData();
+		},
+		methods: {
+			tap(item) {
+				console.log('字母点击', item);
+				this.toIndex = item
+			},
+			againDingWei() {
+				console.log('重新定位');
+				this.getLocation();
+			},
+			getLocation() {
+
+				const that = this
+				uni.getLocation({
+					type: 'wgs84',
+					success: function(res) {
+						console.log('定位', res)
+						that.locationCity.lng = res.longitude
+						that.locationCity.lat = res.latitude
+
+						
+						that.getAdress();
+
+					},
+					fail(err) {
+						console.log(err)
+
+					}
+				});
+			},
+			getAdress() {
+				// 根据经纬度 逆城市地理编码 获取城市信息
+				var location = this.locationCity.lng + ',' + this.locationCity.lat
+				uni.request({
+					url: 'https://restapi.amap.com/v3/geocode/regeo',
+					data: {
+						key: '389a059efa3f499d9145eb84b1c3248d',
+						location: location,
+						//location: '117.06533,36.68013',
+						//types: "190000",
+						//extensions: "all",
+						//radius: 100
+					},
+					dataType: "json",
+					success: (res) => {
+						console.log('定位城市', res);
+						if(res.data.regeocode){
+							console.log("城市名称")
+							 console.log(res.data.regeocode.addressComponent.city)
+							// console.log(res.data.pois[0].cityname)
+							let cityname = res.data.regeocode.addressComponent.city;
+							var cityCode = res.data.regeocode.addressComponent.adcode
+							cityCode = cityCode.slice(0, -2)
+							cityCode = cityCode + '00'
+							this.locationCity.cityName = cityname
+							this.locationCity.cityCode = cityCode
+							uni.setStorage({
+								key: 'locationCity',
+								data: this.locationCity,
+								success: function() {
+									console.log('定位城市,保存成功');
+								}
+							})
+						}else{
+							console.log("接口获取失败")
+						}
+						
+					}
+				});
+			},
+			search(val) {
+				// console.log(val);
+				this.searchValue = val
+
+				this.getData()
+			},
+			getData() {
+				uni.showLoading({
+					title: '加载中'
+				})
+
+				let url = 'opencarOwnerHome/shop-city-list',
+					params = {
+						
+					}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading()
+
+					if (res.code == 0) {
+						this.cityData = res.data
+						var arr = []
+						this.cityData.forEach((item, index) => {
+							arr.push(item.首字母)
+						});
+					}
+					this.alphabet = arr
+					
+
+
+				})
+			},
+			selectDingCity(locationCity){
+				console.log('选择了定位城市:', locationCity);
+				var city={}
+				city.city = locationCity.cityName
+				city.code = locationCity.cityCode
+				uni.setStorage({
+					key: 'selectCity',
+					data: city,
+					success: function() {
+						console.log('选择了定位城市,保存成功');
+					}
+				})
+				
+				uni.navigateBack({
+				
+				})
+			},
+			selectCity(city) {
+
+				console.log('选择的城市:', city);
+
+				uni.setStorage({
+					key: 'selectCity',
+					data: city,
+					success: function() {
+						console.log('选择的城市,保存成功');
+					}
+				})
+
+				uni.navigateBack({
+
+				})
+
+			},
+
+		},
+
+
+		onPullDownRefresh() {
+
+			this.getData()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+
+	}
+</script>
+
+<style scoped>
+	.zhimubox{
+		position: fixed;
+		right: 30rpx;
+		top: 200rpx;
+		height: 80vh;
+		    overflow-y: scroll;
+	}
+	.content {
+		
+		background: #FFFFFF;
+		min-height: 100vh;
+	}
+
+	.topView {
+		background: #FFFFFF;
+		position: fixed;
+		width: 100%;
+		height: 120rpx;
+		z-index: 99;
+	}
+
+	.searchBoxBg {
+
+		width: 100%;
+		background-color: #FFFFFF;
+		border-top: 1rpx solid #EEEEEE;
+	}
+
+	.searchBox {
+		display: flex;
+		height: 72rpx;
+		margin: 24rpx;
+		background-color: #F4F5F7;
+		border-radius: 36rpx;
+	}
+
+	.scroll-view {
+		width: 100%;
+		height: calc(100vh - 80rpx);
+		box-sizing: border-box;
+		padding: 20rpx 24rpx 20rpx;
+
+	}
+
+	.nowArea {
+		width: 100%;
+		height: 147rpx;
+	}
+
+	.area {
+		color: #999999;
+		font-size: 24rpx;
+		margin-bottom: 20rpx;
+	}
+
+	.dingwBox {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.dingweiCity {
+		background-color: #F4F5F7;
+		border-radius: 49rpx;
+		width: 140rpx;
+		height: 64rpx;
+		text-align: center;
+		line-height: 64rpx;
+		font-size: 26rpx;
+	}
+
+	.dingBg {
+		display: flex;
+		align-items: center;
+		color: #3F90F7;
+		font-size: 26rpx;
+
+	}
+
+	.icon {
+		width: 33rpx;
+		height: 33rpx;
+		margin-right: 5rpx;
+	}
+
+	.listContent {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.city-list {
+		display: flex;
+		flex-direction: column;
+		width: 95%;
+	}
+
+
+	.c-title {
+		color: #999999;
+		font-size: 24rpx;
+		height: 33rpx;
+		line-height: 33rpx;
+		padding-top: 30rpx;
+	}
+
+	.item {
+		width: 100%;
+		height: 46rpx;
+		padding: 30rpx 13rpx;
+		color: #3C3C3C;
+		font-size: 28rpx;
+		border-bottom: 1rpx solid #EEEEEE;
+	}
+
+	.alphabet {
+		font-size: 22rpx;
+		font-weight: bold;
+		color: #999999;
+		width: 4%;
+		margin: 20rpx 0;
+		text-align: center;
+	}
+
+	.select {
+		color: #FF4F00;
+	}
+
+	
+	.reach-content{
+		width: 100%;
+		height: calc(100vh - 120rpx);
+		box-sizing: border-box;
+		padding: 120rpx 24rpx 20rpx;
+	}
+
+
+
+
+
+
+
+
+
+
+
+	/* 空白页css */
+	.nodataBox {
+		text-align: center;
+	}
+
+	.nodataImg {
+		width: 400rpx;
+		padding-top: 300rpx;
+	}
+
+	.noTxt {
+		font-size: 30rpx;
+		color: #999999;
+		padding-top: 50rpx;
+	}
+</style>

+ 26 - 8
pages/subPack/depositDetail.vue

@@ -42,13 +42,17 @@
 		</view>
 		
 		<view class="information" v-for="(item,index) in data.detailList">
-			<view class="detailedTitle">
-				<span v-if="item.locationType==1">左前</span>
-				<span v-if="item.locationType==2">右前</span>
-				<span v-if="item.locationType==3">左后</span>
-				<span v-if="item.locationType==4">右后</span>
-				<span v-if="item.locationType==5">备胎</span>
-				<span >轮胎</span>
+			<view class="detailedTitle" style="display: flex;justify-content: space-between;">
+				<view>
+					<span v-if="item.locationType==1">左前</span>
+					<span v-if="item.locationType==2">右前</span>
+					<span v-if="item.locationType==3">左后</span>
+					<span v-if="item.locationType==4">右后</span>
+					<span v-if="item.locationType==5">备胎</span>
+					<span >轮胎</span>
+				</view>
+				<view class="seeImg" @click="seeImg(item.imgList)" v-if="item.imgList" style="font-size: 24rpx;font-weight: 400;color: #666;">查看图片</view>
+				
 			</view>
 			<view class="informationLine">
 				<view class="informationTxt">品牌:</view>
@@ -99,13 +103,27 @@
             this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
 			this.themeColor = uni.getStorageSync("themeColor");
 			this.id=opt.id
+			//this.id='34435FE8-F160-4CCF-8D91-CEDF897FDC04'
 			this.getData()
 		},
 		onShow() {
 			
 		},
 		methods: {
-			
+			seeImg(imgList){
+				uni.previewImage({
+					urls: imgList.split(','),
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
 			goDetail(item) {
 				//SheetType 1 商品2项目3套餐4救援5钣喷6集客
 					uni.navigateTo({

+ 8 - 0
pages/subPack/rescueOrderOrderDetail.vue

@@ -152,6 +152,14 @@
 				<view class="informationTxt">完成备注:</view>
 				<view class="informationNum" >{{orderData.openShopHelpSheet.finishComment}}</view>
 			</view>
+			<view class="informationLine" v-if="orderData.openShopHelpSheet.evaluateTime">
+				<view class="informationTxt">评价时间:</view>
+				<view class="informationNum">{{orderData.openShopHelpSheet.evaluateTime}}</view>
+			</view>
+			<view class="informationLine" v-if="orderData.openShopHelpSheet.evaluateComment">
+				<view class="informationTxt">评价内容:</view>
+				<view class="informationNum">{{orderData.openShopHelpSheet.evaluateComment}}</view>
+			</view>
 			<view class="informationLine" v-if="orderData.openShopHelpSheet.cancelTime">
 				<view class="informationTxt">取消时间:</view>
 				<view class="informationNum">{{orderData.openShopHelpSheet.cancelTime}}</view>

+ 37 - 2
pages/user/checkReport.vue

@@ -1,6 +1,11 @@
 <template>
 	<view class="box">
 	   <homenav :iStatusBarHeight="iStatusBarHeight" :title="'车检报告'" ></homenav>
+	   <view class="screenBox">
+		   <picker @change="bindPickerChange" :value="index" :range="array">
+				<view class="screenName">{{array[index]}}</view>
+			</picker>
+	   </view>
 		<view class="itemHistory" v-for="(item,index) in itemData" :key="index" @click="goDetail(item.id)">
 			<view class="time">{{item.CreateTime}}</view>
 			<view class="carPlate">
@@ -35,6 +40,10 @@
 				noMoreShow: false,
 				urlStr:'',
 				iStatusBarHeight:'',
+				array: [],
+				index: 0,
+				wxOpenData: '',
+				plateNumber:'',
 			}
 		},
 		onLoad() {
@@ -44,9 +53,29 @@
 			this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
 			this.page = 1;
 			this.myOrderCoupon();
+			this.getplateNumber()
 			//this.urlStr = this.$request.webUrl+'#/carOwner/index'
 		},
 		methods: {
+			bindPickerChange: function(e) {
+					console.log('picker发送选择改变,携带值为', e.detail)
+					this.index = e.detail.value
+					this.plateNumber=this.array[this.index]
+					if(this.index==0){
+						this.plateNumber=''
+					}
+					this.myOrderCoupon()
+			},
+			getplateNumber(){
+				console.log("444")
+				this.wxOpenData= this.$store.state.wxOpenData;
+				this.$http('openweiXinCardInfoController/plateNumber-by-customerId', {
+				    customerId:this.wxOpenData.loginInfo.uid
+				}, 'GET').then(res => {
+					this.array=res.data.split(',')
+					this.array.unshift('全部')
+				})
+			},
 			goDetail(id) {
 				//  uni.navigateTo({
 				// 	url: 'reportDetail?id=' + id
@@ -60,7 +89,7 @@
 					title: '加载中'
 				})
 				this.$http('opencheckSheet/getTestList', {
-
+                    plateNumber:this.plateNumber
 					// page: this.page,
 					// limit: 10,
 				}, 'GET').then(res => {
@@ -118,7 +147,13 @@
 		background-color: #F4F5F7;
 		padding-top: 20rpx;
 	}
-
+	.screenBox{
+		background: #FFFFFF;
+		margin-bottom: 20rpx;
+	}
+     .screenName{
+		 padding: 24rpx;font-size: 28rpx;
+	 }
 	.itemHistory {
 		margin: 0rpx 24rpx 20rpx;
 		padding: 20rpx;

+ 38 - 3
pages/user/historySpend.vue

@@ -1,6 +1,11 @@
 <template>
 	<view class="box">
 		<homenav :iStatusBarHeight="iStatusBarHeight" :title="'历史消费'" ></homenav>
+		<view class="screenBox">
+		   <picker @change="bindPickerChange" :value="index" :range="array">
+				<view class="screenName">{{array[index]}}</view>
+			</picker>
+		</view>
 		<view class="itemHistory" v-for="(item,index) in itemData" :key="index" @click="goDetail(item)">
 			<view class="topBox">
 				<view class="dan">{{item.code}}</view>
@@ -90,6 +95,10 @@
 				appraise:false,
 				ReceiptsMoney:false,//支付金额
 				iStatusBarHeight:'',
+				array: [],
+				index: 0,
+				wxOpenData: '',
+				plateNumber:'',
 			}
 		},
 		onLoad() {
@@ -98,8 +107,28 @@
 			this.myOrderCoupon()
 			this.myPower()
 			this.showPower()
+			this.getplateNumber()
 		},
-		methods: {
+		methods: {
+			bindPickerChange: function(e) {
+					console.log('picker发送选择改变,携带值为', e.detail)
+					this.index = e.detail.value
+					this.plateNumber=this.array[this.index]
+					if(this.index==0){
+						this.plateNumber=''
+					}
+					this.myOrderCoupon()
+			},
+			getplateNumber(){
+				console.log("444")
+				this.wxOpenData= this.$store.state.wxOpenData;
+				this.$http('openweiXinCardInfoController/plateNumber-by-customerId', {
+				    customerId:this.wxOpenData.loginInfo.uid
+				}, 'GET').then(res => {
+					this.array=res.data.split(',')
+					this.array.unshift('全部')
+				})
+			},
 			//显示权限
 			showPower() {
 				this.$http('openweiXinCardInfoController/getShowSetting', {
@@ -150,7 +179,7 @@
 					title: '加载中'
 				})
 				this.$http('openweiXinCardInfoController/queryConsumptionList', {
-
+                     plateNumber:this.plateNumber
 					// page: this.page,
 					// limit: 10,
 				}, 'POST').then(res => {
@@ -260,7 +289,13 @@
 		padding-top: 20rpx;
 		
 	}
-
+.screenBox{
+		background: #FFFFFF;
+		margin-bottom: 20rpx;
+	}
+     .screenName{
+		 padding: 24rpx;font-size: 28rpx;
+	 }
 	.itemHistory {
 		margin: 0rpx 24rpx 20rpx;
 		padding: 20rpx;

+ 4 - 1
pages/user/user.vue

@@ -270,7 +270,7 @@
 
 		<!-- <view class="signOut" @click="signOut">退出登录</view> -->
 		<!-- 手机号授权 -->
-		<view class="authorizBox" v-if="authorizShow" @click="authorizShow=false">
+		<view class="authorizBox" v-if="authorizShow" @click="authorizShowHide">
 			<view class="authorizCont" @click.stop="">
 				<view class="authorizName">{{wxOpenData.miniAppName}}</view>
 				<view class="authorizMs">您好,欢迎访问本店,授权手机号登录能获取我们最新的促销活动哦~</view>
@@ -571,6 +571,9 @@
 				// 	url: '../login/login'
 				// })
 			},
+			authorizShowHide(){
+				this.authorizShow=false
+			}
 
 		},
 		onShareAppMessage(res) {

+ 4 - 3
utils/request.js

@@ -8,9 +8,10 @@
 import $store from '../store'
 const extConfig = uni.getExtConfigSync();		
 console.log(extConfig)
-//const baseUrl=extConfig.url+'/'
-//const baseUrl='http://192.168.0.147:20187/'
-const baseUrl='http://dms.66km.com.cn/'
+const baseUrl=extConfig.url+'/'
+//const baseUrl='http://192.168.0.146:20187/'
+//const baseUrl='http://192.168.0.174:20187/'
+//const baseUrl='http://dms.66km.com.cn/'
 
 //wx2c6f04c0dcd15984正式  wx33053a645546ec31
 //测试地址