zouling 4 ماه پیش
والد
کامیت
964aecf16b
100فایلهای تغییر یافته به همراه3614 افزوده شده و 2394 حذف شده
  1. 216 0
      user_ui/components/box/list.vue
  2. 17 13
      user_ui/components/swiper/notice.vue
  3. 158 0
      user_ui/mine/components/box/list.vue
  4. 379 0
      user_ui/mine/components/popup/popup.vue
  5. 199 0
      user_ui/mine/pages/car/addcar.vue
  6. 136 0
      user_ui/mine/pages/car/charge.vue
  7. 98 0
      user_ui/mine/pages/car/index.vue
  8. 145 0
      user_ui/mine/pages/house/addaddress.vue
  9. 235 0
      user_ui/mine/pages/house/addhouse.vue
  10. 88 0
      user_ui/mine/pages/house/address.vue
  11. 155 0
      user_ui/mine/pages/house/index.vue
  12. BIN
      user_ui/mine/static/check.png
  13. BIN
      user_ui/mine/static/edit.png
  14. BIN
      user_ui/mine/static/house/adrs.png
  15. BIN
      user_ui/mine/static/house/cara.png
  16. BIN
      user_ui/mine/static/house/carb.png
  17. BIN
      user_ui/mine/static/house/carc.png
  18. BIN
      user_ui/mine/static/house/chara.png
  19. BIN
      user_ui/mine/static/house/charb.png
  20. BIN
      user_ui/mine/static/house/cmico.png
  21. BIN
      user_ui/mine/static/house/house.png
  22. BIN
      user_ui/mine/static/house/icon_tjcl_tjxny.png
  23. BIN
      user_ui/mine/static/house/rimg.png
  24. BIN
      user_ui/mine/static/house/up.png
  25. BIN
      user_ui/mine/static/ncheck.png
  26. BIN
      user_ui/mine/static/nodata.png
  27. 95 46
      user_ui/pages.json
  28. 0 344
      user_ui/pages/index.vue
  29. 312 0
      user_ui/pages/index/index.vue
  30. 1 1
      user_ui/pages/indexs.vue
  31. 2 2
      user_ui/pages/login.vue
  32. 1 1
      user_ui/pages/mine/index.vue
  33. 1 1
      user_ui/pages/mine/setting/index.vue
  34. 0 1
      user_ui/pages/register.vue
  35. 1 2
      user_ui/pages/tlogin.vue
  36. 0 183
      user_ui/pages/work/index.vue
  37. 1 1
      user_ui/permission.js
  38. BIN
      user_ui/static/images/banner/banner01.jpg
  39. BIN
      user_ui/static/images/banner/banner02.jpg
  40. BIN
      user_ui/static/images/banner/banner03.jpg
  41. BIN
      user_ui/static/images/home/adra.png
  42. BIN
      user_ui/static/images/home/adrbg.png
  43. BIN
      user_ui/static/images/home/cbga.png
  44. BIN
      user_ui/static/images/home/cbgb.png
  45. BIN
      user_ui/static/images/home/cir.png
  46. BIN
      user_ui/static/images/home/conta.png
  47. BIN
      user_ui/static/images/home/contb.png
  48. BIN
      user_ui/static/images/home/contc.png
  49. BIN
      user_ui/static/images/home/contd.png
  50. BIN
      user_ui/static/images/home/deva.png
  51. BIN
      user_ui/static/images/home/eye.png
  52. BIN
      user_ui/static/images/home/htaba.png
  53. BIN
      user_ui/static/images/home/htabb.png
  54. BIN
      user_ui/static/images/home/htabc.png
  55. BIN
      user_ui/static/images/home/htabd.png
  56. BIN
      user_ui/static/images/home/htabe.png
  57. BIN
      user_ui/static/images/home/htabf.png
  58. BIN
      user_ui/static/images/home/htabg.png
  59. BIN
      user_ui/static/images/home/htabh.png
  60. BIN
      user_ui/static/images/home/htabi.png
  61. BIN
      user_ui/static/images/home/htabj.png
  62. BIN
      user_ui/static/images/home/htabk.png
  63. BIN
      user_ui/static/images/home/htabl.png
  64. BIN
      user_ui/static/images/home/htabm.png
  65. BIN
      user_ui/static/images/home/htabn.png
  66. BIN
      user_ui/static/images/home/htabo.png
  67. BIN
      user_ui/static/images/home/htabp.png
  68. BIN
      user_ui/static/images/home/jfico.png
  69. BIN
      user_ui/static/images/home/lista.png
  70. BIN
      user_ui/static/images/home/listb.png
  71. BIN
      user_ui/static/images/home/listc.png
  72. BIN
      user_ui/static/images/home/more.png
  73. BIN
      user_ui/static/images/home/rimg.png
  74. BIN
      user_ui/static/images/home/tips.png
  75. BIN
      user_ui/static/images/home/up.png
  76. BIN
      user_ui/static/images/home/voice.png
  77. BIN
      user_ui/static/images/home/yhbg.png
  78. BIN
      user_ui/static/images/mine/icon_dl_xs.png
  79. BIN
      user_ui/static/images/mine/icon_dl_yc.png
  80. BIN
      user_ui/static/images/mine/icon_dlzc_sjhm_xl.png
  81. BIN
      user_ui/static/images/mine/ldicon.png
  82. BIN
      user_ui/static/images/navbg.png
  83. BIN
      user_ui/static/images/nodata.png
  84. BIN
      user_ui/static/images/rimg.png
  85. 51 5
      user_ui/static/style.css
  86. 129 0
      user_ui/work/components/box/list.vue
  87. 0 164
      user_ui/work/components/car/list.vue
  88. 204 0
      user_ui/work/components/popup/pay.vue
  89. 35 979
      user_ui/work/components/popup/popup.vue
  90. 0 153
      user_ui/work/pages/car/carcheck.vue
  91. 0 138
      user_ui/work/pages/car/carku.vue
  92. 0 175
      user_ui/work/pages/car/illegalParking.vue
  93. 0 153
      user_ui/work/pages/car/illegalcheck.vue
  94. 215 0
      user_ui/work/pages/clean/detail.vue
  95. 213 0
      user_ui/work/pages/clean/index.vue
  96. 21 32
      user_ui/work/pages/service/warranty.vue
  97. 183 0
      user_ui/work/pages/service/warrantyadd.vue
  98. 209 0
      user_ui/work/pages/service/warrantydetail.vue
  99. 114 0
      user_ui/work/pages/visitor/index.vue
  100. BIN
      user_ui/work/static/car/car.png

+ 216 - 0
user_ui/components/box/list.vue

@@ -0,0 +1,216 @@
+<template>
+<view>
+	<!-- 第一种样式  人员管理-->
+	<block v-if="datainfo.length>0">
+		<!-- 订单 -->
+		<block v-if="type=='delivery'">
+			<view class="kdlists flexc" v-for="(ite,idx) in datainfo" :key="idx">
+				<view class="kdll">
+					<image :src="deva" class="limg"></image>
+					<view class="tit pr35">运输中</view>
+					<view class="over tit">陕西老潼关肉…</view>
+					<view class="time">12-03  22:05 </view>
+				</view>
+				<view class="kdlr">
+					<image :src="cirimg" class="limg"></image>
+					<view>
+						<view class="txt">运输中</view>
+						<view class="tit overtwo">【沧州市】快件已发往 蚌埠转运中心</view>
+						<view class="time">12-03  22:05 </view>
+					</view>
+				</view>
+			</view>
+		</block>
+		<!-- 优惠券 -->
+		<view v-if="type=='coupon'" class="coubox">
+			<view class="coulists flexc" v-for="(ite,idx) in datainfo" :key="idx">
+				<image :src="yhbg" class="yhbg"></image>
+				<view class="coulist flexc">
+					<view class="cltl flexccc">
+						<view class="tit">30<text>元</text></view>
+						<view class="txt">满100减30</view>
+					</view>
+					<view class="line"></view>
+					<view class="cltr">
+						<view class="over tit">合家福商品优惠券满100…</view>
+						<view class="btns">
+							<image :src="jfico" class="jfimg"></image>
+							<view class="txt">1000<text>积分</text></view>
+							<view class="btn flex0 flexcc">兑换</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<!-- 资讯 -->
+		<block v-if="type=='news'">
+			<view class="newslists flexc" v-for="(ite,idx) in datainfo" :key="idx">
+				<image :src="jfico" class="newsll"></image>	
+				<view class="newslr over flex1">
+					<view class="flexc mb8">
+						<view class="over tit flex1">合肥市跌幅最大的小区房价公布</view>
+						<view class="num flexc"><image :src="eye"></image>1361</view>
+					</view>
+					<view class="overtwo txt">对于合肥市这座城来说,可供选择的项目太多了,合肥市的购房者买房一定要三思而后行,货比三…</view>
+				</view>
+			</view>
+		</block>
+		<view class="shax" v-if="wtdt">{{wtdt}}</view>
+	</block>
+	
+	<!-- 无数据 -->
+	<view class="nodata" v-else>
+		<image :src="noiconpimg"></image>
+		<view>暂无数据</view>
+	</view>
+</view>
+</template>
+
+<script>
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import config from '@/config'
+	export default{
+		props:{
+			datainfo: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			wtdt:{
+				type:String,
+				default () {
+					return ''
+				}
+			},
+			wtdtfalg:{
+				type:Boolean,
+				default () {
+					return true
+				}
+			},
+			type:{
+				type:String,
+				default () {
+					return 0
+				}
+			},
+			topval:{
+				type:String,
+				default () {
+					return ''
+				}
+			}
+		},
+		data(){
+			return{
+				noiconpimg:require("@/static/images/nodata.png"),
+				yhbg:require("@/static/images/home/yhbg.png"),
+				cirimg:require("@/static/images/home/cir.png"),
+				deva:require("@/static/images/home/deva.png"),
+				jfico:require("@/static/images/home/jfico.png"),
+				eye:require("@/static/images/home/eye.png"),
+				baseUrl:config.baseUrl,
+				delBtnWidth:66,//左滑默认宽度
+			}
+		},
+		mounted() {
+			
+		},
+		methods:{
+			checkPermi, checkRole,
+			getDetail(e){
+				this.$emit('getDetail',e)
+			},
+			getAddFn(e){
+				this.$emit('getAddFn',e)
+			},
+			getReadlist(e){
+				this.$emit('getReadlist',e)
+			},
+			getBtnFn(e){
+				this.$emit('getBtnFn',e)
+			},
+			getZhan(idx){
+				console.log(idx,1)
+				// var obj=JSON.parse(JSON.stringify(this.datainfo))[idx]
+				// obj.zhanflag=!obj.zhanflag;
+				// this.datainfo.splice(idx,1,obj);
+				this.datainfo[idx].zhanflag=!this.datainfo[idx].zhanflag
+			},
+			getPreview(idx,arr) {
+				var newArr=[];
+				arr.forEach(ite=>{
+					var ds=this.baseUrl+ite
+					newArr.push(ds)
+				})
+				uni.previewImage({
+					urls: newArr,
+					current:idx,
+					success: function(data) {},
+					fail: function(err) {}
+				});
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.flex{display: flex;}
+.flexc{display: flex;align-items: center;}
+.mb10{margin-bottom: 20rpx;}
+.kdlists{background: #FFFFFF;box-shadow: 0px 0px 8rpx 0px #CDCDCD;border-radius: 20rpx;margin-bottom: 24rpx;
+	.kdll{background: #E4EDFF;width: 220rpx;border-radius:20rpx 0 0 20rpx;flex: 0 0 auto;height: 160rpx;position: relative;padding: 30rpx 0 0 24rpx;
+		.limg{width: 42rpx;height: 42rpx;position: absolute;right: 20rpx;top: 24rpx;}	
+	}
+	.tit{font-weight: 500;font-size: 24rpx;color: #000000;margin-bottom: 8rpx;}
+	.time{font-weight: 500;font-size:20rpx;color: #AAAAAA;}
+	.kdlr{flex: 1;height: 160rpx;padding-left: 20rpx;padding-top: 30rpx;display: flex;
+		.limg{width: 24rpx;height: 24rpx;margin-right: 16rpx;flex: 0 0 auto;margin-top: 5rpx;}
+		.txt{font-size: 26rpx;font-weight: 500;color: #000000;margin-bottom: 6rpx;}
+	}
+}
+//优惠券
+.coubox{display: flex;flex-wrap: nowrap;overflow: auto;padding-left: 24rpx;}
+.coulists{width:524rpx;height: 156rpx;margin-right: 24rpx;
+	position: relative;
+	.yhbg{position: absolute;left: 0;top: 0;width:524rpx;height: 156rpx;z-index: 0;}
+	.coulist{width:100%;height: 100%;z-index: 1;
+		.cltl{width: 156rpx;flex: 0 0 auto;
+			.tit{font-weight: bold;font-size: 44rpx;color: #FE5A0E;margin-bottom: 2rpx;
+				text{font-size: 24rpx;}
+			}
+			.txt{font-weight: bold;font-size: 20rpx;color: #979797;}
+		}
+		.line{width: 2rpx;height: 80rpx;background: #ECD19D;flex: 0 0 auto;}
+		.cltr{height: 156rpx;padding:24rpx 20rpx 0 16rpx;
+			.tit{font-size: 28rpx;color: #272727;font-weight: bold;padding-left: 2rpx;margin-bottom: 26rpx;}
+			.btns{display: flex;align-items: center;
+				.jfimg{width: 28rpx;height: 28rpx;margin-right: 10rpx;flex: 0 0 auto;}
+				.txt{font-size: 40rpx;color: #FE5A0E;font-weight: bold;flex: 1;
+					text{margin-left: 12rpx;font-size: 24rpx;}
+				}
+				.btn{min-width: 92rpx;font-weight: bold;font-size: 24rpx;color: #FFFFFF;height:42rpx;background: linear-gradient(129deg, #FFB132, #FE5A0E);border-radius: 11px;}
+			}
+		}
+	}
+}
+// 资讯
+.newslists{border-bottom: 2rpx solid #E5E5E5;padding: 30rpx 0;
+	.newsll{width: 136rpx;height: 136rpx;border-radius: 24rpx;margin-right: 22rpx;flex: 0 0 auto;}
+	.newslr{
+		.tit{font-size: 26rpx;color: #272727;font-weight: bold;}
+		.num{font-weight: 500;font-size:22rpx;color: #666666;margin-left: 24rpx;flex: 0 0 auto;
+			image{width: 24rpx;height: 18rpx;margin-right: 10rpx;}
+		}
+		.txt{font-weight: 500;font-size: 24rpx;color: #8F8F8F;line-height: 36rpx;}
+	}
+}
+
+// 无数据
+.nodata{display: flex;flex-direction: column;align-items: center;
+	image{width: 440rpx;height: 440rpx;}
+	view{font-size: 30rpx;color: #666666;font-weight: bold;}
+	
+}
+</style>

+ 17 - 13
user_ui/components/swiper/notice.vue

@@ -1,15 +1,17 @@
 <template>
 <template>
   <view v-if="noticelist.length">
   <view v-if="noticelist.length">
-	  <view class="hswip flexc" >
-	  		<image :src="tztip" class="tipimg"></image>
-			<!-- :indicator-color="nactiveColor" :indicator-active-color="activeColor" -->
-			<swiper class="swiper" circular :autoplay="autoplay" :interval="interval" :duration="duration" vertical='true'>
+	  <view class="hswip" >
+			<image :src="tips" class="tipimg"></image>
+			  
+	  		<image :src="voice" class="voiceimg"></image>
+			<!--  -->
+			<swiper class="swiper" indicator-dots="true" :indicator-color="nactiveColor" :indicator-active-color="activeColor" circular :autoplay="autoplay" :interval="interval" :duration="duration" vertical='true'>
 				<swiper-item v-for="(ite,idx) in noticelist" :key="">
 				<swiper-item v-for="(ite,idx) in noticelist" :key="">
 					<view class="flexc swipers" @click="getDetail(ite.noticeId)">
 					<view class="flexc swipers" @click="getDetail(ite.noticeId)">
 						<view class="tit over">{{ite.noticeTitle}}</view>
 						<view class="tit over">{{ite.noticeTitle}}</view>
-						<view class="num flexcc">{{ite.num}}</view>
-						<image :src="rimg" class="rimg"></image>
-						<!-- <view class="time">{{ite.issuerTime}}</view> -->
+						<!-- <view class="num flexcc">{{ite.num}}</view> -->
+						<!-- <image :src="rimg" class="rimg"></image> -->
+						<view class="time">{{ite.num}}</view>
 						<!-- <view class="time" v-if="ite.createTime">{{ite.createTime.substring(0,10)}}</view> -->
 						<!-- <view class="time" v-if="ite.createTime">{{ite.createTime.substring(0,10)}}</view> -->
 					</view>
 					</view>
 				</swiper-item>
 				</swiper-item>
@@ -50,8 +52,8 @@
 	  },
 	  },
 	data(){
 	data(){
 		return{
 		return{
-			tztip:require('@/static/images/home/tips.png'),
-			rimg:require('@/static/images/home/rimg.png'),
+			tips:require("@/static/images/home/tips.png"),
+			voice:require("@/static/images/home/voice.png"),
             interval: 2000,
             interval: 2000,
             duration: 500
             duration: 500
 		}
 		}
@@ -72,11 +74,13 @@
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .hswip /deep/ .uni-swiper-dots-vertical{right: 0;}
 .hswip /deep/ .uni-swiper-dots-vertical{right: 0;}
 .hswip /deep/  .uni-swiper-dot{width: 10rpx; height: 10rpx;}
 .hswip /deep/  .uni-swiper-dot{width: 10rpx; height: 10rpx;}
-.hswip{width: 100%;background: #ffffff;border-radius: 20rpx;height: 100rpx;padding: 0 24rpx 0 26rpx;box-sizing: border-box;box-shadow: 0px 0px 3px 0px #DEDEDE;
-	.tipimg{width: 38rpx;height: 40rpx;flex: 0 0 auto;margin-right: 22rpx;}
-	.swiper{flex: 1;height: 100rpx;
-	.swipers{height: 100rpx;}
+.hswip{width: 100%;background: #ffffff;border-radius: 20rpx;height:156rpx;padding: 32rpx 28rpx 0 24rpx;box-sizing: border-box;box-shadow: 0px 0px 6rpx 0px #DEDEDE;position: relative;
+	.tipimg{width: 168rpx;height: 32rpx;flex: 0 0 auto;margin-right: 22rpx;margin-bottom: 2rpx;}
+	.voiceimg{width: 96rpx;height: 82rpx;position: absolute;right: 26rpx;top: 12rpx;}
+	.swiper{flex: 1;height: 72rpx;z-index: 1;
+	.swipers{height: 72rpx;padding-right: 60rpx;}
 		.tit{flex: 1;font-weight: 500;font-size: 26rpx;color: #272707;}
 		.tit{flex: 1;font-weight: 500;font-size: 26rpx;color: #272707;}
+		.time{font-weight: 500;font-size: 22rpx;color: #AAAAAA;}
 		.num{font-weight: bold;
 		.num{font-weight: bold;
 font-size: 22rpx;min-width: 30rpx;height: 30rpx;padding: 0 4rpx;box-sizing: border-box;background: #D32C26;border-radius: 30rpx;color: #FFFFFF;margin-left: 14rpx;}
 font-size: 22rpx;min-width: 30rpx;height: 30rpx;padding: 0 4rpx;box-sizing: border-box;background: #D32C26;border-radius: 30rpx;color: #FFFFFF;margin-left: 14rpx;}
 		.rimg{width: 14rpx;height: 24rpx;margin-left: 14rpx;}
 		.rimg{width: 14rpx;height: 24rpx;margin-left: 14rpx;}

+ 158 - 0
user_ui/mine/components/box/list.vue

@@ -0,0 +1,158 @@
+<template>
+<view>
+	<!-- 第一种样式  人员管理-->
+	<block v-if="datainfo.length>0">
+		<block v-if="type=='mycar'">
+			<view class="carlist" v-for="(ite,idx) in datainfo" :key="idx">
+				<view class="carltop flexc">
+					<view class="flex1">
+						<view class="tit mb6" :class="ite.type==1?'co01':'co16'">皖A 86KY2·白</view>
+						<view class="txt flexc">奔驰·E300L
+							<view class="txtbtn flexcc" v-if="ite.type==2">新能源</view>
+						</view>
+					</view>
+					<image :src="cara" class="cara" v-if="ite.type==1"></image>
+					<image :src="carb" class="carb" v-if="ite.type==2"></image>
+				</view>
+				<view class="carlf">
+					<view class="clflist">发动机号码 :916509</view>
+					<view class="clflist">车辆识别代号:LFV2A21K7D4044585</view>
+					<view class="flexc">
+						<view class="clflist w50">注册日期:2015-03-18</view>
+						<view class="clflist w50">发证日期:2015-03-18</view>
+					</view>
+				</view>
+			</view>
+		</block>
+		<!-- 地址 -->
+		<block v-if="type=='address'">
+			<view class="adrlist flexc" :class="ite.isdefault?'act':''" v-for="(ite,idx) in datainfo" :key="idx">
+				<view class="adrl flex1">
+					<view class="tit mb5">安徽省 合肥市 蜀山区 高新技术产业开发区</view>
+					<view class="txt mb5">幸福大街88号幸福小区12#1304</view>
+					<view class="txts flexc">袁玥  <text class="ml8">18305687768</text>
+						<text class="ml8 btns" v-if="ite.isdefault">默认</text>
+						<text class="ml8 btns" v-if="ite.isuser">最近使用</text>
+					</view>
+				</view>
+				<view class="adrr flexcc">
+					<image :src="edit"></image>
+				</view>
+			</view>
+		</block>
+		<view class="shax" v-if="wtdt">{{wtdt}}</view>
+	</block>
+	<!-- 无数据 -->
+	<view class="nodata" v-else>
+		<image :src="noiconpimg"></image>
+		<view>
+			暂无数据
+		</view>
+	</view>
+</view>
+</template>
+
+<script>
+	import config from '@/config'
+	export default{
+		props:{
+			datainfo: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			wtdt:{
+				type:String,
+				default () {
+					return ''
+				}
+			},
+			type:{
+				type:String,
+				default () {
+					return 0
+				}
+			},
+			topval:{
+				type:String,
+				default () {
+					return ''
+				}
+			}
+		},
+		data(){
+			return{
+				noiconpimg:require("@/mine/static/nodata.png"),
+				cara:require("@/mine/static/house/cara.png"),
+				carb:require("@/mine/static/house/carb.png"),
+				edit:require("@/mine/static/edit.png"),
+				
+				baseUrl:config.baseUrl,
+				
+			}
+		},
+		mounted() {
+			
+		},
+		methods:{
+			getDetail(e){
+				this.$emit('getdetail',e)
+			},
+			getPreview(idx,arr) {
+				var newArr=[];
+				arr.forEach(ite=>{
+					var ds=this.baseUrl+ite
+					newArr.push(ds)
+				})
+				uni.previewImage({
+					urls: newArr,
+					current:idx,
+					success: function(data) {},
+					fail: function(err) {}
+				});
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.flex{display: flex;}
+.flexc{display: flex;align-items: center;}
+.mb10{margin-bottom: 20rpx;}
+.carlist{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;padding: 0 24rpx;
+	.carltop{min-height: 154rpx;border-bottom: 2rpx solid #E5E5E5;
+		.tit{font-weight: bold;font-size: 32rpx;}
+		.txt{font-weight: 500;font-size: 26rpx;color: #272727;}
+		.txtbtn{min-width: 82rpx;
+height: 32rpx;font-weight: 500;font-size: 20rpx;color: #45CB99;
+border-radius: 16rpx;border: 1px solid #45CB99;margin-left: 12rpx;}
+		.cara{flex: 0 0 auto;width: 232rpx;height: 74rpx;margin-right: 40rpx;}
+		.carb{flex: 0 0 auto;width: 278rpx;height: 130rpx;}
+	}
+	.carlf{padding:26rpx 0 10rpx;
+		.clflist{font-weight: 500;font-size: 26rpx;color: #666666;margin-bottom: 16rpx;}
+	}
+}
+// 收货地址
+.adrlist{border-bottom: 2rpx solid  #E5E5E5;padding: 34rpx 0 34rpx 8rpx;
+	.tit{font-weight: 500;font-size: 22rpx;color: #666666;}
+	.txt{font-size: 28rpx;color: #272727;font-weight: bold;}
+	.txts{font-weight: 500;font-size: 26rpx;color: #272727;}
+	.btns{font-weight: 500;font-size: 22rpx;color: #0256FD;padding: 2rpx 14rpx;display:inline-block;background: #C9DBFF;
+border-radius: 10rpx;}
+	.adrr{width: 40rpx;height: 40rpx;flex: 0 0 auto;margin-left: 12rpx;
+		image{width: 22rpx;height: 22rpx;}
+	}
+	&.act{
+		.tit{color: #0256FD;}
+		.txt{color: #0256FD;}
+		.txts{color: #0256FD;}
+	}
+}
+// 无数据
+.nodata{display: flex;flex-direction: column;align-items: center;
+	image{width: 440rpx;height: 440rpx;}
+	view{font-size: 30rpx;color: #666666;font-weight: bold;}
+}
+</style>

+ 379 - 0
user_ui/mine/components/popup/popup.vue

@@ -0,0 +1,379 @@
+<template>
+	<view>
+		<!-- 弹窗 -->
+		<view class="bgbox" @click="getClose" v-if="type"></view>
+		<!-- 指派 -->
+		<view v-if="type=='assign'" class="assignbox">
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { getToken } from '@/utils/auth'
+	import {uploadmore} from '@/utils/common.js'
+	export default{
+		components:{},
+		props:{
+			type: {
+				type: String,
+				default () {
+					return ''
+				}
+			},
+			finshtype:{
+				type: [String,Number],
+				default () {
+					return ''
+				}
+			}
+		},
+		data(){
+			return{
+				//附件
+				option: {
+				    // 上传服务器地址,需要替换为你的接口地址
+				    url: baseUrl+'/common/uploadNew', // 该地址非真实路径,需替换为你项目自己的接口地址
+				    // 上传附件的key
+				    name: 'file',
+				    // 根据你接口需求自定义请求头,默认不要写content-type,让浏览器自适配
+				    header: {
+				        // 示例参数可删除
+				        'Authorization':  'Bearer ' + getToken(),
+				    },
+				    // 根据你接口需求自定义body参数
+				    formData: {
+						loanApplicationNumber:'',
+						loanApplicationId:'',
+					}
+				},
+				// 借据上传
+				jjoption: {
+				    // 上传服务器地址,需要替换为你的接口地址
+				    url: baseUrl+'/common/uploadNewOcr', // 该地址非真实路径,需替换为你项目自己的接口地址
+				    // 上传附件的key
+				    name: 'file',
+				    // 根据你接口需求自定义请求头,默认不要写content-type,让浏览器自适配
+				    header: {
+				        // 示例参数可删除
+				        'Authorization':  'Bearer ' + getToken(),
+				    },
+				    // 根据你接口需求自定义body参数
+				    formData: {
+						loanApplicationNumber:'',
+						loanApplicationId:'',
+					}
+				},
+				// 选择文件后是否立即自动上传,true=选择后立即上传
+				instantly: true,
+				// 必传宽高且宽高应与slot宽高保持一致
+				width: '',
+				height: '40rpx',
+				// 限制允许上传的格式,空串=不限制,默认为空
+				formats: 'doc,docx,xls,xlsx,ppt,txt,pdf,zip,rar,word,png,jpg,jpeg',
+				// 文件上传大小限制
+				size: 100,
+				// 文件数量限制 默认10
+				count: 5,
+				// 文件回显列表
+				files: new Map(),
+				// 微信小程序Map对象for循环不显示,所以转成普通数组,不要问为什么,我也不知道
+				wxFiles: [],
+				// 是否打印日志
+				debug: false,
+				filelist:[{name:"123"}],
+				filico:require('@/work/static/filico.png'),
+				fdelimg:require('@/work/static/fjdel.png'),
+				
+				baseUrl:config.baseUrl,
+				closeimg:require("@/work/static/close.png"),
+				syqxidx:'',
+				datainfo:{
+					iszc:""
+				},
+				sexs: [{
+					text: '男',
+					value: 0
+				}, {
+					text: '女',
+					value: 1
+				}],
+				peoval:0,
+				peolist:[{name:'王安安',val:"0",type:0},{name:'刘柠溪',val:"1",type:1},{name:'王合一',val:"2",type:0},]
+			}
+		},
+		mounted() {
+			this.baseUrl=baseUrl
+		},
+		watch:{
+			loanApplicationNumber(val){
+				this.option.formData.loanApplicationNumber=val
+				this.jjoption.formData.loanApplicationNumber=val
+			},
+			loanApplicationId(val){
+				this.option.formData.loanApplicationId=val
+				this.jjoption.formData.loanApplicationId=val
+			},
+			type(val){
+				// this.filelist=[];
+				// this.shtext='';
+				// this.isty='2';
+				// this.phofile=[];
+			}
+		},
+		methods:{
+			bindDateChange(){
+				var val=e.detail.value;
+			},
+			getClose(){
+				this.$emit('getClose')
+			},
+			getSure(){
+				this.$emit('getSure')
+			},
+			getChose(val){
+				this.peoval=val
+			},
+			getPreviewImage(arr,idx){
+				var newArr=[];
+				arr.forEach(ite=>{
+					var ds=this.baseUrl+ite
+					newArr.push(ds)
+				})
+				uni.previewImage({
+					urls: newArr,
+					current:idx,
+					success: function(data) {
+						
+					},
+					fail: function(err) {
+						
+					}
+				});
+			},
+			// 上传
+			onuploadEnd(item,fileVal,bigType) {
+				var newobj={}
+				var responseText=JSON.parse(item.responseText)
+				if(responseText.code==200){
+					if(fileVal=='qtfj'){
+						newobj.name=responseText.originalFilename;
+					}else{
+						newobj.name=responseText.newFileName;
+					}
+					newobj.oldName=responseText.originalFilename;
+					newobj.url=responseText.fileName;
+					newobj.type=fileVal;
+					newobj.bigType=bigType;
+					newobj.loanApplicationId=this.loanApplicationId;
+					newobj.loanApplicationNumber=this.loanApplicationNumber;
+					this.filelist.push(newobj)
+				}else{
+					this.$toast(responseText.msg)
+				}
+			},
+			getDelFj(idx){
+				var that=this;
+				uni.showModal({
+					title: '确认删除',
+					content: "是否确认删除",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							that.filelist.splice(idx,1)
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getDown(path,name){
+				console.log(path,name)
+				// #ifdef APP-PLUS
+				self.getFilePermissions(function(res){
+					if(res==1){
+						uni.showLoading({
+							title: '加载中'
+						});
+						var url = baseUrl + path;
+						let dtask = plus.downloader.createDownload(url, {
+							filename: 'file://storage/emulated/0/'+baseName+'/' + name
+						}, (d, status) => {
+							//d为下载的文件对象
+							if (status == 200) {
+								uni.hideLoading();
+								uni.showToast({
+									icon: 'none',
+									mask: true,
+									title: '已保存到文件夹:/'+baseName+'/'+ name, //保存路径
+									duration: 3000,
+								});
+								
+								//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
+								let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
+								setTimeout(() => {
+									plus.runtime.openFile(d.filename); //选择软件打开文件
+								}, 1500)
+							} else {
+								//下载失败
+								uni.hideLoading();
+								plus.downloader.clear(); //清除下载任务
+								uni.showToast({
+									icon: 'none',
+									mask: true,
+									title: '下载失败,请稍后重试',
+								});
+							}
+						})
+						dtask.start();
+					}else{
+						uni.hideLoading();
+						uni.showToast({
+							title: '无法获取权限,文件下载将出错!',
+							icon: 'none',
+						})
+					}			
+				})
+				// #endif
+				// #ifndef APP-PLUS
+				this.getDownloader(path)
+				// #endif
+			},
+			getDownloader(e){
+				uni.showLoading({
+					title: '加载中'
+				});
+				var url=baseUrl+e;
+				let index1 = e.lastIndexOf("."); // 得到一个索引值
+				let index2 = e.length;
+				let type = e.substring(index1, index2);
+				if ((type.indexOf('jpg') > -1 || type.indexOf('jpeg') > -1 || type.indexOf('png') > -1)) {
+					uni.previewImage({
+						current: 0,
+						urls: [url],
+						// background: '#ffffff'
+					});
+					uni.hideLoading();
+				} else {
+				uni.downloadFile({
+					url: url,//文件的下载路径
+					success(result) {
+							uni.hideLoading()
+						var filePath = result.tempFilePath;
+						   uni.openDocument({
+						     filePath: filePath,
+						     showMenu: true,
+						     success: function (res) {
+						       // console.log('打开文档成功');
+						     }
+						   });
+					},
+					fail(res) {uni.hideLoading()}
+				})
+				}
+			},
+			getDelFn(){
+				var that=this;
+				uni.showModal({
+					title: '确认删除',
+					content: "是否确认删除",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							// that.filelist.splice(idx,1)
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getaddImage(e){
+				let that = this;
+				let file =[],count=9
+				uni.chooseImage({
+					count: 1,
+					success:function(res){
+						let img= res.tempFilePaths;
+						if(img.length + file.length > count){
+							uni.showToast({
+								title: '最多上传'+count+'张图片',
+								icon: 'none',
+								duration: 2000
+							})
+						}else{
+							let imglen = res.tempFilePaths.length;
+							var fuwufile = [];
+							uploadmore('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
+								var resurl=rs[0];
+								// if(e=='front'){
+								// 	that.datainfo.front=resurl.fileName;
+								// }else{
+								// 	that.datainfo.back=resurl.fileName;
+								// }
+							})	
+						}
+					}
+				});
+			},
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>	
+// 指派
+.assignbox{background: #FFFFFF;border-radius: 20rpx;position: fixed;left:56rpx;right:54rpx;z-index: 10;top: 50%;transform: translateY(-50%);padding: 32rpx 38rpx 36rpx;
+	.assbox{max-height: calc(100vh - 300rpx);overflow: auto;}
+	.asstit{font-weight: bold;font-size: 30rpx;color: #272727;text-align: center;padding-left: 16rpx;margin-bottom: 28rpx;}
+	.rimg{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;
+		image{width: 100%;height: 100%;}
+	}
+	.asline{border-bottom: 2rpx solid #E5E5E5;padding: 30rpx 0;margin-bottom: 40rpx;}
+	.tabtit{font-weight: bold;font-size: 26rpx;color: #272727;line-height: 36rpx;margin-bottom: 24rpx;padding-left: 14rpx;}
+	.asslists{display: flex;flex-wrap: wrap;
+		.asslist{width: 252rpx;height: 76rpx;border-radius: 20rpx;border: 2rpx solid #DADADA;position: relative;display: flex;align-items: center;box-sizing: border-box;padding: 0 22rpx;margin: 0 14rpx 24rpx 14rpx;overflow: hidden;
+			&.act{border-color: #0256FD;
+				.altit{color: #0256FD;}
+			}
+			image{position: absolute;right: -2rpx;bottom: -2rpx;width: 34rpx;height: 32rpx;}
+			.altit{font-weight: bold;font-size: 26rpx;color: #666666;flex: 1;}
+			.altxt{font-weight: bold;font-size: 22rpx;flex: 0 0 auto;}
+		}
+	}
+	
+	// 上传图片
+	&.pra{left: 100rpx;right: 100rpx;}
+	.assadd{display: flex;flex-direction: column;align-items: center;justify-content: center;border-radius: 10rpx;height: 192rpx;
+border: 2rpx dashed #A7A7A7;box-sizing: border-box;margin-bottom: 32rpx;
+		image{width:48rpx;height: 40rpx;margin-bottom: 16rpx;}
+		view{font-weight: bold;font-size: 26rpx;color: #272727;}
+	}
+	.assimgs{display: flex;align-items: center;flex-wrap: wrap;margin-bottom: 8rpx;
+		.assimg{width: 140rpx;height: 140rpx;position: relative;overflow: hidden;margin: 0 24rpx 24rpx 0;
+			&:nth-of-type(3n){margin-right: 0;}
+			.img{width: 100%;height: 100%;}
+			.delimg{width: 24rpx;height: 24rpx;position: absolute;right: 0;top: 0;}
+		}
+	}
+}
+.voice{font-weight: 500;display: flex;justify-content:flex-end;align-items: center;margin-top: 40rpx;
+font-size: 24rpx;
+color: #45CB99;
+		image{width: 24rpx;height: 24rpx;margin-right: 8rpx;}
+	}
+// 附件
+	.fjlists {display: flex;align-items: flex-start;justify-content: space-between;margin-bottom: 20rpx;
+		&:last-child{margin-bottom: 0;}
+		.imgl{width: 40rpx;height: 40rpx;display: flex;align-items: center;flex: 0 0 auto;
+			image{width: 26rpx;height: 24rpx;}
+		}
+		.tit{font-size: 26rpx;color: #222327;font-weight: 500;margin-top: 4rpx;word-break: break-all;}
+		.delimg{width: 40rpx;height:40rpx;margin-left: 16rpx;display: flex;align-items: center;justify-content: center;flex: 0 0 auto;
+			image{width: 24rpx;height: 24rpx;}
+		}
+		.txta{color: #28C529;font-weight: 500;line-height: 40rpx;flex: 0 0 auto;margin-left: 18rpx;padding: 0 6rpx;}
+	}
+.closeimg{width: 32rpx;height: 32rpx;position: absolute;bottom: -62rpx;left: 50%;margin-left: -16rpx;}
+</style>

+ 199 - 0
user_ui/mine/pages/car/addcar.vue

@@ -0,0 +1,199 @@
+<template>
+	<view class="check">
+		<view class="cbox">
+			<view class="chtop flexc">
+				<view class="line"></view>
+				<view>车辆信息</view>
+			</view>
+			<view class="chmain">
+				<uni-forms ref="form" :model="datainfo">
+					<view class="upbox" @click="getaddImage">
+						<image :src="baseUrl+datainfo.front" class="img" v-if="datainfo.front"></image>
+						<image :src="cmico" class="addimg"></image>
+						<view>扫描行驶证自动填写</view>
+					</view>
+					<view class="carcode">
+						<view class="tit mb16 lh18"><text class="cof4">*</text>车牌号码</view>
+						<view>需车牌插件</view>
+					</view>
+					<block v-if="zhanfalg">
+					<uni-forms-item label="品牌车型" name="realName">
+						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择品牌车型'}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="车辆类型" name="realName">
+						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择车辆类型'}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+						<uni-forms-item label="车辆颜色" name="phonenumber">
+							<view class="flexc" @click.stop="">
+								<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请选择或输入车辆颜色" />
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</uni-forms-item>
+					</picker>
+					</block>
+					<view class="zhanbox flexcc" @click="zhanfalg=!zhanfalg">
+						{{zhanfalg?"折叠信息":'展开信息'}}<image :class="!zhanfalg?'act':''" :src="upimg"></image>
+					</view>
+				</uni-forms>
+				<view class="rhbtn mt30" @click="getNext">确定添加</view>
+			</view>
+		</view>
+		<loading></loading>
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {uploadIdentify} from '@/utils/common.js'
+	export default{
+		components:{},
+		data(){
+			return{
+				rimg: require('@/mine/static/house/rimg.png'),
+				cmico:require('@/mine/static/house/cmico.png'),
+				upimg:require('@/mine/static/house/up.png'),
+				baseUrl:config.baseUrl,
+				datainfo:{
+					realName:'',
+					idCard:'',
+					address:'',
+					expirationDate:'',
+					phonenumber:'',
+					front:'',
+					back:'',
+				},
+				zhanfalg:true,
+				syqxidx:'',
+				sexs: [{
+					text: '男',
+					value: 0
+				}, {
+					text: '女',
+					value: 1
+				}],
+			}
+		},
+		onLoad: function() {
+		
+		},
+		methods:{
+			checkPermi, checkRole,
+			getaddImage(e){
+				let that = this;
+				// var rs=['D:\\idcard.png']
+				// if(rs&&rs.length>0){
+				// 	var obj={
+				// 		type:e,
+				// 		// url:baseUrl+rs.join(',')
+				// 		url:rs.join(',')
+				// 	}
+				// 	that.getOcrIdCard(obj)
+				// }
+				// return
+				let file =[],count=9
+				uni.chooseImage({
+					count: 1,
+					success:function(res){
+						let img= res.tempFilePaths;
+						if(img.length + file.length > count){
+							uni.showToast({
+								title: '最多上传'+count+'张图片',
+								icon: 'none',
+								duration: 2000
+							})
+						}else{
+							let imglen = res.tempFilePaths.length;
+							var fuwufile = [];
+							uploadIdentify('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
+								var resurl=rs[0];
+								if(e=='front'){
+									that.datainfo.front=resurl.fileName;
+								}else{
+									that.datainfo.back=resurl.fileName;
+								}
+								if(rs&&rs.length>0){
+									var obj={
+										type:e,
+										url:resurl.urlOnline
+									}
+									that.getOcrIdCard(obj)
+								}
+							})	
+						}
+					}
+				});
+			},
+			getOcrIdCard(obj){
+				var params={
+					image:obj.url,
+					idCardSide:obj.type
+				}
+				getOcrIdCard(params).then(res=>{
+					if(res.code==200){
+						var datainfo=res.data;
+						if(obj.type=='front'){
+							this.datainfo.realName=datainfo.realName;
+							this.datainfo.idCard=datainfo.idCard;
+							this.datainfo.address=datainfo.address;
+						}else{
+							this.datainfo.expirationDate=datainfo.expirationDate
+						}
+					}
+				})
+			}
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.check /deep/ .uni-forms-item{min-height: 106rpx;box-sizing: border-box;display: flex;align-items: center;margin-bottom: 0;border-bottom: 2rpx solid #E6E6E6;padding:10rpx 0;}
+.check /deep/ .uni-forms-item__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;}
+.check /deep/ .uni-easyinput{flex: 1;text-align: right;font-size: 26rpx;color: #222327;}
+.check /deep/ .uni-easyinput__content-textarea{min-height: 40rpx;font-size: 26rpx;}
+.check /deep/ .uni-easyinput__placeholder-class{font-size: 26rpx;color: #AAAAAA;}
+.check /deep/ .uni-input-input{font-size: 26rpx;}
+.check /deep/ .uni-textarea-textarea{font-size: 26rpx;}
+.check /deep/ .uni-forms-item__label text{width: 110rpx;text-align-last: justify;}
+.check /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
+.check{min-height: 100vh;padding: 20rpx 24rpx 28rpx;box-sizing: border-box;display: flex;box-sizing: border-box;}
+.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;padding-bottom: 76rpx;
+	.chtop{padding-top: 32rpx;margin-bottom: 22rpx;
+		.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
+		view{font-weight: bold;font-size: 32rpx;color: #272727;}
+	}
+	.chmain{
+		padding: 0 24rpx;
+		.upbox{height: 224rpx;background: #EFF4FF;border-radius: 20rpx;display: flex;align-items: center;justify-content: center;flex-direction: column;margin-bottom: 44rpx;overflow: auto;
+			.img{width: 100%;height: 100%;}
+			.addimg{width: 90rpx;height: 90rpx;margin-bottom: 8rpx;}
+			view{font-weight: bold;font-size: 26rpx;color: #4C6686;}
+		}
+		.carcode{
+			.tit{font-weight: bold;font-size: 26rpx;color: #272727;}
+		}
+	}
+	.rimg{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;
+		image{width: 100%;height: 100%;}
+	}
+	.zhanbox{font-weight: 500;font-size: 24rpx;color: #AAAAAA;padding: 16rpx 0;margin-top: 20rpx;
+		image{width: 20rpx;height: 12rpx;margin-left: 18rpx;transition: all 0.3s;
+			&.act{transform: rotate(-180deg);}
+		}
+	}
+}
+.tips{font-weight: bold;color: #272727;font-size: 26rpx;margin-left: 8rpx;}
+</style>

+ 136 - 0
user_ui/mine/pages/car/charge.vue

@@ -0,0 +1,136 @@
+<template>
+	<view class="charge">
+		<view class="flex1">
+			<view class="chabox">
+				<view class="chatop mb38 flexcj">
+					<view class="tit flex0 mr12">7号充电桩</view>
+					<view class="txt">设备编号:400569856561B</view>
+				</view>
+				<view class="cimgs mb18">
+					<image :src="carc"></image>
+					<view class="flexcc mt5"><text class="cir"></text>正在充电中…</view>
+				</view>
+				<view class="chamain mb20">
+					<view class="flexc mb30">
+						<view class="chaml flexcc w50">
+							<image :src="chara"></image>
+							<view>
+								<view class="f12 mb4">充电时长</view>
+								<view class="f18">00 : 31 : 05</view>
+							</view>
+						</view>
+						<view class="chaml flexcc w50">
+							<image :src="charb"></image>
+							<view>
+								<view class="f12 mb4">已充电量度</view>
+								<view class="f12"><text class="f18">33.12</text> 度</view>
+							</view>
+						</view>
+					</view>
+					<view class="chamc flexcc">
+						<view>电量 30.3A</view>
+						<view>电压 220V</view>
+						<view>功率 15KW</view>
+					</view>
+				</view>
+				
+				<view class="rhbtn">停止充电</view>
+			</view>
+			<view class="chabox chalist">
+				<view class="tit mb14">最近充电</view>
+				<view class="flexc">
+					<view class="flex1">11月10日 23:17:51</view>
+					<view class="flex0">46.32度</view>
+					<image :src="rimg"></image>
+				</view>
+			</view>
+			
+		</view>
+		<view class="charftit flexcc">客服电话 <text class="co025 ml2">400-400-1234</text></view>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{},
+		data(){
+			return{
+				carc:require('@/mine/static/house/carc.png'),
+				chara:require('@/mine/static/house/chara.png'),
+				charb:require('@/mine/static/house/charb.png'),
+				rimg:require('@/mine/static/house/rimg.png'),
+				list:[],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+			}
+		},
+		onLoad: function() {
+		
+		},
+		methods:{
+			checkPermi, checkRole,
+			// getNextFn(){
+			// 	this.$tab.navigateTo("/work/pages/business/add")
+			// },
+			getDataFn(){
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.charge{padding: 20rpx 24rpx 100rpx;display: flex;flex-direction: column;min-height: 100vh;
+	.charftit{font-weight: 500;flex: 0 0 auto;font-size: 24rpx;color: #AAAAAA;}
+	.chabox{background: #FFFFFF;margin-bottom: 60rpx;border-radius: 20rpx;padding: 34rpx 24rpx 40rpx;
+		.chatop{
+			.tit{font-weight: bold;font-size: 30rpx;color: #272727;}
+			.txt{font-weight: 500;font-size: 26rpx;color: #666666;}
+		}
+		.cimgs{
+			image{width: 506rpx;height: 200rpx;margin: 0 auto;}
+			view{font-weight: bold;font-size: 26rpx;color: #272727;
+				.cir{display: inline-block;width: 14rpx;height: 14rpx;margin-right: 16rpx;background: #0AC86E;border-radius: 50%;}
+			}
+		}
+		.chamain{background: #EFF4FF;border-radius: 20rpx;
+			padding: 48rpx 20rpx 20rpx;
+			.chaml{
+				image{width: 30rpx;height: 30rpx;margin-right: 20rpx;flex: 0 0 auto;}
+				view{font-weight: bold;color: #272727;}	
+			}
+			.chamc{
+				view{font-weight: 500;font-size: 26rpx;color: #949494;padding: 0 38rpx;border-right: 2rpx solid #CDCDCD;box-sizing: border-box;line-height: 36rpx;
+					&:last-child{border-right: none;}
+				}
+			}
+		}
+		&.chalist{padding:34rpx 24rpx 32rpx ;
+			.tit{font-weight: bold;font-size: 30rpx;color: #272727;}
+			.txt{font-weight: 500;font-size: 26rpx;color: #666666;}
+			image{width:16rpx;height: 24rpx;flex: 0 0 auto;margin-left: 44rpx;}
+		}
+	}
+	
+}
+</style>

+ 98 - 0
user_ui/mine/pages/car/index.vue

@@ -0,0 +1,98 @@
+<template>
+	<view class="carbox">
+		<view class="flex1 cartop">
+			<box-list :datainfo="list" type="mycar"></box-list>
+			<view class="cartips flexc mt16 mb16" @click="getChargeFn">
+				<view class="tit flex1">当前有车辆<text class="co025">充电中…</text></view>
+				<image :src="rimg"></image>
+			</view>
+		</view>
+		<view class="plr12 flex0">
+			<view class="rhbtn" @click="getAddFn">添加车辆</view>
+		</view>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import boxList from "@/mine/components/box/list.vue"
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{boxList},
+		data(){
+			return{
+				rimg: require('@/mine/static/house/rimg.png'),
+				list:[{tit:'123',type:1},{tit:'123',type:2},],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+			}
+		},
+		onLoad: function() {
+		
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			getAddFn(){
+				this.$tab.navigateTo("/mine/pages/car/addcar")
+			},
+			getChargeFn(){
+				this.$tab.navigateTo("/mine/pages/car/charge")
+			},
+			getDataFn(){
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						if (res.rows.length < this.pageSize) {
+							this.reachflag = false
+							this.wtdt = '到底了~';
+						} else {
+							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+							if (num < res.total) {
+								this.reachflag = true
+								this.wtdt = ''
+							} else {
+								this.reachflag = false
+								this.wtdt = '到底了~';
+							}
+						}
+						if (this.pageNum == 1) {
+							this.list = res.rows;
+						} else {
+							this.list = this.list.concat(res.rows)
+						}
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.carbox{display: flex;flex-direction: column;min-height: 100vh;padding: 22rpx 18rpx 100rpx;
+	.cartop{overflow: auto;}
+	.cartips{background: #FFFFFF;border-radius: 20rpx;height: 98rpx;padding: 0 24rpx;
+		image{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;}
+		.tit{font-weight: bold;font-size: 26rpx;color: #272727;}
+	}
+}
+</style>

+ 145 - 0
user_ui/mine/pages/house/addaddress.vue

@@ -0,0 +1,145 @@
+<template>
+	<view class="address">
+		<uni-forms ref="form" :model="datainfo">
+			<view class="adrbox">
+				<uni-forms-item label="智能填写" name="realName">
+					<uni-easyinput type="textarea" autoHeight v-model="text" :inputBorder='false' placeholder="粘贴信息至此处可自动识别信息并填写" />
+				</uni-forms-item>
+				<uni-forms-item label="收货人"  name="phonenumber">
+					<view class="flexc">
+						<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="收货人姓名" />
+						<view class="rimg">
+							<image :src="rimg"></image>
+						</view>
+					</view>
+				</uni-forms-item>
+				<uni-forms-item label="手机号码"  name="phonenumber">
+					<view class="flexc">
+						<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="手机号码" />
+						<view class="rimg">
+							<image :src="rimg"></image>
+						</view>
+					</view>
+				</uni-forms-item>
+				<uni-forms-item label="收货人姓名"  name="phonenumber">
+					<view class="flexc">
+						<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="省、市、区、街道" />
+						<view class="rimg">
+							<image :src="rimg"></image>
+						</view>
+					</view>
+				</uni-forms-item>
+				<uni-forms-item label="详细地址"  name="phonenumber">
+					<view class="flexc">
+						<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="小区、门牌号等" />
+						<view class="rimg">
+							<image :src="rimg"></image>
+						</view>
+					</view>
+				</uni-forms-item>
+			</view>
+			<view class="adrbox mjbox">
+				<view class="tit mb15">住宅面积</view>
+				<view class="adrlist flexcw">
+					<view v-for="(ite,idx) in mjlist" :class="tabval==ite.val?'act':''" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
+				</view>
+			</view>
+			<view class="adrbox">
+				<uni-forms-item label="设置为默认地址" name="realName">
+					<view class="flexc" @click="checkflag=!checkflag">
+						<view class="flex1"></view>
+						<image :src="check" v-if="checkflag" class="checkimg"></image>
+						<image :src="ncheck" v-else class="checkimg"></image>
+					</view>
+				</uni-forms-item>
+			</view>
+			
+		</uni-forms>
+		
+		<view class="rhbtn mt30" @click="getAddFn">确定</view>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { addressPermi, addressRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{},
+		data(){
+			return{
+				rimg:require('@/static/images/rimg.png'),
+				check: require('@/mine/static/check.png'),
+				ncheck: require('@/mine/static/ncheck.png'),
+				list:[{tit:'123',isdefault:true},{tit:'212123',isdefault:false,isuser:true},],
+				text:"",
+				datainfo:{},
+				mjlist:[{tit:'80m²以内',val:'0'},{tit:'80-90m²',val:'1'},{tit:'90-119m²',val:'2'},{tit:'120-139m²',val:'3'},{tit:'140-159m²',val:'4'},{tit:'160m²以上',val:'5'},],
+				checkflag:true,
+				tabval:'0'
+			}
+		},
+		onLoad: function() {
+		
+		},
+		methods:{
+			addressPermi, addressRole,
+			getAddFn(){
+				// this.$tab.navigateTo("/mine/pages/house/addaddress")
+			},
+			getTabFn(val){
+				this.tabval=val
+			},
+			getDataFn(){
+				return
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.address /deep/ .uni-forms-item{min-height: 106rpx;box-sizing: border-box;display: flex;align-items: center;margin-bottom: 0;border-bottom: 2rpx solid #E6E6E6;padding:10rpx 0;}
+.address /deep/ .uni-forms-item:last-child{border-bottom: none;}
+.address /deep/ .uni-forms-item__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;}
+.address /deep/ .uni-easyinput{flex: 1;text-align: right;font-size: 26rpx;color: #222327;}
+.address /deep/ .uni-easyinput__content-textarea{min-height: 140rpx;font-size: 26rpx;background: #F4F4F4;
+border-radius: 10rpx;padding: 20rpx 14rpx;text-align: left;}
+.address /deep/ .uni-easyinput__placeholder-class{font-size: 26rpx;color: #AAAAAA;}
+.address /deep/ .uni-input-input{font-size: 26rpx;}
+.address /deep/ .uni-textarea-textarea{font-size: 26rpx;}
+.address /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
+.address{min-height: 100vh;padding: 20rpx 18rpx;display: flex;flex-direction: column;}
+.adrbox{background: #FFFFFF;border-radius: 20rpx;padding:0 30rpx;margin-bottom: 24rpx;
+	.rimg{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;
+		image{width: 100%;height: 100%;}
+	}
+	&.mjbox{
+		padding: 36rpx  24rpx 18rpx;
+		.tit{font-weight: bold;font-size: 26rpx;color: #272727;padding-left: 18rpx;}
+		.adrlist{
+			view{font-weight: bold;font-size: 26rpx;color: #666666;min-width: 198rpx;padding: 0 10rpx;box-sizing: border-box;margin: 0 12rpx 24rpx;height: 64rpx;display: flex;align-items: center;justify-content: center;border-radius: 10rpx;border: 2rpx solid #C1C1C1;
+			&.act{background: #DFEAFF;border: 2rpx solid #0256FD;color: #0256FD;}
+			}
+		}
+	}
+	
+	.checkimg{width: 80rpx;height: 40rpx;margin-right: 8rpx;}
+}
+
+</style>

+ 235 - 0
user_ui/mine/pages/house/addhouse.vue

@@ -0,0 +1,235 @@
+<template>
+	<view class="check">
+		<view class="cbox">
+			<view class="chtop flexc">
+				<view class="line"></view>
+				<view>房屋信息</view>
+			</view>
+			<view class="chmain">
+				<uni-forms ref="form" :model="datainfo">
+				<view class="upbox" @click="getaddImage">
+					<image :src="baseUrl+datainfo.front" class="img" v-if="datainfo.front"></image>
+					<image :src="cmico" class="addimg"></image>
+					<view>扫描房产证自动填写</view>
+				</view>
+				  <uni-forms-item label="房屋坐落" name="realName">
+					  <view class="flexc">
+					  	<uni-easyinput v-model="datainfo.realName" disabled :inputBorder='false' placeholder="自动识别" />
+					  	<view class="rimg"></view>
+					  </view>
+				  </uni-forms-item>
+					<uni-forms-item label="房屋所属" name="phonenumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="建筑面积" name="phonenumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="房型" name="realName">
+						<view class="flexjd">
+							<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+								<view class="flexc ml10">
+									<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择'}}</view>
+									<view class="tips">室</view>
+								</view>
+							</picker>
+							<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+								<view class="flexc ml10">
+									<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择'}}</view>
+									<view class="tips">厅</view>
+								</view>
+							</picker>
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="姓名" name="phonenumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入姓名" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="住户类型" name="realName">
+						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择住户类型'}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="是否户主" name="phonenumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="与户主关系" name="realName">
+						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择与户主关系'}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="居住人口" name="realName">
+						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择居住人口'}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="有无车位" name="realName">
+						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择有/无'}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+				</uni-forms>
+				<view class="rhbtn mt30" @click="getNext">确定添加</view>
+			</view>
+		</view>
+		<loading></loading>
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {uploadIdentify} from '@/utils/common.js'
+	export default{
+		components:{},
+		data(){
+			return{
+				rimg: require('@/mine/static/house/rimg.png'),
+				cmico:require('@/mine/static/house/cmico.png'),
+				baseUrl:config.baseUrl,
+				datainfo:{
+					realName:'',
+					idCard:'',
+					address:'',
+					expirationDate:'',
+					phonenumber:'',
+					front:'',
+					back:'',
+				},
+				syqxidx:'',
+				sexs: [{
+					text: '男',
+					value: 0
+				}, {
+					text: '女',
+					value: 1
+				}],
+			}
+		},
+		onLoad: function() {
+		
+		},
+		methods:{
+			checkPermi, checkRole,
+			getaddImage(e){
+				let that = this;
+				// var rs=['D:\\idcard.png']
+				// if(rs&&rs.length>0){
+				// 	var obj={
+				// 		type:e,
+				// 		// url:baseUrl+rs.join(',')
+				// 		url:rs.join(',')
+				// 	}
+				// 	that.getOcrIdCard(obj)
+				// }
+				// return
+				let file =[],count=9
+				uni.chooseImage({
+					count: 1,
+					success:function(res){
+						let img= res.tempFilePaths;
+						if(img.length + file.length > count){
+							uni.showToast({
+								title: '最多上传'+count+'张图片',
+								icon: 'none',
+								duration: 2000
+							})
+						}else{
+							let imglen = res.tempFilePaths.length;
+							var fuwufile = [];
+							uploadIdentify('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
+								var resurl=rs[0];
+								if(e=='front'){
+									that.datainfo.front=resurl.fileName;
+								}else{
+									that.datainfo.back=resurl.fileName;
+								}
+								if(rs&&rs.length>0){
+									var obj={
+										type:e,
+										url:resurl.urlOnline
+									}
+									that.getOcrIdCard(obj)
+								}
+							})	
+						}
+					}
+				});
+			},
+			getOcrIdCard(obj){
+				var params={
+					image:obj.url,
+					idCardSide:obj.type
+				}
+				getOcrIdCard(params).then(res=>{
+					if(res.code==200){
+						var datainfo=res.data;
+						if(obj.type=='front'){
+							this.datainfo.realName=datainfo.realName;
+							this.datainfo.idCard=datainfo.idCard;
+							this.datainfo.address=datainfo.address;
+						}else{
+							this.datainfo.expirationDate=datainfo.expirationDate
+						}
+					}
+				})
+			}
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.check /deep/ .uni-forms-item{min-height: 106rpx;box-sizing: border-box;display: flex;align-items: center;margin-bottom: 0;border-bottom: 2rpx solid #E6E6E6;padding:10rpx 0;}
+.check /deep/ .uni-forms-item__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;}
+.check /deep/ .uni-easyinput{flex: 1;text-align: right;font-size: 26rpx;color: #222327;}
+.check /deep/ .uni-easyinput__content-textarea{min-height: 40rpx;font-size: 26rpx;}
+.check /deep/ .uni-easyinput__placeholder-class{font-size: 26rpx;color: #AAAAAA;}
+.check /deep/ .uni-input-input{font-size: 26rpx;}
+.check /deep/ .uni-textarea-textarea{font-size: 26rpx;}
+.check /deep/ .uni-forms-item__label text{width: 110rpx;text-align-last: justify;}
+.check /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
+.check{min-height: 100vh;padding: 20rpx 18rpx 22rpx;box-sizing: border-box;display: flex;box-sizing: border-box;}
+.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;padding-bottom: 28rpx;
+	.chtop{padding-top: 32rpx;margin-bottom: 22rpx;
+		.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
+		view{font-weight: bold;font-size: 32rpx;color: #272727;}
+	}
+	.chmain{
+		padding: 0 32rpx;
+		.upbox{height: 224rpx;background: #EFF4FF;border-radius: 20rpx;display: flex;align-items: center;justify-content: center;flex-direction: column;margin-bottom: 8rpx;overflow: auto;
+			.img{width: 100%;height: 100%;}
+			.addimg{width: 90rpx;height: 90rpx;margin-bottom: 8rpx;}
+			view{font-weight: bold;font-size: 26rpx;color: #4C6686;}
+		}
+	}
+	.rimg{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;
+		image{width: 100%;height: 100%;}
+	}
+}
+.tips{font-weight: bold;color: #272727;font-size: 26rpx;margin-left: 8rpx;}
+</style>

+ 88 - 0
user_ui/mine/pages/house/address.vue

@@ -0,0 +1,88 @@
+<template>
+	<view class="address">
+		<view class="adrbox ">
+			<view class="flex1 plr2">
+				<box-lit :datainfo="list" :wtdt="wtdt" type="address"></box-lit>
+			</view>
+			<view class="rhbtn flex0 mt16" @click="getAddFn">新建地址</view>
+		</view>
+		
+		
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import boxLit from "@/mine/components/box/list.vue"
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{boxLit},
+		data(){
+			return{
+				hrimg:require('@/static/logo.png'),
+				list:[{tit:'123',isdefault:true},{tit:'212123',isdefault:false,isuser:true},],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+			}
+		},
+		onLoad: function() {
+		
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			getAddFn(){
+				this.$tab.navigateTo("/mine/pages/house/addaddress")
+			},
+			getDataFn(){
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						if (res.rows.length < this.pageSize) {
+							this.reachflag = false
+							this.wtdt = '到底了~';
+						} else {
+							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+							if (num < res.total) {
+								this.reachflag = true
+								this.wtdt = ''
+							} else {
+								this.reachflag = false
+								this.wtdt = '到底了~';
+							}
+						}
+						if (this.pageNum == 1) {
+							this.list = res.rows;
+						} else {
+							this.list = this.list.concat(res.rows)
+						}
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.address{min-height: 100vh;padding: 20rpx 18rpx;display: flex;flex-direction: column;}
+.adrbox{background: #FFFFFF;border-radius: 20rpx;padding:0 26rpx 80rpx;flex: 1;display: flex;flex-direction: column;}
+</style>

+ 155 - 0
user_ui/mine/pages/house/index.vue

@@ -0,0 +1,155 @@
+<template>
+	<view class="house" :style="'padding-top:'+nvaHeight+'px;'">
+		<view class="navbox">
+			<uni-nav-bar  color="#272727" left-icon="left"  @clickLeft="getBackFn"  :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">
+			</uni-nav-bar>
+		</view>
+		<view class="houtop">
+			<!-- 有 -->
+			<view class="flexc mb10" v-if="list.length">
+				<view class="tit">嗨,袁玥!</view>
+				<view class="tita flexcc">户主</view>
+			</view>
+			<!-- 无 -->
+			<block v-else>
+				<view class="flexc mb10">
+					<view class="tit">我的房屋</view>
+				</view>
+				<view class="txt mb10 fw5">您还未添加房屋信息喔~</view>
+			</block>
+			
+			<view class="txt">Welcome back home</view>
+			<image :src="housebg" class="houseimg"></image>
+		</view>
+		<view class="housebox" v-if="list.length">
+			<view class="hblist">
+				<view class="laber"><text>房屋坐落</text>:</view>
+				<view class="tit">幸福大街88号幸福小区12#1101室</view>
+				<image :src="adrs" class="adrs"></image>
+			</view>
+			<view class="flexc">
+				<view class="hblist w50">
+					<view class="laber"><text>房屋所属</text>:</view>
+					<view class="tit">袁玥</view>
+				</view>
+				<view class="hblist w50">
+					<view class="laber"><text>建筑面积</text>:</view>
+					<view class="tit">121.3m²</view>
+				</view>
+			</view>
+			<view class="flexc">
+				<view class="hblist w50">
+					<view class="laber"><text>房型</text>:</view>
+					<view class="tit">3室1厅</view>
+				</view>
+				<view class="hblist w50">
+					<view class="laber"><text>居住人口</text>:</view>
+					<view class="tit">3口人</view>
+				</view>
+			</view>
+			<view class="flexc">
+				<view class="hblist w50">
+					<view class="laber"><text>有无车位</text>:</view>
+					<view class="tit">有</view>
+				</view>
+			</view>
+		</view>
+		
+		<view class="hbtns bga mb18" v-if="list.length">修改信息</view>
+		<view class="hbtns bgb" :class="list.length?'':'mt110'" @click="getAddFn">添加房屋</view>
+		
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{},
+		data(){
+			return{
+				housebg:require('@/mine/static/house/house.png'),
+				adrs:require('@/mine/static/house/adrs.png'),
+				backgroundColor: "transparent",
+				nvaHeight:44,
+				list:[{tit:'123'}],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+			}
+		},
+		onLoad: function() {
+			uni.getSystemInfo({
+				success: (e) => {
+					this.nvaHeight = Number(e.statusBarHeight)+44;
+				}
+			})
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#CCDDFF'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			getAddFn(){
+				this.$tab.navigateTo("/mine/pages/house/addhouse")
+			},
+			getBackFn(){
+				uni.navigateBack({
+					delta:1
+				})
+			},
+			getDataFn(){
+				return
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.house{min-height: 100vh;background: linear-gradient(180deg, #CDDDFF 0%, rgba(255,255,255,0) 100%) no-repeat;background-size: 100% 578rpx;padding: 0 54rpx 100rpx;
+	.houtop{padding: 20rpx 4rpx 0 4rpx;height:520rpx;box-sizing: border-box;margin-bottom: 50rpx;position: relative;
+		.tit{font-size: 36rpx;font-weight: bold;color: #272727;}
+		.txt{font-size: 26rpx;color: #272727;}
+		.tita{min-width: 86rpx;font-weight: 500;margin-left: 26rpx;font-size: 24rpx;color: #0156FE;height: 36rpx;border-radius: 18rpx;border: 2rpx solid #0156FE;}
+		.houseimg{width: 596rpx;height:204rpx;position: absolute;bottom: 0;right: -58rpx;}
+	}
+	.housebox{width: 100%;background: #FFFFFF;border-radius: 20rpx;padding: 36rpx 24rpx 16rpx;box-sizing: border-box;margin-bottom: 100rpx;
+		.hblist{display: flex;margin-bottom: 20rpx;
+			.laber{font-weight: 500;font-size: 26rpx;color: #666666;flex: 0 0 auto;
+				text{min-width: 104rpx;text-align-last: justify;display: inline-block;}
+			}
+			.tit{color: #272727;font-weight: 500;font-size: 26rpx;}
+			.adrs{width: 20rpx;height: 22rpx;margin-left: 16rpx;flex: 0 0 auto;margin-top: 6rpx;}
+		}
+	}
+	.hbtns{font-weight: bold;display: flex;align-items: center;justify-content: center;font-size: 26rpx;height: 88rpx;border-radius: 44rpx;box-sizing: border-box;
+		&.bga{border: 1px solid #0256FD;color: #0256FD;background: #CADBFF;}
+		&.bgb{border: 1px solid #45CB99;color: #45CB99;background: #DBF8ED;}
+		
+	}
+}
+</style>

BIN
user_ui/mine/static/check.png


BIN
user_ui/mine/static/edit.png


BIN
user_ui/mine/static/house/adrs.png


BIN
user_ui/mine/static/house/cara.png


BIN
user_ui/mine/static/house/carb.png


BIN
user_ui/mine/static/house/carc.png


BIN
user_ui/mine/static/house/chara.png


BIN
user_ui/mine/static/house/charb.png


BIN
user_ui/mine/static/house/cmico.png


BIN
user_ui/mine/static/house/house.png


BIN
user_ui/mine/static/house/icon_tjcl_tjxny.png


BIN
user_ui/mine/static/house/rimg.png


BIN
user_ui/mine/static/house/up.png


BIN
user_ui/mine/static/ncheck.png


BIN
user_ui/mine/static/nodata.png


+ 95 - 46
user_ui/pages.json

@@ -1,7 +1,7 @@
 {
 {
   "pages": [
   "pages": [
 	  {
 	  {
-	    "path": "pages/index",
+	    "path": "pages/index/index",
 	    "style": {
 	    "style": {
 	      "navigationBarTitleText": "若依移动端框架",
 	      "navigationBarTitleText": "若依移动端框架",
 	      "navigationStyle": "custom"
 	      "navigationStyle": "custom"
@@ -35,12 +35,7 @@
     }
     }
   },
   },
   
   
-  {
-    "path": "pages/work/index",
-    "style": {
-      "navigationBarTitleText": "工作台"
-    }
-  }, {
+ {
     "path": "pages/mine/index",
     "path": "pages/mine/index",
     "style": {
     "style": {
       "navigationBarTitleText": "我的"
       "navigationBarTitleText": "我的"
@@ -96,61 +91,115 @@
   		"root": "work",
   		"root": "work",
 		"pages": [
 		"pages": [
 			{
 			{
-				"path": "pages/car/index",
-				"style": {
-					"navigationBarTitleText": "车辆管控",
-					"h5":{
-						"titleNView":false
-					}
-				}
+			  "path": "pages/clean/index",
+			  "style": {
+			    "navigationBarTitleText": "家政服务",
+				"h5":{"titleNView":false}
+			  }
 			},
 			},
 			{
 			{
-				"path": "pages/car/carku",
-				"style": {
-					"navigationBarTitleText": "车库管理",
-					"h5":{
-						"titleNView":false
-					}
-				}
+			  "path": "pages/clean/detail",
+			  "style": {
+			    "navigationBarTitleText": "家政服务",
+				"navigationStyle": "custom",
+				"h5":{"titleNView":false}
+			  }
+			},{
+			  "path": "pages/service/warranty",
+			  "style": {
+			    "navigationBarTitleText": "物业报修",
+				"h5":{"titleNView":false}
+			  }
 			},
 			},
 			{
 			{
-				"path": "pages/car/carcheck",
-				"style": {
-					"navigationBarTitleText": "外来车辆登记",
-					"h5":{
-						"titleNView":false
-					}
-				}
+			  "path": "pages/service/warrantydetail",
+			  "style": {
+			    "navigationBarTitleText": "我要报修",
+				"h5":{"titleNView":false}
+			  }
 			},
 			},
 			{
 			{
-				"path": "pages/car/illegalParking",
-				"style": {
-					"navigationBarTitleText": "违停管理",
-					"h5":{
-						"titleNView":false
-					}
-				}
+			  "path": "pages/service/warrantyadd",
+			  "style": {
+			    "navigationBarTitleText": "我要报修",
+				"h5":{"titleNView":false}
+			  }
 			},
 			},
 			{
 			{
-				"path": "pages/car/illegalcheck",
-				"style": {
-					"navigationBarTitleText": "违停登记",
-					"h5":{
-						"titleNView":false
-					}
-				}
+			  "path": "pages/visitor/index",
+			  "style": {
+			    "navigationBarTitleText": "访客邀请",
+				"navigationStyle": "custom",
+				"h5":{"titleNView":false}
+			  }
 			}
 			}
 		]
 		]
-  	}
+  	},
+	{
+		"root": "mine",
+		"pages": [
+			{
+			  "path": "pages/house/index",
+			  "style": {
+			    "navigationBarTitleText": "我的房屋",
+				"navigationBarTextStyle": "black",
+				  "navigationStyle": "custom"
+			  }
+			},
+			{
+			  "path": "pages/house/addhouse",
+			  "style": {
+			    "navigationBarTitleText": "我的房屋",
+				"h5":{"titleNView":false}
+			  }
+			},
+			{
+			  "path": "pages/house/address",
+			  "style": {
+			    "navigationBarTitleText": "收货地址",
+				"h5":{"titleNView":false}
+			  }
+			},
+			{
+			  "path": "pages/house/addaddress",
+			  "style": {
+			    "navigationBarTitleText": "新建地址",
+				"h5":{"titleNView":false}
+			  }
+			},
+			{
+			  "path": "pages/car/index",
+			  "style": {
+			    "navigationBarTitleText": "我的车辆",
+				"h5":{"titleNView":false}
+			  }
+			},
+			{
+			  "path": "pages/car/addcar",
+			  "style": {
+			    "navigationBarTitleText": "添加车辆",
+				"h5":{"titleNView":false}
+			  }
+			},
+			{
+			  "path": "pages/car/charge",
+			  "style": {
+			    "navigationBarTitleText": "充电中",
+				"h5":{"titleNView":false}
+			  }
+			}
+			
+		]
+	}
   ],
   ],
   "preloadRule":{
   "preloadRule":{
-	"pages/index": {
+	"/pages/index/index": {
 		"network": "all",
 		"network": "all",
-		"packages": ["work"]
+		"packages": ["work","mine"]
 	}, 
 	}, 
 	"pages/login": {
 	"pages/login": {
 	 	"network": "all",
 	 	"network": "all",
-	 	"packages": ["work"]
+	 	"packages": ["work","mine"]
 	}
 	}
   },
   },
   "globalStyle": {
   "globalStyle": {

+ 0 - 344
user_ui/pages/index.vue

@@ -1,344 +0,0 @@
-<template>
-  <view :style="'padding-top:'+nvaHeight+'px;'">
-		<view class="navbox">
-			<uni-nav-bar  color="#ffffff" leftWidth='400rpx'  :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">
-				<block slot="left">
-					<view class="topl flexc">
-						<image :src="adrimg" ></image>
-						<view class="over">{{city}}</view>
-					</view>
-				</block>
-			</uni-nav-bar>
-		</view>
-		<!-- 主体 -->
-		<image :src="navbg" class="navbg"></image>
-		<view class="wymain" >
-			<view class="adrbox">
-				<view class="flexc mb14">
-					<image :src="adraimg" class="adr"></image>
-					<view class="adrtit">智慧<text>社区</text></view>
-				</view>
-				<view class="adrtxt flexc mb4">
-					<view class="over">嗨~刘源禧!</view><text>经理</text>
-				</view>
-				<view class="adrtip">幸福小区物业办公室</view>
-				<image :src="adrbgimg" class="adrbgimg"></image>
-			</view>
-			<view class="mb22">
-				<notice :noticelist="noticelist"  :autoplay='autoplay' @getNoticeDet="getNoticeDet"></notice>
-			</view>
-			<!-- 统计 -->
-			<view class="contbox">
-				<view class="cont flexc">
-					<image :src="conta"></image>
-					<view>今日数据统计</view>
-				</view>
-				<view class="lists">
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">空闲车位</view>
-					</view>
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">空闲充电桩</view>
-					</view>
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">进入车辆</view>
-					</view>
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">离开车辆</view>
-					</view>
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">外来车辆</view>
-					</view>
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">违停登记</view>
-					</view>
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">外来人员</view>
-					</view>
-					<view class="list">
-						<view class="tit">21</view>
-						<view class="txt">进入人员</view>
-					</view>
-					<block v-if="zhanflag">
-						<view class="list">
-							<view class="tit ca">21</view>
-							<view class="txt">已巡更</view>
-						</view>
-						<view class="list">
-							<view class="tit ca">21</view>
-							<view class="txt">未巡更</view>
-						</view>
-						<view class="list">
-							<view class="tit cb">21</view>
-							<view class="txt">家政订单</view>
-						</view>
-						<view class="list">
-							<view class="tit cb">21</view>
-							<view class="txt">完成订单</view>
-						</view>
-						<view class="list">
-							<view class="tit cc">21</view>
-							<view class="txt">今日报修</view>
-						</view>
-						<view class="list">
-							<view class="tit cc">21</view>
-							<view class="txt">已派报修</view>
-						</view>
-						<view class="list">
-							<view class="tit cc">21</view>
-							<view class="txt">投诉建议</view>
-						</view>
-						<view class="list">
-							<view class="tit cc">21</view>
-							<view class="txt">已回投诉</view>
-						</view>
-					</block>
-				</view>
-				<view class="upbox" @click="getZhanFn">
-					<image :src="upimg" :class="zhanflag?'':'zhe'"></image>
-					<view>{{zhanflag?'收起':'展开'}}</view>
-				</view>
-			</view>
-			<view class="contbox mb16">
-				<view class="cont flexc mb9">
-					<image :src="contb"></image>
-					<view>物业管理</view>
-				</view>
-				<view class="lists">
-					<view class="list bimga" @click="getCarFn">
-						<view class="imgs"><image :src="htaba" class="imga"></image></view>
-						<view class="txt">车辆管控</view>
-					</view>
-					<view class="list bimga" @click="getCarKuFn">
-						<view class="imgs"><image :src="htabb" class="imgb"></image></view>
-						<view class="txt">车库管理</view>
-					</view>
-					<view class="list bimga" @click="getCarCheckFn">
-						<view class="imgs"><image :src="htabc" class="imgc"></image></view>
-						<view class="txt">外来车辆登记</view>
-					</view>
-					<view class="list bimga" @click="getillegalParkFn">
-						<view class="imgs"><image :src="htabd" class="imgd"></image></view>
-						<view class="txt">违停管理</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabe" class="imge"></image></view>
-						<view class="txt">人员管理</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabf" class="imgf"></image></view>
-						<view class="txt">来访管理</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabg" class="imgd"></image></view>
-						<view class="txt">物业费管理</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabh" class="imgd"></image></view>
-						<view class="txt">房屋管理</view>
-					</view>
-				</view>
-			</view>
-			<view class="contbox mb16">
-				<view class="cont flexc mb9">
-					<image :src="contc"></image>
-					<view>物业服务</view>
-				</view>
-				<view class="lists">
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabi" class="imgg"></image></view>
-						<view class="txt">今日巡更</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabj" class="imgb"></image><view class="tips">3</view>
-						</view>
-						<view class="txt">物业报修</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabk" class="imgb"></image></view>
-						<view class="txt">维修人员管理</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabl" class="imga"></image><view class="tips">1</view></view>
-						<view class="txt">投诉建议</view>
-					</view>
-				</view>
-			</view>
-			<view class="contbox mb16">
-				<view class="cont flexc mb9">
-					<image :src="contd"></image>
-					<view>社区管理</view>
-				</view>
-				<view class="lists">
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabm" class="imgh"></image></view>
-						<view class="txt">党建信息</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabn" class="imgi"></image><view class="tips">27</view></view>
-						<view class="txt">社区资讯</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabo" class="imgf"></image></view>
-						<view class="txt">员工培训</view>
-					</view>
-					<view class="list bimga">
-						<view class="imgs"><image :src="htabp" class="imgi"></image></view>
-						<view class="txt">社区资产</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	<loading></loading>
-	 <footers v-if="isfootflag"  :footerindex="footerindex"></footers>
-  </view>
-</template>
-
-<script>
-import footers from '@/components/footer/footer.vue'
-import notice from '@/components/swiper/notice.vue'
-  export default {
-	components:{footers,notice},
-	data(){
-		return{
-			footerindex:'home',
-			isfootflag:true,
-			nvaHeight:44,
-			// activeColor:'#A7CDF9',
-			// nactiveColor:'#DADADA',
-			backgroundColor: "transparent",
-			navbg:require("@/static/images/navbg.png"),
-			adrimg:require("@/static/images/home/adr.png"),
-			adraimg:require("@/static/images/home/adra.png"),
-			adrbgimg:require("@/static/images/home/adrbg.png"),
-			conta:require("@/static/images/home/conta.png"),
-			contb:require("@/static/images/home/contb.png"),
-			contc:require("@/static/images/home/contc.png"),
-			contd:require("@/static/images/home/contd.png"),
-			htaba:require("@/static/images/home/htaba.png"),
-			htabb:require("@/static/images/home/htabb.png"),
-			htabc:require("@/static/images/home/htabc.png"),
-			htabd:require("@/static/images/home/htabd.png"),
-			htabe:require("@/static/images/home/htabe.png"),
-			htabf:require("@/static/images/home/htabf.png"),
-			htabg:require("@/static/images/home/htabg.png"),
-			htabh:require("@/static/images/home/htabh.png"),
-			htabi:require("@/static/images/home/htabi.png"),
-			htabj:require("@/static/images/home/htabj.png"),
-			htabk:require("@/static/images/home/htabk.png"),
-			htabl:require("@/static/images/home/htabl.png"),
-			htabm:require("@/static/images/home/htabm.png"),
-			htabn:require("@/static/images/home/htabn.png"),
-			htabo:require("@/static/images/home/htabo.png"),
-			htabp:require("@/static/images/home/htabp.png"),
-			upimg:require("@/static/images/home/up.png"),
-			city:'幸福大街',
-			autoplay:false,
-			zhanflag:true,
-			noticelist:[{noticeTitle:"您有1条报修信息,请及时查看处理!",num:'4'},{noticeTitle:"您有1条报修信息,请及时查看处理!",num:'12'}]
-		}
-	},
-	onPageScroll(e) {
-		var scrollTop = Number(e.scrollTop);
-		if (scrollTop > 0) {
-			this.backgroundColor = '#C3EDFF'
-		} else {
-			this.backgroundColor = 'transparent'
-		}
-	},
-    onLoad: function() {
-		uni.getSystemInfo({
-			success: (e) => {
-				this.nvaHeight = Number(e.statusBarHeight)+44;
-			}
-		})
-    },
-	methods:{
-		getNoticeDet(){
-			
-		},
-		getZhanFn(){
-			this.zhanflag=!this.zhanflag
-		},
-		getCarFn(){//车辆管控
-			this.$tab.navigateTo(`/work/pages/car/index`) 
-		},
-		getCarKuFn(){//车库管理
-			this.$tab.navigateTo(`/work/pages/car/carku`) 
-		},
-		getCarCheckFn(){//外来车辆登记
-			this.$tab.navigateTo(`/work/pages/car/carcheck`) 
-		},
-		getillegalParkFn(){//违停管理
-			this.$tab.navigateTo(`/work/pages/car/illegalParking`) 
-		},
-	}
-  }
-</script>
-<style lang="scss" scoped>
-.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
-.navbg{width: 100%;height: 782rpx;}
-.wymain{z-index: 2;position: relative;padding: 0 24rpx;}
-.topl{overflow: hidden;padding-left: 16rpx;
-	image{width: 18rpx;height: 22rpx;margin-right: 14rpx;flex: 0 0 auto;}
-	view{font-weight: bold;font-size: 26rpx;color: #272727;}
-}
-.adrbox{position: relative;padding:8rpx 240rpx 16rpx 36rpx;margin-bottom: 14rpx;
-	.adr{width: 36rpx;height: 34rpx;margin-right: 14rpx;}
-	.adrtit{font-size: 17px;color: #272727;font-weight: bold;
-		text{color: #0256FD;}
-	}
-	.adrtxt{font-size: 16px;color: #272727;font-weight: bold;
-		text{font-size: 10px;color: #3F7EFD;display: inline-flex;background: rgba(119, 171, 184, 0.3);margin-left: 22rpx;min-width: 66rpx;height: 30rpx;padding: 0 14rpx;box-sizing: border-box;flex: 0 0 auto;border-radius: 8px;align-items: center;justify-content: center;}
-	}
-	.adrtip{font-weight: 500;font-size: 24rpx;color: #828282;}
-
-	.adrbgimg{width: 212rpx;height: 236rpx;position: absolute;right: 20rpx;top: -70rpx;}
-}
-.contbox{
-	.cont{padding-left: 24rpx;margin-bottom: 12rpx;
-		image{width: 32rpx;height: 32rpx;margin-right: 16rpx;}
-		view{font-size: 15px;color: #272727;font-weight: bold;}
-	}
-	.lists{
-		display: flex;align-items: center;flex-wrap: wrap;
-		.list{padding: 8rpx 0;
-			width: 25%;display: flex;flex-direction: column;align-items: center;
-			.tit{font-weight: bold;font-size: 30rpx;color: #3565ED;line-height: 60rpx;font-style: italic;margin-bottom: 8rpx;
-				&.ca{color: #FF7E00;}
-				&.cb{color: #28C529;}
-				&.cc{color: #FF3737;}
-			}
-			.txt{font-weight: 500;font-size: 26rpx;color: #272727;}
-			&.bimga{padding: 16rpx 0;}
-			.imgs{display: flex;align-items: center;justify-content: center;width: 48rpx;height: 48rpx;margin-bottom: 18rpx;position: relative;
-				.imga{width: 48rpx;height: 38rpx;}
-				.imgb{width: 48rpx;height: 46rpx;}
-				.imgc{width: 44rpx;height: 48rpx;}
-				.imgd{width: 48rpx;height: 42rpx;}
-				.imge{width: 46rpx;height: 46rpx;}
-				.imgf{width: 48rpx;height: 48rpx;}
-				.imgg{width: 42rpx;height: 48rpx;}
-				.imgh{width: 44rpx;height: 44rpx;}
-				.imgi{width: 48rpx;height: 44rpx;}
-				.tips{position: absolute;min-width: 20rpx;top: -4rpx;left: 36rpx;box-sizing: border-box;
-height: 20rpx;padding: 0 4rpx;display: flex;align-items: center;justify-content: center;font-weight: bold;font-size: 16rpx;color: #FCF9F1;background: #D32C26;border-radius: 10rpx;
-				}
-			}
-		}
-	}
-	.upbox{display: flex;align-items: center;justify-content: center;flex-direction: column;margin-top: 8rpx;padding-top: 8rpx;margin-bottom: 6rpx;
-		image{width: 24rpx;height: 20rpx;margin-bottom: 8rpx;transition: all 0.3s;
-			&.zhe{transform: rotate(-180deg);}
-		}
-		view{font-weight: 500;font-size: 22rpx;color: #AAAAAA;}
-	}
-}
-</style>

+ 312 - 0
user_ui/pages/index/index.vue

@@ -0,0 +1,312 @@
+<template>
+  <view class="home" :style="'padding-top:'+nvaHeight+'px;'">
+		<view class="navbox">
+			<uni-nav-bar  color="#ffffff" leftWidth='400rpx'  :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">
+				<block slot="left">
+					<view class="topl flexc">
+						<image :src="adrimg" ></image>
+						<view class="over">{{city}}</view>
+					</view>
+				</block>
+			</uni-nav-bar>
+		</view>
+		<!-- 主体 -->
+		<!-- <image :src="navbg" class="navbg"></image> -->
+		<view class="wymain">
+			<view class="adrbox">
+				<view class="flexc mb14">
+					<image :src="adraimg" class="adr"></image>
+					<view class="adrtit">智慧<text>社区</text></view>
+				</view>
+				<view class="adrtxt flexc mb4">
+					<view class="over">嗨~刘源禧!</view><text>业主</text>
+				</view>
+				<view class="adrtip">幸福小区12#1101</view>
+				<image :src="adrbgimg" class="adrbgimg"></image>
+			</view>
+			<!-- 轮播图 -->
+			<swiper  class="swiper mb12" circular :indicator-color="incolorh" :indicator-active-color="activecolorh" :indicator-dots="indicatorDotsh" :autoplay="autoplayh">
+				<!-- v-if="checkPermi(['system:application:list'])" -->
+				<swiper-item>
+					<view class="grid">
+						<view class="grid-item-box" @click="getClearFn" >
+							<view class="img"><image :src="htaba" class="imga"></image></view>
+							<view>家政服务</view>
+						</view>
+						<view class="grid-item-box" @click="getWarrantyFn" >
+							<view class="img"><image :src="htabb" class="imga"></image></view>
+							<view>物业报修
+								<view class="cir">2</view>
+							</view>
+						</view>
+						<view class="grid-item-box" @click="getBusListFn(1)" >
+							<view class="img"><image :src="htabc" class="imgb"></image></view>
+							<view>供求资讯</view>
+						</view>
+						<view class="grid-item-box" @click="getBusListFn(1)" >
+							<view class="img"><image :src="htabd" class="imgb"></image></view>
+							<view>社区资讯<view class="cir">2</view></view>
+							<!-- <view class="flexcw">
+								<view class="txt">点赞<text class="co05 mr2">(5)</text></view>
+								<view class="txt">评论<text class="co05">(12)</text></view>
+							</view> -->
+							<view class="txt">点赞<text class="co05 mr2">(5)</text>评论<text class="co05">(12)</text></view>
+						</view>
+						<view class="grid-item-box" @click="getBusListFn(1)" >
+							<view class="img"><image :src="htabe" class="imgc"></image></view>
+							<view>党建资讯</view>
+						</view>
+						<view class="grid-item-box" @click="getBusListFn(1)" >
+							<view class="img"><image :src="htabf" class="imgd"></image></view>
+							<view>投诉建议<view class="cir">2</view></view>
+						</view>
+						<view class="grid-item-box" @click="getVisitorFn" >
+							<view class="img"><image :src="htabg" class="imge"></image></view>
+							<view>访客邀请</view>
+						</view>
+						<view class="grid-item-box" @click="getBusListFn(1)" >
+							<view class="img"><image :src="htabh" class="imga"></image></view>
+							<view>联系管家</view>
+						</view>
+					</view>
+				</swiper-item>
+				<swiper-item>
+					<view class="grid">
+						<view class="grid-item-box" @click="getHouseFn" >
+							<view class="img"><image :src="htabi" class="imgf"></image></view>
+							<view>我的房屋<text class="co05">(1)</text></view>
+						</view>
+						<view class="grid-item-box" @click="getCarFn" >
+							<view class="img"><image :src="htabj" class="imgg"></image></view>
+							<view>我的车辆<text class="co05">(1)</text></view>
+						</view>
+						<view class="grid-item-box" @click="getBusListFn(1)" >
+							<view class="img"><image :src="htabk" class="imgh"></image></view>
+							<view>物业缴费</view>
+						</view>
+						<view class="grid-item-box" @click="getBusListFn(1)" >
+							<view class="img"><image :src="htabl" class="imga"></image></view>
+							<view>敬请期待</view>
+						</view>
+					</view>
+				</swiper-item>
+			</swiper>
+			<!-- 消息 -->
+			<view class="mb12">
+				<notice :noticelist='noticelist' :activeColor="activeColor" :nactiveColor="nactiveColor"></notice>
+			</view>
+			<view class="mb18 flexc">
+				<view class="cbgs mr12">
+					<image :src="cbga"></image>
+					<view class="cbga">
+						<view class="tit">空闲充电桩</view>
+						<view class="txt">37</view>
+					</view>
+				</view>
+				<view class="cbgs">
+					<image :src="cbgb"></image>
+					<view class="cbga">
+						<view class="tita">剩余停车位</view>
+						<view class="txta">37</view>
+					</view>
+				</view>
+			</view>
+			<!-- 我的快递 -->
+			<view class="hlist">
+				<view class="hlista flexc mb6">
+					<image :src="lista" class="limg flex0"></image>
+					<view class="tit flex1">我的快递</view>
+					<view class="more flex0">更多<image :src="more"></image></view>
+				</view>
+				<box-list :datainfo="list" type="delivery"></box-list>
+			</view>
+		</view>
+		<!-- 今日优惠 -->
+		<view class="hlist plr12">
+			<view class="hlista flexc mb10 ">
+				<image :src="listb" class="limg flex0"></image>
+				<view class="tit flex1">今日优惠</view>
+				<view class="more flex0">更多<image :src="more"></image></view>
+			</view>
+		</view>
+		<view class="mb4">
+			<box-list type='coupon' :datainfo="list"></box-list>	
+		</view>
+		<view class="wymain">
+			<!-- 本地资讯 -->
+			<view class="hlist">
+				<view class="hlista flexc" style="padding-bottom: 0;">
+					<image :src="listc" class="limg flex0"></image>
+					<view class="htabs flexc">
+						<view :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx">{{ite.tit}}</view>
+					</view>
+					<view class="more flex0">更多<image :src="more"></image></view>
+				</view>
+				<box-list :datainfo="list" :wtdt="wtdt" type="news"></box-list>
+			</view>
+		</view>
+	<loading></loading>
+	 <footers v-if="isfootflag"  :footerindex="footerindex"></footers>
+  </view>
+</template>
+
+<script>
+import footers from '@/components/footer/footer.vue'
+import notice from '@/components/swiper/notice.vue'
+import boxList from "@/components/box/list.vue"
+  export default {
+	components:{footers,notice,boxList},
+	data(){
+		return{
+			footerindex:'home',
+			isfootflag:true,
+			nvaHeight:44,
+			activeColor:'#A7A7A7',
+			nactiveColor:'#E6E6E6',
+			backgroundColor: "transparent",
+			navbg:require("@/static/images/navbg.png"),
+			adrimg:require("@/static/images/home/adr.png"),
+			adraimg:require("@/static/images/home/adra.png"),
+			adrbgimg:require("@/static/images/home/adrbg.png"),
+			htaba:require("@/static/images/home/htaba.png"),
+			htabb:require("@/static/images/home/htabb.png"),
+			htabc:require("@/static/images/home/htabc.png"),
+			htabd:require("@/static/images/home/htabd.png"),
+			htabe:require("@/static/images/home/htabe.png"),
+			htabf:require("@/static/images/home/htabf.png"),
+			htabg:require("@/static/images/home/htabg.png"),
+			htabh:require("@/static/images/home/htabh.png"),
+			htabi:require("@/static/images/home/htabi.png"),
+			htabj:require("@/static/images/home/htabj.png"),
+			htabk:require("@/static/images/home/htabk.png"),
+			htabl:require("@/static/images/home/htabl.png"),
+			cbga:require("@/static/images/home/cbga.png"),
+			cbgb:require("@/static/images/home/cbgb.png"),
+			lista:require("@/static/images/home/lista.png"),
+			listb:require("@/static/images/home/listb.png"),
+			listc:require("@/static/images/home/listc.png"),
+			more:require("@/static/images/home/more.png"),
+			wtdt:"加载更多",
+			yhbg:require("@/static/images/home/yhbg.png"),
+			eye:require("@/static/images/home/eye.png"),
+			autoplay:false,
+			autoplayh:false,
+			incolorh:'#E6E6E6',
+			activecolorh:'#A7A7A7',
+			indicatorDotsh: true,
+			city:'幸福大街',
+			list:[{tit:'123'},{tit:'123'},{tit:'123'}],
+			tabval:0,
+			tablist:[{tit:'本地资讯',val:"0"},{tit:'供求资讯',val:"1"},{tit:'热门资讯',val:"2"}],
+			noticelist:[{noticeTitle:"您有1条报修信息,请及时查看处理!",num:'11-14'},{noticeTitle:"您有1条报修信息,请及时查看处理!",num:'11-14'}]
+		}
+	},
+	onPageScroll(e) {
+		var scrollTop = Number(e.scrollTop);
+		if (scrollTop > 0) {
+			this.backgroundColor = '#FFF7E1'
+		} else {
+			this.backgroundColor = 'transparent'
+		}
+	},
+    onLoad: function() {
+		uni.getSystemInfo({
+			success: (e) => {
+				this.nvaHeight = Number(e.statusBarHeight)+44;
+			}
+		})
+    },
+	methods:{
+		getNoticeDet(){
+			
+		},
+		getZhanFn(){
+			this.zhanflag=!this.zhanflag
+		},
+		getClearFn(){//家政服务
+			this.$tab.navigateTo(`/work/pages/clean/index`) 
+		},
+		getWarrantyFn(){//物业报修
+			this.$tab.navigateTo(`/work/pages/service/warranty`) 
+		},
+		getHouseFn(){//我的房屋
+			this.$tab.navigateTo(`/mine/pages/house/index`) 
+		},
+		getCarFn(){//我的车辆
+			this.$tab.navigateTo(`/mine/pages/car/index`) 
+		},
+		getVisitorFn(){//访客邀请
+			this.$tab.navigateTo(`/work/pages/visitor/index`) 
+		},
+	}
+  }
+</script>
+<style lang="scss" scoped>
+.home{min-height: 100vh;background: linear-gradient(180deg, #FFF7E1 0%, rgba(255,255,255,0) 100%) no-repeat;background-size: 100% 782rpx;}
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.navbg{width: 100%;height: 782rpx;}
+.wymain{z-index: 2;position: relative;padding: 0 24rpx;}
+.topl{overflow: hidden;padding-left: 16rpx;
+	image{width: 18rpx;height: 22rpx;margin-right: 14rpx;flex: 0 0 auto;}
+	view{font-weight: bold;font-size: 26rpx;color: #272727;}
+}
+.adrbox{position: relative;padding:8rpx 260rpx 16rpx 36rpx;margin-bottom: 28rpx;
+	.adr{width: 36rpx;height: 34rpx;margin-right: 14rpx;}
+	.adrtit{font-size: 17px;color: #272727;font-weight: bold;
+		text{color: #E99D4F;}
+	}
+	.adrtxt{font-size: 16px;color: #272727;font-weight: bold;
+		text{font-size: 10px;color: #E99D4F;display: inline-flex;background: rgba(233, 157, 79, 0.3);margin-left: 22rpx;min-width: 66rpx;height: 30rpx;padding: 0 14rpx;box-sizing: border-box;flex: 0 0 auto;border-radius: 8px;align-items: center;justify-content: center;}
+	}
+	.adrtip{font-weight: 500;font-size: 24rpx;color: #828282;}
+	.adrbgimg{width: 262rpx;height: 242rpx;position: absolute;right: 0rpx;top: -54rpx;}
+}
+// tab栏
+.grid{
+	display: flex;align-items: center;flex-wrap: wrap;
+	.grid-item-box {display: flex;flex-direction: column;align-items: center;width: 25%;box-sizing: border-box;height: 152rpx;
+		.img{width: 50rpx;height: 50rpx;display: flex;align-items: center;justify-content: center;margin-bottom: 20rpx;
+			.imga{width: 48rpx;height: 44rpx;}
+			.imgb{width: 42rpx;height: 42rpx;}
+			.imgc{width: 44rpx;height: 48rpx;}
+			.imgd{width: 46rpx;height: 38rpx;}
+			.imge{width: 40rpx;height: 50rpx;}
+			.imgf{width: 48rpx;height: 50rpx;}
+			.imgg{width: 48rpx;height: 40rpx;}
+			.imgh{width: 44rpx;height: 46rpx;}
+		}
+		view{font-weight: bold;font-size: 26rpx;color: #272727;position: relative;
+			.cir{width: 20rpx;height: 20rpx;background: #D32C26;border-radius: 10rpx;font-weight: bold;font-size: 16rpx;color: #FCF9F1;position: absolute;display: flex;align-items: center;justify-content: center;padding: 0 2rpx;box-sizing: border-box;right: -10rpx;top: -10rpx;
+}
+		}
+		.txt{font-size: 20rpx;color: #666666;}
+	}
+}
+.cbgs{width: 340rpx;height: 152rpx;position: relative;
+	image{width: 340rpx;height: 152rpx;position: absolute;left: 0;top: 0;z-index: 0;}
+	.cbga{z-index: 1;position: relative;padding: 30rpx 0 0 36rpx;
+		.tit{font-weight: bold;font-size: 28rpx;color: #FFFFFF;text-shadow: 0px 4rpx 6rpx #13A97A;margin-bottom: 10rpx;}
+		.txt{font-size: 40rpx;color: #FFFFFF;text-shadow: 0px 4rpx 6rpx #13A97A;}
+		.tita{font-weight: bold;font-size: 28rpx;color: #FFFFFF;text-shadow: 0px 4rpx 6rpx #E89D00;;margin-bottom: 10rpx;}
+		.txta{font-size: 40rpx;color: #FFFFFF;text-shadow: 0px 4rpx 6rpx #E89D00;}
+	}	
+}
+.hlist{
+	.hlista{padding: 8rpx 0;
+		.limg{width: 32rpx;height: 32rpx;margin-right: 18rpx;}
+		.tit{font-weight: bold;font-size: 30rpx;color: #272727;}
+		.more{font-weight: 500;font-size: 24rpx;color: #AAAAAA;
+			image{width: 18rpx;height: 16rpx;margin-left: 16rpx;}
+		}
+		.htabs{flex: 1;overflow: auto;padding: 10rpx 0;
+			view{font-weight: 500;font-size: 28rpx;color: #666666;position: relative;height: 56rpx;line-height: 56rpx;margin-right: 48rpx;flex: 0 0 auto;
+			&.act{font-size: 15px;font-weight: bold;color: #272727;
+				&:after{width: 36rpx;height: 10rpx;background: linear-gradient(150deg, rgba(177,240,216,0.97), rgba(3,218,138,0.97));border-radius: 6rpx;content: '';position: absolute;bottom: -10rpx;left: 50%;margin-left: -18rpx;}
+			}
+			}
+		}
+	}
+	
+}
+
+</style>

+ 1 - 1
user_ui/pages/indexs.vue

@@ -13,7 +13,7 @@
 		components:{},
 		components:{},
 		data(){
 		data(){
 			return{
 			return{
-				hrimg:require('@/statics/logo.png'),
+				hrimg:require('@/static/logo.png'),
 				list:[],
 				list:[],
 				pageSize: 10,
 				pageSize: 10,
 				pageNum: 1,
 				pageNum: 1,

+ 2 - 2
user_ui/pages/login.vue

@@ -119,14 +119,14 @@
 				// 设置用户信息
 				// 设置用户信息
 				var that = this;
 				var that = this;
 				this.$store.dispatch('GetInfo').then(res => {
 				this.$store.dispatch('GetInfo').then(res => {
-					this.$tab.reLaunch('/pages/index')
+					this.$tab.reLaunch('/pages/index/index')
 				})
 				})
 			},
 			},
 		},
 		},
 
 
 		onLoad: function() {
 		onLoad: function() {
 			if (getToken()) {
 			if (getToken()) {
-				this.$tab.reLaunch('/pages/index')
+				this.$tab.reLaunch('/pages/index/index')
 				// 判断有什么角色
 				// 判断有什么角色
 			} else {
 			} else {
 				this.loginflag = true;
 				this.loginflag = true;

+ 1 - 1
user_ui/pages/mine/index.vue

@@ -146,7 +146,7 @@
       handleLogout() {
       handleLogout() {
         this.$modal.confirm('确定注销并退出系统吗?').then(() => {
         this.$modal.confirm('确定注销并退出系统吗?').then(() => {
           this.$store.dispatch('LogOut').then(() => {
           this.$store.dispatch('LogOut').then(() => {
-            this.$tab.reLaunch('/pages/index')
+            this.$tab.reLaunch('/pages/index/index')
           })
           })
         })
         })
       },
       },

+ 1 - 1
user_ui/pages/mine/setting/index.vue

@@ -50,7 +50,7 @@
       handleLogout() {
       handleLogout() {
         this.$modal.confirm('确定注销并退出系统吗?').then(() => {
         this.$modal.confirm('确定注销并退出系统吗?').then(() => {
           this.$store.dispatch('LogOut').then(() => {
           this.$store.dispatch('LogOut').then(() => {
-            this.$tab.reLaunch('/pages/index')
+            this.$tab.reLaunch('/pages/index/index')
           })
           })
         })
         })
       }
       }

+ 0 - 1
user_ui/pages/register.vue

@@ -72,7 +72,6 @@
 		return{
 		return{
 			lbg:require('@/static/images/mine/lbg.png'),
 			lbg:require('@/static/images/mine/lbg.png'),
 			fbg:require('@/static/images/mine/fbg.png'),
 			fbg:require('@/static/images/mine/fbg.png'),
-			ldicon:require('@/static/images/mine/ldicon.png'),
 			checkimg:require('@/static/images/mine/lcicon.png'),
 			checkimg:require('@/static/images/mine/lcicon.png'),
 			rimg:require('@/static/images/mine/rimg.png'),
 			rimg:require('@/static/images/mine/rimg.png'),
 			pnicon:require('@/static/images/mine/pnicon.png'),
 			pnicon:require('@/static/images/mine/pnicon.png'),

+ 1 - 2
user_ui/pages/tlogin.vue

@@ -106,7 +106,6 @@
 			lbg:require('@/static/images/mine/lbg.png'),
 			lbg:require('@/static/images/mine/lbg.png'),
 			fbg:require('@/static/images/mine/fbg.png'),
 			fbg:require('@/static/images/mine/fbg.png'),
 			headimg:require('@/static/logo.png'),
 			headimg:require('@/static/logo.png'),
-			ldicon:require('@/static/images/mine/ldicon.png'),
 			checkimg:require('@/static/images/mine/lcicon.png'),
 			checkimg:require('@/static/images/mine/lcicon.png'),
 			ncheckimg:require('@/static/images/mine/lnicon.png'),
 			ncheckimg:require('@/static/images/mine/lnicon.png'),
 			rimg:require('@/static/images/mine/rimg.png'),
 			rimg:require('@/static/images/mine/rimg.png'),
@@ -235,7 +234,7 @@
 		   // 设置用户信息
 		   // 设置用户信息
 		   var that=this;
 		   var that=this;
 		   this.$store.dispatch('GetInfo').then(res => {
 		   this.$store.dispatch('GetInfo').then(res => {
-			   this.$tab.reLaunch('/pages/index') 
+			   this.$tab.reLaunch('/pages/index/index') 
 		   })
 		   })
 		 },
 		 },
 		 
 		 

+ 0 - 183
user_ui/pages/work/index.vue

@@ -1,183 +0,0 @@
-<template>
-  <view class="work-container">
-    <!-- 轮播图 -->
-    <uni-swiper-dot class="uni-swiper-dot-box" :info="data" :current="current" field="content">
-      <swiper class="swiper-box" :current="swiperDotIndex" @change="changeSwiper">
-        <swiper-item v-for="(item, index) in data" :key="index">
-          <view class="swiper-item" @click="clickBannerItem(item)">
-            <image :src="item.image" mode="aspectFill" :draggable="false" />
-          </view>
-        </swiper-item>
-      </swiper>
-    </uni-swiper-dot>
-
-    <!-- 宫格组件 -->
-    <uni-section title="系统管理" type="line"></uni-section>
-    <view class="grid-body">
-      <uni-grid :column="4" :showBorder="false" @change="changeGrid">
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="person-filled" size="30"></uni-icons>
-            <text class="text">用户管理</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="staff-filled" size="30"></uni-icons>
-            <text class="text">角色管理</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="color" size="30"></uni-icons>
-            <text class="text">菜单管理</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="settings-filled" size="30"></uni-icons>
-            <text class="text">部门管理</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="heart-filled" size="30"></uni-icons>
-            <text class="text">岗位管理</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="bars" size="30"></uni-icons>
-            <text class="text">字典管理</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="gear-filled" size="30"></uni-icons>
-            <text class="text">参数设置</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="chat-filled" size="30"></uni-icons>
-            <text class="text">通知公告</text>
-          </view>
-        </uni-grid-item>
-        <uni-grid-item>
-          <view class="grid-item-box">
-            <uni-icons type="wallet-filled" size="30"></uni-icons>
-            <text class="text">日志管理</text>
-          </view>
-        </uni-grid-item>
-      </uni-grid>
-    </view>
-  </view>
-</template>
-
-<script>
-  export default {
-    data() {
-      return {
-        current: 0,
-        swiperDotIndex: 0,
-        data: [{
-            image: '/static/images/banner/banner01.jpg'
-          },
-          {
-            image: '/static/images/banner/banner02.jpg'
-          },
-          {
-            image: '/static/images/banner/banner03.jpg'
-          }
-        ]
-      }
-    },
-    methods: {
-      clickBannerItem(item) {
-        console.info(item)
-      },
-      changeSwiper(e) {
-        this.current = e.detail.current
-      },
-      changeGrid(e) {
-        this.$modal.showToast('模块建设中~')
-      }
-    }
-  }
-</script>
-
-<style lang="scss">
-  /* #ifndef APP-NVUE */
-  page {
-    display: flex;
-    flex-direction: column;
-    box-sizing: border-box;
-    background-color: #fff;
-    min-height: 100%;
-    height: auto;
-  }
-
-  view {
-    font-size: 14px;
-    line-height: inherit;
-  }
-
-  /* #endif */
-
-  .text {
-    text-align: center;
-    font-size: 26rpx;
-    margin-top: 10rpx;
-  }
-
-  .grid-item-box {
-    flex: 1;
-    /* #ifndef APP-NVUE */
-    display: flex;
-    /* #endif */
-    flex-direction: column;
-    align-items: center;
-    justify-content: center;
-    padding: 15px 0;
-  }
-
-  .uni-margin-wrap {
-    width: 690rpx;
-    width: 100%;
-    ;
-  }
-
-  .swiper {
-    height: 300rpx;
-  }
-
-  .swiper-box {
-    height: 150px;
-  }
-
-  .swiper-item {
-    /* #ifndef APP-NVUE */
-    display: flex;
-    /* #endif */
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-    color: #fff;
-    height: 300rpx;
-    line-height: 300rpx;
-  }
-
-  @media screen and (min-width: 500px) {
-    .uni-swiper-dot-box {
-      width: 400px;
-      /* #ifndef APP-NVUE */
-      margin: 0 auto;
-      /* #endif */
-      margin-top: 8px;
-    }
-
-    .image {
-      width: 100%;
-    }
-  }
-</style>

+ 1 - 1
user_ui/permission.js

@@ -4,7 +4,7 @@ import { getToken } from '@/utils/auth'
 const loginPage = "/pages/login"
 const loginPage = "/pages/login"
   
   
 // 页面白名单
 // 页面白名单
-const whiteList = ['/pages/index','/pages/agreement',
+const whiteList = ['/pages/index/index','/pages/agreement',
   '/pages/login','/pages/tlogin', '/pages/register', '/pages/common/webview/index'
   '/pages/login','/pages/tlogin', '/pages/register', '/pages/common/webview/index'
 ]
 ]
 
 

BIN
user_ui/static/images/banner/banner01.jpg


BIN
user_ui/static/images/banner/banner02.jpg


BIN
user_ui/static/images/banner/banner03.jpg


BIN
user_ui/static/images/home/adra.png


BIN
user_ui/static/images/home/adrbg.png


BIN
user_ui/static/images/home/cbga.png


BIN
user_ui/static/images/home/cbgb.png


BIN
user_ui/static/images/home/cir.png


BIN
user_ui/static/images/home/conta.png


BIN
user_ui/static/images/home/contb.png


BIN
user_ui/static/images/home/contc.png


BIN
user_ui/static/images/home/contd.png


BIN
user_ui/static/images/home/deva.png


BIN
user_ui/static/images/home/eye.png


BIN
user_ui/static/images/home/htaba.png


BIN
user_ui/static/images/home/htabb.png


BIN
user_ui/static/images/home/htabc.png


BIN
user_ui/static/images/home/htabd.png


BIN
user_ui/static/images/home/htabe.png


BIN
user_ui/static/images/home/htabf.png


BIN
user_ui/static/images/home/htabg.png


BIN
user_ui/static/images/home/htabh.png


BIN
user_ui/static/images/home/htabi.png


BIN
user_ui/static/images/home/htabj.png


BIN
user_ui/static/images/home/htabk.png


BIN
user_ui/static/images/home/htabl.png


BIN
user_ui/static/images/home/htabm.png


BIN
user_ui/static/images/home/htabn.png


BIN
user_ui/static/images/home/htabo.png


BIN
user_ui/static/images/home/htabp.png


BIN
user_ui/static/images/home/jfico.png


BIN
user_ui/static/images/home/lista.png


BIN
user_ui/static/images/home/listb.png


BIN
user_ui/static/images/home/listc.png


BIN
user_ui/static/images/home/more.png


BIN
user_ui/static/images/home/rimg.png


BIN
user_ui/static/images/home/tips.png


BIN
user_ui/static/images/home/up.png


BIN
user_ui/static/images/home/voice.png


BIN
user_ui/static/images/home/yhbg.png


BIN
user_ui/static/images/mine/icon_dl_xs.png


BIN
user_ui/static/images/mine/icon_dl_yc.png


BIN
user_ui/static/images/mine/icon_dlzc_sjhm_xl.png


BIN
user_ui/static/images/mine/ldicon.png


BIN
user_ui/static/images/navbg.png


BIN
user_ui/static/images/nodata.png


BIN
user_ui/static/images/rimg.png


+ 51 - 5
user_ui/static/style.css

@@ -5,14 +5,20 @@
 .flex0{flex: 0 0 auto;}
 .flex0{flex: 0 0 auto;}
 .flex01{flex: 0 1 auto;}
 .flex01{flex: 0 1 auto;}
 .flexcj{display: flex;align-items: center;justify-content: space-between;}
 .flexcj{display: flex;align-items: center;justify-content: space-between;}
-
-
+.flexcw{flex-wrap: wrap;display: flex;align-items: center;}
+.flexccc{display: flex;flex-direction: column;align-items: center;justify-content: center;}
+.flexjd{display: flex;justify-content: flex-end;}
+image{display: block !important;}
+.bgbox{background-color: rgba(0, 0, 0, 0.5);position: fixed;left: 0;right: 0;top: 0;bottom: 0;z-index: 5;}
 .clearf::after {
 .clearf::after {
   content: "";
   content: "";
-  display: block;
+  display: block; 
   clear: both;
   clear: both;
 }
 }
-
+.w50{width: 50%;}
+.fw5{font-weight: 500;}
+.txr{text-align: right;}
+.overh{overflow: hidden;}
 .overa{overflow: auto;}
 .overa{overflow: auto;}
 .over{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
 .over{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
 .overtwo{word-break: break-all;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;white-space: normal;}
 .overtwo{word-break: break-all;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;white-space: normal;}
@@ -20,18 +26,58 @@
 .shax {font-size: 30rpx;color: #666;text-align: center;padding: 20rpx 0;}
 .shax {font-size: 30rpx;color: #666;text-align: center;padding: 20rpx 0;}
 .rhbtn{width: 100%;height: 88rpx;display: flex;align-items: center;justify-content: center;
 .rhbtn{width: 100%;height: 88rpx;display: flex;align-items: center;justify-content: center;
 font-weight: bold;font-size: 26rpx;color: #FFFFFF;background: #0256FD;border-radius: 20rpx;}
 font-weight: bold;font-size: 26rpx;color: #FFFFFF;background: #0256FD;border-radius: 20rpx;}
+.rfbtn{height: 100rpx;display: flex;align-items: center;justify-content: center;font-weight: bold;position: fixed;left: 0;right: 0;bottom: 0;z-index: 4;font-size: 26rpx;color: #FFFFFF;background: #0156FE;}
 
 
+
+.lh18{line-height: 36rpx;}
 .f12{font-size: 24rpx;}
 .f12{font-size: 24rpx;}
+.f13{font-size: 26rpx;}
+.f18{font-size: 36rpx;}
+.coa{color: #aaaaaa;}
+.co27{color: #272727;}
 .co01{color: #0156FE;}
 .co01{color: #0156FE;}
 .cofe{color: #FE5A0E;}
 .cofe{color: #FE5A0E;}
 .co28{color: #28C529;}
 .co28{color: #28C529;}
 .coff{color: #FF6969 !important;}
 .coff{color: #FF6969 !important;}
+.co05{color: #0556F6;}
+.co025{color: #0256FD !important;}
+.co16{color: #16BE7F;}
+.cof4{color: #F40027;}
+
+.plr2{padding: 0 4rpx;}
+.plr5{padding: 0 10rpx;}
+.plr12{padding: 0 24rpx;}
+.plr15{padding: 0 30rpx;}
+.pr35{padding-right: 70rpx;}
+.pt10{padding-top: 20rpx;}
+.ml2{margin-left: 4rpx;}
+.ml8{margin-left: 16rpx;}
+.ml10{margin-left: 20rpx;}
 
 
+.mr2{margin-right: 4rpx;}
+.mr12{margin-right: 24rpx;}
+.mr18{margin-right: 36rpx;}
 .mb4{margin-bottom: 8rpx;}
 .mb4{margin-bottom: 8rpx;}
+.mb5{margin-bottom: 10rpx;}
+.mb6{margin-bottom:12rpx;}
+.mb7{margin-bottom:14rpx;}
+.mb8{margin-bottom:16rpx;}
 .mb9{margin-bottom: 18rpx !important;}
 .mb9{margin-bottom: 18rpx !important;}
 .mb10{margin-bottom: 20rpx;}
 .mb10{margin-bottom: 20rpx;}
+.mb12{margin-bottom: 24rpx;}
 .mb14{margin-bottom: 28rpx;}
 .mb14{margin-bottom: 28rpx;}
+.mb15{margin-bottom: 30rpx;}
 .mb16{margin-bottom: 32rpx;}
 .mb16{margin-bottom: 32rpx;}
+.mb18{margin-bottom: 36rpx;}
+.mb20{margin-bottom: 40rpx;}
 .mb22{margin-bottom: 44rpx;}
 .mb22{margin-bottom: 44rpx;}
+.mb24{margin-bottom: 48rpx;}
+.mb28{margin-bottom: 56rpx;}
+.mb30{margin-bottom: 60rpx;}
+.mb38{margin-bottom: 76rpx;}
+.mt5{margin-top: 10rpx;}
 .mt12{margin-top: 24rpx;}
 .mt12{margin-top: 24rpx;}
-.mt63{margin-top: 126rpx;}
+.mt16{margin-top: 32rpx;}
+.mt30{margin-top: 60rpx;}
+.mt63{margin-top: 126rpx;}
+.mt110{margin-top: 220rpx;}

+ 129 - 0
user_ui/work/components/box/list.vue

@@ -0,0 +1,129 @@
+<template>
+<view>
+	<!-- 第一种样式  人员管理-->
+	<block v-if="datainfo.length>0">
+		<!-- 报修管理 -->
+		<block v-if="type=='warranty'">
+			<view class="walists" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
+				<view class="watop ">
+					<view class="watit">
+						<view class="tit">一号楼3单元12楼楼梯间灯不亮</view>
+						<view class="txt co01" v-if="ite.type==1">待分派</view>
+						<view class="txt coa" v-if="ite.type==3">已完成</view>
+						<view class="txt co28" v-if="ite.type==2">处理中</view>
+					</view>
+					<view class="walist"><view class="tit">小区名称</view>:幸福小区</view>
+					<view class="walist"><view class="tit">报修门户</view>:3号楼1单元406</view>
+					<view class="walist"><view class="tit">报修时间</view>:2024-11-14 17:16:31</view>
+					<view class="walist" v-if="ite.type==3"><view class="tit" >完成时间</view>:2024-11-14 18:16:31</view>
+				</view>
+				<view class="wabtn">
+					<view>查看详情</view>
+					<image :src="rimg"></image>
+				</view>
+			</view>
+		</block>
+		
+		<view class="shax" v-if="wtdt">{{wtdt}}</view>
+	</block>
+	<!-- 无数据 -->
+	<view class="nodata" v-else>
+		<image :src="noiconpimg"></image>
+		<view>
+			暂无数据
+		</view>
+	</view>
+</view>
+</template>
+
+<script>
+	import config from '@/config'
+	export default{
+		props:{
+			datainfo: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			wtdt:{
+				type:String,
+				default () {
+					return ''
+				}
+			},
+			type:{
+				type:String,
+				default () {
+					return 0
+				}
+			},
+			topval:{
+				type:String,
+				default () {
+					return ''
+				}
+			}
+		},
+		data(){
+			return{
+				noiconpimg:require("@/work/static/nodata.png"),
+				rimg:require('@/static/images/rimg.png'),
+				baseUrl:config.baseUrl,
+				
+			}
+		},
+		mounted() {
+			
+		},
+		methods:{
+			getDetail(e){
+				this.$emit('getDetail',e)
+			},
+			getPreview(idx,arr) {
+				var newArr=[];
+				arr.forEach(ite=>{
+					var ds=this.baseUrl+ite
+					newArr.push(ds)
+				})
+				uni.previewImage({
+					urls: newArr,
+					current:idx,
+					success: function(data) {},
+					fail: function(err) {}
+				});
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.flex{display: flex;}
+.flexc{display: flex;align-items: center;}
+.mb10{margin-bottom: 20rpx;}
+// 报修
+.walists{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;    position: relative;
+	.watop{
+		padding: 0 36rpx 8rpx 38rpx;
+		.watit{padding: 24rpx 0;margin-bottom: 4rpx;display: flex;
+			.tit{font-weight: bold;font-size: 28rpx;color: #272727;flex: 1;
+				.cir{width: 14rpx;margin-left: 8rpx;margin-bottom: 10rpx;height: 14rpx;display: inline-block;background: #FF6969;border-radius: 8rpx;}
+			}
+			.txt{font-weight: bold;font-size: 26rpx;flex: 0 0 auto;
+			}
+		}
+	}
+	.walist{display: flex;font-weight: 500;font-size: 24rpx;color: #666666;margin-bottom: 16rpx;
+		.tit{min-width: 100rpx;text-align-last: justify}
+	}
+	.wabtn{display: flex;align-items: center;justify-content: space-between;border-top: 2rpx solid #E5E5E5;height: 80rpx;padding: 0 38rpx;
+		view{font-weight: 500;font-size: 24rpx;color: #666666;}
+		image{width: 16rpx;height: 28rpx;}
+	}
+}
+// 无数据
+.nodata{display: flex;flex-direction: column;align-items: center;
+	image{width: 440rpx;height: 440rpx;}
+	view{font-size: 30rpx;color: #666666;font-weight: bold;}
+}
+</style>

+ 0 - 164
user_ui/work/components/car/list.vue

@@ -1,164 +0,0 @@
-<template>
-<view>
-	<!-- 第一种样式  人员管理-->
-	<block v-if="datainfo.length>0">
-		<block v-if="type=='car'">
-			<view class="carlist" v-for="(ite,idx) in datainfo" :key="idx">
-				<view class="ctop flexc">
-					<image :src="cara" class="imgs" v-if="ite.type==1"></image>
-					<image :src="carb" class="imgs" v-if="ite.type==2"></image>
-					<view class="tit">皖A IC520</view>
-					<view class="btn btna">新能源</view>
-					<view class="btn btnb">小型车</view>
-					<view class="flex1"></view>
-					<view class="txt ca" v-if="ite.type==1">小区车辆</view>
-					<view class="txt cb" v-if="ite.type==2">外来车辆</view>
-				</view>
-				<view class="clists">
-					<view class="clist"><view class="tit">车库名称</view>地下停车场</view>
-					<view class="clist"><view class="tit">进入时间</view>2024-11-27 16:27:48</view>
-					<block v-if="topval=='sl'">
-						<view class="clist"><view class="tit">驶离时间</view>2024-11-27 16:27:48</view>
-						<view class="clist"><view class="tit">停车时长</view>3小时19分钟</view>
-					</block>
-					<view class="clist"><view class="tit">{{ite.type==1?'门户号 ':'来访门户'}}</view>8#303</view>
-					<view class="clist"><view class="tit">手机号码</view>13656788668</view>
-				</view>
-			</view>
-		</block>
-		<block v-if="type=='carpark'">
-			<view class="carlist" v-for="(ite,idx) in datainfo" :key="idx">
-				<view class="ctop flexc">
-					<image :src="cara" class="imgs" v-if="ite.type==1"></image>
-					<image :src="carb" class="imgs" v-if="ite.type==2"></image>
-					<view class="tit">皖A IC520</view>
-					<view class="num" :class="ite.heiflag?'coff':''">(本年度2次)</view>
-					<view class="flex1"></view>
-					<view class="txt ca" v-if="ite.type==1">小区车辆</view>
-					<view class="txt cb" v-if="ite.type==2">外来车辆</view>
-				</view>
-				<view class="clists">
-					<view class="clist"><view class="tit">关联房号</view>12#1403</view>
-					<view class="clist"><view class="tit">手机号码</view>13656788668</view>
-					<view class="clist"><view class="tit">登记时间</view>2024-11-27 17:30:55</view>
-					<view class="clist"><view class="tit">违停拍照</view>
-						<view class="imgas">
-							<image :src="cara" @click="getPreview(idx,cara)"></image>
-							<image :src="cara"></image>
-							<image :src="cara"></image>
-							<image :src="cara"></image>
-						</view>
-					</view>
-				</view>
-			</view>
-		</block>
-		<view class="shax">{{wtdt}}</view>
-	</block>
-	<!-- 无数据 -->
-	<view class="nodata" v-else>
-		<image :src="noiconpimg"></image>
-		<view>
-			暂无数据
-		</view>
-	</view>
-</view>
-</template>
-
-<script>
-	import config from '@/config'
-	export default{
-		props:{
-			datainfo: {
-				type: Array,
-				default () {
-					return []
-				}
-			},
-			wtdt:{
-				type:String,
-				default () {
-					return ''
-				}
-			},
-			type:{
-				type:String,
-				default () {
-					return 0
-				}
-			},
-			topval:{
-				type:String,
-				default () {
-					return ''
-				}
-			}
-		},
-		data(){
-			return{
-				noiconpimg:require("@/work/static/nodata.png"),
-				car:require("@/work/static/car/car.png"),
-				cara:require("@/work/static/car/cara.png"),
-				carb:require("@/work/static/car/carb.png"),
-				baseUrl:config.baseUrl,
-				
-			}
-		},
-		mounted() {
-			
-		},
-		methods:{
-			getDetail(e){
-				this.$emit('getdetail',e)
-			},
-			getPreview(idx,arr) {
-				var newArr=[];
-				arr.forEach(ite=>{
-					var ds=this.baseUrl+ite
-					newArr.push(ds)
-				})
-				uni.previewImage({
-					urls: newArr,
-					current:idx,
-					success: function(data) {},
-					fail: function(err) {}
-				});
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-.flex{display: flex;}
-.flexc{display: flex;align-items: center;}
-.mb10{margin-bottom: 20rpx;}
-.carlist{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;
-	.ctop{border-bottom: 2rpx solid #E5E5E5;padding:26rpx 24rpx;
-		.imgs{width: 40rpx;height: 42rpx;margin-right: 30rpx;}
-		.tit{font-size: 32rpx;color: #272727;font-weight: bold;margin-right: 14rpx;}
-		.btn{height: 34rpx;border-radius: 18rpx;display: flex;align-items: center;justify-content: center;padding: 0 10rpx;font-size: 22rpx;margin-right: 24rpx;
-			&.btna{border: 2rpx solid #06C770;color: #06C770;}
-			&.btnb{border: 2rpx solid #3565ED;color: #3565ED;}
-		}
-		.txt{font-weight: 500;font-size: 26rpx;
-			&.ca{color: #3565ED;}
-			&.cb{color: #FE5A0E;}	
-		}
-		.num{font-size: 24rpx;color: #AAAAAA;}
-	}
-	.clists{padding: 24rpx 24rpx 8rpx;
-		.clist{font-weight: 500;margin-bottom: 16rpx;
-font-size: 26rpx;color: #272727;display: flex;line-height: 34rpx;
-			.tit{font-size: 26rpx;color: #AAAAAA;flex: 0 0 auto;margin-right: 16rpx;min-width: 108rpx;text-align-last: justify;}
-			.imgas{display: flex;align-items: center;flex-wrap: wrap;
-				image{width: 142rpx;height: 142rpx;margin-right: 30rpx;margin-top: 8rpx;}
-			}
-			
-		}
-	}
-}
-// 无数据
-.nodata{display: flex;flex-direction: column;align-items: center;
-	image{width: 440rpx;height: 440rpx;}
-	view{font-size: 30rpx;color: #666666;font-weight: bold;}
-}
-</style>

+ 204 - 0
user_ui/work/components/popup/pay.vue

@@ -0,0 +1,204 @@
+<template>
+	<view>
+		<!-- 弹窗 -->
+		<view class="bgbox" @click="getClose" v-if="type"></view>
+		<view v-if="type=='buy'" class="buybox">
+			<view class="buytops">
+				<view class="detop flexc mb18">
+					<image :src="zfbimg" class="buyimg"></image>
+					<view class="tit"><text class="f13">¥</text> 249</view>
+					<view class="tbtn">原价¥299</view>
+				</view>
+				<view class="paybox mb12">
+					<view class="buylist flexc" @click="getAddressFn">
+						<view class="tit over flex1">安徽省合肥市蜀山区幸福大街88号幸福小区…</view>
+						<view class="txt">添加</view>
+						<image :src="rimg" class="rimg"></image>
+					</view>
+				</view>
+				<view class="paybox mb12">
+					<view class="buylist flexc">
+						<view class="tit flex1">数量88号幸福小区…</view>
+						<view class="flexc inputs">
+							<view @click="_calcValue('minus')">-</view>
+							<input  type="number" contenteditable="true"	v-model="inputValue" class="numinp" />
+							<view @click="_calcValue('plus')">+</view>
+						</view>
+					</view>
+					<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+						<view class="buylist flexc">
+							<view class="tit">优惠券</view>
+							<view class="flex1 txr f12" :class="iszc?'co025':'coa'">{{iszc?'家政服务满200减50':'选择上门时间'}}</view>
+							<image :src="rimg" class="rimg"></image>
+						</view>
+					</picker>
+					
+					<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+						<view class="buylist flexc">
+							<view class="tit">预约时间</view>
+							<view class="flex1 txr f12" :class="iszc?'co27':'coa'">{{iszc?'是':'选择上门时间'}}</view>
+							<image :src="rimg" class="rimg"></image>
+						</view>
+					</picker>
+					<view class="buylist flexc">
+						<view class="tit mr18">订单备注</view>
+						<uni-easyinput type="textarea" autoHeight v-model="iszc" :inputBorder='false' placeholder="添加留言,让我们的服务更贴心~" />
+						<view class="voice flexc">
+							<image :src="voiceimg"></image>
+							语音输入
+						</view>
+					</view>
+				</view>
+				<view class="paybox">
+					<view class="tit tits">支付方式</view>
+					<view class="buylist flexc mb14">
+						<image :src="zfbimg" class="zfbimg"></image>
+						<view class="tit flex1">支付宝支付</view>
+						<image :src="chose" class="choseimg" v-if="paystu=='zfb'"></image>
+						<image :src="nchose" class="choseimg" v-else></image>
+					</view>
+					<view class="buylist flexc mb8">
+						<image :src="wximg" class="zfbimg"></image>
+						<view class="tit flex1">微信支付</view>
+						<image :src="chose" class="choseimg" v-if="paystu=='wx'"></image>
+						<image :src="nchose" class="choseimg" v-else></image>
+					</view>
+				</view>
+			</view>
+			<view class="buybtn">立即支付 ¥249</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { getToken } from '@/utils/auth'
+	import {uploadmore} from '@/utils/common.js'
+	export default{
+		components:{},
+		props:{
+			type: {
+				type: String,
+				default () {
+					return ''
+				}
+			},
+		},
+		data(){
+			return{
+				baseUrl:config.baseUrl,
+				chose:require("@/work/static/chose.png"),
+				nchose:require("@/work/static/nchose.png"),
+				zfbimg:require("@/work/static/zfb.png"),
+				wximg:require("@/work/static/wx.png"),
+				rimg:require("@/static/images/rimg.png"),
+				voiceimg:require("@/work/static/voice.png"),
+				step:1,
+				min:1,
+				paystu:'zfb',
+				syqxidx:'',
+				iszc:'2323',
+				sexs: [{
+					text: '男',
+					value: 0
+				}, {
+					text: '女',
+					value: 1
+				}],
+			}
+		},
+		mounted() {
+			this.baseUrl=baseUrl
+		},
+		watch:{
+			
+			type(val){
+				// this.filelist=[];
+				// this.shtext='';
+				// this.isty='2';
+				// this.phofile=[];
+			}
+		},
+		methods:{
+			bindDateChange(e){
+				
+			},
+			getAddressFn(){
+				this.$emit('getAddressFn')
+			},
+			_calcValue(type) {
+				// if (this.disabled) {
+				// 	return;
+				// }
+				const scale = this._getDecimalScale();
+				let value = this.inputValue * scale;
+				let step = this.step * scale;
+				if (type === "minus") {
+					value -= step;
+					if (value < (this.min * scale)) {
+						return;
+					}
+					if (value > (this.max * scale)) {
+						value = this.max * scale
+					}
+				}
+				if (type === "plus") {
+					value += step;
+					if (value > (this.max * scale)) {
+						return;
+					}
+					if (value < (this.min * scale)) {
+						value = this.min * scale
+					}
+				}
+				this.inputValue = (value / scale).toFixed(String(scale).length - 1);
+			},
+			_getDecimalScale() {
+				let scale = 1;
+				// 浮点型
+				if (~~this.step !== this.step) {
+					scale = Math.pow(10, String(this.step).split(".")[1].length);
+				}
+				return scale;
+			},
+			getClose(){
+				this.$emit('getClose')
+			},
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.buybox /deep/ .uni-easyinput{min-height: 36rpx;}
+.buybox /deep/ .uni-easyinput__content-textarea{min-height:36rpx;font-size: 24rpx;margin: 0;}
+.buybox /deep/ .uni-easyinput__placeholder-class{font-size: 24rpx;color: #AAAAAA;}
+.buybox{position: fixed;left: 0;right: 0;bottom: 0;z-index: 10;min-height: calc(100vh - 476rpx);background: #F3F3F0;border-radius: 20rpx 20rpx 0 0;box-sizing: border-box;max-height: calc(100vh - 200rpx);overflow: hidden;display: flex;flex-direction: column;
+	.buytops{padding: 36rpx 18rpx 60rpx;flex: 1;overflow: auto;
+		.detop{padding:0 12rpx; 
+			.buyimg{width: 90rpx;height: 90rpx;margin-right: 34rpx;flex: 0 0 auto;}
+			.tit{font-weight: bold;font-size: 40rpx;color: #0256FD;margin-right: 30rpx;word-break: break-all;}
+			.tbtn{background: #FF9E00;font-weight: 500;font-size:24rpx;padding: 6rpx 12rpx;flex: 0 0 auto;color: #FFFFFF;border-radius: 10rpx;min-height: 46rpx;box-sizing: border-box;}
+		}
+		.paybox{background: #FFFFFF;border-radius: 10rpx;padding: 8rpx 0;}
+		.tit{font-weight: bold;font-size: 26rpx;color: #272727;}
+		.tits{padding: 28rpx 36rpx 10rpx;}
+		.buylist{padding: 16rpx 36rpx;min-height: 80rpx;
+			
+			.txt{font-weight: 500;font-size: 24rpx;color: #AAAAAA;flex: 0 0 auto;margin-left:16rpx;}
+			.rimg{width: 16rpx;height: 24rpx;flex: 0 0 auto;margin-left:16rpx;}
+		}
+		.inputs{border-radius: 10rpx;border: 2rpx solid #DADADA;flex: 0 1 auto;
+			view{font-size: 26rpx;font-weight: bold;color: #272727;width: 46rpx;flex: 0 0 auto;flex: 0 0 auto;display: flex;align-items: center;justify-content: center;}
+			input{font-size: 26rpx;font-weight: bold;color: #272727;width: 78rpx;flex: 0 1 auto;border: 2rpx solid #DADADA;border-top: none;border-bottom: none;height: 54rpx;box-sizing: border-box;padding: 0 4rpx;box-sizing: border-box;text-align: center;}
+		}
+		.zfbimg{width: 58rpx;height: 58rpx;margin-right: 20rpx;flex: 0 0 auto;}
+		.choseimg{width: 30rpx;height: 30rpx;margin-left: 30rpx;flex: 0 0 auto;}
+	}
+	.voice{font-weight: 500;font-size: 24rpx;color: #45CB99;border-left: 2rpx solid #DADADA;padding-left: 12rpx;margin-left: 12rpx;flex: 0 0 auto;
+		image{width: 24rpx;height: 24rpx;margin-right: 8rpx;}
+	}
+	.buybtn{height: 100rpx;display: flex;align-items: center;justify-content: center;font-weight: bold;font-size: 30rpx;color: #FFFFFF;background: #0156FE;}
+}
+</style>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 35 - 979
user_ui/work/components/popup/popup.vue


+ 0 - 153
user_ui/work/pages/car/carcheck.vue

@@ -1,153 +0,0 @@
-<template>
-	<view class="check">
-		<view class="cbox">
-			<view class="chtop flexc">
-				<image :src="line"></image>
-				<view>车辆信息</view>
-			</view>
-			<view class="chmain">
-				<view class="upbox" @click="getaddImage">
-					<image :src="baseUrl+user.front" class="img" v-if="user.front"></image>
-					<image :src="car" class="addimg"></image>
-					<view>拍摄车辆照片自动识别</view>
-				</view>
-				<uni-forms ref="form" :model="user">
-				  <uni-forms-item label="车牌号码" name="realName">
-					  <uni-easyinput v-model="user.realName" disabled :inputBorder='false' placeholder="自动识别" />
-				  </uni-forms-item>
-					<uni-forms-item label="来访门户" name="phonenumber">
-					  <uni-easyinput v-model="user.phonenumber" :inputBorder='false' placeholder="请输入门户号" />
-					</uni-forms-item>
-					<uni-forms-item label="手机号码" name="phonenumber">
-					  <uni-easyinput v-model="user.phonenumber" :inputBorder='false' placeholder="请输入手机号码" />
-					</uni-forms-item>
-				</uni-forms>
-				<view class="rhbtn mt63" @click="getNext">确定添加</view>
-			</view>
-		</view>
-		<loading></loading>
-	</view>
-</template>
-
-<script>
-	import config from '@/config'
-	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	import {uploadIdentify} from '@/utils/common.js'
-	export default{
-		components:{},
-		data(){
-			return{
-				line:require('@/work/static/car/line.png'),
-				car:require('@/work/static/car/carico.png'),
-				baseUrl:config.baseUrl,
-				user:{
-					realName:'',
-					idCard:'',
-					address:'',
-					expirationDate:'',
-					phonenumber:this.$store.state.user.phonenumber,
-					front:'',
-					back:'',
-				},
-			}
-		},
-		onLoad: function() {
-		
-		},
-		methods:{
-			checkPermi, checkRole,
-			getaddImage(e){
-				let that = this;
-				// var rs=['D:\\idcard.png']
-				// if(rs&&rs.length>0){
-				// 	var obj={
-				// 		type:e,
-				// 		// url:baseUrl+rs.join(',')
-				// 		url:rs.join(',')
-				// 	}
-				// 	that.getOcrIdCard(obj)
-				// }
-				// return
-				let file =[],count=9
-				uni.chooseImage({
-					count: 1,
-					success:function(res){
-						let img= res.tempFilePaths;
-						if(img.length + file.length > count){
-							uni.showToast({
-								title: '最多上传'+count+'张图片',
-								icon: 'none',
-								duration: 2000
-							})
-						}else{
-							let imglen = res.tempFilePaths.length;
-							var fuwufile = [];
-							uploadIdentify('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
-								var resurl=rs[0];
-								if(e=='front'){
-									that.user.front=resurl.fileName;
-								}else{
-									that.user.back=resurl.fileName;
-								}
-								if(rs&&rs.length>0){
-									var obj={
-										type:e,
-										url:resurl.urlOnline
-									}
-									that.getOcrIdCard(obj)
-								}
-							})	
-						}
-					}
-				});
-			},
-			getOcrIdCard(obj){
-				var params={
-					image:obj.url,
-					idCardSide:obj.type
-				}
-				getOcrIdCard(params).then(res=>{
-					if(res.code==200){
-						var user=res.data;
-						if(obj.type=='front'){
-							this.user.realName=user.realName;
-							this.user.idCard=user.idCard;
-							this.user.address=user.address;
-						}else{
-							this.user.expirationDate=user.expirationDate
-						}
-					}
-				})
-			}
-		}
-	}
-</script>
-<style>
-	page{background: #F3F3F0;}
-</style>
-<style lang="scss" scoped>
-.check /deep/ .uni-forms-item{min-height: 106rpx;box-sizing: border-box;display: flex;align-items: center;margin-bottom: 0;border-bottom: 2rpx solid #E6E6E6;padding:10rpx 0;}
-.check /deep/ .uni-forms-item__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;}
-.check /deep/ .uni-easyinput{flex: 1;text-align: right;font-size: 26rpx;color: #222327;}
-.check /deep/ .uni-easyinput__content-textarea{min-height: 40rpx;font-size: 26rpx;}
-.check /deep/ .uni-easyinput__placeholder-class{font-size: 26rpx;color: #AAAAAA;}
-.check /deep/ .uni-input-input{font-size: 26rpx;}
-.check /deep/ .uni-textarea-textarea{font-size: 26rpx;}
-.check /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
-.check{min-height: 100vh;padding: 20rpx 24rpx 24rpx;box-sizing: border-box;display: flex;box-sizing: border-box;}
-.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;padding-bottom: 32rpx;
-	.chtop{padding-top: 32rpx;margin-bottom: 32rpx;
-		image{width: 14rpx;height: 48rpx;margin-right: 20rpx;}
-		view{font-weight: bold;font-size: 32rpx;color: #272727;}
-	}
-	.chmain{
-		padding: 0 24rpx;
-		.upbox{height: 224rpx;background: #EFF4FF;border-radius: 20rpx;display: flex;align-items: center;justify-content: center;flex-direction: column;margin-bottom: 8rpx;overflow: auto;
-			.img{width: 100%;height: 100%;}
-			.addimg{width: 70rpx;height: 70rpx;margin-bottom: 16rpx;}
-			view{font-weight: bold;font-size: 26rpx;color: #4C6686;}
-		}
-	}
-	
-}
-</style>

+ 0 - 138
user_ui/work/pages/car/carku.vue

@@ -1,138 +0,0 @@
-<template>
-	<view class="car" :style="'padding-top:'+patop+'px;'">
-		<view class="cartop">
-			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
-			</view>
-			<view class="tips">车位总计<text class="co01">365个</text>,当前空闲地下车位<text class="cofe">27个</text>,地面车位<text class="co28">18个</text></view>
-			<view class="tablst flexc">
-				<view class="tabs" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
-			</view>
-		</view>
-		<!-- 列表 -->
-		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='carku'></car-list>
-		</view>
-		<loading></loading>
-	</view>
-</template>
-
-<script>
-	import config from '@/config'
-	const baseUrl = config.baseUrl
-	import carList from "@/work/components/car/list.vue"
-	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	export default{
-		components:{carList},
-		data(){
-			return{
-				reset:require('@/work/static/car/reset.png'),
-				up:require('@/work/static/car/up.png'),
-				car:require('@/work/static/car/car.png'),
-				cara:require('@/work/static/car/cara.png'),
-				carb:require('@/work/static/car/carb.png'),
-				search:require('@/work/static/car/search.png'),
-				list:[{tit:'皖A IC520',type:1}],
-				pageSize: 10,
-				pageNum: 1,
-				reachflag: true,
-				wtdt:'',
-				ttopval:'tcw',
-				tabval:'0',
-				patop:'144',
-				ttoplist:[{tit:'停车位',val:'tcw'},{tit:'充电桩位',val:'cdz'}],
-				tablist:[{tit:'地下车位',val:0},{tit:'地面车位',val:1}]
-			}
-		},
-		onLoad: function() {
-		},
-		mounted() {
-			var that=this;
-			setTimeout(function(){
-				that.getHeightFn()
-			},200)
-		},
-		// 上拉触底加载更多触发事件
-		onReachBottom() {
-			if (this.reachflag) {
-				this.pageNum++
-				this.getDataFn()
-			}
-		},
-		methods:{
-			checkPermi, checkRole,
-			getHeightFn(){
-				let query = uni.createSelectorQuery().in(this);
-				var that=this;
-				//需要给黄色区域设置一个id标识,在这里是demo
-				query.select('.cartop').boundingClientRect(data => {
-					var height=data.height;
-					that.patop=Number(height)
-				}).exec();
-			},
-			getTabtop(val){
-				this.ttopval=val
-			},
-			getTabFn(val){
-				this.tabval=val
-			},
-			getDataFn(){
-				var params={
-					pageSize:this.pageSize,
-					pageNum: this.pageNum,
-				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
-					if(res.code==200){
-						if (res.rows.length < this.pageSize) {
-							this.reachflag = false
-							this.wtdt = '到底了~';
-						} else {
-							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
-							if (num < res.total) {
-								this.reachflag = true
-								this.wtdt = ''
-							} else {
-								this.reachflag = false
-								this.wtdt = '到底了~';
-							}
-						}
-						if (this.pageNum == 1) {
-							this.list = res.rows;
-						} else {
-							this.list = this.list.concat(res.rows)
-						}
-					}else{
-						this.$toast(res.msg)
-					}
-				})
-				
-			},
-		}
-	}
-</script>
-<style>
-	page{background: #F3F3F0;}
-</style>
-<style lang="scss" scoped>
-.car{}
-.cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
-	.tabtop{padding-bottom: 44rpx;padding-top: 40rpx;
-		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 60rpx;padding: 0 40rpx;margin-right: 6rpx;
-			&.act{font-weight: bold;font-size: 32rpx;color: #272727;
-			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
-			}
-		}
-	}
-	.tips{font-weight: 500;font-size: 24rpx;color: #666666;
-		padding: 0 36rpx 16rpx;
-	}
-	.tablst{background: #F3F3F0;padding:24rpx 14rpx 24rpx 46rpx;overflow: auto;
-		.tabs{height: 48rpx;background: #DADADA;border-radius: 24rpx;margin-right: 34rpx;font-weight: 500;display: flex;align-items: center;justify-content: center;padding: 0 24rpx;
-font-size: 26rpx;box-sizing: border-box;flex: 0 0 auto;color: #666666;
-			&.act{border: 2rpx solid #0256FD;background: #FFFFFF;color: #0256FD;}
-		}
-	}
-}
-.carlists{padding: 0 18rpx;}
-</style>

+ 0 - 175
user_ui/work/pages/car/illegalParking.vue

@@ -1,175 +0,0 @@
-<template>
-	<view class="car">
-		<view class="cartop">
-			<view class="topa flexc">
-				<image :src="reset" class="resetimg" @click="getReset"></image>
-				<picker mode="date"   @change='bindDateChangea'>
-					<view class="chekt flexc">
-						<view>{{cxrq|| "选择日期"}}</view>
-						<image :src="up"></image>
-					</view>
-				</picker>
-				<view class="search flexc">
-					<image :src="search"></image>
-					<!-- confirm-type="search" @confirm="getConfirm" -->
-					<input placeholder="请输入车牌号进行搜索"  v-model="text"/>
-					<view class="btn" @click="getConfirm">搜索</view>
-				</view>
-			</view>
-			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
-			</view>
-			<!-- <view class="tablst flexc">
-				<view class="tabs" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
-			</view> -->
-		</view>
-		<!-- 列表 -->
-		<view class="carlists mt12">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='carpark'></car-list>
-		</view>
-		<view class="fbtn" @click="getCheck">违停登记</view>
-		<loading></loading>
-	</view>
-</template>
-
-<script>
-	import config from '@/config'
-	const baseUrl = config.baseUrl
-	import carList from "@/work/components/car/list.vue"
-	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	export default{
-		components:{carList},
-		data(){
-			return{
-				reset:require('@/work/static/car/reset.png'),
-				up:require('@/work/static/car/up.png'),
-				car:require('@/work/static/car/car.png'),
-				cara:require('@/work/static/car/cara.png'),
-				carb:require('@/work/static/car/carb.png'),
-				search:require('@/work/static/car/search.png'),
-				cxrq:"",
-				text:'',
-				list:[{tit:'皖A IC520',type:1,heiflag:false},{tit:'晋E KD783',type:2,heiflag:true},],
-				pageSize: 10,
-				pageNum: 1,
-				reachflag: true,
-				wtdt:'暂无数据',
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'小区车辆',val:1},{tit:'外来车辆',val:2}],
-			}
-		},
-		onLoad: function() {
-		
-		},
-		// 上拉触底加载更多触发事件
-		onReachBottom() {
-			if (this.reachflag) {
-				this.pageNum++
-				this.getDataFn()
-			}
-		},
-		methods:{
-			checkPermi, checkRole,
-			getCheck(){
-				this.$tab.navigateTo("/work/pages/car/illegalcheck")
-			},
-			getTabtop(val){
-				this.ttopval=val
-			},
-			getConfirm(){
-				this.getrefreshData()
-			},
-			getReset(){
-				this.cxrq='';
-				this.text='';
-				this.getrefreshData()
-			},
-			getrefreshData(){
-				this.pageNum=1;
-				this.list=[];
-				this.reachflag=true;
-				this.getDataFn()
-			},
-			getTabFn(val){
-				this.tabval=val
-			},
-			bindDateChangea(e){
-				var val=e.detail.value;
-				this.cxrq=val;
-			},
-			getDataFn(){
-				var params={
-					pageSize:this.pageSize,
-					pageNum: this.pageNum,
-				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
-					if(res.code==200){
-						if (res.rows.length < this.pageSize) {
-							this.reachflag = false
-							this.wtdt = '到底了~';
-						} else {
-							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
-							if (num < res.total) {
-								this.reachflag = true
-								this.wtdt = ''
-							} else {
-								this.reachflag = false
-								this.wtdt = '到底了~';
-							}
-						}
-						if (this.pageNum == 1) {
-							this.list = res.rows;
-						} else {
-							this.list = this.list.concat(res.rows)
-						}
-					}else{
-						this.$toast(res.msg)
-					}
-				})
-				
-			},
-		}
-	}
-</script>
-<style>
-	page{background: #F3F3F0;}
-</style>
-<style lang="scss" scoped>
-.car{padding: 206rpx 0 108rpx;}
-.cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
-	.topa{padding: 20rpx ;
-		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}
-		.chekt{min-width: 180rpx;
-			view{font-weight: 500;font-size: 26rpx;color: #272727;flex: 1;}
-			image{width: 24rpx;height: 16rpx;margin-left: 18rpx;flex: 0 0 auto;}
-		}
-		.search{flex: 1;margin-left: 16rpx;height: 64rpx;background: #EEEEEE;border-radius: 32rpx;border: 2rpx solid #E6E6E6;padding-left: 24rpx;box-sizing: border-box;
-		image{width: 32rpx;height: 34rpx;margin-right: 22rpx;flex: 0 0 auto;}
-		input{flex: 1;font-size: 26rpx;color: #272727;}
-		.btn{width: 100rpx;height: 64rpx;background: #3565ED;border-radius: 32rpx;flex: 0 0 auto;font-weight: bold;text-align: center;line-height: 64rpx;
-font-size: 26rpx;
-color: #FFFFFF;}
-		}
-	}
-	.tabtop{padding-bottom: 46rpx;
-		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;padding: 0 40rpx;margin-right: 6rpx;
-			&.act{font-weight: bold;font-size: 32rpx;color: #272727;
-			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
-			}
-		}
-	}
-	.tablst{background: #F3F3F0;padding:30rpx 16rpx 30rpx 46rpx;overflow: auto;
-		.tabs{height: 48rpx;background: #DADADA;border-radius: 24rpx;margin-right: 30rpx;font-weight: 500;display: flex;align-items: center;justify-content: center;padding: 0 24rpx;
-font-size: 26rpx;box-sizing: border-box;flex: 0 0 auto;color: #666666;
-			&.act{border: 2rpx solid #0256FD;background: #FFFFFF;color: #0256FD;}
-		}
-	}
-}
-.fbtn{height: 98rpx;display: flex;align-items: center;justify-content: center;
-font-weight: bold;position: fixed;left: 0;right: 0;bottom: 0;z-index: 2;
-font-size: 26rpx;
-color: #FFFFFF;
-background: #0156FE;}
-.carlists{padding: 0 18rpx;}
-</style>

+ 0 - 153
user_ui/work/pages/car/illegalcheck.vue

@@ -1,153 +0,0 @@
-<template>
-	<view class="check">
-		<view class="cbox">
-			<view class="chtop flexc">
-				<image :src="line"></image>
-				<view>车辆信息</view>
-			</view>
-			<view class="chmain">
-				<view class="upbox" @click="getaddImage">
-					<image :src="baseUrl+user.front" class="img" v-if="user.front"></image>
-					<image :src="car" class="addimg"></image>
-					<view>拍摄车辆照片自动识别</view>
-				</view>
-				<uni-forms ref="form" :model="user">
-				  <uni-forms-item label="车牌号码" name="realName">
-					  <uni-easyinput v-model="user.realName" disabled :inputBorder='false' placeholder="自动识别" />
-				  </uni-forms-item>
-					<uni-forms-item label="来访门户" name="phonenumber">
-					  <uni-easyinput v-model="user.phonenumber" :inputBorder='false' placeholder="请输入门户号" />
-					</uni-forms-item>
-					<uni-forms-item label="手机号码" name="phonenumber">
-					  <uni-easyinput v-model="user.phonenumber" :inputBorder='false' placeholder="请输入手机号码" />
-					</uni-forms-item>
-				</uni-forms>
-				<view class="rhbtn mt63" @click="getNext">确定添加</view>
-			</view>
-		</view>
-		<loading></loading>
-	</view>
-</template>
-
-<script>
-	import config from '@/config'
-	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	import {uploadIdentify} from '@/utils/common.js'
-	export default{
-		components:{},
-		data(){
-			return{
-				line:require('@/work/static/car/line.png'),
-				car:require('@/work/static/car/carico.png'),
-				baseUrl:config.baseUrl,
-				user:{
-					realName:'',
-					idCard:'',
-					address:'',
-					expirationDate:'',
-					phonenumber:this.$store.state.user.phonenumber,
-					front:'',
-					back:'',
-				},
-			}
-		},
-		onLoad: function() {
-		
-		},
-		methods:{
-			checkPermi, checkRole,
-			getaddImage(e){
-				let that = this;
-				// var rs=['D:\\idcard.png']
-				// if(rs&&rs.length>0){
-				// 	var obj={
-				// 		type:e,
-				// 		// url:baseUrl+rs.join(',')
-				// 		url:rs.join(',')
-				// 	}
-				// 	that.getOcrIdCard(obj)
-				// }
-				// return
-				let file =[],count=9
-				uni.chooseImage({
-					count: 1,
-					success:function(res){
-						let img= res.tempFilePaths;
-						if(img.length + file.length > count){
-							uni.showToast({
-								title: '最多上传'+count+'张图片',
-								icon: 'none',
-								duration: 2000
-							})
-						}else{
-							let imglen = res.tempFilePaths.length;
-							var fuwufile = [];
-							uploadIdentify('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
-								var resurl=rs[0];
-								if(e=='front'){
-									that.user.front=resurl.fileName;
-								}else{
-									that.user.back=resurl.fileName;
-								}
-								if(rs&&rs.length>0){
-									var obj={
-										type:e,
-										url:resurl.urlOnline
-									}
-									that.getOcrIdCard(obj)
-								}
-							})	
-						}
-					}
-				});
-			},
-			getOcrIdCard(obj){
-				var params={
-					image:obj.url,
-					idCardSide:obj.type
-				}
-				getOcrIdCard(params).then(res=>{
-					if(res.code==200){
-						var user=res.data;
-						if(obj.type=='front'){
-							this.user.realName=user.realName;
-							this.user.idCard=user.idCard;
-							this.user.address=user.address;
-						}else{
-							this.user.expirationDate=user.expirationDate
-						}
-					}
-				})
-			}
-		}
-	}
-</script>
-<style>
-	page{background: #F3F3F0;}
-</style>
-<style lang="scss" scoped>
-.check /deep/ .uni-forms-item{min-height: 106rpx;box-sizing: border-box;display: flex;align-items: center;margin-bottom: 0;border-bottom: 2rpx solid #E6E6E6;padding:10rpx 0;}
-.check /deep/ .uni-forms-item__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;}
-.check /deep/ .uni-easyinput{flex: 1;text-align: right;font-size: 26rpx;color: #222327;}
-.check /deep/ .uni-easyinput__content-textarea{min-height: 40rpx;font-size: 26rpx;}
-.check /deep/ .uni-easyinput__placeholder-class{font-size: 26rpx;color: #AAAAAA;}
-.check /deep/ .uni-input-input{font-size: 26rpx;}
-.check /deep/ .uni-textarea-textarea{font-size: 26rpx;}
-.check /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
-.check{min-height: 100vh;padding: 20rpx 24rpx 24rpx;box-sizing: border-box;display: flex;box-sizing: border-box;}
-.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;padding-bottom: 32rpx;
-	.chtop{padding-top: 32rpx;margin-bottom: 32rpx;
-		image{width: 14rpx;height: 48rpx;margin-right: 20rpx;}
-		view{font-weight: bold;font-size: 32rpx;color: #272727;}
-	}
-	.chmain{
-		padding: 0 24rpx;
-		.upbox{height: 224rpx;background: #EFF4FF;border-radius: 20rpx;display: flex;align-items: center;justify-content: center;flex-direction: column;margin-bottom: 8rpx;overflow: auto;
-			.img{width: 100%;height: 100%;}
-			.addimg{width: 70rpx;height: 70rpx;margin-bottom: 16rpx;}
-			view{font-weight: bold;font-size: 26rpx;color: #4C6686;}
-		}
-	}
-	
-}
-</style>

+ 215 - 0
user_ui/work/pages/clean/detail.vue

@@ -0,0 +1,215 @@
+<template>
+	<view class="house">
+		<!-- :style="'padding-top:'+nvaHeight+'px;'" -->
+		<view class="navbox">
+			<uni-nav-bar  color="#272727" left-icon="left"  @clickLeft="getBackFn"  :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">
+				<!-- 暂放详情,评价 -->
+			</uni-nav-bar>
+		</view>
+		<view>
+			<swiper  class="swiper" circular :indicator-color="incolorh" :indicator-active-color="activecolorh" :indicator-dots="indicatorDotsh" :autoplay="autoplay">
+				<!-- v-if="checkPermi(['system:application:list'])" -->
+				<swiper-item>
+					<image :src="housebg"></image>
+				</swiper-item>
+				<swiper-item>
+					<image :src="housebg"></image>
+				</swiper-item>
+			</swiper>
+		</view>
+		<!-- <image :src="housebg" class="navbg"></image> -->
+		<view class="wymain">
+			<view class="plr15">
+				<view class="detop flex mb16">
+					<view class="tit"><text class="f13">¥</text> 299</view>
+					<view class="tbtn">券后¥249</view>
+				</view>
+				<view class="detopa mb7 flex">
+					<view class="tit">单次深度清洁</view>
+					<view class="txt">销量1.2W+单</view>
+				</view>
+				<view class="detip mb10">单次服务时长3小时(超出部分须支付超时费)</view>
+				<view class="detbtns mb15">
+					<view>三级证书</view>
+					<view>慢必赔</view>
+				</view>
+				<view class="detlists flexcw mb6">
+					<view class="dlist">
+						<view class="img">
+							<image :src="cleara" class="imga"></image>
+						</view>
+						<view>全屋整理</view>
+					</view>
+					<view class="dlist">
+						<view class="img">
+							<image :src="clearb" class="imgb"></image>
+						</view>
+						<view>深度清洁</view>
+					</view>
+					<view class="dlist">
+						<view class="img">
+							<image :src="clearc" class="imgb"></image>
+						</view>
+						<view>3重消杀</view>
+					</view>
+				</view>
+			</view>
+			<!-- 评价 -->
+			<view class="evaluate">
+				<view class="tit">用户评价</view>
+				<view class="evalist">
+					<image :src="housebg" class="limg"></image>
+					<view class="flex1 overh">
+						<view class="evalr mb14 plr5">
+							<view class="flex1 overh">
+								<view class="evatit over">183****0624</view>
+								<view class="evatime">2024-11-17</view>
+							</view>
+							<view class="evaimgs flexc flex0">
+								<image :src="start"></image>
+								<image :src="nstart"></image>
+								<view>非常满意</view>
+							</view>
+						</view>
+						<view class="evatxt">按时上门,打扫的特别干净,阿姨干活非常专业,也很认真,速度很快,但是保质保量!</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view style="height: 100rpx;"></view>
+		<view class="rfbtn" @click="getBuyFn">券后 ¥249 | 立即购买</view>
+		<buy-pay :type="type" @getAddressFn="getAddressFn" @getClose="getClose"></buy-pay>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import buyPay from "@/work/components/popup/pay.vue"
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{buyPay},
+		data(){
+			return{
+				housebg:require('@/static/images/home/cbga.png'),
+				cleara:require('@/work/static/clear/cleara.png'),
+				clearb:require('@/work/static/clear/clearb.png'),
+				clearc:require('@/work/static/clear/clearc.png'),
+				start:require('@/work/static/clear/start.png'),
+				nstart:require('@/work/static/clear/nstart.png'),
+				backgroundColor: "transparent",
+				nvaHeight:44,
+				list:[{tit:'123'}],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+				autoplay:false,
+				incolorh:'#E6E6E6',
+				activecolorh:'#A7A7A7',
+				indicatorDotsh: true,
+				type:"buy",
+				pjlist:[{tit:"非常满意"},{tit:"满意"},{tit:"一般"},{tit:"差"},{tit:"非常差"},],
+			}
+		},
+		onLoad: function() {
+			uni.getSystemInfo({
+				success: (e) => {
+					this.nvaHeight = Number(e.statusBarHeight)+44;
+				}
+			})
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#ffffff'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			getBuyFn(){
+				this.type='buy'
+				// this.$tab.navigateTo("/work/pages/clean/order")
+			},
+			getAddressFn(){
+				this.$tab.navigateTo("/mine/pages/house/address")
+			},
+			getClose(){
+				this.type=''
+			},
+			getBackFn(){
+				uni.navigateBack({
+					delta:1
+				})
+			},
+			getDataFn(){
+				return
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style lang="scss" scoped>
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.swiper{height: 504rpx;image{width: 100%;height: 100%;}}
+.wymain{background: #FFFFFF;border-radius: 20rpx 20rpx 0 0;margin-top: -26rpx;z-index: 1;position: relative;padding-top: 40rpx;
+	.detop{
+		.tit{font-weight: bold;font-size: 40rpx;color: #161616;margin-right: 30rpx;word-break: break-all;}
+		.tbtn{background: #FF9E00;height: 46rpx;font-weight: 500;
+font-size:24rpx;padding: 0 12rpx;flex: 0 0 auto;color: #FFFFFF;border-radius: 10rpx;line-height: 46rpx;}
+	}
+	.detopa{
+		.tit{font-size: 32rpx;color: #161616;font-weight: bold;flex: 1;}
+		.txt{font-weight: 500;margin-left: 30rpx;flex: 0 0 auto;font-size: 24rpx;color: #808080;line-height: 42rpx;}
+	}
+	.detip{font-weight: 500;font-size: 22rpx;color: #808080;}
+	.detbtns{
+		display: flex;flex-wrap: wrap;
+		view{font-weight: 500;font-size: 24rpx;color: #45CB99;border-radius: 10rpx;height: 44rpx;padding: 4rpx 12rpx;margin-right: 26rpx;border: 2rpx solid #45CB99;margin-bottom: 10rpx;}
+	}
+	.detlists{padding: 0 30rpx;
+		.dlist{display: flex;flex-direction: column;align-items: center;justify-content: center;width: 33.3%;margin-bottom: 20rpx;
+			.img{width: 52rpx;height: 52rpx;display: flex;align-items: center;justify-content: center;margin-bottom: 20rpx;
+				.imga{width: 52rpx;height: 48rpx;}
+				.imgb{width: 44rpx;height: 52rpx;}
+			}
+			view{font-weight: 500;font-size: 24rpx;color: #666666;}
+		}
+	}
+	// 评价
+	.evaluate{border-top: 2rpx solid #E5E5E5;padding:36rpx 18rpx 0;
+		.tit{font-weight: bold;font-size: 30rpx;color: #272727;padding-left: 14rpx;}
+		// 评价列表
+		.evalist{padding: 30rpx 16rpx 32rpx 14rpx;border-bottom: 2rpx solid #E5E5E5;display: flex;margin-bottom: 10rpx;
+			.limg{
+				width: 78rpx;height: 78rpx;margin-right: 10rpx;flex: 0 0 auto;border-radius: 50%;
+			}
+			.evaimgs{margin-left: 12rpx;margin-top:22rpx;
+				image{width: 20rpx;height: 20rpx;margin-left: 4rpx;}
+				view{margin-left: 14rpx;font-weight: 500;font-size: 20rpx;color: #AAAAAA;min-width: 90rpx;}
+			}
+			.evalr{display: flex;align-items: flex-start;
+				.evatit{font-size: 28rpx;font-weight: bold;color: #272727;margin-bottom: 6rpx;margin-top: 8rpx;word-break: break-all;}
+				.evatime{font-weight: 500;font-size: 24rpx;color: #AAAAAA;}
+				
+			}
+			.evatxt{font-weight: 500;font-size: 26rpx;color: #272727;line-height: 36rpx;}
+		}
+	}
+}
+</style>

+ 213 - 0
user_ui/work/pages/clean/index.vue

@@ -0,0 +1,213 @@
+<template>
+	<view class="clear">
+		<view class="cleartop mb24">
+			<view class="search flexc">
+				<image :src="search"></image>
+				<!-- confirm-type="search" @confirm="getConfirm" -->
+				<input placeholder="深度清洁"  v-model="text"/>
+				<view class="btn" @click="getConfirm">搜索</view>
+			</view>
+		</view>
+		
+		<view class="talbbox">
+			<!-- 左侧 -->
+			<view class="tableft">
+				<view class="flexcc">
+					<view class="catetit">热门服务</view>
+				</view>
+				<scroll-view :scroll-top="scrollTop" class="cate-left" scroll-y="true" show-scrollbar="false">
+					<view class="cate-item" :class="{act:current==index}" v-for="(item,index) in cateList"
+						@click="menuTab(index)" :key="item.id">
+						{{item.label}}
+					</view>
+				</scroll-view>
+			</view>
+			<!-- 右侧 -->
+			<view class="cate-right" >
+				<scroll-view :scroll-top="riscrollTop" :scroll-into-view="'cate'+tempCurrent" class="cate-right-scroll" scroll-y="true"
+					show-scrollbar="false" @scroll="getCurrentHeight">
+					<view :id="'cate'+index" v-for="(item,index) in cateList" :key="item.id" class="cate-right-item">
+						<view class="cate-title">{{item.label}}</view>
+						<view class="cate-list flexcw">
+							<view class="list flexccc" v-for="(el,index) in item.children" @click="getTabFn(el)" :class="{act:ricurrent==el.id}" :key="el.id">
+								<image :src="cbga"></image>
+								<view class="over">保洁初体验</view>
+							</view>
+						</view>
+						<!-- <view class="cate-right-txt">
+							<text v-for="(el,index) in item.children" @click="getTabFn(el)" :class="{act:ricurrent==el.id}" :key="el.id">{{el.label}}</text>
+						</view> -->
+					</view>
+					<view style="height: 30rpx;"></view>
+				</scroll-view>
+			</view>
+		</view>
+	</view>
+	
+</template>
+
+<script>
+	// import {getCategoryTree} from "@/api/common.js"
+	export default {
+		data() {
+			return {
+				search:require('@/work/static/clear/search.png'),
+				cbga:require('@/static/images/home/adrbg.png'),
+				text:'',
+				cateList: [
+					{label:'农、林、牧、渔业',id:0,children:[{label:'农业',id:10},{label:'林业',id:11},{label:'畜牧业',id:12},{label:'渔业',id:13},{label:'农、林、牧、渔专业及辅助 性活动',id:14},]},
+					{label:'1工业',id:1,children:[{label:'采矿业',id:20},{label:'煤炭开采和洗选业',id:21},{label:'石油和天然气开采业',id:22},{label:'黑色金属矿采选业',id:23},{label:'有色金属矿采选业',id:24},]},
+					{label:'2工业',id:1,children:[{label:'采矿业',id:20},{label:'煤炭开采和洗选业',id:21},{label:'石油和天然气开采业',id:22},{label:'黑色金属矿采选业',id:23},{label:'有色金属矿采选业',id:24},]},
+					{label:'3工业',id:1,children:[{label:'采矿业',id:20},{label:'煤炭开采和洗选业',id:21},{label:'石油和天然气开采业',id:22},{label:'黑色金属矿采选业',id:23},{label:'有色金属矿采选业',id:24},]},
+					{label:'4工业',id:1,children:[{label:'采矿业',id:20},{label:'煤炭开采和洗选业',id:21},{label:'石油和天然气开采业',id:22},{label:'黑色金属矿采选业',id:23},{label:'有色金属矿采选业',id:24},]},
+					{label:'5工业',id:1,children:[{label:'采矿业',id:20},{label:'煤炭开采和洗选业',id:21},{label:'石油和天然气开采业',id:22},{label:'黑色金属矿采选业',id:23},{label:'有色金属矿采选业',id:24},]},
+					],
+				current: 0, //当前点击项
+				rectInfoList: [],
+				tempCurrent: 0,
+				ricurrent:'',
+				categoryName:'',//选择的名字
+				scrollTop: 0, //左侧导航栏距离顶部的位置
+				riscrollTop:0,//右侧导航栏距离顶部的位置
+				tabflag:false,
+			}
+		},
+		onLoad(e) {
+			// if(e.data){
+			// 	var newobj=JSON.parse(decodeURIComponent(e.data));
+			// 	this.ricurrent=newobj.id;
+			// 	this.categoryName=newobj.name
+			// }
+			// this.getCasetalbFn()
+		},
+		mounted() {
+			setTimeout(() => {
+				this.getRectInfo();
+			}, 200)
+		},
+		methods: {
+			getConfirm(){
+				
+			},
+			getCasetalbFn(){
+				getCategoryTree().then(res=>{
+					if(res.code==200){
+						this.cateList=res.data;
+					}
+				})
+			},
+			menuTab(index){
+				var that=this;
+				var idx=Number(index)
+				var top=this.rectInfoList[idx].top;
+				this.current = idx;
+				this.riscrollTop = top;
+				this.tabflag=true;
+				setTimeout(function(){
+					that.tabflag=false;
+				},500)
+			},
+			getTabFn(ite){
+				this.$tab.navigateTo("/work/pages/clean/detail")
+				// this.ricurrent=ite.id;
+				// this.categoryName=ite.label
+			},
+			getSure(){
+				// 带数据返回
+				var obj={
+					categoryName:this.categoryName,
+					categoryId:this.ricurrent,
+				}
+				uni.$emit("refreshtalb",obj)
+				uni.navigateBack({
+					delta: 1 //返回层数,2则上上页
+				});
+				
+			},
+			// 获取与顶部之间的距离
+			getRectInfo() {
+				var that=this;
+				var top = 0;
+				var bottom = 0;
+				var temp = 0;
+				for (var i = 0; i < this.cateList.length; i++) {
+					var obj={}
+					let view = uni.createSelectorQuery().in(this).select("#cate" + i);
+					view.fields({
+						size: true,
+						rect: true
+					}, data => {
+						top = temp;
+						bottom = top + data.height;
+						temp = bottom;
+						var obj={
+							'top': Number(top),
+							'bottom': Number(bottom)
+						}
+						that.rectInfoList.push(obj)
+						// console.log(top, bottom);
+					}).exec();
+				}
+			},
+			getCurrentHeight(e) {
+				var currentHeight = e.detail.scrollTop;
+				this.rectInfoList.forEach((item, index) => {
+					if (currentHeight >= item.top && currentHeight <= item.bottom&&!this.tabflag) {
+						// 当前获取的盒子高度大于top小于bottom,判定将索引传至左侧菜单导航
+						this.current = Number(index);
+						this.scrollTop = Number(index) * uni.upx2px(100);
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+/deep/::-webkit-scrollbar {
+        display: none;
+        width: 0;
+        height: 0;
+    }
+.talbbox{flex: 1;display: flex;overflow: hidden;
+	.tableft{width: 236rpx;box-shadow: 0px 8rpx 10rpx 0px #8E8E8E;display: flex;flex-direction: column;
+}
+	.catetit{font-weight: bold;font-size: 32rpx;color: #272727;position: relative;flex: 0 0 auto;
+		&::before{content: '';position: absolute;left: 0;right: 0;bottom: 0;z-index: -1;height: 20rpx;background: linear-gradient(263deg, #5CCCFF, #5CEEB8);}
+	}
+	.cate-left{width: 236rpx;flex:1;overflow: auto;
+		.cate-item{min-height: 110rpx;font-weight: 500;display: flex;align-items: center;justify-content: center;
+font-size: 28rpx;color: #666666;padding: 20rpx 46rpx;
+			&.act{font-weight: bold;color: #272727;}
+		}
+	}
+	.cate-right{flex: 1;height: 100%;
+		.cate-right-scroll{height: 100%;padding-left:18rpx;padding-right: 2rpx;
+			.cate-right-item{padding-bottom: 32rpx;
+				.cate-title{font-weight: bold;font-size: 30rpx;color: #222327;display: flex;align-items: center;padding:4rpx 0 4rpx 30rpx;margin-bottom: 20rpx;}
+				.cate-right-txt{display: flex;flex-wrap: wrap;
+					// text{font-weight: 500;font-size: 26rpx;color: #666666;margin-bottom: 16rpx;padding: 8rpx 0;width: 100%;box-sizing: border-box;display: block;
+					// 	&.act{color: $com-cd3;}
+					// }
+				}
+			}
+		
+		}
+	}
+}
+.clear{height: 100vh;display: flex;flex-direction: column;
+	.cleartop{padding: 16rpx 30rpx;flex: 0 0 auto;background: #ffffff;
+		.search{flex: 1;margin-left: 16rpx;height: 64rpx;background: #EEEEEE;border-radius: 32rpx;border: 2rpx solid #E6E6E6;padding-left: 24rpx;box-sizing: border-box;
+		image{width: 32rpx;height: 34rpx;margin-right: 22rpx;flex: 0 0 auto;}
+		input{flex: 1;font-size: 26rpx;color: #272727;}
+		.btn{width: 100rpx;height: 64rpx;background: #3565ED;border-radius: 32rpx;flex: 0 0 auto;font-weight: bold;text-align: center;line-height: 64rpx;font-size: 26rpx;color: #FFFFFF;}
+		}
+	}
+	.cate-list{
+		.list{margin: 0 15rpx;padding: 16rpx 0;
+			image{width: 210rpx;height: 148rpx;margin-bottom: 16rpx;}
+			view{font-weight: 500;font-size: 24rpx;color: #666666;}
+		}
+	}
+}
+</style>

+ 21 - 32
user_ui/work/pages/car/index.vue → user_ui/work/pages/service/warranty.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
 	<view class="car">
 	<view class="car">
 		<view class="cartop">
 		<view class="cartop">
-			<view class="topa flexc">
+<!-- 			<view class="topa flexc">
 				<image :src="reset" class="resetimg" @click="getReset"></image>
 				<image :src="reset" class="resetimg" @click="getReset"></image>
 				<picker mode="date"   @change='bindDateChangea'>
 				<picker mode="date"   @change='bindDateChangea'>
 					<view class="chekt flexc">
 					<view class="chekt flexc">
@@ -11,22 +11,19 @@
 				</picker>
 				</picker>
 				<view class="search flexc">
 				<view class="search flexc">
 					<image :src="search"></image>
 					<image :src="search"></image>
-					<!-- confirm-type="search" @confirm="getConfirm" -->
-					<input placeholder="请输入车牌号进行搜索"  v-model="text"/>
+					<input placeholder="请输入房号进行搜索"  v-model="text"/>
 					<view class="btn" @click="getConfirm">搜索</view>
 					<view class="btn" @click="getConfirm">搜索</view>
 				</view>
 				</view>
-			</view>
+			</view> -->
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
 				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
 				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
-			<view class="tablst flexc">
-				<view class="tabs" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
-			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='car'></car-list>
+			<box-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='warranty' @getDetail="getDetail"></box-list>
 		</view>
 		</view>
+		<view class="rfbtn" @click="getAddFn">我要报修</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
 </template>
 </template>
@@ -34,18 +31,15 @@
 <script>
 <script>
 	import config from '@/config'
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	const baseUrl = config.baseUrl
-	import carList from "@/work/components/car/list.vue"
+	import boxList from "@/work/components/box/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 	export default{
-		components:{carList},
+		components:{boxList},
 		data(){
 		data(){
 			return{
 			return{
-				reset:require('@/work/static/car/reset.png'),
-				up:require('@/work/static/car/up.png'),
-				car:require('@/work/static/car/car.png'),
-				cara:require('@/work/static/car/cara.png'),
-				carb:require('@/work/static/car/carb.png'),
-				search:require('@/work/static/car/search.png'),
+				// reset:require('@/work/static/car/reset.png'),
+				// search:require('@/work/static/car/search.png'),
+				// up:require('@/work/static/car/up.png'),
 				cxrq:"",
 				cxrq:"",
 				text:'',
 				text:'',
 				list:[{tit:'皖A IC520',type:1},{tit:'晋E KD783',type:2},],
 				list:[{tit:'皖A IC520',type:1},{tit:'晋E KD783',type:2},],
@@ -53,10 +47,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'jr',
-				tabval:'0',
-				ttoplist:[{tit:'进入车辆',val:'jr'},{tit:'驶离车辆',val:'sl'}],
-				tablist:[{tit:'全部',val:0},{tit:'小区车辆',val:1},{tit:'外来车辆',val:2}]
+				ttopval:'0',
+				ttoplist:[{tit:'全部报修',val:0},{tit:'待指派',val:1},{tit:'处理中',val:2},{tit:'已完成',val:2}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -71,9 +63,12 @@
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
-			// getNextFn(){
-			// 	this.$tab.navigateTo("/work/pages/business/add")
-			// },
+			getDetail(){
+				this.$tab.navigateTo("/work/pages/service/warrantydetail")
+			},
+			getAddFn(){
+				this.$tab.navigateTo("/work/pages/service/warrantyadd")
+			},
 			getTabtop(val){
 			getTabtop(val){
 				this.ttopval=val
 				this.ttopval=val
 			},
 			},
@@ -137,7 +132,7 @@
 	page{background: #F3F3F0;}
 	page{background: #F3F3F0;}
 </style>
 </style>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-.car{padding-top: 314rpx;}
+.car{padding: 146rpx 0 110rpx;}
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
 	.topa{padding: 20rpx ;
 	.topa{padding: 20rpx ;
 		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}
 		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}
@@ -153,19 +148,13 @@ font-size: 26rpx;
 color: #FFFFFF;}
 color: #FFFFFF;}
 		}
 		}
 	}
 	}
-	.tabtop{padding-bottom: 46rpx;
-		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;padding: 0 40rpx;margin-right: 6rpx;
+	.tabtop{padding-bottom: 40rpx;padding-top: 26rpx;
+		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;padding: 0 40rpx;
 			&.act{font-weight: bold;font-size: 32rpx;color: #272727;
 			&.act{font-weight: bold;font-size: 32rpx;color: #272727;
 			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
 			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
 			}
 			}
 		}
 		}
 	}
 	}
-	.tablst{background: #F3F3F0;padding:30rpx 16rpx 30rpx 46rpx;overflow: auto;
-		.tabs{height: 48rpx;background: #DADADA;border-radius: 24rpx;margin-right: 30rpx;font-weight: 500;display: flex;align-items: center;justify-content: center;padding: 0 24rpx;
-font-size: 26rpx;box-sizing: border-box;flex: 0 0 auto;color: #666666;
-			&.act{border: 2rpx solid #0256FD;background: #FFFFFF;color: #0256FD;}
-		}
-	}
 }
 }
 .carlists{padding: 0 18rpx;}
 .carlists{padding: 0 18rpx;}
 </style>
 </style>

+ 183 - 0
user_ui/work/pages/service/warrantyadd.vue

@@ -0,0 +1,183 @@
+<template>
+	<view class="address">
+		<uni-forms ref="form" class="flex1" :model="datainfo">
+			<view class="adrbox">
+				<view class="chtop flexc">
+					<view class="line"></view>
+					<view>报修信息</view>
+				</view>
+				<view class="plr15">
+					<uni-forms-item label="项目" required="true" name="realName">
+						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择项目'}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="标题" required="true"  name="phonenumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入报修标题" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-easyinput type="textarea" autoHeight v-model="datainfo.companyIntroduction" :inputBorder='false' placeholder="请详细描述您要报修的内容(最多可输入200字哦" />
+					<view class="voice mb28">
+						<view class="flexc">
+							<image :src="voice"></image>
+							语音输入
+						</view>
+					</view>
+				</view>
+				<!-- 图片 -->
+				<view class="imgs">
+					<view class="img" @click="getPreview">
+						<image :src="photo" class="pico"></image>
+						<image :src="del" class="del" @click="getDelFn"></image>
+					</view>
+					<view class="img" @click="getPreview">
+						<image :src="photo" class="pico"></image>
+						<image :src="del" class="del" @click="getDelFn"></image>
+					</view>
+					<view class="img" @click="getPreview">
+						<image :src="photo" class="pico"></image>
+						<image :src="del" class="del" @click="getDelFn"></image>
+					</view>
+					<view class="img" @click="getPreview">
+						<image :src="photo" class="pico"></image>
+						<image :src="del" class="del" @click="getDelFn"></image>
+					</view>
+					<view class="addbox" @click="getaddImage">
+						<image :src="photo" class="pico"></image>
+						<view>添加图片</view>
+					</view>
+				</view>
+			</view>
+			<view class="adrbox">
+				<view class="plr15">
+					<uni-forms-item label="联系方式"  name="phonenumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入联系方式" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+				</view>
+			</view>
+			
+		</uni-forms>
+		
+		<view class="rhbtn mt30" @click="getAddFn">提交信息</view>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { addressPermi, addressRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{},
+		data(){
+			return{
+				rimg:require('@/static/images/rimg.png'),
+				check: require('@/mine/static/check.png'),
+				ncheck: require('@/mine/static/ncheck.png'),
+				voice: require('@/work/static/voice.png'),
+				photo:require("@/work/static/service/photo.png"),
+				del:require('@/work/static/service/rdel.png'),
+				list:[{tit:'123',isdefault:true},{tit:'212123',isdefault:false,isuser:true},],
+				text:"",
+				datainfo:{},
+				mjlist:[{tit:'80m²以内',val:'0'},{tit:'80-90m²',val:'1'},{tit:'90-119m²',val:'2'},{tit:'120-139m²',val:'3'},{tit:'140-159m²',val:'4'},{tit:'160m²以上',val:'5'},],
+				checkflag:true,
+				tabval:'0',
+				sexs: [{
+					text: '男',
+					value: 0
+				}, {
+					text: '女',
+					value: 1
+				}],
+			}
+		},
+		onLoad: function() {
+		
+		},
+		methods:{
+			addressPermi, addressRole,
+			getAddFn(){
+				// this.$tab.navigateTo("/mine/pages/house/addaddress")
+			},
+			getTabFn(val){
+				this.tabval=val
+			},
+			getDataFn(){
+				return
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.address /deep/ .uni-forms-item{min-height: 106rpx;box-sizing: border-box;display: flex;align-items: center;margin-bottom: 0;border-bottom: 2rpx solid #E6E6E6;padding:10rpx 0;}
+.address /deep/ .uni-forms-item:last-child{border-bottom: none;}
+.address /deep/ .uni-forms-item__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;padding-left: 12rpx;}
+.address /deep/ .uni-easyinput{flex: 1;text-align: right;font-size: 26rpx;color: #222327;}
+.address /deep/ .uni-easyinput__content-textarea{min-height: 140rpx;font-size: 26rpx;
+border-radius: 10rpx;padding: 20rpx 14rpx;text-align: left;}
+.address /deep/ .uni-easyinput__placeholder-class{font-size: 26rpx;color: #AAAAAA;}
+.address /deep/ .uni-input-input{font-size: 26rpx;}
+.address /deep/ .uni-textarea-textarea{font-size: 26rpx;}
+.address /deep/ .is-required{font-size: 26rpx;color: #F40027;margin-right: 4rpx;}
+.address /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
+.address{min-height: 100vh;padding: 20rpx 18rpx 100rpx;display: flex;flex-direction: column;}
+.adrbox{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;
+	.rimg{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;
+		image{width: 100%;height: 100%;}
+	}
+	&.mjbox{
+		padding: 36rpx  24rpx 18rpx;
+		.tit{font-weight: bold;font-size: 26rpx;color: #272727;padding-left: 18rpx;}
+		.adrlist{
+			view{font-weight: bold;font-size: 26rpx;color: #666666;min-width: 198rpx;padding: 0 10rpx;box-sizing: border-box;margin: 0 12rpx 24rpx;height: 64rpx;display: flex;align-items: center;justify-content: center;border-radius: 10rpx;border: 2rpx solid #C1C1C1;
+			&.act{background: #DFEAFF;border: 2rpx solid #0256FD;color: #0256FD;}
+			}
+		}
+	}
+	.chtop{margin-bottom: 8rpx;padding-top: 32rpx;	
+		view{font-weight: bold;font-size: 28rpx;color: #272727;}
+		.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
+	}
+	.voice{font-weight: 500;display: flex;justify-content:flex-end;align-items: center;margin-top: 40rpx;font-size: 24rpx;color: #45CB99;
+			image{width: 24rpx;height: 24rpx;margin-right: 8rpx;}
+	}
+	.imgs{display: flex;align-items: center;flex-wrap: wrap;padding: 0 24rpx;
+		.img{width: 198rpx;height:142rpx;border-radius: 20rpx;margin: 0 12rpx 20rpx 12rpx;position: relative;
+		// &:nth-of-type(2n){margin-right: 0;}
+		}
+		.pico{width: 100%;height: 100%;border-radius: 20rpx;}
+		.del{width: 24rpx;height: 24rpx;position: absolute;right: 0;top: 0;}
+		.addbox{background: #F0F0F0;border-radius: 20rpx;display: flex;align-items: center;flex-direction: column;width: 198rpx;height:142rpx;justify-content: center;margin:0 12rpx 20rpx 12rpx;
+			image{width: 48rpx;height: 42rpx;margin-bottom: 12rpx;}
+			view{font-weight: 500;font-size: 24rpx;color: #666666;}
+		}
+	}
+	.checkimg{width: 80rpx;height: 40rpx;margin-right: 8rpx;}
+}
+
+</style>

+ 209 - 0
user_ui/work/pages/service/warrantydetail.vue

@@ -0,0 +1,209 @@
+<template>
+	<view class="warrbox" :style="'padding-top:'+nvaHeight+'px;'">
+		<view class="navbox">
+			<uni-nav-bar title="报修详情" left-icon="left" @clickLeft="getBackFn"  color="#FFFFFF" :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">	
+			</uni-nav-bar>
+		</view>
+		<!-- <image :src="mbg" class="navbg"></image> -->
+		<view class="wymain">
+			<view class="wytop flexc">
+				<image :src="typeimg" class="flex0"></image>
+				<view class="flex1" v-if="finshtype==0">
+					<view class="tit">未派工</view>
+					<view class="txt">请尽快指派人员进行处理</view>
+				</view>
+				<view class="flex1" v-if="finshtype>0&&finshtype<3">
+					<view class="tit">已派工</view>
+					<view class="txt">已指派人员进行处理</view>
+				</view>
+				<view class="flex1" v-if="finshtype==3">
+					<view class="tit">已完成</view>
+					<view class="txt">报修订单已完成</view>
+				</view>
+			</view>
+			<view class="wabox peobox">
+				<image :src="head" class="head"></image>
+				<view class="flex1">
+					<view class="peotit mb6">王师傅</view>
+					<view class="peotxt">15802340788</view>
+				</view>
+				<image :src="phone" class="phone" @click="getPhoneFn"></image>
+			</view>
+			<view class="wabox">
+				<view class="chtop flexc">
+					<view class="line"></view>
+					<view>报修信息</view>
+					<view class="flex1"></view>
+				</view>
+				<view class="walist">
+					<view class="tit">二号楼1单元904厨房油烟机损坏</view>
+					<view class="txt">二号楼1单元904厨房油烟机无法吸烟,请尽快派人上门 维修,谢谢!</view>
+					<view class="imgs">
+						<image :src="head" class="img"></image>
+					</view>
+				</view>
+			</view>
+			<view class="wabox">
+				<view class="chtop flexc">
+					<view class="line"></view>
+					<view>基础信息</view>
+					<view class="flex1"></view>
+				</view>
+				<view class="walist watxt"><view class="wtit">小区名称</view><view class="wtxt">幸福小区</view></view>
+				<view class="walist watxt"><view class="wtit">报修门户</view><view class="wtxt">二号楼1单元904</view></view>
+				<view class="walist watxt"><view class="wtit">报修时间</view><view class="wtxt">2024-11-12 13:27:36</view></view>
+				<view class="walist watxt"><view class="wtit">联系方式</view><view class="wtxt">13805680028</view></view>
+			</view>
+			<!-- <view class="wabox" v-if="finshtype>1">
+				<view class="chtop flexc">
+					<view class="line"></view>
+					<view>上门信息</view>
+					<view class="flex1"></view>
+				</view>
+				<view class="walist watxt"><view class="wtit">上门时间</view><view class="wtxt">2024-11-12 14:54:21</view></view>
+				<view class="walist watxt flexc"><view class="wtit">上门拍照</view>
+					<view class="waimgs"><image :src="head" @click="getPreviewImage"></image></view>
+				</view>
+				<block v-if="finshtype>2">
+					<view class="walist watxt"><view class="wtit">结束时间</view><view class="wtxt">2024-11-12 13:27:36</view></view>
+					<view class="walist watxt"><view class="wtit">结束拍照</view><view class="waimgs"><image :src="head" @click="getPreviewImage"></image></view></view>
+				</block>
+				
+			</view> -->
+		</view>	
+		<!-- <view class="rfbtn" @click="getAssignFn" v-if="finshtype==0">去指派</view>
+		<view class="rfbtn rfbga" @click="getCheckFn(1)" v-if="finshtype==1">我已上门</view>
+		<view class="rfbtn rfbga" @click="getCheckFn(2)" v-if="finshtype==2">我已完成</view> -->
+	<pop-up :type="type" @getClose='getClose' :finshtype='finshtype' @getSure="getSure"></pop-up>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import popUp from "@/work/components/popup/popup.vue"
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{popUp},
+		data(){
+			return{
+				// mbg:require('@/work/static/service/bxbg.png'),
+				typeimg:require('@/work/static/service/type.png'),
+				head:require('@/work/static/service/head.png'),
+				phone:require('@/work/static/service/phone.png'),
+				nvaHeight:44,
+				backgroundColor: "transparent",
+				baseUrl:config.baseUrl,
+				type:'',
+				finshtype:3,
+			}
+		},
+		onLoad: function() {
+			uni.getSystemInfo({
+				success: (e) => {
+					this.nvaHeight = Number(e.statusBarHeight)+44;
+				}
+			})
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#0256FD'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			getAssignFn(){
+				this.type='assign'
+			},
+			getCheckFn(){
+				this.type='assigncheck'
+			},
+			getOpenFn(){
+				
+			},
+			getBackFn(){
+				uni.navigateBack({
+					delta:1
+				})
+			},
+			getClose(){
+				this.type='';
+			},
+			getSure(){
+				this.type='';
+			},
+			getPhoneFn(){
+				uni.makePhoneCall({
+					phoneNumber: '114' //仅为示例
+				});
+			},
+			getPreviewImage(arr,idx){
+				var newArr=[];
+				arr.forEach(ite=>{
+					var ds=this.baseUrl+ite
+					newArr.push(ds)
+				})
+				uni.previewImage({
+					urls: newArr,
+					current:idx,
+					success: function(data) {
+						
+					},
+					fail: function(err) {
+						
+					}
+				});
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.warrbox{min-height: 100vh;background: linear-gradient(180deg, #0256FD 0%,#528AF9 60%, rgba(255,255,255,0) 100%) no-repeat;background-size: 100% 722rpx;}
+.rfbga{background: #2ACA8E !important;}
+.navbg{width: 100%;height: 722rpx;z-index: 0;}
+.wymain{z-index: 2;position: relative;padding: 28rpx 18rpx 110rpx;}
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.wytop{padding: 0 38rpx;margin-bottom: 40rpx;
+	image{width: 88rpx;height: 88rpx;margin-right: 22rpx;}
+	.tit{font-size: 28rpx;color: #FFFFFF;font-weight: bold;margin-bottom: 10rpx;}
+	.txt{font-size: 24rpx;color: #FFFFFF;font-weight: 500;}
+}
+.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
+.wabox{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;padding-top:32rpx;padding-bottom: 4rpx;
+	.walist{padding: 0 36rpx;
+		.tit{font-weight: bold;font-size: 30rpx;color: #272727;margin-bottom: 18rpx;}
+		.txt{font-weight: 500;font-size: 26rpx;line-height: 36rpx;color: #666666;margin-bottom: 28rpx;}
+		.waimgs{display: flex;flex-wrap: wrap;justify-content: flex-end;flex: 1;
+			image{width: 142rpx;height: 142rpx;border-radius: 20rpx;margin-left: 20rpx;margin-bottom: 10rpx;}
+		}
+	}
+	.watxt{display: flex;margin-bottom: 22rpx;
+		.wtit{font-weight: 500;font-size: 26rpx;color: #272727;flex: 0 0 auto;margin-right: 12rpx;}
+		.wtxt{font-weight: 500;font-size: 26rpx;color: #666666;flex: 1;text-align: right;}
+	}
+	.imgs{display: flex;flex-wrap: wrap;
+		.img{width: 142rpx;height: 142rpx;margin: 0 24rpx 24rpx 0;display: block;
+			&:nth-of-type(4n){margin-right: 0;}
+		}
+	}
+}
+
+.peobox{padding: 30rpx 36rpx 24rpx;display: flex;align-items: center;
+		.head{width: 88rpx;height: 88rpx;margin-right: 24rpx;flex: 0 0 auto;}
+		.peotit{font-weight: bold;font-size: 26rpx;color: #272727;}
+		.peotxt{font-weight: 500;font-size: 26rpx;color: #AAAAAA;}
+		.phone{width: 60rpx;height: 60rpx;flex: 0 0 auto;margin-left: 12rpx;}
+	}
+.chtop{margin-bottom: 24rpx;padding-right: 48rpx;
+		image{width: 14rpx;height: 48rpx;margin-right: 20rpx;}
+		view{font-weight: bold;font-size: 28rpx;color: #272727;}
+		.num{font-weight: 500;font-size: 24rpx;color: #AAAAAA;}
+}
+</style>

+ 114 - 0
user_ui/work/pages/visitor/index.vue

@@ -0,0 +1,114 @@
+<template>
+	<view class="house" :style="'padding-top:'+nvaHeight+'px;'">
+		<view class="flex1">
+			<view class="navbox">
+				<uni-nav-bar  color="#272727" left-icon="left"  @clickLeft="getBackFn"  :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">
+				</uni-nav-bar>
+			</view>
+			<view class="houtop">
+				<!-- 有 -->
+				<view class="flexc mb10">
+					<view class="tit flex1">访客邀请</view>
+					<view class="tbtns flex0 flexc">访客记录
+						<image :src="more"></image>
+					</view>
+				</view>
+				<view class="txt mb10 fw5">幸福大街幸福小区1号楼3单元1101</view>
+				
+				<view class="txt">open the door</view>
+				<image :src="visbg" class="houseimg"></image>
+			</view>
+			<view class="hbtns bgb mb18"  @click="getAddFn">邀请访客</view>
+			<view class="hbtns bga ">一键开门</view>
+			<view class="tips">温馨提示:一键开门只针对已录入的本单元门栋大门</view>
+		</view>
+		<view class="hfbox">还未录入门洞信息?<text class="co025">去录入</text></view>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{},
+		data(){
+			return{
+				visbg:require('@/work/static/visitor/visbg.png'),
+				more:require("@/static/images/home/more.png"),
+				// adrs:require('@/mine/static/house/adrs.png'),
+				backgroundColor: "transparent",
+				nvaHeight:44,
+				list:[{tit:'123'}],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+			}
+		},
+		onLoad: function() {
+			uni.getSystemInfo({
+				success: (e) => {
+					this.nvaHeight = Number(e.statusBarHeight)+44;
+				}
+			})
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#CCDDFF'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			getAddFn(){
+				this.$tab.navigateTo("/mine/pages/house/addhouse")
+			},
+			getBackFn(){
+				uni.navigateBack({
+					delta:1
+				})
+			},
+			getDataFn(){
+				return
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				params.noticeType=this.tabidx
+				getNoticeList(params).then(res=>{
+					if(res.code==200){
+						
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style lang="scss" scoped>
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.house{min-height: 100vh;background: linear-gradient(180deg, #CDDDFF 0%, rgba(255,255,255,0) 100%) no-repeat;background-size: 100% 578rpx;padding: 0 54rpx 100rpx;display: flex;flex-direction: column;
+	.houtop{padding: 20rpx 4rpx 0 4rpx;height:520rpx;box-sizing: border-box;margin-bottom: 160rpx;position: relative;
+		.tit{font-size: 36rpx;font-weight: bold;color: #272727;}
+		.txt{font-size: 26rpx;color: #272727;}
+		.tita{min-width: 86rpx;font-weight: 500;margin-left: 26rpx;font-size: 24rpx;color: #0156FE;height: 36rpx;border-radius: 18rpx;border: 2rpx solid #0156FE;}
+		.houseimg{width: 596rpx;height:244rpx;position: absolute;bottom: 0;right: -58rpx;}
+		.tbtns{font-weight: 500;font-size: 26rpx;color: #0256FD;
+			image{width: 20rpx;height: 16rpx;margin-left: 10rpx;}
+		}
+	}
+	.tips{font-weight: 500;text-align: center;margin-top: 26rpx;font-size: 22rpx;color: #0256FD;}
+	.hbtns{font-weight: bold;display: flex;align-items: center;justify-content: center;font-size: 26rpx;height: 88rpx;border-radius: 44rpx;box-sizing: border-box;color: #FFFFFF;
+		&.bga{background: #0256FD;}
+		&.bgb{background: #45CB99;}
+		
+	}
+	.hfbox{font-weight: 500;text-align: center;font-size: 24rpx;color: #AAAAAA;margin-top: 40rpx;}
+}
+</style>

BIN
user_ui/work/static/car/car.png


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است