Browse Source

Merge branch 'master' of http://47.98.226.240:3000/twt/txCar

# Conflicts:
#	pages/index/index.vue
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/components/chose-city/chose-city.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-plate-input/uni-plate-input.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/empower.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/iphoneLogin.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/me.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/shop/shopList.js.map
#	unpackage/dist/dev/mp-weixin/app.json
#	unpackage/dist/dev/mp-weixin/common/main.wxss
#	unpackage/dist/dev/mp-weixin/common/runtime.js
#	unpackage/dist/dev/mp-weixin/common/vendor.js
#	unpackage/dist/dev/mp-weixin/components/chose-city/chose-city.js
#	unpackage/dist/dev/mp-weixin/components/uni-plate-input/uni-plate-input.js
#	unpackage/dist/dev/mp-weixin/pages/index/index.js
#	unpackage/dist/dev/mp-weixin/pages/index/index.json
#	unpackage/dist/dev/mp-weixin/pages/index/index.wxml
#	unpackage/dist/dev/mp-weixin/pages/index/index.wxss
#	unpackage/dist/dev/mp-weixin/pages/me/me.js
#	unpackage/dist/dev/mp-weixin/pages/me/me.wxml
#	unpackage/dist/dev/mp-weixin/pages/shop/shopList.js
twt 3 years ago
parent
commit
83ff3af0ab
100 changed files with 23844 additions and 73 deletions
  1. 17 16
      App.vue
  2. 140 3
      pages.json
  3. 249 0
      pages/iPhone/addphone.vue
  4. 136 0
      pages/iPhone/phoneList.vue
  5. 206 0
      pages/index/addCar.vue
  6. 296 0
      pages/index/cailist.vue
  7. 838 0
      pages/index/carModel.vue
  8. 47 38
      pages/index/index.vue
  9. 282 0
      pages/me/discountCard.vue
  10. 196 0
      pages/me/discountDetail.vue
  11. 263 0
      pages/me/feedBack.vue
  12. 50 0
      pages/me/intimity.vue
  13. 19 11
      pages/me/me.vue
  14. 305 0
      pages/me/myAppraise.vue
  15. 286 0
      pages/me/myAppraiseDetail.vue
  16. 166 0
      pages/me/setup.vue
  17. 49 0
      pages/me/treaty.vue
  18. 1 5
      pages/module/maintain.vue
  19. 434 0
      pages/order/evaluate.vue
  20. 376 0
      pages/order/myorder.vue
  21. 908 0
      pages/order/orderDetail.vue
  22. 810 0
      pages/shop/ckShop.vue
  23. 268 0
      pages/shop/shopAppraise.vue
  24. 1199 0
      pages/shop/shopDetail.vue
  25. BIN
      static/img/icon_shouhou.png
  26. BIN
      static/img/icon_tihuan.png
  27. BIN
      static/img/icon_tuikuan.png
  28. BIN
      static/img/jt.png
  29. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  30. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  31. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  32. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/chose-city/chose-city.js.map
  33. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/nodata/nodata.js.map
  34. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/tki-qrcode/tki-qrcode.js.map
  35. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-plate-input/uni-plate-input.js.map
  36. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/car/cailist.js.map
  37. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/car/carModel.js.map
  38. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/iPhone/addphone.js.map
  39. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/iPhone/phoneList.js.map
  40. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/addCar.js.map
  41. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/cailist.js.map
  42. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/carModel.js.map
  43. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  44. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/empower.js.map
  45. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/iphoneLogin.js.map
  46. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
  47. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/intimity.js.map
  48. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/me.js.map
  49. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/setup.js.map
  50. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/treaty.js.map
  51. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/evaluate.js.map
  52. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/myorder.js.map
  53. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/orderDetail.js.map
  54. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/shop/shopList.js.map
  55. 67 0
      unpackage/dist/dev/mp-weixin/app.json
  56. 18 0
      unpackage/dist/dev/mp-weixin/common/main.wxss
  57. 273 0
      unpackage/dist/dev/mp-weixin/common/runtime.js
  58. 10363 0
      unpackage/dist/dev/mp-weixin/common/vendor.js
  59. 542 0
      unpackage/dist/dev/mp-weixin/components/chose-city/chose-city.js
  60. 185 0
      unpackage/dist/dev/mp-weixin/components/nodata/nodata.js
  61. 4 0
      unpackage/dist/dev/mp-weixin/components/nodata/nodata.json
  62. 1 0
      unpackage/dist/dev/mp-weixin/components/nodata/nodata.wxml
  63. 15 0
      unpackage/dist/dev/mp-weixin/components/nodata/nodata.wxss
  64. 357 0
      unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.js
  65. 4 0
      unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.json
  66. 1 0
      unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.wxml
  67. 11 0
      unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.wxss
  68. 420 0
      unpackage/dist/dev/mp-weixin/components/uni-plate-input/uni-plate-input.js
  69. 355 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.js
  70. 4 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.json
  71. 1 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.wxml
  72. 54 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.wxss
  73. 241 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.js
  74. 4 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.json
  75. 1 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.wxml
  76. 57 0
      unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.wxss
  77. 269 0
      unpackage/dist/dev/mp-weixin/pages/index/addCar.js
  78. 7 0
      unpackage/dist/dev/mp-weixin/pages/index/addCar.json
  79. 1 0
      unpackage/dist/dev/mp-weixin/pages/index/addCar.wxml
  80. 81 0
      unpackage/dist/dev/mp-weixin/pages/index/addCar.wxss
  81. 345 0
      unpackage/dist/dev/mp-weixin/pages/index/cailist.js
  82. 5 0
      unpackage/dist/dev/mp-weixin/pages/index/cailist.json
  83. 1 0
      unpackage/dist/dev/mp-weixin/pages/index/cailist.wxml
  84. 114 0
      unpackage/dist/dev/mp-weixin/pages/index/cailist.wxss
  85. 620 0
      unpackage/dist/dev/mp-weixin/pages/index/carModel.js
  86. 4 0
      unpackage/dist/dev/mp-weixin/pages/index/carModel.json
  87. 1 0
      unpackage/dist/dev/mp-weixin/pages/index/carModel.wxml
  88. 405 0
      unpackage/dist/dev/mp-weixin/pages/index/carModel.wxss
  89. 466 0
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  90. 6 0
      unpackage/dist/dev/mp-weixin/pages/index/index.json
  91. 1 0
      unpackage/dist/dev/mp-weixin/pages/index/index.wxml
  92. 92 0
      unpackage/dist/dev/mp-weixin/pages/index/index.wxss
  93. 204 0
      unpackage/dist/dev/mp-weixin/pages/me/intimity.js
  94. 5 0
      unpackage/dist/dev/mp-weixin/pages/me/intimity.json
  95. 1 0
      unpackage/dist/dev/mp-weixin/pages/me/intimity.wxml
  96. 7 0
      unpackage/dist/dev/mp-weixin/pages/me/intimity.wxss
  97. 381 0
      unpackage/dist/dev/mp-weixin/pages/me/me.js
  98. 1 0
      unpackage/dist/dev/mp-weixin/pages/me/me.wxml
  99. 282 0
      unpackage/dist/dev/mp-weixin/pages/me/setup.js
  100. 0 0
      unpackage/dist/dev/mp-weixin/pages/me/setup.json

+ 17 - 16
App.vue

@@ -1,17 +1,18 @@
-<script>
-	export default {
-		onLaunch: function() {
-			console.log('App Launch')
-		},
-		onShow: function() {
-			console.log('App Show')
-		},
-		onHide: function() {
-			console.log('App Hide')
-		}
-	}
-</script>
-
-<style>
-	/*每个页面公共css */
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+	
 </style>

+ 140 - 3
pages.json

@@ -15,9 +15,9 @@
 		},
 		{
 			"path": "pages/me/me",
-			"style": {
-				"navigationBarTitleText": "",
-				 "navigationBarBackgroundColor":"#FFEDEA"
+			"style": {
+				"navigationBarTitleText": "",
+				"navigationBarBackgroundColor": "#FFEDEA"
 			}
 		},
 		{
@@ -56,6 +56,143 @@
 		}
 
 
+		, {
+			"path": "pages/index/addCar",
+			"style": {
+				"navigationBarTitleText": "添加爱车",
+				"enablePullDownRefresh": false
+			}
+
+		},
+		{
+			"path": "pages/index/cailist",
+			"style": {
+				"navigationBarTitleText": "我的车库",
+				"navigationBarBackgroundColor": "#FFFFFF"
+			}
+		},
+		{
+			"path": "pages/index/carModel",
+			"style": {
+				// "navigationBarTitleText": "自主选车",
+				// "navigationBarBackgroundColor": "#FFFFFF"
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/me/setup",
+			"style": {
+				"navigationBarTitleText": "账号设置",
+				"navigationBarBackgroundColor": "#FFFFFF"
+
+			}
+		},
+		{
+			"path": "pages/iPhone/phoneList",
+			"style": {
+				"navigationBarTitleText": "联系人管理"
+
+			}
+		},
+		{
+			"path": "pages/iPhone/addphone",
+			"style": {
+				"navigationBarTitleText": "新增联系人"
+
+			}
+		},
+		{
+			"path": "pages/me/treaty",
+			"style": {
+				"navigationBarTitleText": "服务协议",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/me/intimity",
+			"style": {
+				"navigationBarTitleText": "隐私政策",
+				"enablePullDownRefresh": false
+			}
+
+		},
+		{
+			"path": "pages/order/myorder",
+			"style": {
+				"navigationBarTitleText": "我的订单",
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"enablePullDownRefresh": true
+			}
+		},
+		{
+			"path": "pages/order/orderDetail",
+			"style": {
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": true
+			}
+		},
+		{
+			"path": "pages/order/evaluate",
+			"style": {
+				"navigationBarTitleText": "评价"
+			}
+		},
+		{
+			"path": "pages/me/discountCard",
+			"style": {
+				"navigationBarTitleText": "优惠券",
+				"enablePullDownRefresh": true,
+				"navigationBarBackgroundColor": "#FFFFFF"
+			}
+
+		}, {
+			"path": "pages/me/discountDetail",
+			"style": {
+				"navigationBarTitleText": "优惠券详情",
+				"navigationBarBackgroundColor": "#BE573F"
+			}
+
+		}, {
+			"path": "pages/me/myAppraise",
+			"style": {
+				"navigationBarTitleText": "我的评价",
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"enablePullDownRefresh": true
+			}
+
+		}, {
+			"path": "pages/me/myAppraiseDetail",
+			"style": {
+				"navigationBarTitleText": "查看评价",
+				"navigationBarBackgroundColor": "#FFFFFF"
+				/* "enablePullDownRefresh": true */
+			}
+
+		}, {
+			"path": "pages/me/feedBack",
+			"style": {
+				"navigationBarTitleText": "意见反馈",
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"enablePullDownRefresh": false
+			}
+
+		},
+		{
+			"path": "pages/shop/ckShop",
+			"style": {
+				"navigationBarTitleText": "选择门店",
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"enablePullDownRefresh": true
+			}
+		},
+
+		{
+			"path": "pages/shop/shopDetail",
+			"style": {
+				"navigationBarTitleText": "门店详情",
+				"navigationBarBackgroundColor": "#FFFFFF"
+			}
+		}
 	],
 	"tabBar": {
 		"color": "#8a8a8a",

+ 249 - 0
pages/iPhone/addphone.vue

@@ -0,0 +1,249 @@
+<template>
+	<view class="box">
+	  <view class="main">
+		  <view class="phoneListBox">
+			  <view class="phoneLine">
+				  <view class="phoneLeft">
+					 姓名:
+				  </view>
+				  <view>
+					  <input type="text" value="" placeholder="请输入" class="lineInput" v-model="name"/>
+				  </view>
+			  </view>
+			  <view class="phoneLine">
+				  <view class="phoneLeft">
+					 手机号:
+				  </view>
+				  <view>
+					  <input type="text" value="" placeholder="请输入" class="lineInput" v-model="phone"/>
+				  </view>
+			  </view>
+			  <view class="phoneLine2" style="display: flex;justify-content: space-between;">
+			  	<view class="DefaultTxt">设为默认联系人</view>
+				<view class="lineRight">
+					 <switch :checked="isDefault" @change="Default" color="#FF4F00" style="transform:scale(0.7)"/>
+				</view>
+			  </view>
+			  <view class="phoneLine3" @click="delPhone">
+				  删除该联系人
+			  </view>
+		  </view>
+		  
+		  <view class="submit" @click="submit">保存</view>
+		  
+	  </view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			name:'',
+			phone:'',
+			id:'',
+			isDefault:true,
+			item:'',
+			isDefaultNum:0,
+		}
+	},
+	onLoad(opt) {
+      //console.log(opt)
+	  this.item=JSON.parse(opt.item)
+	  console.log(this.item)
+	  if(this.item){
+		  this.name=this.item.name;
+		  this.phone=this.item.phone;
+		  this.id=this.item.id;
+		  if(this.item.isDefault==1){
+			  this.isDefault=true
+		  }else{
+			  this.isDefault=false
+		  }
+		
+	  }
+	},
+	onShow() {
+		
+	},
+	methods: {
+		Default(e){
+			//console.log(e)
+			this.isDefault=e.detail.value
+			console.log(this.isDefault)
+		},
+		delPhone(){
+			var that=this;
+			uni.showModal({
+			    title: '提示',
+			    content: '确定要删除联系人吗',
+			    success: function (res) {
+			        if (res.confirm) {
+			          uni.showLoading({ });
+			          that.$http('miniAppMyBMemberCar/deleteBMemberContact', {
+			            id:that.id
+			           },'POST').then(res => {
+			          	uni.hideLoading();
+						if(res.code==0){
+							uni.navigateBack({
+								delta:1
+							})
+						}
+			           
+			          })
+			        } else if (res.cancel) {
+			           
+			        }
+			    }
+			});
+		},
+		submit(){
+			uni.showLoading({ });
+			var isDefault=0;
+			if(this.name==''){
+				uni.showToast({
+				    title: '请输入姓名',
+					icon:"none",
+				    duration: 2000
+				});
+				return false;
+			}else if(this.phone.length !=11){
+				uni.showToast({
+				    title: '请输入正确手机号',
+					icon:"none",
+				    duration: 2000
+				});
+				return false;
+			}
+			if(this.isDefault){
+				this.isDefaultNum=1;
+			}
+			if(this.id){
+				this.edit()
+			}else{
+				this.add()
+			}
+		
+		},
+		add(){
+			this.$http('miniAppMyBMemberCar/addOrEditBMemberContact', {
+			  name:this.name,
+			  phone:this.phone,
+			  isDefault:this.isDefaultNum,
+			 },'POST').then(res => {
+				  uni.hideLoading();
+				  if(res.code!=0){
+				  	 uni.showModal({
+				  		 title: '提示',
+				  		 content: res.msg,
+				  		 success: function (res) {
+				  			
+				  		 }
+				  	 })
+				  }else{
+					  uni.navigateBack({
+					  	delta:1
+					  })
+				  }
+			})
+		},
+		edit(){
+			this.$http('miniAppMyBMemberCar/addOrEditBMemberContact', {
+			  name:this.name,
+			  phone:this.phone,
+			  isDefault:this.isDefaultNum,
+			  id:this.id,
+			 },'POST').then(res => {
+				  uni.hideLoading();
+				  if(res.code!=0){
+				  	 uni.showModal({
+				  		 title: '提示',
+				  		 content: res.msg,
+				  		 success: function (res) {
+				  			
+				  		 }
+				  	 })
+				  }else{
+					  uni.navigateBack({
+					  	delta:1
+					  })
+				  }
+			})
+		},
+		getList(){
+			uni.showLoading({ });
+			this.$http('miniAppMyBMemberCar/listBMemberContactPage', {
+			  page:this.page,
+			  limit:10,
+			 },'GET').then(res => {
+				  uni.hideLoading();
+				  var a=res.data.Items
+				  this.phoneList=this.phoneList.concat(a);	
+			})
+		},
+        login(){
+			uni.navigateTo({
+				url:'../login/login'
+			})
+		}
+	}
+}
+</script>
+
+<style scoped>
+	.box{
+		min-height: 100vh;
+		background:#F4F5F7 ;
+	}
+	.main{
+		padding: 24rpx;
+		
+	}
+	.phoneListBox{
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		padding: 0 24rpx;
+	}
+	.phoneLine{
+		display: flex;
+		
+		padding: 30rpx;
+		border-bottom: 1px solid #DDDDDD;
+	}
+
+	.phoneLeft{
+		width: 150rpx;font-size: 28rpx;
+color: #3C3C3C;
+	}
+	.phoneLine2{
+		padding:20rpx 30rpx;border-bottom: 1px solid #DDDDDD;
+	}
+
+	.lineInput{
+	   color: #999999;
+		   font-size: 28rpx;
+	}
+	.DefaultTxt{
+		font-size: 28rpx;
+		color: #3C3C3C;
+		display: flex;
+		align-items: center;
+	}
+	.submit{
+		width: 690rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		line-height: 74rpx;
+		text-align: center;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		margin-top: 80rpx;
+		margin-left: 6rpx;
+	}
+	.phoneLine3{
+		color: #FF3B30;
+		font-size: 26rpx;
+		padding: 30rpx;
+	}
+</style>

+ 136 - 0
pages/iPhone/phoneList.vue

@@ -0,0 +1,136 @@
+<template>
+	<view class="box">
+	  <view class="main">
+		  <view class="phoneListBox">
+			  <view class="phoneLine" v-for="(item,index) in phoneList" @click="lineClick(item)">
+				  <view class="phoneLeft">
+					  <view class="name">{{item.name}}</view>
+					  <view class="phoneNUm">{{item.phone}}</view>
+					  <view class="default" v-show="item.isDefault==1">默认</view>
+				  </view>
+				  <view @click.stop="edit(item)">
+					  <image src="../../static/img/icon_edit.png" mode="aspectFit" class="phoneEdit"></image>
+				  </view>
+			  </view>
+			  <view class="phoneLine" style="border: none;" @click="goadd">
+			  		<view class="addTxt">新增联系人</view>
+					<view class="addjt">></view>
+			  </view>
+		  </view>
+	  </view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			page:1,
+			phoneList:[],
+		}
+	},
+	onLoad() {
+      
+	},
+	onShow() {
+		this.page=1;
+		this.phoneList=[];
+		this.getList()
+	},
+	methods: {
+		lineClick(item){
+			console.log(item);
+			uni.setStorage({
+				key: 'phoneData',
+				data: item,
+				success: function () {
+					uni.navigateBack({
+						delta:1
+					})
+				}
+			}); 
+		},
+		getList(){
+			uni.showLoading({ });
+			this.$http('miniAppMyBMemberCar/listBMemberContactPage', {
+			  page:this.page,
+			  limit:10,
+			 },'GET').then(res => {
+				  uni.hideLoading();
+				  var a=res.data.Items
+				  this.phoneList=this.phoneList.concat(a);	
+			})
+		},
+        goadd(){
+			uni.navigateTo({
+				url:'addphone'
+			})
+		},
+		edit(item){
+			item=JSON.stringify(item)
+			uni.navigateTo({
+				url:'addphone?item='+item
+			})
+		},
+	}
+}
+</script>
+
+<style scoped>
+	.box{
+		min-height: 100vh;
+		background:#F4F5F7 ;
+	}
+	.main{
+		padding: 24rpx;
+		
+	}
+	.phoneListBox{
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		padding: 0 24rpx;
+	}
+	.phoneLine{
+		display: flex;
+		justify-content: space-between;
+		padding: 30rpx;
+		border-bottom: 1px solid #DDDDDD;
+	}
+	.phoneEdit{
+		width: 40rpx;
+		height: 40rpx;
+	}
+	.name{
+		font-size: 28rpx;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #3C3C3C;
+		width: 200rpx;
+	}
+	.phoneNUm{
+		font-size: 28rpx;
+		font-family: PingFangSC-Regular, PingFang SC;
+		font-weight: 400;
+		color: #3C3C3C;
+	}
+	.phoneLeft{
+		display: flex;
+	}
+	.default{
+		width: 64rpx;
+		height: 30rpx;
+		background: rgba(255, 79, 0, 0.06);
+		border-radius: 4rpx;
+		text-align: center;line-height: 30rpx;
+		color: #FF4F00;font-size: 22rpx;
+		margin-left: 30rpx;margin-top: 4rpx;
+	}
+	.addTxt{
+		color: #FF4F00;
+		font-size: 30rpx;
+	}
+	.addjt{
+		color: #CCCCCC;
+		font-size: 30rpx;
+	}
+</style>

+ 206 - 0
pages/index/addCar.vue

@@ -0,0 +1,206 @@
+<template>
+	<view class="content">
+
+		<!-- 填写车辆信息 -->
+		<view class="carMessage">
+
+			<view class="mesView">
+				<view class="leftTitle">车牌号</view>
+				<input class="plateNumber" placeholder-style="color:#999999" placeholder="请输入车牌号" disabled="true"
+					@tap="plateShow=true" v-model.trim="plateNo" />
+				<plate-input v-if="plateShow" :plate="plateNo" @export="setPlate" @close="plateShow=false" />
+
+
+			</view>
+
+			<view class="mesView" @click="goCarModel()">
+				<view class="leftTitle">车型</view>
+				<view class="carModBtn noSelectColor" v-if="!carMod">请添加您的爱车</view>
+				<view class="carModBtn selectColor" v-else>{{carMod}}</view>
+				<image src="../../static/img/rightArrow.png" class="rightArrow"></image>
+			</view>
+
+			<view class="mesView">
+				<view class="leftTitle">购车时间</view>
+				<picker class="timeBtn" @change="bindChange" mode="date">
+					<view class="uni-input selectColor" v-if="time">{{time}}</view>
+					<view class="uni-input noSelectColor" v-else>请选择您的购车时间</view>
+				</picker>
+				<image src="../../static/img/rightArrow.png" class="rightArrow"></image>
+			</view>
+
+			<view class="mesView">
+				<view class="leftTitle">行驶里程</view>
+				<input class="mileageInput selectColor" type="number" v-model="mileage" placeholder="请输入"
+					placeholder-style="color:#999999" />
+				<view class="kmStr">km</view>
+			</view>
+
+
+		</view>
+
+
+		<view class="bottomView">
+			<view class="saveCar">保存爱车</view>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	import plateInput from "@/components/uni-plate-input/uni-plate-input.vue"
+	export default {
+		components: {
+			plateInput
+		},
+
+		data() {
+			return {
+				homeData: '',
+				shopId: '',
+				plateNo: '',
+				plateShow: false,
+				joinFirst: false,
+				carMod: '',
+				time: '',
+				mileage: '',
+
+			}
+		},
+		onLoad() {
+
+			
+
+
+
+		},
+		methods: {
+			goCarModel(){
+				uni.navigateTo({
+					url:'carModel'
+				})
+			},
+			setPlate(plate) {
+				if (plate.length >= 7) this.plateNo = plate;
+				this.plateShow = false;
+			},
+
+			
+			bindChange(e) {
+				console.log(e);
+				this.time = e.target.value
+			},
+
+			
+
+		}
+	}
+</script>
+
+<style>
+	.content {
+		min-height: 100vh;
+		background-color: #F4F5F7;
+		padding-top: 20rpx;
+	}
+
+	
+
+	.carMessage {
+		margin: 0rpx 24rpx 40rpx;
+		padding-top: 20rpx;
+		height: 500rpx;
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+	}
+
+	
+
+	.mesView {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		height: 120rpx;
+		background-color: #FFFFFF;
+	}
+
+	.leftTitle {
+		margin: 28rpx;
+		width: 120rpx;
+		font-size: 28rpx;
+		color: #666666;
+	}
+
+
+	.noSelectColor {
+		color: #999999;
+
+	}
+
+	.selectColor {
+		color: #333333;
+
+	}
+
+	.rightArrow {
+		margin-right: 28rpx;
+		width: 14rpx;
+		height: 23rpx;
+
+	}
+
+	.cityBtn {
+		width: 65%;
+		font-size: 28rpx;
+	}
+
+	.plateNumber {
+		width: 55%;
+		font-size: 28rpx;
+	}
+
+
+	.carModBtn {
+		width: 65%;
+		font-size: 28rpx;
+	}
+
+	.timeBtn {
+		width: 65%;
+		font-size: 28rpx;
+	}
+
+	.mileageInput {
+		width: 20%;
+		font-size: 28rpx;
+	}
+
+	.kmStr {
+		font-size: 28rpx;
+		color: #333333;
+
+	}
+
+	.bottomView {
+		background-color: #FFFFFF;
+		width: 100%;
+		height: 120rpx;
+		position: fixed;
+		bottom: 0rpx;
+	}
+
+	.saveCar {
+
+		background: linear-gradient(135deg, #FD5300 0%, #FF270A 100%);
+		margin: 23rpx 30rpx;
+		height: 74rpx;
+		line-height: 74rpx;
+		border-radius: 37rpx;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		font-weight: bold;
+		text-align: center;
+
+	}
+</style>

+ 296 - 0
pages/index/cailist.vue

@@ -0,0 +1,296 @@
+<template>
+	<view class="box">
+		<view class="carlistBox">
+			<view class="line" v-for="(item,index) in carList" @click="lineClick(item)">
+				<view class="lineCont" >
+					<view>
+						<image :src="item.brandLogo" mode="widthFix" class="brandLogo"></image>
+					</view>
+					<view style="padding-left: 29rpx;">
+						<view class="carName">
+						   <span>{{item.brand}} {{item.series}}</span>
+						   <view class="plateNumber">{{item.plateNumber}}</view>
+						</view>
+						<view class="carMS">{{item.carModel}}</view>
+					</view>
+				</view>
+				<view class="lineBottom">
+					<view class="lineDel" @click.stop="delCar(item.id)">删除</view>
+					<view class="Default" v-show="item.isDefault!=1" @click.stop="defaultCar(item)">设为默认</view>
+					<view class="DefaultYES" v-show="item.isDefault==1">已设为默认</view>
+				</view>
+				<view class="DefaultIcon" v-show="item.isDefault==1" >默认</view>
+			</view>
+		</view>
+		<view v-if="carList==''&&loding" class="nodataBox">
+			<image src="../../static/img/nodata.png" mode="widthFix" class="nodataImg"></image>
+			<view class="noTxt">暂无数据</view>
+		</view>
+		
+		<view class="addBtn" @click="addBtn">添加爱车</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			carList:'',
+			loding:false,
+			type:'',
+			carId:'',
+		}
+	},
+	onLoad(opt) {
+		this.$common.isUserId()
+       this.type=opt.type;
+	  // console.log(this.type)
+	},
+	onShow() {
+		this.getqueryMyBMemberCar();
+		this.carId=uni.getStorageSync("maintainCarData").id
+	},
+	methods: {
+		getqueryMyBMemberCar(){
+			uni.showLoading({ });
+			this.loding=false;
+			this.$http('miniAppMyBMemberCar/queryMyBMemberCar', {
+			  
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.carList=res.data;
+				this.loding=true;
+			})
+		},
+        addBtn(){
+			// var length=this.carList.length
+			// if(length>4){
+			// 	uni.showToast({
+			// 	     title: '库最多放五辆车,如果想添加,请先删除',
+			// 	 	 icon:'none',
+			// 	     duration: 3000
+			// 	 });
+			// }else{
+				uni.navigateTo({
+					url:'addCar'
+				})
+			// }
+			
+		},
+		delCar(id){
+			var that=this;
+			uni.showModal({
+			    title: '提示',
+			    content: '确定要删除车辆吗',
+			    success: function (res) {
+			        if (res.confirm) {
+			          uni.showLoading({ });
+			          that.$http('miniAppMyBMemberCar/deleteMemberCar', {
+			            id:id
+			           },'POST').then(res => {
+			          	uni.hideLoading();
+						if(res.code==0){
+							if(that.carId==id){
+								uni.removeStorageSync('maintainCarData');
+							}
+						}
+			            that.getqueryMyBMemberCar()
+			          })
+			        } else if (res.cancel) {
+			           
+			        }
+			    }
+			});
+		},
+		defaultCar(item){
+			var that=this;
+			uni.showLoading({ });
+			that.$http('miniAppMyBMemberCar/updateCarIsdefault', {
+			  id:item.id
+			 },'POST').then(res => {
+				uni.hideLoading();
+				if(res.code==0){
+					uni.showToast({
+					     title: '操作成功',
+					 	 icon:'none',
+					     duration: 3000
+					 });
+					uni.setStorage({
+						key: 'maintainCarData',
+						data: item,
+						success: function () {
+								
+					     }
+					}); 
+				}else{
+					uni.showToast({
+					     title: res.msg,
+					 	 icon:'none',
+					     duration: 3000
+					 });
+				}
+			  that.getqueryMyBMemberCar()
+			})
+		},
+		lineClick(item){
+			/* var that=this;
+			uni.showLoading({ });
+			that.$http('miniAppMyBMemberCar/updateCarIsdefault', {
+			  id:id
+			 },'POST').then(res => {
+				uni.hideLoading();
+				if(res.code==0){
+					uni.showToast({
+					     title: '操作成功',
+					 	 icon:'none',
+					     duration: 3000
+					 });
+					uni.navigateBack({
+						delta:1
+					})
+				}else{
+					uni.showToast({
+					     title: res.msg,
+					 	 icon:'none',
+					     duration: 3000
+					 });
+				}
+			 
+			}) */
+			if(this.type==2){
+				uni.setStorage({
+					key: 'maintainCarData',
+					data: item,
+					success: function () {
+							uni.navigateBack({
+								delta:1
+							})
+							
+				     }
+				}); 
+			}else{
+				uni.removeStorageSync('carModelInfo');
+				uni.navigateTo({
+					url:'editCar?id='+item.id
+				})
+			}
+			
+		}
+	}
+}
+</script>
+
+<style scoped>
+	.box{
+		min-height: 100vh;
+		background:#F4F5F7 ;
+	}
+	.nodataImg{
+	  width: 400rpx;
+	  padding-top: 100rpx;
+	}
+	.noTxt{
+		font-size: 36rpx;
+		color: #999999;
+		padding-top: 50rpx;
+	}
+	.nodataBox{
+		text-align: center;
+	}
+	.addBtn{
+		width: 690rpx;
+		height: 74rpx;
+		background: linear-gradient(135deg, #FD5300 0%, #FF270A 100%);
+		border-radius: 37rpx;
+		line-height: 74rpx;
+		text-align: center;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		position: fixed;
+		bottom: 23rpx;
+		left: 30rpx;
+	}
+	.carlistBox{
+		padding-bottom: 120rpx;
+	}
+	.carlistBox{
+		padding: 24rpx;
+		padding-bottom: 120rpx;
+	}
+	.brandLogo{
+		width: 63rpx;
+	}
+	.line{
+		background: #FFFFFF;
+		padding: 27rpx 20rpx;
+		border-radius: 10rpx;
+		margin-bottom: 20rpx;
+	    position: relative;
+	}
+	.lineCont{
+			display: flex;
+	}
+	.carName{
+		color: #3C3C3C;font-size: 30rpx;display: flex;
+	}
+	.plateNumber{
+		border-radius: 4px;
+		border: 1px solid #F19D01;
+		height: 32rpx;
+		line-height: 32rpx;
+		padding: 0 10rpx;color: #F19D01;
+		font-size: 22rpx;
+		margin-left: 20rpx;
+		margin-top: 5rpx;
+	}
+	.carMS{
+		color: #666666;
+		font-size: 26rpx;
+		padding-top: 5px;
+	}
+	.lineBottom{
+		display: flex;
+		justify-content: flex-end;
+		padding-top: 20rpx;
+	}
+	.lineDel{
+		width: 94rpx;
+		height: 50rpx;
+		border-radius: 25rpx;
+		border: 1px solid #DDDDDD;
+		text-align: center;line-height: 50rpx;
+		font-size: 26rpx;color: #3C3C3C;
+		margin-right: 29rpx;
+	}
+	.Default{
+		width: 148rpx;
+		height: 50rpx;
+		border-radius: 25rpx;
+		border: 1px solid #FF4F00;
+		line-height: 50rpx;
+		text-align: center;
+		color: #FF4F00;font-size: 26rpx;
+	}
+	.DefaultYES{
+		width: 148rpx;
+		height: 50rpx;
+		border-radius: 25rpx;
+		border: 1px solid #DDDDDD;
+		line-height: 50rpx;
+		text-align: center;
+		color: #999999;font-size: 26rpx;
+	}
+	.DefaultIcon{
+		position: absolute;
+		top: 0;
+		right: 0;
+		width: 109rpx;
+		height: 40rpx;
+		background: linear-gradient(131deg, #FFA72C 0%, #FF450F 100%);
+		border-radius: 0px 10rpx 0px 10rpx;
+		text-align: center;
+		line-height: 40rpx;
+		color: #FFFFFF;
+		font-size: 22rpx;
+	}
+</style>

+ 838 - 0
pages/index/carModel.vue

@@ -0,0 +1,838 @@
+<template>
+	<view class="box">
+		
+		 <!-- 自定义头部 -->
+		<view class="zdyNav">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view class="zdyNavCont">
+				<view class="zdyNavContLeft">
+					<image src="../../static/img/baiheiback.png" mode="" class="baiheibackImg" @click="gofhj"></image>
+					<image src="../../static/img/chahao.png" mode="" class="gaunbiIMg" @click="goback"></image>
+				</view>
+				<view class="zdyNavContTitle">自主选车</view>
+				<view class="zdyNavContRight"></view>
+			</view>
+		</view>
+		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+		<view style="height: 44px;"></view>
+		
+		<view class="tab">
+			<view class="tabLine" :class="{activeTab:tabIndex==1}" @click="tabIndex=1">手动选车</view>
+			<view class="tabLine" :class="{activeTab:tabIndex==2}" @click="tabIndex=2">VIN识别</view>
+		</view>
+		
+		<view class="tab1 " v-if="tabIndex==1">
+			 <scroll-view  class="scroll-view" :scroll-into-view="toView" scroll-y="true" >
+				<view class="brand-select">
+					<template v-for="item in carModelList">
+					  <view :id="item['首字母']" v-if="item['首字母']!='热门'">
+						<view class="brand-select-title" :id="item['首字母']+'-model'">
+						  <h5 :class="{'brand-select-titleselect':item['首字母']==toView}">{{item['首字母']}}</h5>
+						</view>
+					   
+							<view class="brand-select-wrapper">
+								<a class="brand-select-item" v-for="item2 in item['品牌列表']" @click="selectBrand(item2)" :id="item2.brand">
+								  <img :src="item2.logo" class="brand-select-item-icon">
+								  <span>{{item2.brand||item2.name}}</span>
+								</a>
+							</view>
+					   
+					  </view>
+					  <view :id="'rm'" v-if="item['首字母']=='热门'">
+						<view class="brand-select-title" :id="item['首字母']+'-model'">
+						  <h5 :class="{'brand-select-titleselect':item['首字母']==toView}">{{item['首字母']}}</h5>
+						</view>
+   
+							<view class="brand-select-wrapper">
+								<a class="brand-select-item" v-for="item2 in item['品牌列表']" @click="selectBrand(item2)" :id="item2.brand">
+								  <img :src="item2.logo" class="brand-select-item-icon">
+								  <span>{{item2.brand||item2.name}}</span>
+								</a>
+							</view>
+					   
+					  </view>
+					</template>
+				 </view>
+	        </scroll-view >
+			<div class="fast-navigation">
+			  <a class="fast-navigation-sel" :class="{'select':item['首字母']==toView}" v-for="item in carModelList" @tap="bindToView(item)">{{item['首字母']}}</a>
+			</div>
+			
+		</view>
+		<uni-popup ref="popup" type="right" :mask-click="true">
+			<view class="popup-content" >
+				<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+				<view style="height: 44px;"></view>
+				<h3 class="carModel-nav-title cell-logo">
+				  <img :src="selectedCarBrand.logo" class="carModel-nav-title-img">
+				  <span class="carModel-nav-title-msg">{{ selectedCarBrand.brand }}</span>
+				</h3>
+				<scroll-view class="brandList" scroll-y="true">
+					<view v-for="item in carSeriesList" :key="item.manufactor" >
+					  <h3 class="cell-item-title">{{ item.manufactor }}</h3>
+					  <span v-for="item2 in item.carSeries" :key="item2" :title="item2" class="span-cell" @click="selectCarFactory(item.manufactor,item2)" >{{item2}}</span>
+					</view>
+				</scroll-view>
+				
+			</view>
+		</uni-popup>
+		
+		<!-- 排量
+		<view class="displacementListBox" v-show="displacementListShow">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view style="height: 44px;"></view>
+			<h3 class="carModel-nav-title">
+			  <img :src="selectedCarBrand.logo" class="carModel-nav-title-img" @click="$emit('changeStep', 1)">
+			  <span class="carModel-nav-title-msg">{{ selectedCarBrand.brand }} {{ carSeries }}</span>
+			</h3>
+			<scroll-view scroll-y="true" class="brandList">
+			  <view @click="selectDisplacement(item)" v-for="item in displacementList" class="displacementListLine" >
+			    {{item}}
+			  </view>
+			</scroll-view>
+		</view>
+		<!-- 排量 -->
+		<!-- 离合器 -->
+		<view class="carGroupListBox" v-show="carGroupListShow">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view style="height: 44px;"></view>
+			<h3 class="carModel-nav-title">
+			  <img :src="selectedCarBrand.logo" class="carModel-nav-title-img" @click="$emit('changeStep', 1)">
+			  <span class="carModel-nav-title-msg">{{ selectedCarBrand.brand }} {{ carSeries }}{{displacement}}</span>
+			</h3>
+			<scroll-view scroll-y="true" class="brandList">
+			  <view @click="goAddCar(item)" v-for="item in carGroupList" class="displacementListLine" >
+			    {{item.title}}
+			  </view>
+			</scroll-view>
+		</view>
+		<!-- 离合器 -->
+		
+		
+		<view class="tab2" v-if="tabIndex==2">
+			<view class="vinboxone" v-if="vinboxoneShow">
+				<view class="smvin">请扫描VIN</view>
+				<view class="smvin2">扫描时请保持环境光线充足不要反光</view>
+				<view class="sltp">
+					<image src="../../static/img/vin.png" mode="" class="sltpImg" ></image><!-- v-if="!vinImg" -->
+					<!-- <image :src="vinImg" mode="widthFix" class="vinImg" v-if="vinImg"></image> -->
+				</view>
+				<view class="vinSc" @click="scVinIMg">上传图片</view>
+			</view>
+			<view class="vinboxTwo" v-if="vinboxtwoShow">
+				 <view class="vinboxTwoTopFh" @click="vinboxtwoShow=false"> 返回扫描 </view>
+				<view class="vinboxTwoTopVIn">车辆识别代码:{{vin}}</view>
+				<view class="vinCxNum"> 共{{vinSbList.length}}条查询结果</view>
+				<view class="vinXzBox">
+					<!-- <view class="vinXzLine">
+					 <view class="vinXzLineCx">品牌+车系+排量+变速器描述</view>
+					 <image src="../../static/img/icon_checked.png" mode="" class="loginLogo"></image>
+					</view> -->
+					<view class="vinXzLine" v-for="(vinItem,vIndex) in vinSbList" @click="ckVin(vinItem,vIndex)">
+					 <view class="vinXzLineCx">{{vinItem.title}}</view>
+					 <view class="vinXzLineyk" v-if="vinIndex!=vIndex"></view>
+					 <image src="../../static/img/icon_checked.png" mode="" v-if="vinIndex==vIndex" class="loginLogo"></image>
+					</view>
+					<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+				</view>
+			</view>
+			<view class="vinboxTwoBottom" v-if="vinboxtwoShow" :style="{bottom:iStatusBarHeight+'px'}">
+				<view class="shoudonng" @click="shoudong">都不是,手动选车</view>
+				<view class="qrcx" @click="qrcx">确认车型</view>
+			</view>
+			
+		</view>
+		
+		
+	</view>
+</template>
+
+	
+<script>
+
+export default {
+	 components: {  
+	       
+	 },
+	data() {
+		return {
+			carList:'',
+			tabIndex:1,
+			carModelList:'',
+			toView:'',
+			type:'right',
+			brand:'',
+			carSeriesList:'',
+			selectedCarBrand:'',
+			manufactor:'',
+			carSeries:'',
+			displacementList:'',
+			displacementListShow:false,
+			selectedCarSeries:'',
+			displacement:'',
+			carGroupList:'',
+			carGroupListShow:false,
+			type:'',
+			delId:'',
+			vinImg:'',
+			file:'',
+			vin:'',
+			vinboxoneShow:true,
+			vinboxtwoShow:false,
+			addNum:'',
+			iStatusBarHeight:'',
+			popupShow:false,
+			vinSbList:[],
+			vinIndex:0,
+			vincarModelInfo:'',
+		}
+	},
+	onLoad(opt) {
+	  this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+	  if(opt.type==2){
+		  this.type=2
+	  }
+	  if(opt.add){
+		  this.addNum=opt.add
+	  }
+	  this.delId=opt.delId;
+      this.queryCarModelGroupPackage();
+	},
+	methods: {
+		ckVin(vinItem,vIndex){
+			this.vinIndex=vIndex;
+			this.vincarModelInfo=vinItem
+		},
+		qrcx(){
+			this.goAddCar(this.vincarModelInfo)
+		},
+		shoudong(){
+			this.vinboxtwoShow=false;
+			this.tabIndex=1;
+		},
+		goback(){
+			uni.navigateBack({
+				delta:1
+			})
+		},
+		gofhj(){
+			if(this.carGroupListShow){
+				this.carGroupListShow=false
+			}else if(this.displacementListShow){
+				this.displacementListShow=false
+			}else if(this.popupShow){
+				this.popupShow=false
+				this.$refs.popup.close()
+			}else{
+				uni.navigateBack({
+					delta:1
+				})
+			}
+		},
+		scVinIMg(){
+			var that = this;
+			uni.chooseImage({
+				sourceType: ['album','camera'],
+				count:1, 
+				success: (chooseImageRes) => {
+					const tempFilePaths = chooseImageRes.tempFilePaths;
+					that.file=tempFilePaths[0]
+					 uni.uploadFile({
+				            url: that.$request.baseUrl+'accompany/SuperCheckSheet/uploadFile', //仅为示例,非真实的接口地址
+				            filePath: tempFilePaths[0],
+				            name: 'file',
+				            formData: {
+				                'user': 'test'
+				            },
+				            success: (uploadFileRes) => {
+				                console.log(JSON.parse(uploadFileRes.data).data );
+								//that.imgArr=that.imgArr.concat(JSON.parse(uploadFileRes.data).data) ;
+								that.vinImg=JSON.parse(uploadFileRes.data).data[0];
+								that.vinScanner()
+				            }
+				        });
+			
+					/* that.$http('accompany/SuperCheckSheet/uploadFile', tempFilePaths[0], 'POST').then(res => {
+						
+					}) */
+				}
+			});
+		},
+		vinScanner(){
+			uni.showLoading({
+				title:'正在识别中'
+			});
+			/* 
+			this.$http('miniAppMyBMemberCar/vinScanner', {
+			  photo:this.file,
+			
+			 },'POST').then(res => {
+				uni.hideLoading();
+				//this.carGroupList=res.data.carGroupList
+			}) */
+			var that=this;
+			uni.uploadFile({
+			       url: that.$request.baseUrl+'miniAppMyBMemberCar/vinScanner', 
+			       filePath: that.file,
+			       name: 'photo',
+			       formData: {
+			           'user': 'test'
+			       },
+			       success: (uploadFileRes) => {
+					   uni.hideLoading();
+			           console.log(JSON.parse(uploadFileRes.data) );
+					   if(JSON.parse(uploadFileRes.data).code==0){
+						   	that.vin = JSON.parse(uploadFileRes.data).data;
+							that.queryCarModelGroupByVin()
+					   }else{
+						   uni.showToast({
+						   	title: JSON.parse(uploadFileRes.data).msg,
+						   	icon: 'none',
+						   	duration: 2000,
+						   });
+					   }
+					   	
+			       }
+			   });
+		},
+		queryCarModelGroupByVin(){
+			uni.showLoading({ });
+			this.$http('miniAppMyBMemberCar/queryCarModelGroupByVin', {
+			  vin:this.vin,
+			
+			 },'GET').then(res => {
+				uni.hideLoading();
+				if(res.code!=0){
+					uni.showToast({
+						title: res.msg,
+						icon: 'none',
+						duration: 2000,
+					});
+				}else{
+					this.vinboxtwoShow=true
+					this.vinSbList=res.data;
+					this.vincarModelInfo=this.vinSbList[0]
+				}
+				
+			})
+			
+		},
+		goAddCar(item){
+			console.log(item)
+			var carModelInfo=item;
+			var that=this;
+			uni.setStorage({
+				key: 'carModelInfo',
+				data: carModelInfo,
+				success: function () {
+					/* uni.redirectTo({
+						url:'editCar'
+					}) */
+					/* if(that.type==2){
+						uni.navigateTo({
+							url:'editCar?type=2'
+						})
+					}else{
+						if(that.delId){
+							uni.navigateTo({
+								url:'editCar?delId='+that.delId
+							})
+						}else{
+						uni.navigateTo({
+							url:'editCar'
+						})	
+						}
+						
+					} */
+					if(that.addNum==1){
+						uni.navigateTo({
+							url:'editCar'
+						})	
+					}else{
+						uni.navigateBack({
+							delta:1
+						})
+					}
+					 
+				}
+			}); 
+		},
+		selectBrand(item){
+			console.log(item)
+			this.selectedCarBrand=item;
+			this.$refs.popup.open("right")
+			this.popupShow=true;
+			this.brand=item.brand
+			this.getbrand()
+		},
+		selectCarFactory(manufactor,item){
+			this.manufactor=manufactor;
+			this.carSeries=item;
+			//this.selectedCarSeries=item
+			this.displacementListShow=true;
+			this.getdisplacementList()
+		},
+		selectDisplacement(item){
+			this.displacement=item;
+			this.carGroupListShow=true;
+			this.getmodelList();
+		},
+		getmodelList(){
+			uni.showLoading({ });
+			this.$http('miniAppMyBMemberCar/queryCarModelGroupPackage', {
+			  brand:this.brand,
+			  manufactor:this.manufactor,
+			  carSeries:this.carSeries,
+			  displacement:this.displacement
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.carGroupList=res.data.carGroupList
+			})
+		},
+		getdisplacementList(){
+			uni.showLoading({ });
+			this.$http('miniAppMyBMemberCar/queryCarModelGroupPackage', {
+			  brand:this.brand,
+			  manufactor:this.manufactor,
+			  carSeries:this.carSeries
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.displacementList=res.data.displacementList
+			})
+		},
+		queryCarModelGroupPackage(){
+			uni.showLoading({ });
+			this.$http('miniAppMyBMemberCar/queryCarModelGroupPackage', {
+			  
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.carModelList=res.data.brands
+			})
+		},
+		bindToView(item){
+			console.log(item)
+			if(item['首字母']=='热门'){
+					this.toView ='rm'
+			}else{
+					this.toView = item['首字母']
+			}
+		
+			console.log(this.toView)
+			//this.scrollTop = 0
+		
+		},
+       /* login(){
+			uni.navigateTo({
+				url:'../login/login'
+			})
+		} */
+		close(){
+			this.$refs.popup.close()
+		},
+		getbrand(){
+			uni.showLoading({ });
+			this.$http('miniAppMyBMemberCar/queryCarModelGroupPackage', {
+			  brand:this.brand
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.carSeriesList=res.data.carSeriesList
+			})
+		}
+	}
+}
+</script>
+
+<style scoped lang="scss">
+	.box{
+		min-height: 100vh;
+		background:#F4F5F7 ;
+	}
+	.vinboxTwoTopFh{
+		font-size: 26rpx;
+	    padding: 30rpx 24rpx;
+		color: #3F90F7;
+	}
+	.vinboxTwoBottom{
+		width: 750rpx;
+		height: 120rpx;
+		background: #FFFFFF;
+		box-shadow: 0px -2px 20px 0px rgba(153, 153, 153, 0.2);
+		position: absolute;
+		left: 0;
+		bottom: 0;
+		display: flex;
+		justify-content: space-around;
+	}
+	.shoudonng{
+		width: 336rpx;
+		height: 74rpx;
+		border-radius: 37rpx;
+		border: 1px solid #FF4F00;
+		line-height: 74rpx;
+		text-align: center;
+		font-size: 30rpx;
+		color: #FF4F00;
+		margin-top: 23rpx;
+	}
+	.qrcx{
+		width: 336rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		line-height: 74rpx;
+		text-align: center;
+		font-size: 30rpx;
+		color: #FFFFFF;
+			margin-top: 23rpx;
+	}
+	.vinXzBox{
+		padding-bottom: 120rpx;
+	}
+	.loginLogo{
+		width: 28rpx;
+		height: 28rpx;
+	}
+	.vinXzLineyk{
+		width: 24rpx;
+		height: 24rpx;
+		border: 2rpx solid #999999;
+		border-radius: 50%;
+	}
+	.vinXzLine{
+		padding: 30rpx 24rpx;
+		display: flex;
+		justify-content: space-between;
+		color: #3C3C3C;
+		font-size: 28rpx;
+		line-height: 28rpx;
+		border-bottom: 1px solid #DDDDDD;
+	}
+	.vinboxTwoTopVIn{
+		font-size: 28rpx;
+		color: #666666;
+		padding-left: 24rpx;
+		padding-bottom: 30rpx;
+	}
+	.zdyNav{
+		width: 100vw;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 1111111;
+	}
+	.zdyNavCont{
+		height: 44px;
+		font-size: 28rpx;
+		// font-weight: 700;
+		display: flex;
+		justify-content: space-between;
+		line-height: 44px;
+	}
+	.vinCxNum{
+		background: #F4F5F7;
+		font-size: 26rpx;
+		padding: 18rpx 24rpx;
+		color: #999999;
+	}
+	.baiheibackImg{
+		width: 70px;
+		height: 44px;
+	}
+	.gaunbiIMg{
+		width: 20px;
+		height: 20px;
+		padding: 12px;
+	}
+	.zdyNavContLeft{
+		
+	}
+	.zdyNavContRight{
+		width: 114px;
+	}
+	.smvin{
+		color: #3C3C3C;
+		font-size: 30rpx;
+	}
+	.smvin2{
+		color: #999999;
+		font-size: 26rpx;
+	}
+	.tab2{
+		padding: 30rpx 24rpx;
+		min-height: calc(100vh - 150rpx - 44px);
+		background: #FFFFFF;
+		position: relative;
+	}
+	.vinboxTwo{
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 750rpx;
+		min-height: calc(100vh - 150rpx - 44px);
+		background: #FFFFFF;
+	}
+	.sltpImg{
+		width: 704rpx;
+		height: 353rpx;
+	}
+	.vinImg{
+		width: 704rpx;
+	}
+	.sltp{
+		padding-top: 20rpx;
+	}
+	.vinSc{
+		width: 690rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		text-align: center;
+		line-height: 74rpx;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		margin-top: 70rpx;
+	}
+	.nodataImg{
+	  width: 400rpx;
+	  padding-top: 100rpx;
+	}
+	.noTxt{
+		font-size: 36rpx;
+		color: #999999;
+		padding-top: 50rpx;
+	}
+	.nodataBox{
+		text-align: center;
+	}
+	.addBtn{
+		width: 690rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		line-height: 74rpx;
+		text-align: center;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		position: fixed;
+		bottom: 23rpx;
+		left: 30rpx;
+	}
+	.carlistBox{
+		padding-bottom: 120rpx;
+	}
+	.tab{
+		background: #FFFFFF;
+		display: flex;
+		justify-content: space-around;
+		line-height: 93rpx;
+		color: #3C3C3C;
+		font-size: 30rpx;
+		border-bottom: 1px solid #F4F5F7;
+	}
+	.activeTab{
+		color: #FF4F00;text-decoration: underline
+	}
+	/* .brand-select-title{
+		height: 80px;
+		background:rgba(247,247,247,1);
+		position: relative;
+	} */
+	.brand-select{
+	  .brand-select-title{
+	    height: 80rpx;
+	    background:rgba(247,247,247,1);
+	    position: relative;
+	    h5{
+	      position: absolute;
+	      height:40rpx;
+	      font-size:28rpx;
+	      font-weight:500;
+	      color:rgba(102,102,102,1);
+	      line-height:40rpx;
+	      top: 20rpx;
+	      left: 30rpx;
+	    }
+	  }
+	  .brand-select-wrapper{
+	    display: flex;
+	    flex-wrap: wrap;
+	    background:rgba(255,255,255,1);
+		width: 100vw;
+	    .brand-select-item{
+	      display: block;
+	      width: 80rpx;
+	      height: 100rpx;
+	      padding: 30rpx;
+	      img{
+	        display: inline-block;
+	        margin-left: 10rpx;
+	        width: 60rpx;
+	        height: 60rpx;
+	      }
+	      span{
+	        display: inline-block;
+	        text-align: center;
+	        height:33rpx;
+	        width: 90rpx;
+	        font-size:24rpx;
+	        font-weight:400;
+	        color:rgba(51,51,51,1);
+	        line-height:33rpx;
+	      }
+	    }
+	
+	  }
+	}
+	.fast-navigation{
+	  position: fixed;
+	  text-align: center;
+	  right: 16rpx;
+	  top: 360rpx;
+	  width: 23rpx;
+	  font-size:30rpx;
+	  font-weight:500;
+	  line-height:35rpx;
+	  color: rgb(153, 153, 153);
+	  a{
+	    display: block;
+	  }
+	  .select{
+	    color: #FF4F00;
+	  }
+	}
+	.scroll-view{
+		height: calc(100vh - 93rpx);
+	}
+	.popup-height {
+	
+		width: 200px;
+	}
+	.popup-content{
+		width: 590rpx;
+		background: #FFFFFF;
+		height: 100vh;
+	}
+	.carModel-nav-title{
+	  height:100rpx;
+	  background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	  line-height: 100rpx;
+	  display: flex;
+	  z-index: 500;
+	  &.cell-logo{
+	    position: sticky;
+	    top: 0;
+	   background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	  }
+	  .carModel-nav-title-box{
+	    width: 100%;
+	    display: flex;
+	  }
+	  .carModel-nav-title-img{
+	    margin: 20rpx;
+	    width: 60rpx;
+	    height: 60rpx;
+	  }
+	  .carModel-nav-title-msg{
+	    font-size:30rpx;
+	    font-weight:400;
+	    color:rgba(255,255,255,1);
+	    display: block;
+	    padding-right: 20rpx;
+	  }
+	}
+	.cell-item-title{
+	  height:60rpx;
+	  background:rgba(250,250,250,1);
+	  font-size:28rpx;
+	  font-weight:400;
+	  color:rgba(102,102,102,1);
+	  line-height:60rpx;
+	  padding-left: 26rpx;
+	}
+	.span-cell{
+	  position: relative;
+	  display: -webkit-box;
+	  display: -webkit-flex;
+	  display: flex;
+	  box-sizing: border-box;
+	  width: 100%;
+	  padding: 6rpx 30rpx;
+	  overflow: hidden;
+	  color: #323233;
+	  font-size: 3.73333vw;
+	  line-height: 82rpx;
+	  height: 82rpx;
+	  background-color: #fff;
+	  border-bottom: 1px solid #ebedf0;
+	
+	}
+	.carModel-nav-title{
+	  height:100rpx;
+	 background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	 line-height: 100rpx;
+	  display: flex;
+	  z-index: 500;
+	  &.cell-logo{
+	    position: sticky;
+	    top: 0;
+	    background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	  }
+	  .carModel-nav-title-box{
+	    width: 100%;
+	    display: flex;
+	  }
+	  .carModel-nav-title-img{
+	    margin: 20rpx;
+	    width: 60rpx;
+	    height: 60rpx;
+	  }
+	  .carModel-nav-title-msg{
+	    font-size:30rpx;
+	    font-weight:400;
+	    color:rgba(255,255,255,1);
+	    display: block;
+	    padding-right: 20px;
+	  }
+	}
+	.displacementListLine{
+		min-height: 50rpx;
+		padding: 20rpx 20rpx 20rpx 30rpx;
+		font-size:28rpx;
+		font-weight:600;
+		color:rgba(51,51,51,1);
+		line-height:50rpx;
+		border-top: 2rpx solid rgb(238, 238, 238);
+		background-color: rgb(255, 255, 255);
+	}
+	.displacementListBox{
+		position: fixed;
+		top: 0;
+		left: 0;
+		width: 100vw;
+		height: 100vh;
+		background:#F4F5F7 ;
+		z-index: 11111;
+		/*  #ifdef H5 */
+		top:44px;
+		/*  #endif  */
+	}
+	.carGroupListBox{
+		position: fixed;
+		top: 0;
+		left: 0;
+		width: 100vw;
+		height: 100vh;
+		background:#F4F5F7 ;
+		z-index: 11111;
+		/*  #ifdef H5 */
+		top:44px;
+		/*  #endif  */
+	}
+	.brandList{
+		height: calc(100vh - 100rpx);
+	}
+	.brand-select-titleselect{
+		    color: #FF4F00 !important;
+	}
+</style>

+ 47 - 38
pages/index/index.vue

@@ -26,15 +26,25 @@
 			</view>
 
 			<view class="mesView">
-				<view class="leftTitle">车牌号</view>
-				<input class="plateNumber" placeholder-style="color:#999999" placeholder="请输入车牌号" disabled="true" @tap="plateShow=true"
-					v-model.trim="plateNo" />
-				<plate-input v-if="plateShow" :plate="plateNo" @export="setPlate" @close="plateShow=false" />
-
-				<view class="changeCarBg" @click="changeCar" v-show="!joinFirst">
-					<image src="../../static/img/icon_change.png"
-						style="width: 32rpx; height: 34rpx; margin-right: 5rpx;"></image>
-					<view style="color: #FF2400; font-size: 28rpx;">换车</view>
+				<view class="leftTitle">车牌号</view>
+				
+				<view class="rightView"  v-if="!joinFirst">
+					<view class="plateNumber noSelectColor">请添加您的爱车</view>
+
+					<view class="changeCarBg" @click="addCar()">
+						<image src="../../static/img/icon_change.png"
+							style="width: 32rpx; height: 34rpx; margin-right: 5rpx;"></image>
+						<view style="color: #FF2400; font-size: 28rpx;">添加</view>
+					</view>
+				</view>
+				<view class="rightView" v-else>
+					<view class="plateNumber selectColor">{{plateNo}}</view>
+				
+					<view class="changeCarBg" @click="goCarList()">
+						<image src="../../static/img/icon_change.png"
+							style="width: 32rpx; height: 34rpx; margin-right: 5rpx;"></image>
+						<view style="color: #FF2400; font-size: 28rpx;">换车</view>
+					</view>
 				</view>
 
 
@@ -42,20 +52,12 @@
 
 			<view class="mesView">
 				<view class="leftTitle">车型</view>
-				<view class="carModBtn noSelectColor" v-if="!carMod">请添加您的爱车</view>
-				<view class="carModBtn selectColor" v-else>{{carMod}}</view>
-				<image src="../../static/img/rightArrow.png" class="rightArrow"></image>
-			</view>
+				<view class="carModBtn selectColor" v-if="!carMod">{{carMod}}</view>
 
-			<view class="mesView">
-				<view class="leftTitle">购车时间</view>
-				<picker class="timeBtn" @change="bindChange" mode="date">
-					<view class="uni-input selectColor" v-if="time">{{time}}</view>
-					<view class="uni-input noSelectColor" v-else>请选择您的购车时间</view>
-				</picker>
-				<image src="../../static/img/rightArrow.png" class="rightArrow"></image>
 			</view>
 
+
+
 			<view class="mesView">
 				<view class="leftTitle">行驶里程</view>
 				<input class="mileageInput selectColor" type="number" v-model="mileage" placeholder="请输入"
@@ -76,23 +78,19 @@
 
 <script>
 	import choseCity from "@/components/chose-city/chose-city"
-	import plateInput from "@/components/uni-plate-input/uni-plate-input.vue"
 	export default {
 		components: {
-			choseCity,
-			plateInput
+			choseCity
 		},
 
 		data() {
 			return {
 				homeData: '',
-				shopId: '',
+				uid: '',
 				cityname: '',
 				showCity: false,
 				location: '',
 				cityCode: '',
-				plateNo: '',
-				plateShow: false,
 				joinFirst: false,
 				carMod: '',
 				time: '',
@@ -146,7 +144,6 @@
 
 			// #endif
 			this.uid = uni.getStorageSync("logodata").uid;
-			this.shopId = uni.getStorageSync("shopData").shopId;
 			console.log(this.shopId)
 			this.location = uni.getStorageSync("location");
 			if (this.location) {
@@ -192,9 +189,22 @@
 
 		},
 		methods: {
+<<<<<<< HEAD
 			gomodule(){
 				uni.navigateTo({
 					url:'../module/maintain'
+=======
+			goCarList() {
+				if (this.uid) {
+					uni.navigateTo({
+						url: 'cailist?type=1'
+					})
+				}
+			},
+			addCar() {
+				uni.navigateTo({
+					url: 'addCar'
+>>>>>>> 5f1951434fab0da9eac36f8d24ee46ce362c96a8
 				})
 			},
 			selectCity(item) {
@@ -215,14 +225,8 @@
 				this.showCity = false
 
 			},
-			setPlate(plate) {
-				if (plate.length >= 7) this.plateNo = plate;
-				this.plateShow = false;
-			},
 
-			changeCar() {
 
-			},
 			bindChange(e) {
 				console.log(e);
 				this.time = e.target.value
@@ -286,7 +290,7 @@
 	.carMessage {
 		margin: 24rpx 24rpx 40rpx;
 
-		height: 600rpx;
+		height: 500rpx;
 		background-color: #FFFFFF;
 		border-radius: 10rpx;
 	}
@@ -340,9 +344,14 @@
 		width: 65%;
 		font-size: 28rpx;
 	}
-
+	
+	.rightView{
+		display: flex;
+		justify-content: space-between;
+		width: 80%;
+	}
+	
 	.plateNumber {
-		width: 55%;
 		font-size: 28rpx;
 	}
 
@@ -365,14 +374,14 @@
 	.kmStr {
 		font-size: 28rpx;
 		color: #333333;
-		
+
 	}
 
 	.changeCarBg {
 		display: flex;
 		/* justify-content: flex-start; */
 		align-items: center;
-		width: 120rpx;
+		width: 120rpx;
 		margin-right: 28rpx;
 	}
 </style>

+ 282 - 0
pages/me/discountCard.vue

@@ -0,0 +1,282 @@
+<template>
+	<view class="content">
+
+		<view class="teamTop">
+			<view class="sumCount">可使用优惠券</view>
+		</view>
+
+		<!-- 列表 -->
+		<view class="itemContent">
+			<view v-for="(item,index) in itemData" :key="index">
+				<view class="item">
+
+					<!-- 第一块 -->
+					<view class="topView" @click="ckCoupon(item)">
+						<view class="leftView">
+							<view class="moneyView">
+								<view>¥</view>
+								<view class="money">{{item.ActMoney}}</view>
+							</view>
+							<view class="condition" v-if="item.WhereMoney != 0">满{{item.WhereMoney}}元可用</view>
+							<view class="condition" v-else>满任意金额可用</view>
+						</view>
+
+						<view class="rightView">
+							<view class="cardName">{{item.ActName}}</view>
+							<!-- 时间截取 -->
+							<view class="valid">有效期:{{item.StartTime.slice(0,item.StartTime.length-8)}}至 {{item.EndTime.slice(0,item.EndTime.length-8)}}</view>
+						</view>
+					</view>
+
+					<!-- 第二快 -->
+					<view class="bottomView">
+						<view>发放门店:{{item.ShopName}}</view>
+						<view @click="goDiscountDetail(item)">查看详情</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<!-- 上拉 加载更多 -->
+		<view class="noMore" v-if="noMoreShow">没有更多数据</view>
+		<!-- 无数据空白页 -->
+		<nodata v-if="itemData.length==0"></nodata>
+
+	</view>
+</template>
+
+<script>
+	import nodata from '../../components/nodata/nodata.vue'
+	export default {
+		components: {
+			nodata,
+		},
+		data() {
+			return {
+				itemData: [],
+				page: 1,
+				noMoreShow: false,
+				payMoney:'',
+			}
+		},
+		onLoad(opt) {
+			this.page = 1
+			if(opt.payMoney){
+				this.payMoney=opt.payMoney;
+				this.myOrderCoupon()
+			}else{
+				this.getItemData()
+			}
+			
+		},
+		methods: {
+			ckCoupon(item){
+				console.log(item);
+				uni.setStorage({
+					key: 'couponData',
+					data: item,
+					success: function () {
+						uni.navigateBack({
+							delta:1
+						})
+					}
+				}); 
+			},
+			myOrderCoupon(){
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$http('miniApp/maintainOrder/myOrderCoupon', {
+				  money:this.payMoney,
+				  page:this.page,
+				  limit:10,
+				 },'GET').then(res => {
+					uni.hideLoading();
+					var list = res.data.Items
+					
+					// 处理 undefined和null转为空白字符串
+					list.forEach((item, index) => {
+						for (const key in item) {
+							item[key] = this.$praseStrEmpty(item[key])
+						}
+					})
+					
+					if (this.page == 1) {
+						this.itemData = list
+					} else {
+						this.itemData = this.itemData.concat(list)
+					}
+					
+					if (list.length < 10) {
+						this.noMoreShow = false
+					} else {
+						this.noMoreShow = true
+					}
+				})
+			},
+			goDiscountDetail(item) {
+
+				uni.navigateTo({
+					url: 'discountDetail?couponId=' + item.CouponID,
+				})
+			},
+			getItemData() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				let url = 'miniAppMyBMemberCar/listMiniAppCouponPage',
+					params = {
+						page: this.page,
+						limit: 20,
+
+					}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading();
+					var list = res.data.Items
+
+					// 处理 undefined和null转为空白字符串
+					list.forEach((item, index) => {
+						for (const key in item) {
+							item[key] = this.$praseStrEmpty(item[key])
+						}
+					})
+
+
+					if (this.page == 1) {
+						this.itemData = list
+					} else {
+						this.itemData = this.itemData.concat(list)
+					}
+
+					if (list.length < 10) {
+						this.noMoreShow = false
+					} else {
+						this.noMoreShow = true
+					}
+					
+					
+				})
+			},
+
+		},
+
+		// 下拉刷新 上拉加载更多
+		onPullDownRefresh() {
+			this.page = 1
+			if(opt.payMoney){
+				
+				this.myOrderCoupon()
+			}else{
+				this.getItemData()
+			}
+			//this.getItemData()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		onReachBottom() {
+			this.page++;
+			if(opt.payMoney){
+				
+				this.myOrderCoupon()
+			}else{
+				this.getItemData()
+			}
+		},
+
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #F4F5F7;
+		min-height: 100vh;
+
+	}
+
+	.teamTop {
+		position: fixed;
+		top: 0rpx;
+		left: 0rpx;
+		background-color: #F4F5F7;
+		width: 100%;
+		height: 77rpx;
+	}
+
+	.sumCount {
+		padding: 20rpx 24rpx;
+		color: #999999;
+		font-size: 26rpx;
+	}
+
+	.itemContent {
+		padding: 55rpx 20rpx 24rpx;
+	}
+
+	.item {
+		margin: 20rpx 0rpx;
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+
+	}
+
+	.topView {
+		display: flex;
+		justify-content: flex-start;
+		padding: 22rpx 0rpx;
+		margin-left: 22rpx;
+		margin-right: 22rpx;
+		border-bottom: 1rpx #CCCCCC dashed;
+		align-items: center;
+	}
+
+	.leftView,
+	.rightView {
+		margin-right: 40rpx;
+		
+	}
+
+	.moneyView {
+		display: flex;
+		justify-content: flex-start;
+		color: #FF4F00;
+		align-items: baseline;
+	}
+
+	.money {
+		font-size: 56rpx;
+	}
+
+	.condition {
+		font-size: 22rpx;
+		color: #999999;
+	}
+
+	.cardName {
+		font-size: 30rpx;
+		font-weight: bold;
+		color: #333333;
+		margin-top: 10rpx;
+		margin-bottom: 15rpx;
+	}
+
+	.valid {
+		font-size: 26rpx;
+		color: #999999;
+	}
+
+	.bottomView {
+		display: flex;
+		justify-content: space-between;
+		padding: 20rpx 24rpx;
+		font-size: 24rpx;
+		color: #666666;
+	}
+
+	.noMore {
+		text-align: center;
+		line-height: 50rpx;
+		color: #999999;
+		font-size: 28rpx;
+	}
+</style>

+ 196 - 0
pages/me/discountDetail.vue

@@ -0,0 +1,196 @@
+<template>
+	<view class="content">
+		<view style="background: #BE573F; height: 56rpx; width: 100%;"></view>
+
+		<view class="whiteBg">
+
+			<!-- firstView -->
+			<view class="firstView">
+				<view class="money">{{detailData.actName}}</view>
+				<view class="condition" v-if="detailData.whereMoney != 0">满{{detailData.whereMoney}}元可用</view>
+				<view class="condition" v-else>满任意金额可用</view>
+			</view>
+			<view class="point leftP"></view>
+			<view class="point rightP"></view>
+
+			<!-- secondView -->
+			<view class="secondView">
+				
+				<view  v-if="detailData.endOffsetDays===null||detailData.endOffsetDays==='null'||detailData.endOffsetDays===''">
+					
+					<view class="valid same" >有效期:{{detailData.startTime.slice(0,detailData.startTime.length-8)}}至 {{detailData.endTime.slice(0,detailData.endTime.length-8)}}</view>
+				</view>
+				<view v-else>
+				
+					<view class="valid same" v-if="detailData.endOffsetDays>-1">有效期:自领取后,{{detailData.endOffsetDays}}天有效</view>
+				     <view class="valid same" v-if="detailData.endOffsetDays==-1||detailData.endOffsetDays==null||detailData.endOffsetDays=='null'">有效期:{{detailData.startTime.slice(0,detailData.startTime.length-8)}}至 {{detailData.endTime.slice(0,detailData.endTime.length-8)}}</view>
+				</view>
+				
+				
+				<view class="same">可用次数:{{detailData.avaQty}}</view>
+			</view>
+
+			<!-- thirdView -->
+			<view class="thirdView">
+				<view class="thirdTitle">使用说明</view>
+				<view class="store">
+					<view class="grayPoint"></view>
+					<view class="same">适用门店:{{detailData.shopNames}}</view>
+				</view>
+			</view>
+			
+			<!-- 列表 -->
+			<view class="itemContent">
+				<view class="thirdTitle">注意事项</view>
+				<rich-text :nodes="couContent" style="color: #666666; font-size: 26rpx;"></rich-text>
+				<!-- <view v-for="(item,index) in itemData" :key="index">
+					<view class="store">
+						<view class="grayPoint"></view>
+						<view class="same">{{item}}</view>
+					</view>
+				</view> -->
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				detailData:{},
+				couponId:'',
+				couContent:'',
+			}
+		},
+		onLoad(opt) {
+			this.couponId = opt.couponId,
+			this.page = 1
+			this.getDetailData()
+		},
+		methods: {
+			getDetailData() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				let url = 'miniAppMyBMemberCar/queryMiniAppCouponDetail',
+					params = {
+						couponId: this.couponId,
+						
+					}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading();
+					var data = res.data
+					
+					if(res.data.couContent){
+						 this.couContent=res.data.couContent.replace(/\<p/gi, '<p style="display: inline-block"');
+					}
+					// 处理 undefined和null转为空白字符串
+					
+						for (const key in data) {
+							data[key] = this.$praseStrEmpty(data[key])
+						}
+					
+					this.detailData = data
+			
+					
+					
+				})
+			},
+		}
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #BE573F;
+		min-height: 100vh;
+	}
+
+	.whiteBg {
+		margin: 0rpx 24rpx;
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+		min-height: 60vh;
+	}
+
+	.firstView {
+		border-bottom: 1rpx #EEEEEE dashed;
+		text-align: center;
+		padding: 50rpx 20rpx;
+		padding-bottom: 30rpx;
+	}
+
+	.money {
+		font-size: 44rpx;
+		color: #333333;
+		font-weight: bold;
+		margin-bottom: 10rpx;
+	}
+
+	.condition {
+		font-size: 28rpx;
+		color: #999999;
+	}
+
+	.point {
+		width: 30rpx;
+		height: 30rpx;
+		background-color: #BE573F;
+		border-radius: 15rpx;
+	}
+
+	.leftP {
+		float: left;
+		margin-left: -15rpx;
+		margin-top: -15rpx;
+	}
+
+	.rightP {
+		float: right;
+		margin-right: -15rpx;
+		margin-top: -15rpx;
+	}
+
+	.secondView {
+		padding: 30rpx 40rpx;
+	}
+
+	.valid {
+		margin-bottom: 20rpx;
+	}
+
+	.same {
+		font-size: 28rpx;
+		color: #666666;
+	}
+
+	.thirdView {
+		padding: 30rpx 40rpx;
+		border: 1rpx #EEEEEE solid;
+	}
+
+	.thirdTitle {
+		font-size: 32rpx;
+		color: #333333;
+		margin-bottom: 20rpx;
+	}
+
+	.store {
+		display: flex;
+		align-items: center;
+		margin-bottom: 20rpx;
+	}
+
+	.grayPoint {
+		width: 12rpx;
+		height: 12rpx;
+		border-radius: 6rpx;
+		background-color: #DDDDDD;
+		margin-right: 15rpx;
+	}
+	.itemContent{
+		padding: 30rpx 40rpx;
+	}
+</style>

+ 263 - 0
pages/me/feedBack.vue

@@ -0,0 +1,263 @@
+<template>
+	<view class="content">
+		<view class="main">
+			<!-- 建议 -->
+			<view class="firstView">
+				<view class="title">您的问题或建议</view>
+				<view>
+					<textarea placeholder-style="color:#999999" placeholder="输入个人意见反馈" v-model="exeContent"
+						class="textareaCont" maxlength="-1" auto-height="true" @confirm="feedDone" />
+				</view>
+			</view>
+
+			<!-- 图片 -->
+			<view class="secondView">
+				<view class="title">上传图片</view>
+				<view class="imgBox">
+					<view class="imgLine" v-for="(img,imgindex) in imgArr">
+						<image :class="{img4:(imgindex+1)%4==0}" :src="img" mode="" class="itemImg"></image>
+						<image src="../../static/img/icon_delpic@2x.png" mode="" class="delImg"
+							@click="delimg(imgindex)"></image>
+					</view>
+					<view class="imgLine" @click="uploadImg">
+						<image src="../../static/img/icon_addpic@2x.png" mode="" class="itemImg"></image>
+					</view>
+				</view>
+			</view>
+
+
+		</view>
+
+		<view class="bottom">
+			<view class="shoreDz" @click="submit">提交</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import nodata from '@/components/nodata/nodata.vue'
+	export default {
+		components: {
+			nodata
+		},
+		data() {
+			return {
+				imgArr: [],
+				exeContent: '',
+				
+			}
+		},
+		
+		methods: {
+			feedDone(e) {
+				this.exeContent = e.target.value
+				
+			},
+			uploadImg() {
+
+				var that = this;
+				var length=this.imgArr.length;
+				var num=9;
+				if(length>8){
+					uni.showToast({
+						title: '最多上传9张',
+						icon: 'none',
+						duration: 2000,
+					});
+					return false;
+				}
+				uni.chooseImage({
+					sourceType: ['album','camera'],
+					count:num-length, 
+					success: (chooseImageRes) => {
+						const tempFilePaths = chooseImageRes.tempFilePaths;
+						/* uni.uploadFile({
+				            url: that.$request.baseUrl+'accompany/SuperCheckSheet/uploadFile', //仅为示例,非真实的接口地址
+				            filePath: tempFilePaths[0],
+				            name: 'file',
+				            formData: {
+				                'user': 'test'
+				            },
+				            success: (uploadFileRes) => {
+				                console.log(JSON.parse(uploadFileRes.data).data );
+								that.imgArr=that.imgArr.concat(JSON.parse(uploadFileRes.data).data) ;
+								
+				            }
+				        }); */
+						tempFilePaths.forEach(v => {
+							console.log(that.$request.baseUrl + 'tuhuUploadFile');
+							uni.uploadFile({
+								url: that.$request.baseUrl + 'tuhuUploadFile',
+								filePath: v,
+								name: 'file',
+								formData: {
+									'user': 'test'
+								},
+								
+								success: (uploadFileRes) => {
+
+									console.log(JSON.parse(uploadFileRes.data).data);
+									that.imgArr = that.imgArr.concat(JSON.parse(
+										uploadFileRes.data).data);
+								}
+							});
+						})
+						/* that.$http('accompany/SuperCheckSheet/uploadFile', tempFilePaths[0], 'POST').then(res => {
+							
+						}) */
+					}
+				});
+			},
+			delimg(index) {
+				this.imgArr.splice(index, 1)
+			},
+			submit() {
+				if (!this.exeContent) {
+					uni.showToast({
+						title: '请输入个人意见反馈',
+						icon: 'none',
+						duration: 2000,
+					});
+					return ;
+				}
+				// if (this.imgArr.length == 0) {
+				// 	uni.showToast({
+				// 		title: '请上传图片',
+				// 		icon: 'none',
+				// 		duration: 2000,
+				// 	});
+				// 	return ;
+				// }
+				uni.showLoading({});
+				var exeImg = this.imgArr.join(',')
+				this.$http('miniAppMyBMemberCar/addBMemberSuggest', {
+					
+					contents: this.exeContent,
+					img: exeImg
+				}, 'POST').then(res => {
+					//this.submitSuperCheckSheet()
+					if(res.code==0){
+						uni.showToast({
+							title: '提交成功',
+							icon: 'none',
+							duration: 2000,
+						});
+						setTimeout(function() {
+							uni.navigateBack({
+								
+							})
+						}, 2000); 	
+					}else{
+						uni.showToast({
+							title: '提交失败',
+							icon: 'none',
+							duration: 2000,
+						});
+					}
+					
+					
+
+				})
+			}
+
+		}
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #F4F5F7;
+		min-height: 100vh;
+
+	}
+
+	/* #ifdef H5 */
+	.content {
+		background: #F4F5F7;
+		min-height: calc(100vh - 44px);
+
+	}
+
+	/* #endif */
+	.main {
+		background: #F4F5F7;
+		padding: 20rpx 24rpx;
+	}
+
+	.firstView,
+	.secondView {
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+	}
+
+	.firstView {
+		margin-bottom: 20rpx;
+	}
+
+	.title {
+		font-size: 30rpx;
+		color: #3C3C3C;
+		padding: 20rpx;
+	}
+
+	.textareaCont {
+		padding: 20rpx;
+		min-height: 150rpx;
+		width: 95%;
+	}
+
+
+	.imgBox {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 20rpx;
+
+	}
+	.imgLine{
+		position: relative;
+		margin-right: 10rpx;
+	}
+	.itemImg {
+		width: 150rpx;
+		height: 150rpx;
+		margin-right: 5rpx;
+	}
+
+	/* .img4 {
+		margin-right: 20rpx;
+		
+	} */
+
+	.delImg {
+		width: 32rpx;
+		height: 32rpx;
+		position: absolute;
+		right: 0rpx;
+		top: 0rpx;
+	}
+
+
+	.bottom {
+		width: 750rpx;
+		height: 120rpx;
+		background: #FFFFFF;
+		box-shadow: 0px -4px 8px 0px rgba(153, 153, 153, 0.08);
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		display: flex;
+		justify-content: space-around;
+	}
+
+	.shoreDz {
+		width: 702rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		text-align: center;
+		line-height: 74rpx;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		margin-top: 24rpx;
+	}
+</style>

+ 50 - 0
pages/me/intimity.vue

@@ -0,0 +1,50 @@
+<template>
+	<view class="content">
+		<rich-text :nodes="couContent" ></rich-text>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				couContent: '',
+			}
+		},
+		onLoad() {
+			this.getDetailData()
+		},
+		methods: {
+
+			getDetailData() {
+				console.log('谢雨');
+				uni.showLoading({
+					title: '加载中'
+				})
+				let url = 'miniAppMyBMemberCar/Privacy',
+					params = {}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading();
+
+
+					if (res.data.contents) {
+						this.couContent = res.data.contents.replace(/\<p/gi, '<p style="display: inline-block"');
+					}
+
+
+
+				})
+			},
+		}
+
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #F4F5F7;
+		min-height: 100vh;
+
+	}
+	
+</style>

+ 19 - 11
pages/me/me.vue

@@ -10,7 +10,7 @@
 				<view class="nickName">{{ueserInfo.memberInfo.nickName}}</view>
 			</view>
 			<view>
-				<image src="../../static/img/icon_set.png" mode="" class="setImg" @click="gonavigateTo('../me/setup')">
+				<image src="../../static/img/icon_set.png" mode="" class="setImg" @click="gonavigateTo('setup')">
 				</image>
 			</view>
 		</view>
@@ -46,7 +46,7 @@
 						<view class="orderNum" v-show="numList.sheetThree>0">{{numList.sheetThree}}</view>
 						<image src="../../static/img/icon_daiyuyue.png" mode="" class="orderLineImg"></image>
 					</view>
-					<view class="orderLineTxt">待预约</view>
+					<view class="orderLineTxt">待收货</view>
 				</view>
 
 				<view class="orderLine" @click="goorder(4)">
@@ -56,7 +56,7 @@
 					</view>
 					<view class="orderLineTxt">待服务</view>
 				</view>
-				<view class="orderLine" @click="goorder(3)">
+				<view class="orderLine" @click="goorder(5)">
 					<view class="orderImgBox">
 						<view class="orderNum" v-show="numList.sheetFive>0">{{numList.sheetFive}}</view>
 						<image src="../../static/img/icon_daipingjia.png" mode="" class="orderLineImg"></image>
@@ -70,16 +70,24 @@
 		<view class="rowBoxBg">
 			<view class="rowBox">
 				<view class="leftView">
-					<image src="../../static/img/icon_shouhou.png" mode="" class="liftIcon"></image>
-					<view class="rowTitle">售后订单</view>
+					<image src="../../static/img/icon_tuikuan.png" mode="" class="liftIcon"></image>
+					<view class="rowTitle">退款申请记录</view>
 				</view>
 				<image src="../../static/img/rightArrow.png" mode="" class="rightArrow"></image>
+			</view>
+			
+			<view class="rowBox">
+				<view class="leftView">
+					<image src="../../static/img/icon_tihuan.png" mode="" class="liftIcon"></image>
+					<view class="rowTitle">更换门店申请记录</view>
+				</view>
+				<image src="../../static/img/rightArrow.png" mode="" class="rightArrow"></image>
 			</view>
 		</view>
 
 		<!-- 我的 相关 -->
 		<view class="rowBoxBg">
-			<view class="rowBox">
+			<view class="rowBox" @click="gonavigateTo('../index/cailist')">
 				<view class="leftView">
 					<image src="../../static/img/icon_car.png" mode="" class="liftIcon"></image>
 					<view class="rowTitle">我的车库</view>
@@ -88,7 +96,7 @@
 			</view>
 			<view class="grayline"></view>
 				
-			<view class="rowBox">
+			<view class="rowBox" @click="gonavigateTo('discountCard')">
 				<view class="leftView">
 					<image src="../../static/img/icon_youhuiquan.png" mode="" class="liftIcon"></image>
 					<view class="rowTitle">我的优惠券</view>
@@ -97,7 +105,7 @@
 			</view>
 			<view class="grayline"></view>
 			
-			<view class="rowBox">
+			<view class="rowBox" @click="gonavigateTo('myAppraise')">
 				<view class="leftView">
 					<image src="../../static/img/icon_pingjia.png" mode="" class="liftIcon"></image>
 					<view class="rowTitle">我的评价</view>
@@ -130,7 +138,7 @@
 			</view>
 			<view class="grayline"></view>
 				
-			<view class="rowBox">
+			<view class="rowBox" @click="gonavigateTo('feedBack')">
 				<view class="leftView">
 					<image src="../../static/img/icon_fankui.png" mode="" class="liftIcon"></image>
 					<view class="rowTitle">意见反馈</view>
@@ -139,7 +147,7 @@
 			</view>
 			<view class="grayline"></view>
 			
-			<view class="rowBox">
+			<view class="rowBox" @click="gonavigateTo('')">
 				<view class="leftView">
 					<image src="../../static/img/icon_guanyu.png" mode="" class="liftIcon"></image>
 					<view class="rowTitle">关于我们</view>
@@ -175,7 +183,7 @@
 		methods: {
 			
 			call(e) {
-				console.log(e);
+				// console.log(e);
 				uni.makePhoneCall({
 					phoneNumber: e
 				});

+ 305 - 0
pages/me/myAppraise.vue

@@ -0,0 +1,305 @@
+<template>
+	<view class="content">
+
+		<!-- 列表 -->
+		<view class="itemContent">
+			<view v-for="(item,index) in itemData" :key="index" @click="goDetail(item)">
+				<view class="item">
+
+					<view class="leftView">
+						<image :src='item.PhotoPath' v-if="item.PhotoPath" class="storeImg"></image>
+						<image src="../../static/img/pic_def_ava.png"  mode="" class="storeImg" v-else></image>
+					</view>
+
+					<view class="rightView">
+						<!-- 第一行 -->
+						<view class="firstView">
+							<view class="shopName">{{item.ShopName}}</view>
+							<!-- 时间截取 -->
+							<!-- <view class="time">2021-9-05</view> -->
+							<view class="time">{{item.CreateTime.slice(0,item.CreateTime.length-8)}}</view>
+						</view>
+
+						<!-- 第2行 -->
+						<view class="secondView">
+							<!-- 星星 -->
+							<uni-rate :value="item.Overallevaluation" :max="5" color="#EEEEEE" active-color="#FF4F00"
+								:size="16" :margin="4" :readonly="true" />
+							<image src="../../static/img/review_icon_del@2x.png" class="deleteBtn"
+								@click.stop="deleteItem(item, index)"></image>
+						</view>
+
+						<view class="contentMes">{{item.EContent}}</view>
+
+						<!-- 照片 -->
+						<view class="imgBg">
+							<view v-for="(itemImg,indexImg) in item.imgs" :key="indexImg">
+
+								<image :src="itemImg.imageUrl" class="img"
+									@click.stop="previewImage(itemImg.imageUrl,item.imgs)"></image>
+							</view>
+						</view>
+
+						<!-- 商家回复 -->
+
+						<view class="writeBack" v-if="item.ReplyContent">商家回复:{{item.ReplyContent}}</view>
+					</view>
+
+
+
+				</view>
+			</view>
+		</view>
+
+		<!-- 上拉 加载更多 -->
+		<view class="noMore" v-if="noMoreShow">没有更多数据</view>
+		<!-- 无数据空白页 -->
+		<nodata v-if="itemData.length==0"></nodata>
+
+	</view>
+</template>
+
+<script>
+	import nodata from '../../components/nodata/nodata.vue'
+	export default {
+		components: {
+			nodata,
+		},
+		data() {
+			return {
+				itemData: [],
+				page: 1,
+				noMoreShow: false,
+				imgArr: [],
+			}
+		},
+		onLoad(opt) {
+			
+		},
+		onShow() {
+			this.itemData=[]
+			this.page = 1
+			this.getItemData()
+		},
+		methods: {
+			goDetail(item){
+				uni.navigateTo({
+					url:'myAppraiseDetail?id='+item.SheetID
+				})
+			},
+			previewImage(img, arrDic) {
+				var arr = [];
+
+				arrDic.forEach(item => {
+					arr.push(item.imageUrl)
+				})
+
+				// 预览图片
+				uni.previewImage({
+					urls: arr,
+					current: img,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
+			deleteItem(item, index) {
+				var that=this;
+				uni.showModal({
+				    title: '提示',
+				    content: '确定删除该条评价吗?',
+				    success: function (res) {
+						 if (res.confirm) {
+							 that.itemData.splice(index, 1);
+							 uni.showLoading({
+							 	title: '删除中'
+							 })
+							 
+							 let url = 'miniAppMyBMemberCar/deleteMyBMEvaluate',
+							 	params = {
+							 		id: item.ID,
+							 
+							 	}
+							 that.$http(url, params, 'POST').then(res => {
+							 	uni.hideLoading();
+							 
+							 	that.page = 1
+							 	that.getItemData()
+							 
+							 })
+						 }
+				       
+				    }
+				});
+				
+			},
+			getItemData() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				let url = 'miniAppMyBMemberCar/listBMEvaluatePage',
+					params = {
+						page: this.page,
+						limit: 20,
+
+					}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading();
+					var list = res.data.Items
+
+					// 处理 undefined和null转为空白字符串
+					list.forEach((item, index) => {
+						for (const key in item) {
+							item[key] = this.$praseStrEmpty(item[key])
+						}
+					})
+
+
+					if (this.page == 1) {
+						this.itemData = list
+					} else {
+						this.itemData = this.itemData.concat(list)
+					}
+
+					if (list.length < 10) {
+						this.noMoreShow = false
+					} else {
+						this.noMoreShow = true
+					}
+
+
+				})
+			},
+
+		},
+
+		// 下拉刷新 上拉加载更多
+		onPullDownRefresh() {
+			this.page = 1
+			this.getItemData()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		onReachBottom() {
+			this.page++;
+			this.getItemData()
+		},
+
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #FFFFFF;
+		min-height: 100vh;
+
+	}
+
+
+
+	.item {
+		display: flex;
+		justify-content: flex-start;
+		padding: 0 24rpx;
+		background-color: #FFFFFF;
+
+	}
+
+	.leftView {
+		width: 117rpx;
+		padding-right: 20rpx;
+	}
+
+	.storeImg {
+		width: 72rpx;
+		height: 72rpx;
+		border-radius: 8rpx;
+		margin-top: 30rpx;
+	}
+
+	.rightView {
+		border-bottom: 1rpx #EEEEEE solid;
+		width: 100vw;
+	}
+
+	.firstView,
+	.secondView {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+	}
+
+	.firstView {
+		padding-top: 30rpx;
+	}
+
+	.secondView {
+		padding-top: 12rpx;
+		padding-bottom: 20rpx;
+	}
+
+	.shopName {
+		/* padding-top: 30rpx;
+		padding-bottom: 10rpx; */
+		font-size: 26rpx;
+		font-weight: bold;
+		color: #333333;
+	}
+
+	.time {
+		font-size: 26rpx;
+		color: #999999;
+	}
+
+	.deleteBtn {
+		width: 36rpx;
+		height: 36rpx;
+	}
+
+	.contentMes {
+		font-size: 26rpx;
+		color: #666666;
+		line-height: 37rpx;
+		/* padding-top: 20rpx; */
+
+	}
+
+	.imgBg {
+		display: flex;
+		justify-content: flex-start;
+		padding: 30rpx 0rpx;
+		flex-wrap: wrap;
+	}
+
+	.img {
+		width: 140rpx;
+		height: 140rpx;
+		margin-right: 5rpx;
+		border-radius: 8rpx;
+	}
+
+	.writeBack {
+		font-size: 26rpx;
+		color: #666666;
+		line-height: 37rpx;
+		padding: 20rpx;
+		background-color: #F4F5F7;
+		
+		padding-bottom: 20rpx;
+	}
+
+	.noMore {
+		text-align: center;
+		line-height: 50rpx;
+		color: #999999;
+		font-size: 28rpx;
+	}
+</style>

+ 286 - 0
pages/me/myAppraiseDetail.vue

@@ -0,0 +1,286 @@
+<template>
+	<view class="content">
+
+		<!-- 列表 -->
+		<view class="itemContent">
+			
+				<view class="item">
+
+					<view class="leftView">
+						<image :src='detail.PhotoPath' v-if="detail.PhotoPath" class="storeImg"></image>
+						<image src="../../static/img/pic_def_ava.png"  mode="" class="storeImg" v-else></image>
+					</view>
+
+					<view class="rightView">
+						<!-- 第一行 -->
+						<view class="firstView">
+							<view class="shopName">{{detail.Evaluator}}</view>
+							<!-- 时间截取 -->
+							<!-- <view class="time">2021-9-05</view> -->
+							<view class="time">{{detail.CreateTime.slice(0,detail.CreateTime.length-8)}}</view>
+						</view>
+
+						<!-- 第2行 -->
+						<view class="secondView">
+							<!-- 星星 -->
+							<uni-rate :value="detail.Overallevaluation" :max="5" color="#EEEEEE" active-color="#FF4F00"
+								:size="16" :margin="4" :readonly="true" />
+							<image src="../../static/img/review_icon_del@2x.png" class="deleteBtn"
+								@click="deleteItem(detail, index)"></image>
+						</view>
+
+						<view class="contentMes">{{detail.EContent}}</view>
+
+						<!-- 照片 -->
+						<view class="imgBg">
+							<view v-for="(itemImg,indexImg) in detail.imgs" :key="indexImg">
+
+								<image :src="itemImg.imageUrl" class="img"
+									@click="previewImage(itemImg.imageUrl,detail.imgs)"></image>
+							</view>
+						</view>
+
+						<!-- 商家回复 -->
+
+						<view class="writeBack" v-if="detail.ReplyContent">商家回复:{{detail.ReplyContent}}</view>
+					</view>
+
+
+
+				</view>
+			</view>
+	
+
+	
+
+	</view>
+</template>
+
+<script>
+	import nodata from '../../components/nodata/nodata.vue'
+	export default {
+		components: {
+			nodata,
+		},
+		data() {
+			return {
+				itemData: [],
+				page: 1,
+				noMoreShow: false,
+				imgArr: [],
+				sheetId:'',
+				detail:"",
+			}
+		},
+		onLoad(opt) {
+			this.sheetId=opt.id
+			this.getItemData()
+		},
+		methods: {
+			previewImage(img, arrDic) {
+				var arr = [];
+
+				arrDic.forEach(item => {
+					arr.push(item.imageUrl)
+				})
+
+				// 预览图片
+				uni.previewImage({
+					urls: arr,
+					current: img,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
+			deleteItem(item, index) {
+				var that=this;
+				uni.showModal({
+				    title: '提示',
+				    content: '确定删除该条评价吗?',
+				    success: function (res) {
+						 if (res.confirm) {
+							 that.itemData.splice(index, 1);
+							 uni.showLoading({
+							 	title: '删除中'
+							 })
+							 
+							 let url = 'miniAppMyBMemberCar/deleteMyBMEvaluate',
+							 	params = {
+							 		id: item.ID,
+							 
+							 	}
+							 that.$http(url, params, 'POST').then(res => {
+							 	uni.hideLoading();
+							 
+							 	that.page = 1
+							 	uni.navigateBack({
+							 		delta:1
+							 	})
+							 
+							 })
+						 }
+				       
+				    }
+				});
+				
+			},
+			getItemData() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				let url = 'miniAppMyBMemberCar/queryBMEvaluateDetail',
+					params = {
+						sheetId:this.sheetId
+
+					}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading();
+					this.detail = res.data
+
+					// 处理 undefined和null转为空白字符串
+					/* list.forEach((item, index) => {
+						for (const key in item) {
+							item[key] = this.$praseStrEmpty(item[key])
+						}
+					}) */
+
+
+				
+
+
+				})
+			},
+
+		},
+
+		// 下拉刷新 上拉加载更多
+		onPullDownRefresh() {
+			this.page = 1
+			this.getItemData()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		onReachBottom() {
+			this.page++;
+			this.getItemData()
+		},
+
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #FFFFFF;
+		min-height: 100vh;
+
+	}
+
+
+
+	.item {
+		display: flex;
+		justify-content: flex-start;
+		padding: 0 24rpx;
+		background-color: #FFFFFF;
+
+	}
+
+	.leftView {
+		width: 117rpx;
+		padding-right: 20rpx;
+	}
+
+	.storeImg {
+		width: 72rpx;
+		height: 72rpx;
+		border-radius: 8rpx;
+		margin-top: 30rpx;
+	}
+
+	.rightView {
+		border-bottom: 1rpx #EEEEEE solid;
+		width: 100vw;
+	}
+
+	.firstView,
+	.secondView {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+	}
+
+	.firstView {
+		padding-top: 30rpx;
+	}
+
+	.secondView {
+		padding-top: 12rpx;
+		padding-bottom: 20rpx;
+	}
+
+	.shopName {
+		/* padding-top: 30rpx;
+		padding-bottom: 10rpx; */
+		font-size: 26rpx;
+		font-weight: bold;
+		color: #333333;
+	}
+
+	.time {
+		font-size: 26rpx;
+		color: #999999;
+	}
+
+	.deleteBtn {
+		width: 36rpx;
+		height: 36rpx;
+	}
+
+	.contentMes {
+		font-size: 26rpx;
+		color: #666666;
+		line-height: 37rpx;
+		/* padding-top: 20rpx; */
+
+	}
+
+	.imgBg {
+		display: flex;
+		justify-content: flex-start;
+		padding: 30rpx 0rpx;
+		flex-wrap: wrap;
+	}
+
+	.img {
+		width: 140rpx;
+		height: 140rpx;
+		margin-right: 5rpx;
+		border-radius: 8rpx;
+	}
+
+	.writeBack {
+		font-size: 26rpx;
+		color: #666666;
+		line-height: 37rpx;
+		padding: 20rpx;
+		background-color: #F4F5F7;
+		
+		padding-bottom: 20rpx;
+	}
+
+	.noMore {
+		text-align: center;
+		line-height: 50rpx;
+		color: #999999;
+		font-size: 28rpx;
+	}
+</style>

+ 166 - 0
pages/me/setup.vue

@@ -0,0 +1,166 @@
+<template>
+	<view class="box">
+	  <view class="main">
+	    <view class="mkBox">
+			<view class="line">
+				<view class="lineTitle">昵称</view>
+				<view class="lineCont">{{ueserInfo.memberInfo.nickName}}</view>
+			</view>
+			<view class="line">
+				<view class="lineTitle">手机号</view>
+				<view class="lineCont">{{iphoneData.phone}}</view>
+			</view>
+			<view class="line boderNo">
+				<view class="lineTitle">真实姓名</view>
+				<view class="lineCont">
+					<input type="text" v-model="ueserInfo.memberInfo.name" value="" placeholder="请输入" class="lineinput" @blur="updateBmember"/>
+				</view>
+			</view>
+		</view>
+		
+		<view class="mkBox">
+			<view class="line boderNo" @click="goiphone">
+				<view class="lineTitle">联系人管理</view>
+				<view class="lineCont">
+					<image src="../../static/img/jt.png" mode="" class="lineJt"></image>
+				</view>
+			</view>
+		</view>
+		
+		<view class="mkBox">
+			<view class="line " @click="goTreaty">
+				<view class="lineTitle">服务协议</view>
+				<view class="lineCont">
+					<image src="../../static/img/jt.png" mode="" class="lineJt"></image>
+				</view>
+			</view>
+			<view class="line boderNo" @click="goIntimity">
+				<view class="lineTitle">隐私政策</view>
+				<view class="lineCont">
+					<image src="../../static/img/jt.png" mode="" class="lineJt"></image>
+				</view>
+			</view>
+		</view>
+		
+		<view class="signOut" @click="signOut">退出登录</view>
+		
+	  </view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			ueserInfo:'',
+			iphoneData:'',
+			name:'',
+		}
+	},
+	onLoad() {
+      this.ueserInfo=uni.getStorageSync("logodata");
+	},
+	onShow() {
+		this.getIphoneData()
+	},
+	methods: {
+		updateBmember(){
+			if(this.name!=''){
+				this.$http('miniAppMyBMemberCar/updateBmember', {
+					name:this.name		 
+				},'POST').then(res => {
+				    if(res.code==0){
+						
+						console.log(this.ueserInfo)
+						uni.setStorage({
+							key: 'logodata',
+							data: this.ueserInfo,
+							success: function () {}
+						}); 
+					}
+				})
+			}
+			
+		},
+		getIphoneData(){
+		   uni.showLoading({ });
+		   this.$http('miniAppMyBMemberCar/queryBMemberContactIsDefault', {
+			 
+			},'GET').then(res => {
+			  uni.hideLoading();
+			  this.iphoneData=res.data;	
+		   })
+		},
+		signOut(){
+			 //uni.clearStorageSync();
+			 uni.removeStorageSync('logodata');
+			 uni.navigateTo({
+			 	url:'../login/login'
+			 })
+		},
+		goiphone(){
+			uni.navigateTo({
+				url:'../iPhone/phoneList'
+			})
+		},
+		goTreaty(){
+			uni.navigateTo({
+				url:'treaty'
+			})
+		},
+		goIntimity(){
+			uni.navigateTo({
+				url:'intimity'
+			})
+		}
+	
+	}
+}
+</script>
+
+<style scoped>
+	.box{
+		min-height: 100vh;
+		background:#F4F5F7 ;
+	}
+	.main{
+		padding: 24rpx;
+	}
+	.mkBox{
+		background: #FEFFFE;
+		border-radius: 10rpx;
+		padding: 0 22rpx;
+		margin-bottom: 20rpx;
+	}
+	.line{
+		display: flex;
+		justify-content: space-between;
+		padding: 30rpx 0;
+		border-bottom: 1px solid #DDDDDD;
+		font-size: 28rpx;
+		color: #3C3C3C;
+	}
+	.lineinput{
+		text-align: right;
+		font-size: 28rpx;
+		color: #3C3C3C;
+	}
+	.lineJt{
+		width: 15rpx;
+		height: 26rpx;
+	}
+	.boderNo{
+		border: none;
+	}
+	.signOut{
+		width: 702rpx;
+		height: 98rpx;
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		font-size: 30rpx;
+		color: #FF3B30;
+		line-height: 98rpx;
+		text-align: center;
+		margin-top: 100rpx;
+	}
+</style>

+ 49 - 0
pages/me/treaty.vue

@@ -0,0 +1,49 @@
+<template>
+	<view class="content">
+		<rich-text :nodes="couContent" ></rich-text>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				couContent: '',
+			}
+		},
+		onLoad() {
+			this.getDetailData()
+		},
+		methods: {
+
+			getDetailData() {
+				console.log('谢雨');
+				uni.showLoading({
+					title: '加载中'
+				})
+				let url = 'miniAppMyBMemberCar/userAgreement',
+					params = {}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading();
+
+
+					if (res.data.contents) {
+						this.couContent = res.data.contents.replace(/\<p/gi, '<p style="display: inline-block"');
+					}
+
+
+
+				})
+			},
+		}
+
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #F4F5F7;
+		min-height: 100vh;
+
+	}
+</style>

+ 1 - 5
pages/module/maintain.vue

@@ -204,11 +204,7 @@ export default {
 			console.log(replaceData)
 			this.mealData[this.leftIndex].listPackage[this.replaceIndex1].listGoodsAll[this.replaceIndex2].unshift(replaceData)
 			console.log(this.mealData[this.leftIndex].listPackage[this.replaceIndex1].listGoodsAll[this.replaceIndex2])
-			/* this.mealData[this.leftIndex].listPackage[this.replaceIndex1].listGoodsAll[this.replaceIndex2].forEach((item,index)=>{
-				if(item.goodsID==replaceData.goodsID){
-					this.mealData[this.leftIndex].listPackage[this.replaceIndex1].listGoodsAll[this.replaceIndex2].splice(index,1)
-				}
-			}) */
+			
 			this.mealData[this.leftIndex].listPackage[this.replaceIndex1].listGoodsAll[this.replaceIndex2]=this.unique(this.mealData[this.leftIndex].listPackage[this.replaceIndex1].listGoodsAll[this.replaceIndex2])
 			
 			//this.mealData[this.leftIndex].listPackage[this.replaceIndex1].listGoodsAll[this.replaceIndex2]=replaceData

+ 434 - 0
pages/order/evaluate.vue

@@ -0,0 +1,434 @@
+<template>
+	<view class="box">
+		<view class="main">
+			<!-- 总体评价-->
+			<view class="population populationCont2">
+				<view class="title">总体评价</view>
+				<view class=" " style="padding-left: 30rpx;">
+					<view class="xxBox">
+						<uni-rate v-model="grade" :max="5" color="#EEEEEE" active-color="#FF4F00" :size="16" :margin="5"
+							@change="zhiliang" />
+						<view class="td orangeColor" v-if="grade==5">非常好</view>
+						<view class="td orangeColor" v-if="grade==4">很好</view>
+						<view class="td orangeColor" v-if="grade==3">好</view>
+						<view class="td orangeColor" v-if="grade==2">一般</view>
+						<view class="td orangeColor" v-if="grade==1">差</view>
+					</view>
+				<!-- 	<view class="populationLine" v-if="grade==1" @click="changeGrade(1)">
+						<image src="../../static/img/good.png" mode="" class="populationImg"></image>
+						<view class="populationTxt orangeColor">好评</view>
+					</view>
+					<view class="populationLine" v-else @click="changeGrade(1)">
+						<image src="../../static/img/icon_normal_def.png" mode="" class="populationImg"></image>
+						<view class="populationTxt">好评</view>
+					</view>
+
+					<view class="populationLine" v-if="grade==2" @click="changeGrade(2)">
+						<image src="../../static/img/good.png" mode="" class="populationImg"></image>
+						<view class="populationTxt orangeColor">中评</view>
+					</view>
+					<view class="populationLine" v-else @click="changeGrade(2)">
+						<image src="../../static/img/icon_normal_def.png" mode="" class="populationImg"></image>
+						<view class="populationTxt">中评</view>
+					</view>
+
+					<view class="populationLine" v-if="grade==3" @click="changeGrade(3)">
+						<image src="../../static/img/good.png" mode="" class="populationImg"></image>
+						<view class="populationTxt orangeColor">差评</view>
+					</view>
+					<view class="populationLine" v-else @click="changeGrade(3)">
+						<image src="../../static/img/icon_normal_def.png" mode="" class="populationImg"></image>
+						<view class="populationTxt">差评</view>
+					</view> -->
+				</view>
+			</view>
+
+			<!-- 商家服务评价-->
+			<view class="population">
+				<view class="title">商家服务评价</view>
+				<view class="rowView">
+					<view class="littleTitle">服务态度</view>
+					<view class="xxBox">
+						<uni-rate v-model="xx" :max="5" color="#EEEEEE" active-color="#FF4F00" :size="16" :margin="5"
+							@change="taidu" />
+						<view class="td orangeColor" v-if="taiduStar==5">非常好</view>
+						<view class="td orangeColor" v-if="taiduStar==4">很好</view>
+						<view class="td orangeColor" v-if="taiduStar==3">好</view>
+						<view class="td orangeColor" v-if="taiduStar==2">一般</view>
+						<view class="td orangeColor" v-if="taiduStar==1">差</view>
+					</view>
+				</view>
+
+				<view class="rowView">
+					<view class="littleTitle">施工质量</view>
+					<view class="xxBox">
+						<uni-rate v-model="yy" :max="5" color="#EEEEEE" active-color="#FF4F00" :size="16" :margin="5"
+							@change="zhiliang" />
+						<view class="td orangeColor" v-if="zhiliangStar==5">非常好</view>
+						<view class="td orangeColor" v-if="zhiliangStar==4">很好</view>
+						<view class="td orangeColor" v-if="zhiliangStar==3">好</view>
+						<view class="td orangeColor" v-if="zhiliangStar==2">一般</view>
+						<view class="td orangeColor" v-if="zhiliangStar==1">差</view>
+					</view>
+				</view>
+
+				<view class="rowView">
+					<view class="littleTitle">店面环境</view>
+					<view class="xxBox">
+						<uni-rate v-model="zz" :max="5" color="#EEEEEE" active-color="#FF4F00" :size="16" :margin="5"
+							@change="huanjing" />
+						<view class="td orangeColor" v-if="huanjingStar==5">非常好</view>
+						<view class="td orangeColor" v-if="huanjingStar==4">很好</view>
+						<view class="td orangeColor" v-if="huanjingStar==3">好</view>
+						<view class="td orangeColor" v-if="huanjingStar==2">一般</view>
+						<view class="td orangeColor" v-if="huanjingStar==1">差</view>
+					</view>
+
+				</view>
+
+			</view>
+
+			<!-- 评价内容 和图片 -->
+			<view class="population">
+				<!-- 建议 -->
+				<view class="firstView">
+
+					<view>
+						<textarea placeholder-style="color:#999999" placeholder="说说哪里满意,帮大家选择~" v-model="exeContent"
+							class="textareaCont" maxlength="-1" auto-height="true" @confirm="feedDone" />
+					</view>
+				</view>
+
+				<!-- 图片 -->
+				<view class="secondView">
+
+					<view class="imgBox">
+						<view class="imgLine" v-for="(img,imgindex) in imgArr">
+							<image :class="{img4:(imgindex+1)%4==0}" :src="img" mode="" class="itemImg"></image>
+							<image src="../../static/img/icon_delpic@2x.png" mode="" class="delImg"
+								@click="delimg(imgindex)"></image>
+						</view>
+						<view class="imgLine" @click="uploadImg">
+							<image src="../../static/img/icon_addpic@2x.png" mode="" class="itemImg"></image>
+						</view>
+					</view>
+				</view>
+			</view>
+
+			<view class="bottom">
+				<view class="shoreDz" @click="submit">提交</view>
+			</view>
+		</view>
+
+	</view>
+
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				grade: '5',
+				xx: 5,
+				yy: 5,
+				zz: 5,
+				taiduStar: 5,
+				zhiliangStar: 5,
+				huanjingStar: 5,
+				imgArr: [],
+				exeContent: '',
+				shopID:'',
+				sheetID:'',
+			}
+		},
+		onLoad(opt) {
+			this.shopID = opt.shopID
+			this.sheetID = opt.sheetID
+			uni.setStorage({
+				key: 'evaluate',
+				data: 1,
+				success: function () {
+				 
+				}
+			}); 
+			
+			
+		},
+		onShow() {
+
+		},
+		methods: {
+			changeGrade(v) {
+				console.log(v);
+				this.grade = v
+			},
+			taidu(e) {
+				console.log(e)
+				this.taiduStar = e.value
+			},
+			zhiliang(e) {
+				console.log(e)
+				this.zhiliangStar = e.value
+			},
+			huanjing(e) {
+				console.log(e)
+				this.huanjingStar = e.value
+			},
+
+
+			feedDone(e) {
+				this.exeContent = e.target.value
+
+			},
+			uploadImg() {
+
+				var that = this;
+				var num=9;
+				var length=this.imgArr.length;
+				if(length==9){
+					uni.showToast({
+						title: '最多上传9张图片',
+						icon: 'none',
+						duration: 2000,
+					});
+					return false;
+				}
+				uni.chooseImage({
+					sourceType: ['album','camera'],
+					count:num-length, 
+					success: (chooseImageRes) => {
+						const tempFilePaths = chooseImageRes.tempFilePaths;
+						/* uni.uploadFile({
+					            url: that.$request.baseUrl+'accompany/SuperCheckSheet/uploadFile', //仅为示例,非真实的接口地址
+					            filePath: tempFilePaths[0],
+					            name: 'file',
+					            formData: {
+					                'user': 'test'
+					            },
+					            success: (uploadFileRes) => {
+					                console.log(JSON.parse(uploadFileRes.data).data );
+									that.imgArr=that.imgArr.concat(JSON.parse(uploadFileRes.data).data) ;
+									
+					            }
+					        }); */
+						tempFilePaths.forEach(v => {
+							console.log(that.$request.baseUrl + 'tuhuUploadFile');
+							uni.uploadFile({
+								url: that.$request.baseUrl + 'tuhuUploadFile',
+								filePath: v,
+								name: 'file',
+								formData: {
+									'user': 'test'
+								},
+
+								success: (uploadFileRes) => {
+
+									console.log(JSON.parse(uploadFileRes.data).data);
+									that.imgArr = that.imgArr.concat(JSON.parse(
+										uploadFileRes.data).data);
+								}
+							});
+						})
+						/* that.$http('accompany/SuperCheckSheet/uploadFile', tempFilePaths[0], 'POST').then(res => {
+							
+						}) */
+					}
+				});
+			},
+			delimg(index) {
+				this.imgArr.splice(index, 1)
+			},
+			submit() {
+				
+				uni.showLoading({});
+				var exeImg = this.imgArr.join(',')
+				this.$http('miniAppMyBMemberCar/addBMEvaluate', {
+					shopID:this.shopID,
+					sheetID:this.sheetID,
+					overallevaluation:this.grade,
+					serviceevaluation:this.taiduStar,
+					constructionevaluation:this.zhiliangStar,
+					storeevaluation:this.huanjingStar,
+					eContent: this.exeContent,
+					imgs: exeImg
+				}, 'POST').then(res => {
+					//this.submitSuperCheckSheet()
+					uni.showToast({
+						title: '提交成功',
+						icon: 'none',
+						duration: 2000,
+					});
+					let pages = getCurrentPages(); // 当前页面
+					let beforePage = pages[pages.length - 2]; // 上一页
+					setTimeout(function() {
+						uni.navigateBack({
+						    /* success: function() {
+						        beforePage.onLoad(); // 执行上一页的onLoad方法
+						    } */
+						});
+					}, 2000);
+
+
+				})
+			}
+
+
+
+		}
+	}
+</script>
+
+<style scoped>
+	.box {
+		min-height: 100vh;
+		background: #F4F5F7;
+	}
+
+	.main {
+		padding: 20rpx 24rpx;
+		margin-bottom: 120rpx;
+	}
+
+	.population {
+		margin-top: 20rpx;
+		background: #FFFFFF;
+		padding: 30rpx 20rpx;
+		border-radius: 10rpx;
+	}
+
+	.title {
+		font-size: 30rpx;
+		font-weight: 600;
+		color: #333333;
+	}
+
+	.populationImg {
+		width: 32rpx;
+		height: 32rpx;
+	}
+
+	.populationCont {
+		display: flex;
+		padding-top: 30rpx;
+	}
+
+	.populationLine {
+		display: flex;
+		line-height: 32rpx;
+		font-size: 28rpx;
+		color: #999999;
+		width: 200rpx;
+	}
+
+	.populationTxt {
+		padding-left: 12rpx;
+	}
+
+	.orangeColor {
+		color: #FF4F00;
+	}
+
+	.rowView {
+		padding: 30rpx 0rpx 0rpx;
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.littleTitle {
+		font-size: 28rpx;
+		color: #666666;
+		line-height: 32rpx;
+	}
+
+	.xxBox {
+		display: flex;
+		justify-content: flex-start;
+
+	}
+
+	.td {
+		width: 80rpx;
+		font-size: 24rpx;
+		margin-left: 10rpx;
+	}
+
+	.firstView,
+	.secondView {
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+	}
+
+	.firstView {
+		margin-bottom: 20rpx;
+	}
+
+
+
+	.textareaCont {
+		padding: 20rpx 0rpx;
+		min-height: 150rpx;
+		width: 95%;
+		font-size: 28rpx;
+	}
+
+
+	.imgBox {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 20rpx 0rpx;
+
+	}
+
+	.imgLine {
+		position: relative;
+		margin-right: 10rpx;
+	}
+
+	.itemImg {
+		width: 150rpx;
+		height: 150rpx;
+		margin-right: 5rpx;
+	}
+
+	/* .img4 {
+		margin-right: 20rpx;
+		
+	} */
+
+	.delImg {
+		width: 32rpx;
+		height: 32rpx;
+		position: absolute;
+		right: 0rpx;
+		top: 0rpx;
+	}
+
+
+	.bottom {
+		width: 750rpx;
+		height: 120rpx;
+		background: #FFFFFF;
+		box-shadow: 0px -4px 8px 0px rgba(153, 153, 153, 0.08);
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		display: flex;
+		justify-content: space-around;
+	}
+
+	.shoreDz {
+		width: 702rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		text-align: center;
+		line-height: 74rpx;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		margin-top: 24rpx;
+	}
+	.populationCont2{
+		display: flex;
+		justify-content: space-between;
+	}
+</style>

+ 376 - 0
pages/order/myorder.vue

@@ -0,0 +1,376 @@
+<template>
+	<view class="box">
+		<view class="tab">
+			<view class="tabLine" :class="{tabActive:tabIndex==5}" @click="tabClick(5)">全部</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==1}"  @click="tabClick(1)">待付款</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==2}"  @click="tabClick(2)">待确认</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==4}"  @click="tabClick(3)">待收货</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==2}"  @click="tabClick(4)">待服务</view>
+			<view class="tabLine" :class="{tabActive:tabIndex==4}"  @click="tabClick(5)">待评价</view>
+		</view>
+		<view class="main">
+		  <view class="itemLine" v-for="(item,index) in items" @click="goDetail(item.ID)">
+			  <view class="flex2 itemlineTOp">
+				  <view class="itemCode">{{item.Code}}</view>
+				  <view class="itemSheetState" v-if="item.SheetState==1">待付款</view>
+				  <view class="itemSheetState" v-if="item.SheetState==2">待服务</view>
+				  <view class="itemSheetState" v-if="item.SheetState==3||item.SheetState==5">已完成</view>
+				  <view class="itemSheetState" v-if="item.SheetState==4">已完成</view>
+				  <view class="itemSheetState" v-if="item.SheetState==0">已取消</view>
+			  </view>
+			  <view class="itemLineImgBox">
+				  <view class="itemGoddsImgBox">
+					  <view v-for="(v,i) in item.goods.concat(item.items)" v-if="i<4">
+						<image  :src="v.Url" mode="" class="goodsImg" v-if="i<4&&v"></image>
+						<image src="../../static/img/noimg.png" mode="" class="goodsImg" v-else></image>
+					  </view>
+					  <view v-if="item.goods.concat(item.items).length==0">
+						    <image src="../../static/img/noimg.png" mode="" class="goodsImg" ></image>
+					  </view>
+				  </view>
+				  <view>
+				  		 <image src="../../static/img/diandian.png" mode="widthFix" class="diandianImg"></image>
+				  </view>
+			  </view>
+			  <view class="raleMoneyBox">
+				  <span>实付款</span>  <span class="raleMoneySpan">¥{{item.raleMoney}}</span>
+			  </view>
+			  <view class="itemLineBottom" v-if="item.SheetState==1||item.SheetState==3||item.SheetState==4">
+				  <view class="itemBtn1" v-if="item.SheetState==1" @click.stop="cancelOrder(item)">取消订单</view>
+				  <view class="itemBtn2" v-if="item.SheetState==1" @click.stop="orderPay(item)">立即支付</view>
+				  <view class="itemBtn2" v-if="item.EvaluateState==0&&item.EState==1" @click.stop="goEvaluate(item)">立即评价</view>
+				  <view class="itemBtn1" v-if="item.EvaluateState==1" @click.stop="gopingjia(item)">查看评价</view>
+			  </view>
+			  <!-- 待服务的-->
+			  <view class="daifuwuBOxDiv" v-if="item.SheetState==2">
+				  <view class="daifuwuBOx">
+					  <view class="daifuwuBOxTop">
+						  <image src="../../static/img/orderyytime.png" mode="" class="orderyytimeImg"></image>
+						  <view class="daifuwuBOxTitle">预约信息</view>
+					  </view>
+					  <view class="daifuwuBOxLIne">门店名称:{{item.ShopName}}</view>
+					  <view class="daifuwuBOxLIne">预约到店信息:{{item.OrderTime}}</view>
+				  </view>
+			  </view>
+		  </view>
+		  
+		  <nodata v-show="items==''&&isload"></nodata>
+		</view>
+	</view>
+</template>
+
+<script>
+import nodata from '@/components/nodata/nodata.vue'	
+export default {
+	components: {
+		   nodata
+	},
+	data() {
+		return {
+			page:1,
+			state:'',
+			num:'',
+			tabIndex:'',
+			items:[],
+			isload:false,
+		}
+	},
+	onLoad(opt) {
+        var num=opt.num;
+		this.tabIndex=num;
+		this.items=[]
+       if(num==5){
+		   this.state=''
+	   }else{
+		   this.state=num
+	   }
+		this.getData()
+	},
+	onShow() {
+		console.log(this.tabIndex)
+		var evaluate = uni.getStorageSync("evaluate")
+		 if(evaluate){
+			 this.items=[]
+			 this.getData()
+			  uni.removeStorageSync('evaluate');
+		} 
+		
+	},
+	methods: {
+		goEvaluate(item){
+			uni.navigateTo({
+				url:'evaluate?shopID=' + item.ShopID + '&sheetID=' + item.ID
+			})
+		},
+		gopingjia(item){
+			 uni.navigateTo({
+				url:'../me/myAppraiseDetail?id='+item.ID
+			}) 
+		},
+		cancelOrder(item){
+			var that=this;
+			uni.showModal({
+			    title: '提示',
+			    content: '确定要取消订单吗',
+			    success: function (res) {
+			        if (res.confirm) {
+			          uni.showLoading({ });
+			          that.$http('miniAppMyBMemberCar/updateBMSheetState', {
+			            id:item.ID
+			           },'POST').then(res => {
+			          	uni.hideLoading();
+						that.page=1;
+						that.items=[]
+			            that.getData()
+			          })
+			        } else if (res.cancel) {
+			           
+			        }
+			    }
+			});
+		},
+	
+		tabClick(num){
+			this.tabIndex=num;
+			if(num==5){
+				 this.state=''
+			}else{
+				this.state=num
+			}
+			this.items=[];
+			this.page=1;
+			this.getData()
+		},
+		goDetail(id){
+			uni.navigateTo({
+				url:'orderDetail?id='+id
+			})
+		},
+		getData(){
+			uni.showLoading({ });
+			this.isload=false;
+			if(this.state==4){
+				var padata={
+					page:this.page,
+					limit:10,
+					evaluateState:1
+				}
+			}else{
+				var padata={
+					page:this.page,
+					limit:10,
+					state:this.state
+				}
+			}
+		
+			this.$http('miniAppMyBMemberCar/listMiniAppBMSheetPage', padata,'GET').then(res => {
+				  uni.hideLoading();
+				  this.isload=true;
+				  //this.list=res.data;	
+				  var a=res.data.Items;
+				  this.items=this.items.concat(a)
+			})
+		},
+       orderPay(item){
+       	uni.showLoading({ });
+       	this.$http('miniApp/maintainOrder/orderPay', {
+       	  sheetID:item.ID
+       	 },'POST').then(res => {
+       		  uni.hideLoading();
+       		  var payInfo=JSON.parse(res.data.payInfo)
+       		uni.requestPayment({
+       		    provider: 'wxpay',
+       		   // timeStamp: String(Date.now()),
+       			timeStamp:payInfo.timeStamp,
+       		    nonceStr: payInfo.nonceStr,
+       		    package: payInfo.package,
+       		    signType: payInfo.signType,
+       		    paySign: payInfo.paySign,
+       		    success: function (res) {
+       		        console.log('success:' + JSON.stringify(res));
+       				 uni.showToast({
+       					 title: '支付成功',
+       					icon:'none',
+       					 duration: 2000
+       				 });
+       				uni.switchTab({
+       					url:'../index/index'
+       				})			
+       		    },
+       		    fail: function (err) {
+       		        console.log('fail:' + JSON.stringify(err));
+       									 
+       		    }
+       		}); 
+       	})
+       },
+	},
+	onReachBottom(){
+		this.page++;
+		/* if(this.tabindex==2){
+			this.getbMemberShopList()
+		}else if(this.tabindex==3){
+			this.getShopFootprint()
+		} */
+		this.getData()
+	},
+	onPullDownRefresh() {
+	       this.page=1;
+		  this.items=[];
+	      this.getData() 
+	       setTimeout(function () {
+	           uni.stopPullDownRefresh();
+	       }, 1000);
+	  }
+}
+</script>
+
+<style scoped>
+	.box{
+		min-height: 100vh;
+		background: #F4F5F7;
+	}
+	.tab{
+		background: #FFFFFF;
+		display: flex;
+		justify-content: space-between;
+		padding: 0 15rpx;
+		line-height: 84rpx;
+		position: fixed;
+		left: 0;
+		top: 44px;
+		width: 720rpx;
+		z-index: 11;
+	}
+	.main{
+		padding-top:88rpx;
+		padding-left: 24rpx;
+		padding-right: 24rpx;
+	}
+	/*  #ifdef MP-WEIXIN  */
+	.tab{
+		position: fixed;
+		left: 0;
+		top: 0;
+	}
+	.main{
+		padding-top: 88rpx ;
+	}
+	/*  #endif  */
+	.tabLine{
+		width: 180rpx;
+		text-align: center;
+	}
+	.tabActive{
+		color: #FF4F00;
+		border-bottom: 4rpx solid #FF4F00;
+	}
+	.flex2{
+		display: flex;
+		justify-content: space-between;
+	}
+	.itemLine{
+		background: #FFFFFF;
+		margin-top: 20rpx;
+	}
+	.itemCode{
+		font-size: 28rpx;
+		color: #999999;
+	}
+	.itemlineTOp{
+		padding: 25rpx 20rpx;
+	}
+	.itemSheetState{
+		font-size: 30rpx;
+		color: #FF4F00
+	}
+	.goodsImg{
+		width: 126rpx;
+		height: 126rpx;
+		margin-left: 18rpx;
+		border-radius: 5rpx;
+	}
+	.itemLineImgBox{
+		display: flex;
+	}
+	.itemGoddsImgBox{
+		display: flex;
+		width:558rpx;
+	
+	}
+	.diandianImg{
+		width: 50rpx;
+		margin-left: 50rpx;
+		margin-top: 50rpx;
+	}
+	.raleMoneyBox{
+		text-align: right;
+		color: #666666;
+		font-size: 24rpx;
+		line-height: 50rpx;
+		padding-bottom: 20rpx;
+		/* border-bottom:  1px solid #EEEEEE; */
+	}
+	.raleMoneySpan{
+		color: #3C3C3C;
+		font-size: 32rpx;
+		padding-right: 24rpx;
+		padding-left: 10rpx;
+	}
+	.itemLineBottom{
+		display: flex;
+		justify-content: flex-end;
+		padding-top: 20rpx;padding-bottom: 20rpx;padding-right: 20rpx;
+		border-top: 1px solid #EEEEEE; ;
+	}
+	.daifuwuBOxDiv{
+		padding: 20rpx;
+	}
+	.itemBtn1{
+		width: 150rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 2rpx solid #DDDDDD;
+		text-align: center;
+		line-height: 56rpx;
+		font-size: 28rpx;
+		color: #3C3C3C;
+		margin-left: 40rpx;
+	}
+	.itemBtn2{
+		width: 150rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 2rpx solid #FF4F00;
+		text-align: center;
+		line-height: 56rpx;
+		font-size: 28rpx;
+		color: #FF4F00;
+		margin-left: 40rpx;
+	}
+	.daifuwuBOx{
+		width: 662rpx;
+		height: 175rpx;
+		background: rgba(255, 79, 0, 0.04);
+		border-radius: 6rpx;
+	}
+	.orderyytimeImg{
+		width: 32rpx;
+		height: 32rpx;
+	}
+	.daifuwuBOxTop{
+		display: flex;
+		padding: 20rpx 0 20rpx 20rpx;
+		color: #FF4F00;
+		font-size: 28rpx;
+	}
+	.daifuwuBOxTitle{
+		line-height: 32rpx;padding-left: 10rpx;
+	}
+	.daifuwuBOxLIne{
+		color: #666666;
+		font-size: 26rpx;
+		line-height: 40rpx;
+		padding-left: 20rpx;
+	}
+</style>

+ 908 - 0
pages/order/orderDetail.vue

@@ -0,0 +1,908 @@
+<template>
+	<view class="box">
+	
+	   <view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+	   <view class="top">
+		   
+		   <view class="nav"  :style="{top: iStatusBarHeight + 'px'}">
+			   <view>
+				     <image src="../../static/img/baiback22.png" mode="" class="gobackImg" @click="goback"></image>
+					 <image src="../../static/img/baigoindex22.png" mode="" class="goIndexImg" @click="goIndex()"></image>
+			   </view>
+			 
+			   <view>订单详情</view>
+			   <view style="width: 200rpx;"></view>
+		   </view>
+		   <view style="height: 44px;"></view>
+		   <view :style="{height: iStatusBarHeight + 'px'}"></view>
+		   <view class="SheetState" v-if="orderData.SheetState==1">等待付款</view>
+		   <view class="SheetState" v-if="orderData.SheetState==2">请尽快到店享受服务</view>
+		   <view class="SheetState" v-if="orderData.SheetState==3||orderData.SheetState==5">订单已完成</view>
+		   <view class="SheetState" v-if="orderData.SheetState==0">订单已取消</view>
+		   <view class="SheetState" v-if="orderData.SheetState==4">订单已完成</view>
+	   </view>
+	 <view v-if="orderData">
+		 <view class="orderTop">
+		 		   <view class="timeBox">
+		 			   <view class="timeLeft">
+		 				   <span v-if="orderData.SheetState==1||orderData.SheetState==2||orderData.SheetState==0">预约到店:{{orderData.OrderTime}}</span>
+						   <span v-else>服务时间:{{orderData.ServiceTime}}</span>
+		 				   <image v-if="orderData.SheetState==1||orderData.SheetState==2" src="../../static/img/icon_edit.png" mode="" class="timeEditImg" @click="timeShowClick"></image>
+		 			   </view>
+		 			   <view class="timeRight" @click="qrcodeClick">订单码</view>
+		 		   </view>
+		 		   <view class="shopBox">
+		 			   <image src="../../static/img/dianp.png" mode="" class="shopBoximg"></image>
+		 			   <view class="shopCont">
+		 				   <view class="shopName">{{orderData.ShopName}}</view>
+		 				   <view class="Address">
+		 					   {{orderData.ProvinceName}}{{orderData.CityName}}{{orderData.AreaName}}{{orderData.Address}}
+		 				   </view>
+		 				  
+		 			   </view>
+		 			   <view class="shopRightBox" @click="map">
+		 					   <view> <image src="../../static/img/icon_ditu.png" mode="" class="shopRightImg"></image> </view>
+		 					   <view class="shopRihgtTxt">地图</view>
+		 			   </view>
+		 			   <view class="shopsx"></view>
+		 			   <view class="shopRightBox" @click="call">
+		 				   <view> <image src="../../static/img/icon_phone.png" mode="" class="shopRightImg"></image> </view>
+		 				   <view class="shopRihgtTxt">电话</view>
+		 			   </view>
+		 		   </view>
+		 		   <view class="people">
+		 			     <image src="../../static/img/icon_ren.png" mode="" class="shopBoximg"></image>
+		 				 <view class="peopleCont">{{orderData.ContactName}}</view>
+		 				 <view class="peopleCont" style="padding-left: 20rpx;">{{orderData.ContactPhone}}</view>
+		 		   </view>
+		 		   <view class="PlateNumberBox">
+		 			   <image src="../../static/img/icon_che.png" mode="" class="shopBoximg"></image>
+		 			   <view class="">
+		 				   <view class="PlateNumberBoxTop">
+		 					   <view class="PlateNumbercx">  <span v-if="orderData.Brand">{{orderData.Brand}}</span> 
+		 					      <span style="padding-left: 20rpx;" v-if="orderData.Series">{{orderData.Series}}</span>
+		 					   </view>
+		 					   <view class="PlateNumber">{{orderData.PlateNumber}}</view>
+		 				   </view>
+		 				   <view class="CarModel">{{orderData.CarModel}}</view>
+		 			   </view>
+		 		   </view>
+		 		   
+		 </view>
+		 <view style="margin-top: -40rpx;"></view>
+		 <!-- 商品明细-->
+		 <view class="detailedBox itemBox" v-if="orderData.goods.length!=0">
+		 		   <view class="detailedTitle">商品明细</view>
+		 		   <view class="detailedLineBox">
+		 			   <view class="detailedLine" v-for="(item,index) in orderData.goods">
+		 				   <view>
+		 					   <image :src="item.Url" mode="" class="detailedImg" v-if="item.Url"></image>
+		 					    <image src="../../static/img/noimg.png" mode="" class="detailedImg" v-else></image>
+		 				   </view>
+		 				   <view class="detailedCont">
+		 					   <view class="detailedName">{{item.GoodsName}}</view>
+		 					   <view class="detailedContBottom">
+		 						   <span class="SalePrice">¥{{item.SalePrice}}</span>
+		 						   <span>x{{item.SaleQty}}</span>
+		 					   </view>
+		 				   </view>
+		 			   </view>
+		 		   </view>
+		 </view>
+		  <!-- 商品明细-->
+		 		<!-- 项目明细 -->
+		 		<view class="detailedBox itemBox" v-if=" orderData.items.length!=0">
+		 			   <view class="detailedTitle">项目明细</view>
+		 			   <view class="detailedLineBox">
+		 				   <view class="detailedLine" v-for="(item,index) in orderData.items">
+		 					   <view>
+		 						   <image :src="item.Url" mode="" class="detailedImg" v-if="item.Url"></image>
+		 						   <image src="../../static/img/noimg.png" mode="" class="detailedImg" v-else></image>
+		 					   </view>
+		 					   <view class="detailedCont">
+		 						   <view class="detailedName">{{item.ItemName}}</view>
+		 						   <view class="detailedContBottom">
+		 							   <span class="SalePrice">¥{{item.SalePrice}}</span>
+		 							   <span>x1</span>
+		 						   </view>
+		 					   </view>
+		 				   </view>
+		 			   </view>
+		 		</view>
+		 		<!-- 项目明细 -->
+		 		<!-- 商品费 -->
+		 		<view class="goodscost">
+		 			<view class="goodscostLine">
+		 				<view class="goodscostTxt">商品费</view>
+		 				<view class="goodsCostNum">¥{{orderData.GoodsMoney}}</view>
+		 			</view>
+		 			<view class="goodscostLine">
+		 				<view class="goodscostTxt">项目费</view>
+		 				<view class="goodsCostNum">¥{{orderData.ItemMoney}}</view>
+		 			</view>
+		 			<view class="goodscostLine">
+		 				<view class="goodscostTxt">优惠券优惠</view>
+		 				<view class="goodsCostNum">-¥{{orderData.CouponMoney}}</view>
+		 			</view>
+		 			<view class="goodscostLine">
+		 				<view class="goodscostTxt">实付款</view>
+		 				<view class="goodsCostNum" style="color: #FF4F00;">¥{{orderData.PayMoney}}</view>
+		 			</view>
+		 		</view>
+		 		<!-- 商品费 -->
+		 		<!-- 订单信息 -->
+		 		<view class="information">
+		 			 <view class="detailedTitle">订单信息</view>
+		 			 <view class="informationLine">
+		 				 <view class="informationTxt">订单编号:</view>
+		 				 <view class="informationNum">{{orderData.Code}}</view>
+		 				 <view class="copyBtn" @click="copy(orderData.Code)">复制</view>
+		 			 </view>
+		 			 <view class="informationLine">
+		 				 <view class="informationTxt">下单人:</view>
+		 				 <view class="informationNum">{{orderData.MemberName}}</view>	
+		 			 </view>
+		 			 <view class="informationLine">
+		 				 <view class="informationTxt">下单时间:</view>
+		 				 <view class="informationNum">{{orderData.CreateTime}}</view>	
+		 			 </view>
+		 			 <view class="informationLine">
+		 				 <view class="informationTxt">下单备注:</view>
+		 				 <view class="informationNum">{{orderData.Comment}}</view>	
+		 			 </view>
+		 		</view>
+		 		<!-- 订单信息 -->
+		 		<!-- 支付信息 -->
+		 		<view class="information">
+		 			 <view class="detailedTitle">支付信息</view>
+		 			 <view class="informationLine">
+		 				 <view class="informationTxt">支付状态:</view>
+		 				 <view class="informationNum" v-if="orderData.SheetState==2||orderData.SheetState==3||orderData.SheetState==4">已支付</view>
+		 				 <view class="informationNum" v-if="orderData.SheetState==1">未支付</view>
+		 			 </view>
+		 			 <view class="informationLine">
+		 				 <view class="informationTxt">支付方式:</view>
+		 				 <view class="informationNum">{{orderData.PayMethod==1?'线上支付':'线下支付'}}</view>	
+		 			 </view>
+		 			 <view class="informationLine">
+		 				 <view class="informationTxt">支付时间:</view>
+		 				 <view class="informationNum" v-if="orderData.PayTime">{{orderData.PayTime}}</view>	
+		 			 </view>
+		 		</view>
+		 		<!-- 支付信息 -->
+		 		<view style="height: 150rpx;"></view>
+		 		<view class="orderBottom" v-if="orderData.SheetState==1">
+		 			<view class="cancelBtn" @click="cancelOrder">取消订单</view>
+		 			<view class="payBtn" @click="orderPay">立即支付</view>
+		 		</view>
+		 		<view class="orderBottom" v-if="orderData.EvaluateState==1">
+		 			<view class="cancelBtn" style="margin-right: 16rpx;" @click="gopingjia">查看评价</view>
+		 		</view>
+		 		<view class="orderBottom" v-if="orderData.EvaluateState==0&&orderData.EState==1"><!-- 4 -->
+		 				<view class="payBtn" @click="evaluate">立即评价</view>
+		 		</view>
+		 		<!-- 二维码 -->
+		 		<view v-if="qrcodeShow" class="qrcodeBox" @click="qrcodeShow=false">
+		 			<view  @click.stop="qrc">
+		 				<tki-qrcode  cid="qrcode1" ref="qrcode" :val="qrcodeTopVal" :size="size" :unit="unit"
+		 				 :pdground="pdground" :icon="icon" :iconSize="iconsize" 
+		 				:lv="lv" :onval="onval" :loadMake="loadMake" :usingComponents="true" @result="qrR"/>
+		 			</view>
+		 			
+		 			
+		 		</view>
+		 		<!-- 二维码 -->
+		 		<!-- 地图 -->
+		 		
+		 		<!-- 地图 -->
+		 		<!-- 预约时间 -->
+		 		<view class="timeBox2" v-if="timeShow&&OrderTimes" @click="timeShow=false">
+		 			<view class="timeMain">
+		 				<view class="timeTop">
+		 					<view class="timeTopTitle">选择预约时间</view>
+		 					<view class="close" @click="timeShow=false">X</view>
+		 				</view>
+		 				<view class="timeCont">
+		 					<view class="timeLeft2">
+		 						<scroll-view scroll-y="true" class="timeSv">
+		 							<view class="timeleftLine" v-for="(item,index) in OrderTimes" 
+		 							:class="{timeLeftActive:index==orderTimeIndex1}"
+		 							@click.stop="orderTimeIndex1=index,orderTimeIndex2=-1"
+		 							>{{item.date.substring(5,10)}}</view>
+		 						</scroll-view>
+		 					</view>
+		 					<view class="timeRight2">
+		 						<scroll-view scroll-y="true" class="timeSv">
+		 							<view class="timerightBox">
+		 								<view class="timesf" v-for="(item,index) in OrderTimes[orderTimeIndex1].timeList"
+		 								:class="{timesfNo:item.type!=1,timesfActive:index==orderTimeIndex2}"
+		 								@click.stop="timeSfCk(item,index)"
+		 								>
+		 									<view class="timeSfNum">{{item.time}}</view>
+		 									<view class="timeyy" v-if="item.type==1">可预约</view>
+		 									<view class="timeyy" v-if="item.type==2">已约满</view>
+		 									<view class="timeyy" v-if="item.type==3">已过期</view>
+		 								</view>
+		 							</view>
+		 						</scroll-view>
+		 					</view>
+		 				</view>
+		 				<view class="timeBottom">
+		 					<view class="timecomplete" @click="timeCk">完成</view>
+		 				</view>
+		 			</view>
+		 		</view>
+	 </view>
+	
+	</view>
+</template>
+
+<script>
+import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
+export default {
+	components: {
+		   tkiQrcode
+	},
+	data() {
+		return {
+			location:'',
+			isload:false,
+			id:'',
+			iStatusBarHeight:'',
+			orderData:'',
+			type:'',
+			onval: true, // val值变化时自动重新生成二维码
+			loadMake: true, // 组件加载完成后自动生成二维码
+			size:500,
+			qrcodeShow:false,
+			qrcodeTop:'-100vh',
+			qrcodeTopVal:'',
+			ifShow: false,
+			val: '二维码', // 要生成的二维码值
+			unit: 'upx', // 单位
+			background: '#b4e9e2', // 背景色
+			foreground: '#309286', // 前景色
+			pdground: '#32dbc6', // 角标色
+			icon: '', // 二维码图标
+			iconsize: 40, // 二维码图标大小
+			lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
+			src: '' ,// 二维码生成后的图片地址或base64
+			timeShow:false,
+			orderTime:'',
+			OrderTimes:'',
+			orderTimeIndex1:0,
+			orderTimeIndex2:-1,
+		}
+	},
+	onLoad(opt) {
+		 this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+         this.location=uni.getStorageSync("location");
+		 this.id=opt.id
+		this.getData()
+		this.type=opt.type;
+		 this.getOrderTimes();
+	},
+	onShow() {
+		if(this.id){
+			this.getData()
+		}
+	},
+	methods: {
+		gopingjia(){
+			 uni.navigateTo({
+				url:'../me/myAppraiseDetail?id='+this.id
+			}) 
+		},
+		timeShowClick(){
+			if(this.OrderTimes){
+				this.timeShow=true
+			}else{
+				uni.showToast({
+				     title: '当前店铺尚未设置可预约时间',
+				 	 icon:'none',
+				     duration: 3000
+				 });
+			}
+			
+		},
+		
+		map(){
+			console.log("打开地图")
+			var that=this;
+			if(!that.orderData.Lat||!that.orderData.Lng){
+				uni.showToast({
+				     title: '该店铺未设置定位',
+				 	 icon:'none',
+				     duration: 3000
+				 });
+			}else{
+				uni.openLocation({
+					latitude:Number(that.orderData.Lat)  ,
+					longitude:Number( that.orderData.Lng),
+					name:that.orderData.ShopName,
+					address:that.orderData.Address,
+					success: function () {
+						console.log('success');
+					},
+					fail(err) {
+					  console.log(err)	
+					}
+				});
+			}
+		
+		},
+		qrR(){
+			
+		},
+		qrc(){
+			console.log(111)
+		},
+		call(){
+			uni.makePhoneCall({
+			    phoneNumber: this.orderData.MobilePhone
+			}); 
+		},
+		qrcodeClick(){
+			this.ifShow=true;
+			this.qrcodeShow=true;
+			this.qrcodeTopVal=this.orderData.Code;
+			//this.$refs.qrcode._makeCode() 
+			 
+		},
+		copy(txt){
+			uni.setClipboardData({
+			    data: txt,
+			    success: function () {
+			        uni.showToast({
+			            title: '复制成功',
+			        	icon:'none',
+			            duration: 2000
+			        });
+			    }
+			});
+		},
+		getData(){
+			uni.showLoading({ });
+			
+			this.$http('miniAppMyBMemberCar/queryMiniAppSheetDetail', {
+			 lat:this.location.lat,
+			 lng:this.location.lng,
+			  id:this.id,
+			 },'GET').then(res => {
+				  uni.hideLoading();
+				  this.orderData=res.data;
+			})
+		},
+		goback(){
+			if(this.type==2){
+				 uni.switchTab({
+					url:'../index/index'
+				}) 
+			}else{
+				uni.navigateBack({})
+			}
+			
+		},
+		evaluate(){
+			uni.navigateTo({
+				url:'evaluate?sheetID='+this.id+'&shopID='+this.orderData.ShopID
+			})
+		},
+		goIndex(){
+			uni.switchTab({
+				url:'../index/index'
+			})
+		},
+		cancelOrder(){
+			var that=this;
+			uni.showModal({
+			    title: '提示',
+			    content: '确定要取消订单吗',
+			    success: function (res) {
+			        if (res.confirm) {
+			          uni.showLoading({ });
+			          that.$http('miniAppMyBMemberCar/updateBMSheetState', {
+			            id:that.orderData.ID
+			           },'POST').then(res => {
+			          	uni.hideLoading();
+					
+			            that.getData()
+			          })
+			        } else if (res.cancel) {
+			           
+			        }
+			    }
+			});
+		},
+       orderPay(){
+       	uni.showLoading({ });
+		var that=this;
+       	this.$http('miniApp/maintainOrder/orderPay', {
+       	  sheetID:this.orderData.ID
+       	 },'POST').then(res => {
+       		  uni.hideLoading();
+       		  var payInfo=JSON.parse(res.data.payInfo)
+       		uni.requestPayment({
+       		    provider: 'wxpay',
+       		   // timeStamp: String(Date.now()),
+       			timeStamp:payInfo.timeStamp,
+       		    nonceStr: payInfo.nonceStr,
+       		    package: payInfo.package,
+       		    signType: payInfo.signType,
+       		    paySign: payInfo.paySign,
+       		    success: function (res) {
+       		        console.log('success:' + JSON.stringify(res));
+       				 uni.showToast({
+       					 title: '支付成功',
+       					icon:'none',
+       					 duration: 2000
+       				 });
+       			     that.getData()	
+       		    },
+       		    fail: function (err) {
+       		        console.log('fail:' + JSON.stringify(err));
+       									 
+       		    }
+       		}); 
+       	})
+       },
+	   timeSfCk(item,index){
+	   	if(item.type==1){
+	   		this.orderTimeIndex2=index;
+	   		var orderTime=this.OrderTimes[this.orderTimeIndex1].date +' '+ item.time
+	   		this.orderTime=orderTime
+	   	}
+	   	
+	   },
+	   timeCk(){
+		   this.timeShow=false;
+		   this.$http('miniApp/maintainOrder/changeOrderTime', {
+		     id:this.id,
+			 orderTime:this.orderTime
+		    },'POST').then(res => {
+		   	  if(res.code==0){
+				  uni.showToast({
+					 title: '修改成功',
+					 icon:'none',
+					 duration: 2000
+				  });
+			  }
+		   	  this.getData()
+		   })
+	   },
+	   getOrderTimes(){
+	   		   this.$http('miniApp/maintainOrder/getOrderTimes', {
+	   		     
+	   		    },'GET').then(res => {
+	   		   	  
+	   		   	  this.OrderTimes=res.data;	
+	   		   })
+	   }
+	},
+	onPullDownRefresh() {
+	      this.getOrderTimes()
+	      this.getData() 
+	       setTimeout(function () {
+	           uni.stopPullDownRefresh();
+	       }, 1000);
+	  },
+
+}
+</script>
+
+<style scoped>
+	.box{
+		min-height: 100vh;
+		background: #F4F5F7;
+	}
+	.status_bar{
+	   background: #FF4F00;
+	   width: 100vw;
+	   position: fixed;
+	   top: 0;
+	   left: 0;
+	   z-index: 1111;
+	}
+	.qrcodeBox{
+		width: 100vw;
+		height: 100vh;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		position: fixed;
+		top: 0;
+		left: 0;
+		background: rgba(0,0,0,0.7);
+	}
+	.top{
+		width: 750rpx;
+		height: 342rpx;
+		background: #FF4F00;
+		/* background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%); */
+	}
+	.nav{
+		line-height: 44px;
+		font-size: 34rpx;
+		font-weight: 600;
+		display: flex;
+		justify-content: space-between;
+		color: #FFFFFF;
+		position: fixed;
+		width: 100vw;
+		left: 0;
+		z-index: 1111;
+		background: #FF4F00;
+	}
+	.gobackImg{
+		width: 92rpx;
+		height: 88rpx;
+		/* padding: 12px; */
+		
+	}
+	.SheetState{
+		font-size: 44rpx;
+		font-weight: 500;
+		color: #FFFFFF;
+		padding-left: 24rpx;
+		padding-top: 50rpx;
+	}
+	.orderTop{
+		width: 702rpx;
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		margin-left: 24rpx;
+	}
+	.timeEditImg{
+		width: 25rpx;height: 25rpx;padding-left: 20rpx;
+	}
+	.timeLeft{
+		font-size: 28rpx;
+		color: #3C3C3C;font-weight: 500;
+	}
+	.timeRight{
+		font-size: 26rpx;
+		color: #3F90F7;
+	}
+	.timeBox{
+		display: flex;
+		justify-content: space-between;
+		padding: 24rpx 20rpx;
+		border-bottom: 1px solid #EEEEEE;
+	}
+	.orderTop{
+		position: relative;
+		top: -44rpx;
+	}
+	.shopBoximg{
+		width: 40rpx;height: 40rpx;
+	}
+	.shopRightImg{
+		width: 52rpx;height: 38rpx;
+	}
+	.shopsx{
+		width: 1px;
+		height: 50rpx;
+		background: #EEEEEE;
+		margin-top: 30rpx;
+		margin-left: 28rpx;
+	}
+	.shopBox{
+		display: flex;
+		padding: 30rpx 20rpx 20rpx 20rpx;
+	}
+	.shopCont{
+		width: 418rpx;padding-left: 20rpx;
+	}
+	.shopName{
+		font-size: 28rpx;
+		color: #3C3C3C;
+	}
+	.Address{
+		color: #999999;font-size: 26rpx;padding-top: 10rpx;
+	}
+	.shopRihgtTxt{
+		color: #999999;font-size: 22rpx;padding-top: 5rpx;
+	}
+	.shopRightBox{
+		padding-top: 30rpx;
+		padding-left: 28rpx;
+	}
+	.peopleCont{
+		font-size: 28rpx;
+		font-weight: 500;
+		color: #3C3C3C;
+		padding-left: 20rpx;
+	}
+	.people{
+		display: flex;
+		padding-left: 20rpx;
+		padding-bottom: 36rpx;
+	}
+	.PlateNumberBox{
+		display: flex;padding-left: 20rpx;padding-bottom: 30rpx;
+	}
+	.PlateNumbercx{
+		font-size: 28rpx;
+		font-weight: 500;
+		color: #3C3C3C;
+		padding-left: 20rpx;
+	}
+	.PlateNumber{
+		width: 130rpx;
+		height: 32rpx;
+		border-radius: 4rpx;
+		border: 1px solid #F19D01;
+		line-height: 32rpx;
+		text-align: center;
+		font-size: 22rpx;
+		color: #F19D01;
+		margin-left: 26rpx;
+	}
+	.PlateNumberBoxTop{
+		display: flex;
+	}
+	.CarModel{
+		font-size: 26rpx;
+		color: #999999;
+		padding-left: 20rpx;
+		padding-top: 6rpx;
+		padding-right: 20rpx;
+		padding-bottom: 15rpx;
+		width: 600rpx;
+	}
+	.detailedBox{
+		width: 702rpx;
+		background: #FFFFFF;
+		border-radius: 10px;
+		margin-left: 24rpx;
+		margin-top: -60rpx;
+		padding-bottom: 20rpx;
+	}
+	.itemBox{
+		margin-top: 20rpx;
+	}
+	.detailedTitle{
+		font-size: 32rpx;
+		color: #3C3C3C;
+		padding-left: 20rpx;padding-top: 30rpx;
+		font-weight: 600;
+		padding-bottom: 10rpx;
+	}
+	.detailedLine{
+		display: flex;
+		padding-left: 20rpx;
+		padding-top: 40rpx;
+	}
+	.detailedImg{
+		width: 120rpx;
+		height: 120rpx;
+		border-radius: 10rpx;
+	}
+	.detailedCont{
+		padding-left: 20rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-between;
+	}
+	.detailedName{
+		font-size: 26rpx;
+		color: #3C3C3C;
+	}
+	.detailedContBottom{
+		display: flex;
+		justify-content: space-between;
+		font-size: 26rpx;
+		color: #999999;
+		width: 500rpx;
+		line-height: 40rpx;
+	}
+	.SalePrice{
+		font-size: 32rpx;
+		font-weight: 500;
+		color: #3C3C3C;
+	}
+	.goodscost{
+		width: 702rpx;
+		background: #FFFFFF;
+		border-radius: 10px;
+		margin-left: 24rpx;
+		margin-top: 20rpx;
+		padding: 15rpx 0;
+	}
+	.goodscostLine{
+		display: flex;
+		justify-content: space-between;
+		font-size: 28rpx;
+		padding: 20rpx 20rpx;
+		color: #666666;
+	}
+	.goodsCostNum{
+		color: #3C3C3C;
+	}
+	.information{
+		width: 702rpx;
+		background: #FFFFFF;
+		border-radius: 10px;
+		margin-left: 24rpx;
+		margin-top: 20rpx;
+		padding: 0rpx 0 15rpx 0;
+	}
+	.informationLine{
+		display: flex;font-size: 26rpx;
+		padding: 15rpx 20rpx;
+	}
+	.informationTxt{
+		width: 150rpx;
+		color: #666666;
+	}
+	.informationNum{
+		color: #333333;
+	}
+	.copyBtn{
+		width: 86rpx;
+		height: 40rpx;
+		background: #F4F5F7;
+		border-radius: 20rpx;
+		font-size: 24rpx;
+		color: #333333;
+		text-align: center;
+		line-height: 40rpx;
+		margin-left: 20rpx;
+	}
+	.orderBottom{
+		width: 750rpx;
+		height: 98rpx;
+		background: #FFFFFF;
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		display: flex;
+		justify-content: flex-end;
+	}
+	.cancelBtn{
+		width: 150rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 2rpx solid #DDDDDD;
+		text-align: center;
+		line-height: 56rpx;
+		font-size: 28rpx;
+		color: #3C3C3C;
+		margin-top: 21rpx;
+	}
+	.payBtn{
+		width: 150rpx;
+		height: 56rpx;
+		border-radius: 36rpx;
+		border: 2rpx solid #FF4F00;
+		text-align: center;
+		line-height: 56rpx;
+		font-size: 28rpx;
+		color: #FF4F00;
+		margin-top: 21rpx;
+		margin-right: 16rpx;
+		margin-left: 40rpx;
+	}
+	.timeBox2{
+		width: 100vw;
+		height: 100vh;
+		background: rgba(0,0,0,0.5);
+		position: fixed;
+		top: 0;
+		left: 0;
+	}
+	.timeLeftActive{
+		background: #FFFFFF;
+	}
+	.timeMain{
+		width: 100vw;
+		height: 70vh;
+		margin-top: 30vh;
+		background: #FFFFFF;
+		border-radius: 24rpx 24rpx 0px 0px;
+	}
+	.timesfNo{
+		background: #F5F5F5;
+	}
+	.timesfActive{
+		background: #FF4F00;
+		
+	}
+	.timesfActive .timeSfNum{
+		color: #FFFFFF;
+	}
+	.timesfActive .timeyy{
+		color: #FFFFFF;
+	}
+	.topBox{
+		padding: 20rpx 24rpx;
+	}
+	.timeTop{
+		display: flex;
+		line-height: 90rpx;
+		padding-left: 24rpx;
+		padding-right: 24rpx;
+		justify-content: space-between;
+	}
+	.timeTopTitle{
+		font-size: 30rpx;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 600;
+		color: #3C3C3C;
+	}
+	.close{
+		color: #999999;font-size: 30rpx;
+		padding-left: 30rpx;
+	}
+	.timeCont{
+		height: calc(70vh - 210rpx);
+	}
+	.timeSv{
+		height: calc(70vh - 210rpx);
+	}
+	.timeLeft2{
+		width: 162rpx;
+		background: #F4F5F7;
+		border-top: 1px soid #F4F5F7;
+		border-right:1px soid #F4F5F7 ;
+	}
+	.timeRight2{
+		width: 588rpx;
+	}
+	.timesf{
+		width: 165rpx;
+		height: 98rpx;
+		border-radius: 7rpx;
+		border: 2rpx solid #EEEEEE;
+		text-align: center;
+		margin-left: 20rpx;
+		margin-bottom: 24rpx;
+	}
+	.timeBottom{
+		width: 750rpx;
+		height: 120rpx;
+		background: #FFFFFF;
+		box-shadow: 0px -2px 20rpx 0px rgba(153, 153, 153, 0.2);
+		display: flex;
+		align-items: center;
+		
+	}
+	.timerightBox{
+		display: flex;
+		flex-wrap: wrap;
+	}
+	.timeCont{
+		display: flex;
+	}
+	.timeSfNum{
+		color: #666666;
+		font-size: 28rpx;
+		padding-top: 15rpx;
+	}
+	.timeyy{
+		font-size: 24rpx;
+		color: #999999;
+	}
+	.timecomplete{
+		width: 690rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		line-height: 74rpx;
+		text-align: center;
+		font-size: 30rpx;
+		color: #FFFFFF;
+		margin-left: 30rpx;
+	}
+	.timeleftLine{
+		font-size: 30rpx;
+		color: #999999;
+		text-align: center;
+		padding: 28rpx 10rpx;
+		border-bottom: 1px solid #EEEEEE;
+	}
+	.goIndexImg{
+		width: 92rpx;
+		height: 88rpx;
+	}
+</style>

+ 810 - 0
pages/shop/ckShop.vue

@@ -0,0 +1,810 @@
+<template>
+	<view class="content">
+		<view class="top">
+
+			<!-- 			<view class="shopMr" v-show="shopDefault">
+				<view class="shopMrMs">默认门店</view>
+				<view class="shopBox">
+					    <view class="">
+						 <image :src="shopDefault.photoPath" mode="" class="shopImg"></image>
+						</view>
+						<view class="shopCont">
+							<view class="shopName">{{shopDefault.shopName}}</view>
+							<view class="flex shopRight">
+								<view>
+								<span class="span2" >暂无评分</span>
+									<span class="span3">服务次数 </span>
+								</view>
+								<view class="shopBq">{{shopDefault.levelName}}</view>
+							</view>
+							<view class="shopTime"><span v-show="shopDefault.startTime">{{shopDefault.startTime}}</span> - <span v-show="shopDefault.endTime">{{shopDefault.endTime}}</span> </view>
+							<view class="flex addressBox">
+								<view class="address" > <span v-show="shopDefault.address"> {{shopDefault.address}}</span></view>
+								<view class="shopKm" v-show="shopDefault.distance">{{shopDefault.distance}}km</view>
+							</view>
+						</view>
+					
+				</view>
+			</view> -->
+			<!-- tab -->
+			<view class="topView">
+
+				<view class="tab">
+					<!-- 93rpx -->
+					<view class="tabLine" :class="{tabActive:tabindex==1}" @click="tabindexClick(1)">全部</view>
+					<view class="tabLine" :class="{tabActive:tabindex==2}" @click="tabindexClick(2)">关注</view>
+					<view class="tabLine" :class="{tabActive:tabindex==3}" @click="tabindexClick(3)">足迹</view>
+				</view>
+			</view>
+
+
+
+			<!-- 全部门店页 -->
+			<view class="allShop" v-show="tabindex==1">
+				<view class="firstTop">
+
+					<view class="search">
+						<!-- 120rpx -->
+						<view class="searchVIew">
+							<image src="../../static/img/icon_search.png" mode="" class="searchIMg"></image>
+							<input type="text" value="" placeholder="请输入门店名称" class="searchInput" v-model="shopName"
+								@confirm="searchList" />
+							<image src="../../static/img/icon_search_del.png" v-show="shopName" mode="" class="ssScImg"
+								@click="searchSc"></image>
+						</view>
+					</view>
+					<view class="screen">
+						<view class="screenLine">
+							<view class="screenLineTxt" @click="showCity=true,comprehensiveShow=false,levelShow=false">
+								{{cityname}}
+							</view>
+							<image src="../../static/img/icon_arrow_gray.png" mode="" v-show="!showCity"
+								class="screenJt">
+							</image>
+							<image src="../../static/img/icon_arrow_cheng.png" mode="" v-show="showCity"
+								class="screenJt">
+							</image>
+						</view>
+						<view class="screenLine" @click="mdlx">
+							<view class="screenLineTxt " :class="{colorCS:levelShow}">门店类型</view>
+							<image src="../../static/img/icon_arrow_gray.png" mode="" class="screenJt"
+								v-show="!levelShow">
+							</image>
+							<image src="../../static/img/icon_arrow_cheng.png" mode="" v-show="levelShow"
+								class="screenJt">
+							</image>
+						</view>
+						<view class="screenLine" @click="juli" :class="{colorCS:comprehensiveShow}">
+							<view class="screenLineTxt" v-if="comprehensive==0">综合排序</view>
+							<view class="screenLineTxt" v-if="comprehensive==1">距离最近</view>
+							<view class="screenLineTxt" v-if="comprehensive==2">评分最高</view>
+							<image src="../../static/img/icon_arrow_gray.png" mode="" v-show="!comprehensiveShow"
+								class="screenJt"></image>
+							<image src="../../static/img/icon_arrow_cheng.png" mode="" v-show="comprehensiveShow"
+								class="screenJt"></image>
+						</view>
+
+					</view>
+
+					<!-- 门店类型弹框 -->
+					<view class="shoplevelBox" v-show="levelShow" @click="levelShow=false">
+						<view class="shoplevelCont">
+							<view class="shoplevelLine" v-for="(item,index) in shopLevel" @click.stop="levelClick(item)"
+								:class="{shoplevalActive:item.ckeck}">{{item.name}}</view>
+						</view>
+						<view class="shoplevelBottom">
+							<view class="shoplevelReset" @click.stop="shoplevelReset">重置</view>
+							<view class="shoplevelsbu" @click.shop="shoplevelsbu">确定</view>
+						</view>
+					</view>
+					<!-- 门店类型弹框 -->
+					<!-- 综合排序 -->
+					<view class="shoplevelBox " v-show="comprehensiveShow" @click="comprehensiveShow=false">
+						<view class="shoplevelCont ">
+							<view class="comprehensivebox">
+								<view class="comprehensiveLine" :class="{comprehensiveACtive:comprehensive==0}"
+									@click.stop="comprehensiveClick(0)">综合排序</view>
+								<view class="comprehensiveLine" :class="{comprehensiveACtive:comprehensive==1}"
+									@click.stop="comprehensiveClick(1)">距离最近</view>
+								<view class="comprehensiveLine" :class="{comprehensiveACtive:comprehensive==2}"
+									@click.stop="comprehensiveClick(2)">评分最高</view>
+							</view>
+
+						</view>
+
+					</view>
+					<!-- 综合排序 -->
+				</view>
+				<view class="shopLineBoxFirst">
+					<view class="shopBox shopBox2" v-for="(item,index) in queryShopList"
+						@click="addBMemberShopIsDefault(item)">
+						<view class="">
+							<image :src="item.photoPath" mode="" class="shopImg" v-if="item.photoPath"></image>
+							<image src="../../static/img/noimg.png" mode="" class="shopImg" v-else></image>
+						</view>
+						<view class="shopCont">
+							<view class="shopName">{{item.shopName}}</view>
+							<view class="flex shopRight">
+								<view>
+									<span class="span1" v-if="item.shopScore">{{item.shopScore}}</span>
+									<span class="span2" v-if="item.shopScore">分</span>
+									<span class="span2" v-if="!item.shopScore">暂无评分</span>
+									<span class="span3">服务次数  {{item.sheetSum}}</span>
+								</view>
+								<view class="shopBq" v-show="item.levelName">{{item.levelName}}</view>
+							</view>
+							<view class="shopTime"><span v-show="item.startTime">{{item.startTime}}</span> - <span
+									v-show="item.endTime">{{item.endTime}}</span> </view>
+							<view class="flex addressBox">
+								<view class="address"> <span v-show="item.address"> {{item.address}}</span></view>
+								<view class="shopKm" v-show="item.distance">{{item.distance}}km</view>
+							</view>
+
+						</view>
+
+					</view>
+					<view v-if="queryShopList==''" class="nodataBox">
+						<image src="../../static/img/nodata.png" mode="widthFix" class="nodataImg"></image>
+						<view class="noTxt">暂无数据</view>
+					</view>
+				</view>
+
+			</view>
+			<!-- 关注的门店页-->
+			<view class="allShop" v-show="tabindex==2">
+				<view class="shopLineBox">
+					<view class="shopBox shopBox2" v-for="(item,index) in bMemberShopList"
+						@click="addBMemberShopIsDefault(item)">
+						<view class="">
+							<image :src="item.photoPath" mode="" class="shopImg" v-if="item.photoPath"></image>
+							<image src="../../static/img/noimg.png" mode="" class="shopImg" v-else></image>
+						</view>
+						<view class="shopCont">
+							<view class="shopName">{{item.shopName}}</view>
+							<view class="flex shopRight">
+								<view>
+									<span class="span1" v-if="item.shopScore">{{item.shopScore}}</span>
+									<span class="span2" v-if="item.shopScore">分</span>
+									<span class="span2" v-if="!item.shopScore">暂无评分</span>
+									<span class="span3">服务次数 {{item.sheetSum}} </span>
+								</view>
+								<view class="shopBq" v-show="item.levelName">{{item.levelName}}</view>
+							</view>
+							<view class="shopTime"><span v-show="item.startTime">{{item.startTime}}</span> - <span
+									v-show="item.endTime">{{item.endTime}}</span> </view>
+							<view class="flex addressBox">
+								<view class="address"> <span v-show="item.address"> {{item.address}}</span></view>
+								<view class="shopKm" v-show="item.distance">{{item.distance}}km</view>
+							</view>
+						</view>
+
+					</view>
+					<view v-if="bMemberShopList==''" class="nodataBox">
+						<image src="../../static/img/nodata.png" mode="widthFix" class="nodataImg"></image>
+						<view class="noTxt">暂无数据</view>
+					</view>
+				</view>
+
+			</view>
+
+			<!-- 足迹页 -->
+			<view class="allShop" v-show="tabindex==3">
+				<view class="footLine">
+					<view v-for="(v,i) in shopFootprintList">
+						<view class="timeDate">
+							{{v.date}}
+						</view>
+						<view class="shopBox shopBox2" v-for="(item,index) in v.list"
+							@click="addBMemberShopIsDefault(item)">
+							<view class="">
+								<image :src="item.photoPath" mode="" class="shopImg" v-if="item.photoPath"></image>
+								<image src="../../static/img/noimg.png" mode="" class="shopImg" v-else></image>
+							</view>
+							<view class="shopCont">
+								<view class="shopName">{{item.shopName}}</view>
+								<view class="flex shopRight">
+									<view>
+										<span class="span1" v-if="item.shopScore">{{item.shopScore}}</span>
+										<span class="span2" v-if="item.shopScore">分</span>
+										<span class="span2" v-if="!item.shopScore">暂无评分</span>
+										<span class="span3">服务次数 {{item.sheetSum}} </span>
+									</view>
+									<view class="shopBq" v-show="item.levelName">{{item.levelName}}</view>
+								</view>
+								<view class="shopTime">{{item.startTime}}-{{item.endTime}}</view>
+								<view class="flex addressBox">
+									<view class="address">{{item.address}}</view>
+									<view class="shopKm">{{item.distance}}km</view>
+								</view>
+							</view>
+
+						</view>
+					</view>
+
+				</view>
+				<view v-if="shopFootprintList==''" class="nodataBox">
+					<image src="../../static/img/nodata.png" mode="widthFix" class="nodataImg"></image>
+					<view class="noTxt">暂无数据</view>
+				</view>
+			</view>
+			<!-- 足迹 -->
+		</view>
+		<chose-city @selectCity="selectCity" v-if="showCity" @closeModal="closeModal"></chose-city>
+	</view>
+</template>
+
+<script>
+	import choseCity from "@/components/chose-city/chose-city"
+	export default {
+		components: {
+			choseCity
+		},
+		data() {
+			return {
+				tabindex: 1,
+				location: '',
+				cityname: '上海市',
+				queryShopList: '',
+				shopName: '',
+				level: '',
+				comprehensive: 0,
+				shopLevel: '',
+				levelShow: false,
+				comprehensiveShow: false,
+				shopDefault: '',
+				bMemberShopList: [],
+				shopFootprintList: [],
+				showCity: false,
+				page: 1,
+			}
+		},
+		onLoad() {
+			this.location = uni.getStorageSync("location");
+			if (this.location) {
+				this.cityname = this.location.cityname
+			} else {
+				//初始化数据
+				this.location = {
+					cityname: '',
+					cityCode: ''
+				}
+			}
+			this.getqueryShopList() //获取全部门店列表
+			this.getqueryBShopLevel() //查询门店等级
+			this.getbMemberShopList() //关注门店
+			this.getShopFootprint()
+			this.shopDefault = uni.getStorageSync("shopData");
+			console.log(this.shopDefault)
+		},
+		methods: {
+			mdlx() {
+				this.levelShow = !this.levelShow;
+				this.comprehensiveShow = false;
+				this.showCity = false
+			},
+			juli() {
+				this.comprehensiveShow = !this.comprehensiveShow;
+				this.levelShow = false;
+				this.showCity = false
+			},
+			selectCity(item) {
+				console.log('-您选择的城市-', item)
+				this.location.cityname = item.name;
+				this.location.cityCode = item.citycode;
+				this.cityname = item.name;
+				console.log(this.location)
+				uni.setStorage({
+					key: 'location',
+					data: this.location,
+					success: function() {}
+				});
+				this.showCity = false;
+				this.getqueryShopList()
+
+
+			},
+			closeModal() {
+				this.showCity = false
+			},
+			addBMemberShopIsDefault(item) {
+				uni.showLoading({});
+				this.$http('miniAppShopInfoController/addBMemberShopIsDefault', {
+					shopId: item.shopId
+				}, 'POST').then(res => {
+					uni.hideLoading();
+					var token = res.data.token;
+					var logodata = uni.getStorageSync("logodata");
+					logodata.token = token;
+					uni.setStorage({
+						key: 'logodata',
+						data: logodata,
+						success: function() {
+							uni.setStorage({
+								key: 'shopData',
+								data: item,
+								success: function() {
+
+									if (res.code == 0) {
+										uni.navigateBack({
+											delta: 1
+										})
+									} else {
+										uni.showToast({
+											title: res.msg,
+											icon: 'none',
+											duration: 3000
+										});
+									}
+								}
+							});
+
+						}
+					});
+
+
+
+
+				})
+			},
+			getqueryShopList() {
+				uni.showLoading({});
+				this.$http('miniAppShopInfoController/queryShopList', {
+					shopName: this.shopName,
+					lat: this.location.lat,
+					lng: this.location.lng,
+					cityCode: this.location.cityCode,
+					comprehensive: this.comprehensive,
+					level: this.level,
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					this.queryShopList = res.data
+				})
+			},
+			getbMemberShopList() { //门店
+				uni.showLoading({});
+				this.$http('miniAppMyBMemberCar/listBMemberShopPage', {
+					lat: this.location.lat,
+					lng: this.location.lng,
+					page: this.page,
+					limit: 10
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					var a = res.data.Items
+					this.bMemberShopList = this.bMemberShopList.concat(a)
+				})
+			},
+			getShopFootprint() { //足迹
+				this.$http('miniAppMyBMemberCar/listBMemberShopFootprintPage', {
+					lat: this.location.lat,
+					lng: this.location.lng,
+					page: this.page,
+					limit: 10
+				}, 'GET').then(res => {
+					var a = res.data.Items;
+					//this.shopFootprintList=this.shopFootprintList.concat(a)
+					if (this.shopFootprintList.length == 0) {
+						this.shopFootprintList = this.shopFootprintList.concat(a);
+					} else {
+						console.log(a[0].date)
+						console.log(this.shopFootprintList[this.shopFootprintList.length - 1].date)
+						if (a[0].date == this.shopFootprintList[this.shopFootprintList.length - 1].date) {
+							this.shopFootprintList[this.shopFootprintList.length - 1].list.concat(a[0].list);
+							a.splice(0, 1);
+							this.shopFootprintList = this.shopFootprintList.concat(a);
+						} else {
+							this.shopFootprintList = this.shopFootprintList.concat(a);
+						}
+					}
+				})
+			},
+			searchList() {
+				this.getqueryShopList()
+			},
+			searchSc(){
+				
+				this.shopName = ''
+				this.getqueryShopList()
+			},
+			getqueryBShopLevel() {
+				this.$http('miniAppShopInfoController/queryBShopLevel', {
+
+				}, 'GET').then(res => {
+					res.data.forEach(item => {
+						item.ckeck = false;
+					})
+					this.shopLevel = res.data
+				})
+			},
+			levelClick(item) {
+				item.ckeck = !item.ckeck
+			},
+			shoplevelReset() {
+				this.shopLevel.forEach(item => {
+					item.ckeck = false;
+				})
+				// this.getqueryShopList()
+				// this.levelShow=false;
+			},
+			shoplevelsbu() {
+				var arr = []
+				this.shopLevel.forEach(item => {
+					if (item.ckeck) {
+						arr.push(item.id)
+					}
+				})
+				this.level = arr.join(',')
+				console.log(this.level)
+				this.levelShow = false;
+				this.getqueryShopList()
+			},
+			comprehensiveClick(num) {
+				this.comprehensive = num;
+				this.comprehensiveShow = false;
+				this.getqueryShopList()
+			},
+			tabindexClick(num) {
+				this.tabindex = num;
+				if (num == 2) {
+					this.page = 1;
+					this.bMemberShopList = [];
+					this.getbMemberShopList()
+				} else if (num == 3) {
+					this.page = 1;
+					this.shopFootprintList = [];
+					this.getShopFootprint()
+				}
+			}
+		},
+		onReachBottom() {
+			this.page++;
+			if (this.tabindex == 2) {
+				this.getbMemberShopList()
+			} else if (this.tabindex == 3) {
+				this.getShopFootprint()
+			}
+			//this.getData()
+		},
+		onPullDownRefresh() {
+			/* this.page=1;
+			  this.data=[];
+		      this.getData() */
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		}
+	}
+</script>
+
+<style scoped>
+	.nodataImg {
+		width: 400rpx;
+		padding-top: 100rpx;
+	}
+
+	.noTxt {
+		font-size: 36rpx;
+		color: #999999;
+		padding-top: 50rpx;
+	}
+
+	.nodataBox {
+		text-align: center;
+	}
+
+	.content {
+		min-height: 100vh;
+		background: #F4F5F7;
+	}
+
+	.shopMr {
+		padding: 34rpx 24rpx;
+		background: #FFFFFF;
+	}
+
+	.shopMrMs {
+		color: #999999;
+		font-size: 24rpx;
+	}
+
+	.shopImg {
+		width: 146rpx;
+		height: 146rpx;
+		border-radius: 6rpx;
+	}
+
+	.shopBox {
+		padding-top: 30rpx;
+		display: flex;
+	}
+
+	.flex {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.shopCont {
+		padding-left: 22rpx;
+		width: 520rpx;
+	}
+
+	.shopName {
+		color: #333333;
+		font-size: 26rpx;
+		font-weight: 600;
+	}
+
+	.span1 {
+		color: #FF4F00;
+		font-size: 36rpx;
+	}
+
+	.span2 {
+		color: #FF4F00;
+		font-size: 22rpx;
+	}
+
+	.span3 {
+		color: #333333;
+		font-size: 22rpx;
+		padding-left: 22rpx;
+	}
+
+	.shopBq {
+		color: #FF4F00;
+		font-size: 22rpx;
+		border-radius: 4rpx;
+		border: 1px solid #FF4F00;
+		line-height: 30rpx;
+		height: 30rpx;
+		padding: 0rpx 5rpx;
+		margin-top: 10rpx;
+	}
+
+	.shopTime {
+		color: #666666;
+		font-size: 22rpx;
+	}
+
+	.addressBox {
+		color: #666666;
+		font-size: 22rpx;
+	}
+
+	.topView {
+
+		width: 100%;
+		height: 93rpx;
+		background-color: #FFFFFF;
+		left: 0rpx;
+		top: 0rpx;
+		position: fixed;
+		z-index: 99;
+
+	}
+
+	.tab {
+		display: flex;
+		padding: 0 18rpx;
+		border-bottom: 1px solid #F4F5F7;
+		background: #FFFFFF;
+		margin-top: 20rpx;
+		justify-content: space-between;
+
+	}
+
+	.tabLine {
+		line-height: 88rpx;
+		color: #3C3C3C;
+		text-align: center;
+		width: 210rpx;
+		font-size: 30rpx;
+	}
+
+	.tabActive {
+		color: #FF4F00;
+		border-bottom: 4rpx solid #FF4F00;
+	}
+
+	.allShop {
+		background-color: #FFFFFF;
+		padding-top: 111rpx;
+	}
+	.firstTop{
+		width: 100%;
+		height: 175rpx;
+		background-color: #FFFFFF;
+		position: fixed;
+		top: 111rpx;
+		 z-index: 99;
+	}
+
+	.searchIMg {
+		width: 40rpx;
+		height: 40rpx;
+		margin-top: 16rpx;
+		margin-left: 20rpx;
+	}
+
+	.search {
+		padding: 24rpx;
+	}
+
+	.searchVIew {
+		display: flex;
+		background: #F4F5F7;
+		border-radius: 36rpx;
+		height: 72rpx;
+	}
+
+	.searchInput {
+		color: #999999;
+		font-size: 28rpx;
+		padding-left: 16rpx;
+		height: 72rpx;
+		line-height: 72rpx;
+		width: 550rpx;
+	}
+
+	.screenJt {
+		width: 40rpx;
+		height: 40rpx;
+	}
+
+	.screen {
+		display: flex;
+		justify-content: space-between;
+		padding: 0 24rpx 16rpx 24rpx;
+		border-bottom: 2rpx solid #EEEEEE;
+		position: relative;
+	}
+
+	.screenLine {
+		display: flex;
+		color: #333333;
+		font-size: 28rpx;
+
+	}
+	.shopLineBoxFirst{
+		padding: 0 25rpx;
+		padding-top: 175rpx;
+	}
+	.shopLineBox {
+		padding: 0 25rpx;
+		
+	}
+
+	.shopBox2 {
+		border-bottom: 2rpx solid #EEEEEE;
+		padding-bottom: 30rpx;
+	}
+
+	.shoplevelBox {
+		position: fixed;
+		left: 0;
+		width: 750rpx;
+		top: 288rpx;
+		background: rgba(0, 0, 0, 0.4);
+
+		z-index: 11;
+		border-top: 1px solid #EEEEEE;
+		border-bottom: 1px solid #EEEEEE;
+		height: calc(100vh - 288rpx);
+	}
+
+	/* #ifdef H5 */
+	.shoplevelBox {
+
+		top: calc(288rpx + 44px);
+
+	}
+
+	/* #endif */
+	.shoplevelCont {
+		display: flex;
+		flex-wrap: wrap;
+		background: #FFFFFF;
+		padding: 24rpx;
+	}
+
+	.shoplevelLine {
+		color: #333333;
+		line-height: 64rpx;
+		padding: 0 40rpx;
+		height: 64rpx;
+		background: #F4F5F7;
+		border-radius: 32rpx;
+		margin-right: 20rpx;
+		margin-bottom: 30rpx;
+	}
+
+	.shoplevelBottom {
+		display: flex;
+		justify-content: space-between;
+		padding-top: 60rpx;
+		padding-right: 24rpx;
+		background: #FFFFFF;
+		padding: 24rpx;
+	}
+
+	.shoplevelReset {
+		width: 320rpx;
+		height: 74rpx;
+		border-radius: 37rpx;
+		border: 2rpx solid #FF4F00;
+		text-align: center;
+		line-height: 74rpx;
+		font-size: 30rpx;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #FF4F00;
+	}
+
+	.shoplevelsbu {
+		width: 320rpx;
+		height: 74rpx;
+		background: #FF4F00;
+		border-radius: 37rpx;
+		font-size: 30rpx;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #FFFFFF;
+		text-align: center;
+		line-height: 74rpx;
+		border: 2rpx solid #FF4F00;
+	}
+
+	.shoplevalActive {
+		color: #FF4F00;
+		background: rgba(255, 79, 0, 0.08);
+
+	}
+
+	.comprehensiveLine {
+		/* 	width: 200rpx;
+		height: 60rpx;
+		line-height: 60rpx;
+		text-align: center;
+		border: 1px solid rgb(228, 228, 228);
+		border-radius: 10rpx; */
+		font-size: 26rpx;
+		font-family: PingFangSC-Regular, PingFang SC;
+		font-weight: 400;
+		color: #333333;
+		padding: 25rpx 0;
+
+	}
+
+	.comprehensivebox {
+		/* display: flex;justify-content: space-around; */
+	}
+
+	.comprehensiveACtive {
+		color: #FF4F00;
+	}
+
+	.footLine {
+		padding: 24rpx;
+	}
+
+	.timeDate {
+		font-size: 24rpx;
+		color: #999999;
+	}
+
+	.screenJt {
+		width: 24rpx;
+		height: 24rpx;
+		margin-top: 7rpx;
+		margin-left: 5rpx;
+	}
+
+	.ssScImg {
+		width: 40rpx;
+		height: 40rpx;
+		margin-top: 16rpx;
+	}
+
+	.colorCS {
+		color: #FF4F00;
+	}
+</style>

+ 268 - 0
pages/shop/shopAppraise.vue

@@ -0,0 +1,268 @@
+<template>
+	<view class="content">
+
+		<!-- 列表 -->
+		<view class="itemContent">
+			<view v-for="(item,index) in itemData" :key="index">
+				<view class="item">
+
+					<view class="leftView">
+						<image :src='item.HeadUrl' v-if="item.HeadUrl" class="storeImg"></image>
+						<image src="../../static/img/pic_def_ava.png" mode="" class="storeImg" v-else></image>
+					</view>
+
+					<view class="rightView">
+						<!-- 第一行 -->
+						<view class="firstView">
+							<view class="shopName">{{item.Evaluator}}</view>
+							<!-- 时间截取 -->
+							<!-- <view class="time">2021-9-05</view> -->
+							<view class="time">{{item.CreateTime.slice(0,item.CreateTime.length-8)}}</view>
+						</view>
+
+						<!-- 第2行 -->
+						<view class="secondView">
+							<!-- 星星 -->
+							<uni-rate :value="item.Overallevaluation" :max="5" color="#EEEEEE" active-color="#FF4F00"
+								:size="16" :margin="4" :readonly="true" />
+							
+						</view>
+
+						<view class="contentMes">{{item.EContent}}</view>
+
+						<!-- 照片 -->
+						<view class="imgBg">
+							<view v-for="(itemImg,indexImg) in item.imgs" :key="indexImg">
+
+								<image :src="itemImg.imageUrl" class="img"
+									@click="previewImage(itemImg.imageUrl,item.imgs)"></image>
+							</view>
+						</view>
+
+						<!-- 商家回复 -->
+
+						<view class="writeBack" v-if="item.ReplyContent">商家回复:{{item.ReplyContent}}</view>
+					</view>
+
+
+
+				</view>
+			</view>
+		</view>
+
+		<!-- 上拉 加载更多 -->
+		<view class="noMore" v-if="noMoreShow">没有更多数据</view>
+		<!-- 无数据空白页 -->
+		<nodata v-if="itemData.length==0"></nodata>
+
+	</view>
+</template>
+
+<script>
+	import nodata from '../../components/nodata/nodata.vue'
+	export default {
+		components: {
+			nodata,
+		},
+		data() {
+			return {
+				itemData: [],
+				page: 1,
+				noMoreShow: false,
+				imgArr: [],
+				shopId:'',
+			}
+		},
+		onLoad(opt) {
+			this.page = 1
+			this.shopId = opt.shopId
+			this.getItemData()
+		},
+		methods: {
+			previewImage(img, arrDic) {
+				var arr = [];
+
+				arrDic.forEach(item => {
+					arr.push(item.imageUrl)
+				})
+
+				// 预览图片
+				uni.previewImage({
+					urls: arr,
+					current: img,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
+			
+			getItemData() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				let url = 'miniAppShopInfoController/listShopBMEvaluatePage',
+					params = {
+						page: this.page,
+						limit: 20,
+						shopId:this.shopId,
+					}
+				this.$http(url, params, 'GET').then(res => {
+					uni.hideLoading();
+					var list = res.data.Items
+
+					// 处理 undefined和null转为空白字符串
+					list.forEach((item, index) => {
+						for (const key in item) {
+							item[key] = this.$praseStrEmpty(item[key])
+						}
+					})
+
+
+					if (this.page == 1) {
+						this.itemData = list
+					} else {
+						this.itemData = this.itemData.concat(list)
+					}
+
+					if (list.length < 10) {
+						this.noMoreShow = false
+					} else {
+						this.noMoreShow = true
+					}
+
+
+				})
+			},
+
+		},
+
+		// 下拉刷新 上拉加载更多
+		onPullDownRefresh() {
+			this.page = 1
+			this.getItemData()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		onReachBottom() {
+			this.page++;
+			this.getItemData()
+		},
+
+	}
+</script>
+
+<style scoped>
+	.content {
+		background: #FFFFFF;
+		min-height: 100vh;
+
+	}
+
+
+
+	.item {
+		display: flex;
+		justify-content: flex-start;
+		padding: 0 24rpx;
+		background-color: #FFFFFF;
+
+	}
+
+	.leftView {
+		width: 117rpx;
+		padding-right: 20rpx;
+	}
+
+	.storeImg {
+		width: 72rpx;
+		height: 72rpx;
+		border-radius: 8rpx;
+		margin-top: 30rpx;
+	}
+
+	.rightView {
+		border-bottom: 1rpx #EEEEEE solid;
+		width: 100vw;
+	}
+
+	.firstView,
+	.secondView {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+	}
+
+	.firstView {
+		padding-top: 30rpx;
+	}
+
+	.secondView {
+		padding-top: 12rpx;
+		padding-bottom: 20rpx;
+	}
+
+	.shopName {
+		/* padding-top: 30rpx;
+		padding-bottom: 10rpx; */
+		font-size: 26rpx;
+		font-weight: bold;
+		color: #333333;
+	}
+
+	.time {
+		font-size: 26rpx;
+		color: #999999;
+	}
+
+	.deleteBtn {
+		width: 36rpx;
+		height: 36rpx;
+	}
+
+	.contentMes {
+		font-size: 26rpx;
+		color: #666666;
+		line-height: 37rpx;
+		/* padding-top: 20rpx; */
+
+	}
+
+	.imgBg {
+		display: flex;
+		justify-content: flex-start;
+		padding: 30rpx 0rpx;
+		flex-wrap: wrap;
+	}
+
+	.img {
+		width: 140rpx;
+		height: 140rpx;
+		margin-right: 5rpx;
+		border-radius: 8rpx;
+	}
+
+	.writeBack {
+		font-size: 26rpx;
+		color: #666666;
+		line-height: 37rpx;
+		padding: 20rpx;
+		background-color: #F4F5F7;
+		
+		padding-bottom: 20rpx;
+	}
+
+	.noMore {
+		text-align: center;
+		line-height: 50rpx;
+		color: #999999;
+		font-size: 28rpx;
+	}
+</style>

File diff suppressed because it is too large
+ 1199 - 0
pages/shop/shopDetail.vue


BIN
static/img/icon_shouhou.png


BIN
static/img/icon_tihuan.png


BIN
static/img/icon_tuikuan.png


BIN
static/img/jt.png


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/chose-city/chose-city.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/nodata/nodata.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/tki-qrcode/tki-qrcode.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-plate-input/uni-plate-input.js.map


+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/car/cailist.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,8M,6FAFmBA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC;AAGnBC,UAAU,CAACC,gBAAD,CAAV,C","file":"pages/car/cailist.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './pages/car/cailist.vue'\ncreatePage(Page)"],"sourceRoot":""}

+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/car/carModel.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,gN,6FAFmBA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC;AAGnBC,UAAU,CAACC,iBAAD,CAAV,C","file":"pages/car/carModel.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './pages/car/carModel.vue'\ncreatePage(Page)"],"sourceRoot":""}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/iPhone/addphone.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/iPhone/phoneList.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/addCar.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/cailist.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/carModel.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/empower.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/iphoneLogin.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/intimity.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/me.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/setup.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/me/treaty.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/evaluate.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/myorder.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/orderDetail.js.map


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/shop/shopList.js.map


+ 67 - 0
unpackage/dist/dev/mp-weixin/app.json

@@ -0,0 +1,67 @@
+{
+  "pages": [
+    "pages/index/index",
+    "pages/shop/shopList",
+    "pages/me/me",
+    "pages/login/login",
+    "pages/login/empower",
+    "pages/login/iphoneLogin",
+    "pages/index/addCar",
+    "pages/index/cailist",
+    "pages/index/carModel",
+    "pages/me/setup",
+    "pages/iPhone/phoneList",
+    "pages/iPhone/addphone",
+    "pages/me/treaty",
+    "pages/me/intimity",
+    "pages/order/myorder",
+    "pages/order/orderDetail",
+    "pages/order/evaluate",
+    "pages/me/discountCard",
+    "pages/me/discountDetail",
+    "pages/me/myAppraise",
+    "pages/me/myAppraiseDetail",
+    "pages/me/feedBack",
+    "pages/shop/ckShop",
+    "pages/shop/shopDetail"
+  ],
+  "subPackages": [],
+  "window": {
+    "navigationBarTextStyle": "black",
+    "navigationBarTitleText": "uni-app",
+    "navigationBarBackgroundColor": "#F8F8F8",
+    "backgroundColor": "#F8F8F8"
+  },
+  "tabBar": {
+    "color": "#8a8a8a",
+    "selectedColor": "#FF4F00",
+    "borderStyle": "black",
+    "backgroundColor": "#ffffff",
+    "list": [
+      {
+        "pagePath": "pages/index/index",
+        "iconPath": "static/img/tabme1.png",
+        "selectedIconPath": "static/img/tabme2.png",
+        "text": "4S保养"
+      },
+      {
+        "pagePath": "pages/shop/shopList",
+        "iconPath": "static/img/tabshop1.png",
+        "selectedIconPath": "static/img/tabshop2.png",
+        "text": "4S门店"
+      },
+      {
+        "pagePath": "pages/me/me",
+        "iconPath": "static/img/tabme1.png",
+        "selectedIconPath": "static/img/tabme2.png",
+        "text": "我的"
+      }
+    ]
+  },
+  "permission": {
+    "scope.userLocation": {
+      "desc": "获取定位"
+    }
+  },
+  "usingComponents": {}
+}

+ 18 - 0
unpackage/dist/dev/mp-weixin/common/main.wxss

@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*每个页面公共css */
+
+

+ 273 - 0
unpackage/dist/dev/mp-weixin/common/runtime.js

@@ -0,0 +1,273 @@
+
+  !function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}();
+  /******/ (function(modules) { // webpackBootstrap
+/******/ 	// install a JSONP callback for chunk loading
+/******/ 	function webpackJsonpCallback(data) {
+/******/ 		var chunkIds = data[0];
+/******/ 		var moreModules = data[1];
+/******/ 		var executeModules = data[2];
+/******/
+/******/ 		// add "moreModules" to the modules object,
+/******/ 		// then flag all "chunkIds" as loaded and fire callback
+/******/ 		var moduleId, chunkId, i = 0, resolves = [];
+/******/ 		for(;i < chunkIds.length; i++) {
+/******/ 			chunkId = chunkIds[i];
+/******/ 			if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
+/******/ 				resolves.push(installedChunks[chunkId][0]);
+/******/ 			}
+/******/ 			installedChunks[chunkId] = 0;
+/******/ 		}
+/******/ 		for(moduleId in moreModules) {
+/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ 				modules[moduleId] = moreModules[moduleId];
+/******/ 			}
+/******/ 		}
+/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
+/******/
+/******/ 		while(resolves.length) {
+/******/ 			resolves.shift()();
+/******/ 		}
+/******/
+/******/ 		// add entry modules from loaded chunk to deferred list
+/******/ 		deferredModules.push.apply(deferredModules, executeModules || []);
+/******/
+/******/ 		// run deferred modules when all chunks ready
+/******/ 		return checkDeferredModules();
+/******/ 	};
+/******/ 	function checkDeferredModules() {
+/******/ 		var result;
+/******/ 		for(var i = 0; i < deferredModules.length; i++) {
+/******/ 			var deferredModule = deferredModules[i];
+/******/ 			var fulfilled = true;
+/******/ 			for(var j = 1; j < deferredModule.length; j++) {
+/******/ 				var depId = deferredModule[j];
+/******/ 				if(installedChunks[depId] !== 0) fulfilled = false;
+/******/ 			}
+/******/ 			if(fulfilled) {
+/******/ 				deferredModules.splice(i--, 1);
+/******/ 				result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
+/******/ 			}
+/******/ 		}
+/******/
+/******/ 		return result;
+/******/ 	}
+/******/
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// object to store loaded CSS chunks
+/******/ 	var installedCssChunks = {
+/******/ 		"common/runtime": 0
+/******/ 	}
+/******/
+/******/ 	// object to store loaded and loading chunks
+/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
+/******/ 	// Promise = chunk loading, 0 = chunk loaded
+/******/ 	var installedChunks = {
+/******/ 		"common/runtime": 0
+/******/ 	};
+/******/
+/******/ 	var deferredModules = [];
+/******/
+/******/ 	// script path function
+/******/ 	function jsonpScriptSrc(chunkId) {
+/******/ 		return __webpack_require__.p + "" + chunkId + ".js"
+/******/ 	}
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/ 	// This file contains only the entry chunk.
+/******/ 	// The chunk loading function for additional chunks
+/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
+/******/ 		var promises = [];
+/******/
+/******/
+/******/ 		// mini-css-extract-plugin CSS loading
+/******/ 		var cssChunks = {"components/chose-city/chose-city":1,"components/uni-plate-input/uni-plate-input":1,"components/nodata/nodata":1,"components/tki-qrcode/tki-qrcode":1};
+/******/ 		if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
+/******/ 		else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
+/******/ 			promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
+/******/ 				var href = "" + ({"components/chose-city/chose-city":"components/chose-city/chose-city","components/uni-plate-input/uni-plate-input":"components/uni-plate-input/uni-plate-input","components/nodata/nodata":"components/nodata/nodata","components/tki-qrcode/tki-qrcode":"components/tki-qrcode/tki-qrcode"}[chunkId]||chunkId) + ".wxss";
+/******/ 				var fullhref = __webpack_require__.p + href;
+/******/ 				var existingLinkTags = document.getElementsByTagName("link");
+/******/ 				for(var i = 0; i < existingLinkTags.length; i++) {
+/******/ 					var tag = existingLinkTags[i];
+/******/ 					var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
+/******/ 					if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();
+/******/ 				}
+/******/ 				var existingStyleTags = document.getElementsByTagName("style");
+/******/ 				for(var i = 0; i < existingStyleTags.length; i++) {
+/******/ 					var tag = existingStyleTags[i];
+/******/ 					var dataHref = tag.getAttribute("data-href");
+/******/ 					if(dataHref === href || dataHref === fullhref) return resolve();
+/******/ 				}
+/******/ 				var linkTag = document.createElement("link");
+/******/ 				linkTag.rel = "stylesheet";
+/******/ 				linkTag.type = "text/css";
+/******/ 				linkTag.onload = resolve;
+/******/ 				linkTag.onerror = function(event) {
+/******/ 					var request = event && event.target && event.target.src || fullhref;
+/******/ 					var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");
+/******/ 					err.code = "CSS_CHUNK_LOAD_FAILED";
+/******/ 					err.request = request;
+/******/ 					delete installedCssChunks[chunkId]
+/******/ 					linkTag.parentNode.removeChild(linkTag)
+/******/ 					reject(err);
+/******/ 				};
+/******/ 				linkTag.href = fullhref;
+/******/
+/******/ 				var head = document.getElementsByTagName("head")[0];
+/******/ 				head.appendChild(linkTag);
+/******/ 			}).then(function() {
+/******/ 				installedCssChunks[chunkId] = 0;
+/******/ 			}));
+/******/ 		}
+/******/
+/******/ 		// JSONP chunk loading for javascript
+/******/
+/******/ 		var installedChunkData = installedChunks[chunkId];
+/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
+/******/
+/******/ 			// a Promise means "currently loading".
+/******/ 			if(installedChunkData) {
+/******/ 				promises.push(installedChunkData[2]);
+/******/ 			} else {
+/******/ 				// setup Promise in chunk cache
+/******/ 				var promise = new Promise(function(resolve, reject) {
+/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
+/******/ 				});
+/******/ 				promises.push(installedChunkData[2] = promise);
+/******/
+/******/ 				// start chunk loading
+/******/ 				var script = document.createElement('script');
+/******/ 				var onScriptComplete;
+/******/
+/******/ 				script.charset = 'utf-8';
+/******/ 				script.timeout = 120;
+/******/ 				if (__webpack_require__.nc) {
+/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
+/******/ 				}
+/******/ 				script.src = jsonpScriptSrc(chunkId);
+/******/
+/******/ 				// create error before stack unwound to get useful stacktrace later
+/******/ 				var error = new Error();
+/******/ 				onScriptComplete = function (event) {
+/******/ 					// avoid mem leaks in IE.
+/******/ 					script.onerror = script.onload = null;
+/******/ 					clearTimeout(timeout);
+/******/ 					var chunk = installedChunks[chunkId];
+/******/ 					if(chunk !== 0) {
+/******/ 						if(chunk) {
+/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
+/******/ 							var realSrc = event && event.target && event.target.src;
+/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
+/******/ 							error.name = 'ChunkLoadError';
+/******/ 							error.type = errorType;
+/******/ 							error.request = realSrc;
+/******/ 							chunk[1](error);
+/******/ 						}
+/******/ 						installedChunks[chunkId] = undefined;
+/******/ 					}
+/******/ 				};
+/******/ 				var timeout = setTimeout(function(){
+/******/ 					onScriptComplete({ type: 'timeout', target: script });
+/******/ 				}, 120000);
+/******/ 				script.onerror = script.onload = onScriptComplete;
+/******/ 				document.head.appendChild(script);
+/******/ 			}
+/******/ 		}
+/******/ 		return Promise.all(promises);
+/******/ 	};
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// define __esModule on exports
+/******/ 	__webpack_require__.r = function(exports) {
+/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 		}
+/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 	};
+/******/
+/******/ 	// create a fake namespace object
+/******/ 	// mode & 1: value is a module id, require it
+/******/ 	// mode & 2: merge all properties of value into the ns
+/******/ 	// mode & 4: return value when already ns object
+/******/ 	// mode & 8|1: behave like require
+/******/ 	__webpack_require__.t = function(value, mode) {
+/******/ 		if(mode & 1) value = __webpack_require__(value);
+/******/ 		if(mode & 8) return value;
+/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ 		var ns = Object.create(null);
+/******/ 		__webpack_require__.r(ns);
+/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ 		return ns;
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "/";
+/******/
+/******/ 	// on error function for async loading
+/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
+/******/
+/******/ 	var jsonpArray = global["webpackJsonp"] = global["webpackJsonp"] || [];
+/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
+/******/ 	jsonpArray.push = webpackJsonpCallback;
+/******/ 	jsonpArray = jsonpArray.slice();
+/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
+/******/ 	var parentJsonpFunction = oldJsonpFunction;
+/******/
+/******/
+/******/ 	// run deferred modules from other chunks
+/******/ 	checkDeferredModules();
+/******/ })
+/************************************************************************/
+/******/ ([]);
+//# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map
+  

File diff suppressed because it is too large
+ 10363 - 0
unpackage/dist/dev/mp-weixin/common/vendor.js


File diff suppressed because it is too large
+ 542 - 0
unpackage/dist/dev/mp-weixin/components/chose-city/chose-city.js


File diff suppressed because it is too large
+ 185 - 0
unpackage/dist/dev/mp-weixin/components/nodata/nodata.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/components/nodata/nodata.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/components/nodata/nodata.wxml

@@ -0,0 +1 @@
+<view style="padding-bottom:20rpx;" class="data-v-4bb7b1e4"><view class="nodataBox data-v-4bb7b1e4"><image class="nodataImg data-v-4bb7b1e4" src="../../static/img/nodata.png" mode="widthFix"></image><view class="noTxt data-v-4bb7b1e4">暂无数据</view></view></view>

+ 15 - 0
unpackage/dist/dev/mp-weixin/components/nodata/nodata.wxss

@@ -0,0 +1,15 @@
+
+.nodataImg.data-v-4bb7b1e4{
+  width: 400rpx;
+  padding-top: 100rpx;
+}
+.noTxt.data-v-4bb7b1e4{
+	font-size: 36rpx;
+	color: #999999;
+	padding-top: 50rpx;
+}
+.nodataBox.data-v-4bb7b1e4{
+	text-align: center;
+}
+
+

File diff suppressed because it is too large
+ 357 - 0
unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.wxml

@@ -0,0 +1 @@
+<view class="tki-qrcode data-v-143ec824"><canvas class="tki-qrcode-canvas data-v-143ec824" style="{{'width:'+(cpSize+'px')+';'+('height:'+(cpSize+'px')+';')}}" canvas-id="{{cid}}"></canvas><image hidden="{{!(show)}}" style="{{'width:'+(cpSize+'px')+';'+('height:'+(cpSize+'px')+';')}}" src="{{result}}" class="data-v-143ec824"></image></view>

+ 11 - 0
unpackage/dist/dev/mp-weixin/components/tki-qrcode/tki-qrcode.wxss

@@ -0,0 +1,11 @@
+
+.tki-qrcode.data-v-143ec824 {
+  position: relative;
+}
+.tki-qrcode-canvas.data-v-143ec824 {
+  position: fixed;
+  top: -99999rpx;
+  left: -99999rpx;
+  z-index: -99999;
+}
+

File diff suppressed because it is too large
+ 420 - 0
unpackage/dist/dev/mp-weixin/components/uni-plate-input/uni-plate-input.js


File diff suppressed because it is too large
+ 355 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.json

@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "新增联系人",
+  "usingComponents": {}
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.wxml


+ 54 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/addphone.wxss

@@ -0,0 +1,54 @@
+
+.box.data-v-3d239264{
+		min-height: 100vh;
+		background:#F4F5F7 ;
+}
+.main.data-v-3d239264{
+		padding: 24rpx;
+}
+.phoneListBox.data-v-3d239264{
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		padding: 0 24rpx;
+}
+.phoneLine.data-v-3d239264{
+		display: flex;
+		
+		padding: 30rpx;
+		border-bottom: 1px solid #DDDDDD;
+}
+.phoneLeft.data-v-3d239264{
+		width: 150rpx;font-size: 28rpx;
+color: #3C3C3C;
+}
+.phoneLine2.data-v-3d239264{
+		padding:20rpx 30rpx;border-bottom: 1px solid #DDDDDD;
+}
+.lineInput.data-v-3d239264{
+	   color: #999999;
+		   font-size: 28rpx;
+}
+.DefaultTxt.data-v-3d239264{
+		font-size: 28rpx;
+		color: #3C3C3C;
+		display: flex;
+		align-items: center;
+}
+.submit.data-v-3d239264{
+		width: 690rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		line-height: 74rpx;
+		text-align: center;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		margin-top: 80rpx;
+		margin-left: 6rpx;
+}
+.phoneLine3.data-v-3d239264{
+		color: #FF3B30;
+		font-size: 26rpx;
+		padding: 30rpx;
+}
+

File diff suppressed because it is too large
+ 241 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.json

@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "联系人管理",
+  "usingComponents": {}
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.wxml


+ 57 - 0
unpackage/dist/dev/mp-weixin/pages/iPhone/phoneList.wxss

@@ -0,0 +1,57 @@
+
+.box.data-v-04955f9b{
+	min-height: 100vh;
+	background:#F4F5F7 ;
+}
+.main.data-v-04955f9b{
+	padding: 24rpx;
+}
+.phoneListBox.data-v-04955f9b{
+	background: #FFFFFF;
+	border-radius: 10rpx;
+	padding: 0 24rpx;
+}
+.phoneLine.data-v-04955f9b{
+	display: flex;
+	justify-content: space-between;
+	padding: 30rpx;
+	border-bottom: 1px solid #DDDDDD;
+}
+.phoneEdit.data-v-04955f9b{
+	width: 40rpx;
+	height: 40rpx;
+}
+.name.data-v-04955f9b{
+	font-size: 28rpx;
+	font-family: PingFangSC-Medium, PingFang SC;
+	font-weight: 500;
+	color: #3C3C3C;
+	width: 200rpx;
+}
+.phoneNUm.data-v-04955f9b{
+	font-size: 28rpx;
+	font-family: PingFangSC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #3C3C3C;
+}
+.phoneLeft.data-v-04955f9b{
+	display: flex;
+}
+.default.data-v-04955f9b{
+	width: 64rpx;
+	height: 30rpx;
+	background: rgba(255, 79, 0, 0.06);
+	border-radius: 4rpx;
+	text-align: center;line-height: 30rpx;
+	color: #FF4F00;font-size: 22rpx;
+	margin-left: 30rpx;margin-top: 4rpx;
+}
+.addTxt.data-v-04955f9b{
+	color: #FF4F00;
+	font-size: 30rpx;
+}
+.addjt.data-v-04955f9b{
+	color: #CCCCCC;
+	font-size: 30rpx;
+}
+

File diff suppressed because it is too large
+ 269 - 0
unpackage/dist/dev/mp-weixin/pages/index/addCar.js


+ 7 - 0
unpackage/dist/dev/mp-weixin/pages/index/addCar.json

@@ -0,0 +1,7 @@
+{
+  "navigationBarTitleText": "添加爱车",
+  "enablePullDownRefresh": false,
+  "usingComponents": {
+    "plate-input": "/components/uni-plate-input/uni-plate-input"
+  }
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/index/addCar.wxml


+ 81 - 0
unpackage/dist/dev/mp-weixin/pages/index/addCar.wxss

@@ -0,0 +1,81 @@
+
+.content {
+	min-height: 100vh;
+	background-color: #F4F5F7;
+	padding-top: 20rpx;
+}
+.carMessage {
+	margin: 0rpx 24rpx 40rpx;
+	padding-top: 20rpx;
+	height: 500rpx;
+	background-color: #FFFFFF;
+	border-radius: 10rpx;
+}
+.mesView {
+	display: flex;
+	align-items: center;
+	width: 100%;
+	height: 120rpx;
+	background-color: #FFFFFF;
+}
+.leftTitle {
+	margin: 28rpx;
+	width: 120rpx;
+	font-size: 28rpx;
+	color: #666666;
+}
+.noSelectColor {
+	color: #999999;
+}
+.selectColor {
+	color: #333333;
+}
+.rightArrow {
+	margin-right: 28rpx;
+	width: 14rpx;
+	height: 23rpx;
+}
+.cityBtn {
+	width: 65%;
+	font-size: 28rpx;
+}
+.plateNumber {
+	width: 55%;
+	font-size: 28rpx;
+}
+.carModBtn {
+	width: 65%;
+	font-size: 28rpx;
+}
+.timeBtn {
+	width: 65%;
+	font-size: 28rpx;
+}
+.mileageInput {
+	width: 20%;
+	font-size: 28rpx;
+}
+.kmStr {
+	font-size: 28rpx;
+	color: #333333;
+}
+.bottomView {
+	background-color: #FFFFFF;
+	width: 100%;
+	height: 120rpx;
+	position: fixed;
+	bottom: 0rpx;
+}
+.saveCar {
+
+	background: linear-gradient(135deg, #FD5300 0%, #FF270A 100%);
+	margin: 23rpx 30rpx;
+	height: 74rpx;
+	line-height: 74rpx;
+	border-radius: 37rpx;
+	color: #FFFFFF;
+	font-size: 30rpx;
+	font-weight: bold;
+	text-align: center;
+}
+

File diff suppressed because it is too large
+ 345 - 0
unpackage/dist/dev/mp-weixin/pages/index/cailist.js


+ 5 - 0
unpackage/dist/dev/mp-weixin/pages/index/cailist.json

@@ -0,0 +1,5 @@
+{
+  "navigationBarTitleText": "我的车库",
+  "navigationBarBackgroundColor": "#FFFFFF",
+  "usingComponents": {}
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/index/cailist.wxml


+ 114 - 0
unpackage/dist/dev/mp-weixin/pages/index/cailist.wxss

@@ -0,0 +1,114 @@
+
+.box.data-v-c657a5fa{
+	min-height: 100vh;
+	background:#F4F5F7 ;
+}
+.nodataImg.data-v-c657a5fa{
+  width: 400rpx;
+  padding-top: 100rpx;
+}
+.noTxt.data-v-c657a5fa{
+	font-size: 36rpx;
+	color: #999999;
+	padding-top: 50rpx;
+}
+.nodataBox.data-v-c657a5fa{
+	text-align: center;
+}
+.addBtn.data-v-c657a5fa{
+	width: 690rpx;
+	height: 74rpx;
+	background: linear-gradient(135deg, #FD5300 0%, #FF270A 100%);
+	border-radius: 37rpx;
+	line-height: 74rpx;
+	text-align: center;
+	color: #FFFFFF;
+	font-size: 30rpx;
+	position: fixed;
+	bottom: 23rpx;
+	left: 30rpx;
+}
+.carlistBox.data-v-c657a5fa{
+	padding-bottom: 120rpx;
+}
+.carlistBox.data-v-c657a5fa{
+	padding: 24rpx;
+	padding-bottom: 120rpx;
+}
+.brandLogo.data-v-c657a5fa{
+	width: 63rpx;
+}
+.line.data-v-c657a5fa{
+	background: #FFFFFF;
+	padding: 27rpx 20rpx;
+	border-radius: 10rpx;
+	margin-bottom: 20rpx;
+    position: relative;
+}
+.lineCont.data-v-c657a5fa{
+		display: flex;
+}
+.carName.data-v-c657a5fa{
+	color: #3C3C3C;font-size: 30rpx;display: flex;
+}
+.plateNumber.data-v-c657a5fa{
+	border-radius: 4px;
+	border: 1px solid #F19D01;
+	height: 32rpx;
+	line-height: 32rpx;
+	padding: 0 10rpx;color: #F19D01;
+	font-size: 22rpx;
+	margin-left: 20rpx;
+	margin-top: 5rpx;
+}
+.carMS.data-v-c657a5fa{
+	color: #666666;
+	font-size: 26rpx;
+	padding-top: 5px;
+}
+.lineBottom.data-v-c657a5fa{
+	display: flex;
+	justify-content: flex-end;
+	padding-top: 20rpx;
+}
+.lineDel.data-v-c657a5fa{
+	width: 94rpx;
+	height: 50rpx;
+	border-radius: 25rpx;
+	border: 1px solid #DDDDDD;
+	text-align: center;line-height: 50rpx;
+	font-size: 26rpx;color: #3C3C3C;
+	margin-right: 29rpx;
+}
+.Default.data-v-c657a5fa{
+	width: 148rpx;
+	height: 50rpx;
+	border-radius: 25rpx;
+	border: 1px solid #FF4F00;
+	line-height: 50rpx;
+	text-align: center;
+	color: #FF4F00;font-size: 26rpx;
+}
+.DefaultYES.data-v-c657a5fa{
+	width: 148rpx;
+	height: 50rpx;
+	border-radius: 25rpx;
+	border: 1px solid #DDDDDD;
+	line-height: 50rpx;
+	text-align: center;
+	color: #999999;font-size: 26rpx;
+}
+.DefaultIcon.data-v-c657a5fa{
+	position: absolute;
+	top: 0;
+	right: 0;
+	width: 109rpx;
+	height: 40rpx;
+	background: linear-gradient(131deg, #FFA72C 0%, #FF450F 100%);
+	border-radius: 0px 10rpx 0px 10rpx;
+	text-align: center;
+	line-height: 40rpx;
+	color: #FFFFFF;
+	font-size: 22rpx;
+}
+

File diff suppressed because it is too large
+ 620 - 0
unpackage/dist/dev/mp-weixin/pages/index/carModel.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/pages/index/carModel.json

@@ -0,0 +1,4 @@
+{
+  "navigationStyle": "custom",
+  "usingComponents": {}
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/index/carModel.wxml


+ 405 - 0
unpackage/dist/dev/mp-weixin/pages/index/carModel.wxss

@@ -0,0 +1,405 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.box.data-v-411247ea {
+  min-height: 100vh;
+  background: #F4F5F7;
+}
+.vinboxTwoTopFh.data-v-411247ea {
+  font-size: 26rpx;
+  padding: 30rpx 24rpx;
+  color: #3F90F7;
+}
+.vinboxTwoBottom.data-v-411247ea {
+  width: 750rpx;
+  height: 120rpx;
+  background: #FFFFFF;
+  box-shadow: 0px -2px 20px 0px rgba(153, 153, 153, 0.2);
+  position: absolute;
+  left: 0;
+  bottom: 0;
+  display: flex;
+  justify-content: space-around;
+}
+.shoudonng.data-v-411247ea {
+  width: 336rpx;
+  height: 74rpx;
+  border-radius: 37rpx;
+  border: 1px solid #FF4F00;
+  line-height: 74rpx;
+  text-align: center;
+  font-size: 30rpx;
+  color: #FF4F00;
+  margin-top: 23rpx;
+}
+.qrcx.data-v-411247ea {
+  width: 336rpx;
+  height: 74rpx;
+  background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+  border-radius: 37rpx;
+  line-height: 74rpx;
+  text-align: center;
+  font-size: 30rpx;
+  color: #FFFFFF;
+  margin-top: 23rpx;
+}
+.vinXzBox.data-v-411247ea {
+  padding-bottom: 120rpx;
+}
+.loginLogo.data-v-411247ea {
+  width: 28rpx;
+  height: 28rpx;
+}
+.vinXzLineyk.data-v-411247ea {
+  width: 24rpx;
+  height: 24rpx;
+  border: 2rpx solid #999999;
+  border-radius: 50%;
+}
+.vinXzLine.data-v-411247ea {
+  padding: 30rpx 24rpx;
+  display: flex;
+  justify-content: space-between;
+  color: #3C3C3C;
+  font-size: 28rpx;
+  line-height: 28rpx;
+  border-bottom: 1px solid #DDDDDD;
+}
+.vinboxTwoTopVIn.data-v-411247ea {
+  font-size: 28rpx;
+  color: #666666;
+  padding-left: 24rpx;
+  padding-bottom: 30rpx;
+}
+.zdyNav.data-v-411247ea {
+  width: 100vw;
+  background: #FFFFFF;
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: 1111111;
+}
+.zdyNavCont.data-v-411247ea {
+  height: 44px;
+  font-size: 28rpx;
+  display: flex;
+  justify-content: space-between;
+  line-height: 44px;
+}
+.vinCxNum.data-v-411247ea {
+  background: #F4F5F7;
+  font-size: 26rpx;
+  padding: 18rpx 24rpx;
+  color: #999999;
+}
+.baiheibackImg.data-v-411247ea {
+  width: 70px;
+  height: 44px;
+}
+.gaunbiIMg.data-v-411247ea {
+  width: 20px;
+  height: 20px;
+  padding: 12px;
+}
+.zdyNavContRight.data-v-411247ea {
+  width: 114px;
+}
+.smvin.data-v-411247ea {
+  color: #3C3C3C;
+  font-size: 30rpx;
+}
+.smvin2.data-v-411247ea {
+  color: #999999;
+  font-size: 26rpx;
+}
+.tab2.data-v-411247ea {
+  padding: 30rpx 24rpx;
+  min-height: calc(100vh - 150rpx - 44px);
+  background: #FFFFFF;
+  position: relative;
+}
+.vinboxTwo.data-v-411247ea {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 750rpx;
+  min-height: calc(100vh - 150rpx - 44px);
+  background: #FFFFFF;
+}
+.sltpImg.data-v-411247ea {
+  width: 704rpx;
+  height: 353rpx;
+}
+.vinImg.data-v-411247ea {
+  width: 704rpx;
+}
+.sltp.data-v-411247ea {
+  padding-top: 20rpx;
+}
+.vinSc.data-v-411247ea {
+  width: 690rpx;
+  height: 74rpx;
+  background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+  border-radius: 37rpx;
+  text-align: center;
+  line-height: 74rpx;
+  color: #FFFFFF;
+  font-size: 30rpx;
+  margin-top: 70rpx;
+}
+.nodataImg.data-v-411247ea {
+  width: 400rpx;
+  padding-top: 100rpx;
+}
+.noTxt.data-v-411247ea {
+  font-size: 36rpx;
+  color: #999999;
+  padding-top: 50rpx;
+}
+.nodataBox.data-v-411247ea {
+  text-align: center;
+}
+.addBtn.data-v-411247ea {
+  width: 690rpx;
+  height: 74rpx;
+  background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+  border-radius: 37rpx;
+  line-height: 74rpx;
+  text-align: center;
+  color: #FFFFFF;
+  font-size: 30rpx;
+  position: fixed;
+  bottom: 23rpx;
+  left: 30rpx;
+}
+.carlistBox.data-v-411247ea {
+  padding-bottom: 120rpx;
+}
+.tab.data-v-411247ea {
+  background: #FFFFFF;
+  display: flex;
+  justify-content: space-around;
+  line-height: 93rpx;
+  color: #3C3C3C;
+  font-size: 30rpx;
+  border-bottom: 1px solid #F4F5F7;
+}
+.activeTab.data-v-411247ea {
+  color: #FF4F00;
+  text-decoration: underline;
+}
+/* .brand-select-title{
+	height: 80px;
+	background:rgba(247,247,247,1);
+	position: relative;
+} */
+.brand-select .brand-select-title.data-v-411247ea {
+  height: 80rpx;
+  background: #f7f7f7;
+  position: relative;
+}
+.brand-select .brand-select-title ._h5.data-v-411247ea {
+  position: absolute;
+  height: 40rpx;
+  font-size: 28rpx;
+  font-weight: 500;
+  color: #666666;
+  line-height: 40rpx;
+  top: 20rpx;
+  left: 30rpx;
+}
+.brand-select .brand-select-wrapper.data-v-411247ea {
+  display: flex;
+  flex-wrap: wrap;
+  background: white;
+  width: 100vw;
+}
+.brand-select .brand-select-wrapper .brand-select-item.data-v-411247ea {
+  display: block;
+  width: 80rpx;
+  height: 100rpx;
+  padding: 30rpx;
+}
+.brand-select .brand-select-wrapper .brand-select-item ._img.data-v-411247ea {
+  display: inline-block;
+  margin-left: 10rpx;
+  width: 60rpx;
+  height: 60rpx;
+}
+.brand-select .brand-select-wrapper .brand-select-item ._span.data-v-411247ea {
+  display: inline-block;
+  text-align: center;
+  height: 33rpx;
+  width: 90rpx;
+  font-size: 24rpx;
+  font-weight: 400;
+  color: #333333;
+  line-height: 33rpx;
+}
+.fast-navigation.data-v-411247ea {
+  position: fixed;
+  text-align: center;
+  right: 16rpx;
+  top: 360rpx;
+  width: 23rpx;
+  font-size: 30rpx;
+  font-weight: 500;
+  line-height: 35rpx;
+  color: #999999;
+}
+.fast-navigation ._a.data-v-411247ea {
+  display: block;
+}
+.fast-navigation .select.data-v-411247ea {
+  color: #FF4F00;
+}
+.scroll-view.data-v-411247ea {
+  height: calc(100vh - 93rpx);
+}
+.popup-height.data-v-411247ea {
+  width: 200px;
+}
+.popup-content.data-v-411247ea {
+  width: 590rpx;
+  background: #FFFFFF;
+  height: 100vh;
+}
+.carModel-nav-title.data-v-411247ea {
+  height: 100rpx;
+  background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+  line-height: 100rpx;
+  display: flex;
+  z-index: 500;
+}
+.carModel-nav-title.cell-logo.data-v-411247ea {
+  position: -webkit-sticky;
+  position: sticky;
+  top: 0;
+  background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+}
+.carModel-nav-title .carModel-nav-title-box.data-v-411247ea {
+  width: 100%;
+  display: flex;
+}
+.carModel-nav-title .carModel-nav-title-img.data-v-411247ea {
+  margin: 20rpx;
+  width: 60rpx;
+  height: 60rpx;
+}
+.carModel-nav-title .carModel-nav-title-msg.data-v-411247ea {
+  font-size: 30rpx;
+  font-weight: 400;
+  color: white;
+  display: block;
+  padding-right: 20rpx;
+}
+.cell-item-title.data-v-411247ea {
+  height: 60rpx;
+  background: #fafafa;
+  font-size: 28rpx;
+  font-weight: 400;
+  color: #666666;
+  line-height: 60rpx;
+  padding-left: 26rpx;
+}
+.span-cell.data-v-411247ea {
+  position: relative;
+  display: flex;
+  box-sizing: border-box;
+  width: 100%;
+  padding: 6rpx 30rpx;
+  overflow: hidden;
+  color: #323233;
+  font-size: 3.73333vw;
+  line-height: 82rpx;
+  height: 82rpx;
+  background-color: #fff;
+  border-bottom: 1px solid #ebedf0;
+}
+.carModel-nav-title.data-v-411247ea {
+  height: 100rpx;
+  background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+  line-height: 100rpx;
+  display: flex;
+  z-index: 500;
+}
+.carModel-nav-title.cell-logo.data-v-411247ea {
+  position: -webkit-sticky;
+  position: sticky;
+  top: 0;
+  background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+}
+.carModel-nav-title .carModel-nav-title-box.data-v-411247ea {
+  width: 100%;
+  display: flex;
+}
+.carModel-nav-title .carModel-nav-title-img.data-v-411247ea {
+  margin: 20rpx;
+  width: 60rpx;
+  height: 60rpx;
+}
+.carModel-nav-title .carModel-nav-title-msg.data-v-411247ea {
+  font-size: 30rpx;
+  font-weight: 400;
+  color: white;
+  display: block;
+  padding-right: 20px;
+}
+.displacementListLine.data-v-411247ea {
+  min-height: 50rpx;
+  padding: 20rpx 20rpx 20rpx 30rpx;
+  font-size: 28rpx;
+  font-weight: 600;
+  color: #333333;
+  line-height: 50rpx;
+  border-top: 2rpx solid #eeeeee;
+  background-color: white;
+}
+.displacementListBox.data-v-411247ea {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100vw;
+  height: 100vh;
+  background: #F4F5F7;
+  z-index: 11111;
+}
+.carGroupListBox.data-v-411247ea {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100vw;
+  height: 100vh;
+  background: #F4F5F7;
+  z-index: 11111;
+}
+.brandList.data-v-411247ea {
+  height: calc(100vh - 100rpx);
+}
+.brand-select-titleselect.data-v-411247ea {
+  color: #FF4F00 !important;
+}
+

File diff suppressed because it is too large
+ 466 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.js


+ 6 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.json

@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "填写爱车信息",
+  "usingComponents": {
+    "chose-city": "/components/chose-city/chose-city"
+  }
+}

File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.wxml


+ 92 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.wxss

@@ -0,0 +1,92 @@
+
+.content {
+	min-height: 100vh;
+	background-color: #F4F5F7;
+}
+.bBannerList {
+	width: 100%;
+	height: 300rpx;
+	background-color: #3F536E;
+}
+.swpImg {
+	width: 100%;
+	height: 300rpx;
+}
+.carMessage {
+	margin: 24rpx 24rpx 40rpx;
+
+	height: 500rpx;
+	background-color: #FFFFFF;
+	border-radius: 10rpx;
+}
+.look4s {
+	margin: 40rpx 24rpx;
+	height: 88rpx;
+	line-height: 88rpx;
+	text-align: center;
+	background-color: #FD5300;
+	border-radius: 10rpx;
+	color: #FFFFFF;
+	font-weight: bold;
+	font-size: 30rpx;
+}
+.mesView {
+	display: flex;
+	align-items: center;
+	width: 100%;
+	height: 120rpx;
+	background-color: #FFFFFF;
+}
+.leftTitle {
+	margin: 28rpx;
+	width: 120rpx;
+	font-size: 28rpx;
+	color: #666666;
+}
+.noSelectColor {
+	color: #999999;
+}
+.selectColor {
+	color: #333333;
+}
+.rightArrow {
+	margin-right: 28rpx;
+	width: 14rpx;
+	height: 23rpx;
+}
+.cityBtn {
+	width: 65%;
+	font-size: 28rpx;
+}
+.rightView{
+	display: flex;
+	justify-content: space-between;
+	width: 80%;
+}
+.plateNumber {
+	font-size: 28rpx;
+}
+.carModBtn {
+	width: 65%;
+	font-size: 28rpx;
+}
+.timeBtn {
+	width: 65%;
+	font-size: 28rpx;
+}
+.mileageInput {
+	width: 20%;
+	font-size: 28rpx;
+}
+.kmStr {
+	font-size: 28rpx;
+	color: #333333;
+}
+.changeCarBg {
+	display: flex;
+	/* justify-content: flex-start; */
+	align-items: center;
+	width: 120rpx;
+	margin-right: 28rpx;
+}
+

File diff suppressed because it is too large
+ 204 - 0
unpackage/dist/dev/mp-weixin/pages/me/intimity.js


+ 5 - 0
unpackage/dist/dev/mp-weixin/pages/me/intimity.json

@@ -0,0 +1,5 @@
+{
+  "navigationBarTitleText": "隐私政策",
+  "enablePullDownRefresh": false,
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/me/intimity.wxml

@@ -0,0 +1 @@
+<view class="content data-v-6c55d7ae"><rich-text nodes="{{couContent}}" class="data-v-6c55d7ae"></rich-text></view>

+ 7 - 0
unpackage/dist/dev/mp-weixin/pages/me/intimity.wxss

@@ -0,0 +1,7 @@
+
+.content.data-v-6c55d7ae {
+	background: #F4F5F7;
+	min-height: 100vh;
+}
+
+

File diff suppressed because it is too large
+ 381 - 0
unpackage/dist/dev/mp-weixin/pages/me/me.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/me/me.wxml


File diff suppressed because it is too large
+ 282 - 0
unpackage/dist/dev/mp-weixin/pages/me/setup.js


+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/me/setup.json


Some files were not shown because too many files changed in this diff