Browse Source

测试修改

zouling 3 tháng trước cách đây
mục cha
commit
81eb4df6c3
59 tập tin đã thay đổi với 1876 bổ sung865 xóa
  1. 17 0
      property_ui/api/system/card.js
  2. 1 1
      property_ui/api/system/user.js
  3. 8 0
      property_ui/api/work/manage.js
  4. 43 20
      property_ui/car/components/car/list.vue
  5. 19 5
      property_ui/car/pages/illegalParking.vue
  6. 80 63
      property_ui/car/pages/illegalcheck.vue
  7. 2 2
      property_ui/car/pages/illegalrecord.vue
  8. 236 0
      property_ui/components/loading/loading - 副本.vue
  9. 89 228
      property_ui/components/loading/loading.vue
  10. 1 0
      property_ui/config.js
  11. 4 4
      property_ui/health/components/box/list.vue
  12. 93 73
      property_ui/health/pages/health/add.vue
  13. 8 8
      property_ui/manage/components/car/list.vue
  14. 1 1
      property_ui/manage/components/zb-table/all.js
  15. 1 1
      property_ui/manage/pages/community/sqmoney.vue
  16. 351 0
      property_ui/mine/components/box/list.vue
  17. 106 0
      property_ui/mine/pages/news/index.vue
  18. 211 0
      property_ui/mine/pages/news/myhd.vue
  19. 123 0
      property_ui/mine/pages/news/sh.vue
  20. BIN
      property_ui/mine/static/check.png
  21. BIN
      property_ui/mine/static/edit.png
  22. BIN
      property_ui/mine/static/house/add.png
  23. BIN
      property_ui/mine/static/house/adrs.png
  24. BIN
      property_ui/mine/static/house/cara.png
  25. BIN
      property_ui/mine/static/house/carb.png
  26. BIN
      property_ui/mine/static/house/carc.png
  27. BIN
      property_ui/mine/static/house/chara.png
  28. BIN
      property_ui/mine/static/house/charb.png
  29. BIN
      property_ui/mine/static/house/cmico.png
  30. BIN
      property_ui/mine/static/house/edit.png
  31. BIN
      property_ui/mine/static/house/house.png
  32. BIN
      property_ui/mine/static/house/rimg.png
  33. BIN
      property_ui/mine/static/house/up.png
  34. BIN
      property_ui/mine/static/ncheck.png
  35. BIN
      property_ui/mine/static/reset.png
  36. BIN
      property_ui/mine/static/search.png
  37. BIN
      property_ui/mine/static/up.png
  38. 35 2
      property_ui/pages.json
  39. 0 380
      property_ui/pages/index.vue
  40. 12 2
      property_ui/pages/index/index.vue
  41. 3 2
      property_ui/pages/mine/avatar/index.vue
  42. 20 11
      property_ui/pages/mine/index.vue
  43. 214 0
      property_ui/pages/mine/info.vue
  44. 2 2
      property_ui/pages/mine/info/edit.vue
  45. 2 2
      property_ui/people/components/car/list.vue
  46. 2 2
      property_ui/people/pages/people/staff.vue
  47. 4 5
      property_ui/people/pages/people/staffadd.vue
  48. 5 3
      property_ui/service/components/car/list.vue
  49. 29 9
      property_ui/service/pages/service/patrol.vue
  50. 41 16
      property_ui/service/pages/service/patroladd.vue
  51. 48 17
      property_ui/service/pages/service/patroldetail.vue
  52. BIN
      property_ui/static/images/rimga.png
  53. 1 1
      property_ui/static/style.css
  54. 4 0
      property_ui/store/getters.js
  55. 40 1
      property_ui/store/modules/user.js
  56. 4 0
      property_ui/utils/constant.js
  57. 1 1
      property_ui/utils/storage.js
  58. 2 2
      property_ui/work/components/car/list.vue
  59. 13 1
      property_ui/work/pages/manage/addcar.vue

+ 17 - 0
property_ui/api/system/card.js

@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+//身份证识别
+export function getOcrIdCard(data) {
+  return request({
+    'url': '/ocr/ocrIdCard',
+    'method': 'post',
+	'data':data
+  })
+}
+//车牌照识别
+export function getlicensePlate(data) {
+  return request({
+    'url': '/ocr/licensePlate',
+    'method': 'post',
+	'data':data
+  })
+}

+ 1 - 1
property_ui/api/system/user.js

@@ -25,7 +25,7 @@ export function getUserProfile() {
 // 修改用户个人信息
 export function updateUserProfile(data) {
   return request({
-    url: '/system/user/profile',
+    url: '/system/user/profile/put',
     method: 'post',
     data: data
   })

+ 8 - 0
property_ui/api/work/manage.js

@@ -163,6 +163,14 @@ export function newsDet(data) {
     method: 'get',
   })
 }
+// 社区资讯-详情wuYe:news:getCommentInteraction
+export function getCommentInteraction(data) {
+  return request({
+    url: '/wuYe/news/getCommentInteraction',
+    method: 'post',
+	'data':data
+  })
+}
 
 // 员工培训手册-新增wuYe:manual:add
 export function manualAdd(data) {

+ 43 - 20
property_ui/car/components/car/list.vue

@@ -29,29 +29,37 @@
 		</block>
 		<!-- 车辆违规 -->
 		<block v-if="type=='carpark'">
-			<view class="carlist" v-for="(ite,idx) in datainfo" :key="ite.illegalParkingId" @click="getDetail(ite.illegalParkingId)">
-				<view class="ctop flexc">
-					<image :src="cara" class="imgs" v-if="ite.carType==1"></image>
-					<image :src="carb" class="imgs" v-if="ite.carType==2"></image>
-					<view class="tit">{{ite.plateNumber}}</view>
-					<view class="num coff" v-if="ite.isBlack=='Y'">(已登黑名单)</view>
-					<view class="flex1"></view>
-					<block v-if="ite.carType">
-						<view class="txt " :class="ite.carType==1?'ca':'cb'">{{kaType(ite.carType,carType)}}</view>
-					</block>
-					
-					<!-- <view class="txt cb" v-if="ite.type==2">外来车辆</view> -->
-				</view>
-				<view class="clists">
-					<view class="clist"><view class="tit">关联房号</view>{{ite.visitPortal}}</view>
-					<view class="clist"><view class="tit">手机号码</view>{{ite.mobileNumber}}</view>
-					<view class="clist"><view class="tit">登记时间</view>{{ite.createTime}}</view>
-					<view class="clist"><view class="tit">违停拍照</view>
-						<view class="imgas" v-if="ite.illegalPhoto">
-							<image :src="baseUrl+aite" v-for="(aite,aidx) in kaPhoto(ite.illegalPhoto)" :key="aidx" @click.stop="getPreview(aidx,ite.illegalPhoto)"></image>
+			<view class="carlist pr" v-for="(ite,idx) in datainfo" :key="ite.illegalParkingId" @click="getDetail(ite.illegalParkingId)"
+				:data-idx="idx"
+				@touchstart="drawStart" @touchmove="drawMove" @touchend="drawEnd" :style="checkPermi(['wuYe:illegalParking:remove'])?'right:'+ite.right+'px':''"
+			>
+				<view class="delleft">
+					<view class="ctop flexc">
+						<image :src="cara" class="imgs" v-if="ite.carType==1"></image>
+						<image :src="carb" class="imgs" v-if="ite.carType==2"></image>
+						<view class="tit">{{ite.plateNumber}}</view>
+						<view class="num coff" v-if="ite.isBlack=='Y'">(已登黑名单)</view>
+						<view class="flex1"></view>
+						<block v-if="ite.carType">
+							<view class="txt " :class="ite.carType==1?'ca':'cb'">{{kaType(ite.carType,carType)}}</view>
+						</block>
+						
+						<!-- <view class="txt cb" v-if="ite.type==2">外来车辆</view> -->
+					</view>
+					<view class="clists">
+						<block v-if="ite.carType==1">
+							<view class="clist"><view class="tit">关联房号</view>{{ite.visitPortal}}</view>
+							<view class="clist"><view class="tit">手机号码</view>{{ite.mobileNumber}}</view>
+						</block>
+						<view class="clist"><view class="tit">登记时间</view>{{ite.createTime}}</view>
+						<view class="clist"><view class="tit">违停拍照</view>
+							<view class="imgas" v-if="ite.illegalPhoto">
+								<image :src="baseUrl+aite" v-for="(aite,aidx) in kaPhoto(ite.illegalPhoto)" :key="aidx" @click.stop="getPreview(aidx,ite.illegalPhoto)"></image>
+							</view>
 						</view>
 					</view>
 				</view>
+				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:illegalParking:remove'])" @click.stop="getDelFn(ite.illegalParkingId)">删除</view>
 			</view>
 		</block>
 		
@@ -176,6 +184,21 @@
 					fail: function(err) {}
 				});
 			},
+			getDelFn(id){
+				var that=this;
+				uni.showModal({
+					title: '确认删除',
+					content: "是否确认删除",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							that.$emit('getDelFn',id)
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
 			//开始触摸滑动
 			drawStart(e) {
 				// console.log("开始触发");

+ 19 - 5
property_ui/car/pages/illegalParking.vue

@@ -22,7 +22,7 @@
 		</view>
 		<!-- 列表 -->
 		<view class="carlists mt12">
-			<car-list :datainfo="list" :carType="carType" :wtdt="wtdt" type='carpark' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :carType="carType" :wtdt="wtdt" type='carpark' @getDetail="getDetail" @getDelFn='getDelFn'></car-list>
 		</view>
 		<block v-if="checkPermi(['wuYe:illegalParking:add'])">
 			<view style="height: 100rpx;"></view>
@@ -36,7 +36,7 @@
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	import carList from "@/car/components/car/list.vue"
-	import {illegalParkingList} from "@/api/work/car.js"
+	import {illegalParkingList,illegalParkingDel} from "@/api/work/car.js"
 	import {getDictionaryFn} from "@/api/system/user.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
@@ -127,6 +127,17 @@
 				this.wtrq=val;
 				this.getrefreshData()
 			},
+			getDelFn(data){
+				var that=this;
+				illegalParkingDel(data).then(res=>{
+					if(res.code==200){
+						this.$toast("删除成功");
+						setTimeout(function(){
+							that.getrefreshData()
+						},1500)
+					}
+				})
+			},
 			getDataFn(){
 				var params={
 					pageSize:this.pageSize,
@@ -140,7 +151,6 @@
 				}
 				if(this.wtrq){
 					params['params[createTime]']=this.wtrq
-					// params.createTime=this.wtrq
 				}
 				illegalParkingList(params).then(res=>{
 					if(res.code==200){
@@ -157,10 +167,14 @@
 								this.wtdt = '到底了~';
 							}
 						}
+						var newArr=JSON.parse(JSON.stringify(res.rows))
+						newArr.forEach(ite=>{
+							ite.right=0;
+						})
 						if (this.pageNum == 1) {
-							this.list = res.rows;
+							this.list = newArr;
 						} else {
-							this.list = this.list.concat(res.rows)
+							this.list = this.list.concat(newArr)
 						}
 					}else{
 						this.$toast(res.msg)

+ 80 - 63
property_ui/car/pages/illegalcheck.vue

@@ -6,20 +6,21 @@
 				<view>车辆信息</view>
 			</view>
 			<view class="chmain">
-				<view class="upbox" @click="getaddImage">
+				<view class="upbox" @click="getaddImagea">
 					<image :src="baseUrl+datainfo.front" class="img" v-if="datainfo.front"></image>
 					<image :src="car" class="addimg"></image>
 					<view>拍摄车辆照片自动识别</view>
 				</view>
 				<uni-forms ref="form" :model="datainfo">
-				  <uni-forms-item label="车牌号码" name="realName">
-					  <uni-easyinput v-model="datainfo.realName" disabled :inputBorder='false' placeholder="自动识别" />
+					<!-- disabled -->
+				  <uni-forms-item label="车牌号码" name="plateNumber">
+					  <uni-easyinput v-model="datainfo.plateNumber" disabled :inputBorder='false' placeholder="自动识别" />
 				  </uni-forms-item>
-					<uni-forms-item label="手机号码" name="phonenumber">
-					  <uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
+					<uni-forms-item label="手机号码" name="mobileNumber">
+					  <uni-easyinput v-model="datainfo.mobileNumber" disabled  :inputBorder='false' placeholder="自动识别" />
 					</uni-forms-item>
-					<uni-forms-item label="关联房号" name="phonenumber">
-					  <uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
+					<uni-forms-item label="关联房号" name="visitPortal">
+					  <uni-easyinput v-model="datainfo.visitPortal" disabled  :inputBorder='false' placeholder="自动识别" />
 					</uni-forms-item>
 					<view class="imgs">
 						<block v-if="phofile&&phofile.length">
@@ -46,6 +47,8 @@
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import {uploadIdentify,uploadmore} from '@/utils/common.js'
 	import {illegalParkingAdd} from "@/api/work/car.js"
+	import {getlicensePlate} from "@/api/system/card.js"
+	import {carList} from "@/api/work/car.js"
 	export default{
 		components:{},
 		data(){
@@ -57,18 +60,16 @@
 				baseUrl:config.baseUrl,
 				phofile:[],//图片合集
 				datainfo:{
-					"plateNumber": "皖A12345",
+					"plateNumber": "",
 					"portalId": "",
 					"visitPortal": "",
 					"mobileNumber": "",
 					"carType": "2",
-					"visitName": "",
 					"illegalPhoto": "",
 				},
 			}
 		},
 		onLoad: function() {
-		
 		},
 		methods:{
 			checkPermi, checkRole,
@@ -130,6 +131,8 @@
 				if(phofile&&phofile.length){
 					params.illegalPhoto=this.phofile.join(',');
 				}
+				// console.log(params)
+				// return
 				illegalParkingAdd(params).then(res=>{
 					if(res.code==200){
 						this.$toast("新增成功")
@@ -143,59 +146,73 @@
 				})
 				
 			},
-			// getaddImages(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 = [];
-			// 				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
-			// 			}
-			// 		}
-			// 	})
-			// }
+			getcarList(car){
+				var params={
+					plateNumber:car
+				}
+				carList(params).then(res=>{
+					if(res.code==200){
+						if(res.rows&&res.rows.length){
+							var data=res.rows[0];
+							this.datainfo.carType='1';
+							this.datainfo.mobileNumber=data.residentPhone;
+							this.datainfo.visitPortal=data.detailedAddress;
+							this.datainfo.portalId=data.houseId;
+						}
+						
+					}
+				})
+			},
+			getaddImagea(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 = [];
+							uploadIdentify('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
+								var resurl=rs[0];
+								if(rs&&rs.length>0){
+									var obj={
+										url:resurl.urlOnline
+									}
+									that.getOcrIdCard(obj)
+								}
+							})	
+						}
+					}
+				});
+			},
+			getOcrIdCard(obj){
+				var params={
+					image:obj.url,
+				}
+				getlicensePlate(params).then(res=>{
+					if(res.code==200){
+						var code=res.msg;
+						if(code){
+							this.datainfo.plateNumber=code;
+							this.getcarList(code)
+						}
+						// 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>

+ 2 - 2
property_ui/car/pages/illegalrecord.vue

@@ -9,7 +9,7 @@
 				<view class="txt" :class="datainfo.carType==1?'ca':'cb'">{{kaType(datainfo.carType,carType)}}</view>
 			</block>
 		</view>
-		<view class="pdlr12">
+		<view class="pdlr12" v-if="datainfo.carType==1">
 			<view class="clists bgef">
 				<view class="clist"><view class="tit">关联房号:</view>{{datainfo.visitPortal}}</view>
 				<view class="clist"><view class="tit">手机号码:</view>{{datainfo.mobileNumber}}</view>
@@ -31,7 +31,7 @@
 				</view>
 				<view class="slist">
 					<view class="tit">违停拍照:</view>
-					<view class="imgas">
+					<view class="imgas" v-if="ite.illegalPhoto">
 						<image :src="baseUrl+aite" v-for="(aite,aidx) in kaPhoto(ite.illegalPhoto)" :key="aidx" @click.stop="getPreview(aidx,ite.illegalPhoto)"></image>
 					</view>
 				</view>

+ 236 - 0
property_ui/components/loading/loading - 副本.vue

@@ -0,0 +1,236 @@
+<!-- <template>
+	<view>
+		
+		<view class="loading" v-if="is_loading">
+			
+			<image class="load_img" :src="waimai ? '../../../static/loading/loading2.gif' : '../../static/loading/loading2.gif'" mode=""></image>
+			
+		</view>
+		
+	</view>
+</template> -->
+
+<template>
+	<view class="" v-if="is_loading">
+		<view class="loader">
+				
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["waimai"],
+		data() {
+			return {
+				
+			}
+		},
+		methods:{
+			switch_loading(){
+				this.$store.commit("switch_loading")
+			}
+		},
+		//实测直接在标签属性里写  $store.state.XX  拿不到数据  所以这里通过 计算属性去监听一下
+		computed:{
+			is_loading(){
+				return this.$store.state.user.loading
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.loading{position: fixed;top: 0;left: 0;bottom: 0;right: 0;display: flex;align-items: center;justify-content: space-around;z-index: 1001;background: transparent;}
+	.load_img{width: 640rpx;height: 490rpx;}
+	
+	.loader,
+	.loader:before,
+	.loader:after {
+	  -webkit-animation: load1 1s infinite ease-in-out;
+	  animation: load1 1s infinite ease-in-out;
+	  width: 1em;
+	  height: 3em;
+	}
+	.loader {
+	  color: #FF8080;
+	  background: #FF8080;
+	  text-indent: -9999em;
+	  margin: 88px auto;
+	  position: fixed;
+	  font-size: 16upx;
+	  -webkit-transform: translateZ(0);
+	  -ms-transform: translateZ(0);
+	  transform: translateZ(0);
+	  -webkit-animation-delay: -0.16s;
+	  animation-delay: -0.16s;
+	  top: 30%;left: 0;bottom: 0;right: 0;
+	  z-index: 3;
+	}
+	.loader:before,
+	.loader:after {
+	  position: absolute;
+	  top: 0;
+	  content: '';
+	}
+	.loader:before {
+	  left: -1.5em;
+	  -webkit-animation-delay: -0.32s;
+	  animation-delay: -0.32s;
+	  background: #FF9999;
+	  color: #FF9999;
+	}
+	.loader:after {
+	  left: 1.5em;
+	  background: #FE6666;
+	  color: #FE6666;
+	}
+	@-webkit-keyframes load1 {
+	  0%,
+	  80%,
+	  100% {
+		box-shadow: 0 0;
+		height: 2em;
+	  }
+	  40% {
+		box-shadow: 0 -2em;
+		height: 3em;
+	  }
+	}
+	@keyframes load1 {
+	  0%,
+	  80%,
+	  100% {
+		box-shadow: 0 0;
+		height: 2em;
+	  }
+	  40% {
+		box-shadow: 0 -2em;
+		height: 3em;
+	  }
+	}
+	
+	/* .loader,
+	.loader:before,
+	.loader:after {
+	  border-radius: 50%;
+	  width: 2.5em;
+	  height: 2.5em;
+	  -webkit-animation-fill-mode: both;
+	  animation-fill-mode: both;
+	  -webkit-animation: load7 1.8s infinite ease-in-out;
+	  animation: load7 1.8s infinite ease-in-out;
+	}
+	.loader {
+	  color: #000;
+	  font-size: 10px;
+	  margin: 80px auto;
+	  position: fixed;
+	  text-indent: -9999em;
+	  -webkit-transform: translateZ(0);
+	  -ms-transform: translateZ(0);
+	  transform: translateZ(0);
+	  -webkit-animation-delay: -0.16s;
+	  animation-delay: -0.16s;
+	  top: 30%;left: 0;bottom: 0;right: 0;
+	}
+	.loader:before,
+	.loader:after {
+	  content: '';
+	  position: absolute;
+	  top: 0;
+	}
+	.loader:before {
+	  left: -3.5em;
+	  -webkit-animation-delay: -0.32s;
+	  animation-delay: -0.32s;
+	}
+	.loader:after {
+	  left: 3.5em;
+	}
+	@-webkit-keyframes load7 {
+	  0%,
+	  80%,
+	  100% {
+		box-shadow: 0 2.5em 0 -1.3em;
+	  }
+	  40% {
+		box-shadow: 0 2.5em 0 0;
+	  }
+	}
+	@keyframes load7 {
+	  0%,
+	  80%,
+	  100% {
+		box-shadow: 0 2.5em 0 -1.3em;
+	  }
+	  40% {
+		box-shadow: 0 2.5em 0 0;
+	  }
+	} */
+	
+	/* .loader {
+	  font-size: 10px;
+	  margin: 50px auto;
+	  text-indent: -9999em;
+	  width: 8em;
+	  height: 8em;
+	  border-radius: 50%;
+	  background: transparent ;
+	  background: -moz-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
+	  background: -webkit-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
+	  background: -o-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
+	  background: -ms-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
+	  background: linear-gradient(to right, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
+	  position: fixed;
+	  top: 30%;left: 0;bottom: 0;right: 0;
+	  -webkit-animation: load3 1.4s infinite linear;
+	  animation: load3 1.4s infinite linear;
+	  -webkit-transform: translateZ(0);
+	  -ms-transform: translateZ(0);
+	  transform: translateZ(0);
+	}
+	.loader:before {
+	  width: 50%;
+	  height: 50%;
+	  background: transparent ;
+	  border-radius: 100% 0 0 0;
+	  position: absolute;
+	  top: 0;
+	  left: 0;
+	  content: '';
+	}
+	.loader:after {
+	  background: #FFFFFF ;
+	  width: 75%;
+	  height: 75%;
+	  border-radius: 50%;
+	  content: '';
+	  margin: auto;
+	  position: absolute;
+	  top: 0;
+	  left: 0;
+	  bottom: 0;
+	  right: 0;
+	}
+	@-webkit-keyframes load3 {
+	  0% {
+		-webkit-transform: rotate(0deg);
+		transform: rotate(0deg);
+	  }
+	  100% {
+		-webkit-transform: rotate(360deg);
+		transform: rotate(360deg);
+	  }
+	}
+	@keyframes load3 {
+	  0% {
+		-webkit-transform: rotate(0deg);
+		transform: rotate(0deg);
+	  }
+	  100% {
+		-webkit-transform: rotate(360deg);
+		transform: rotate(360deg);
+	  }
+	} */
+</style>

+ 89 - 228
property_ui/components/loading/loading.vue

@@ -1,235 +1,96 @@
-<!-- <template>
-	<view>
-		
-		<view class="loading" v-if="is_loading">
-			
-			<image class="load_img" :src="waimai ? '../../../static/loading/loading2.gif' : '../../static/loading/loading2.gif'" mode=""></image>
-			
-		</view>
-		
-	</view>
-</template> -->
-
 <template>
-	<view class="" v-if="is_loading">
-		<view class="loader">
-				
-		</view>
-	</view>
+  <view class="animations" v-if="is_loading">
+    <view class="box">
+      <view class="dot dot1"></view>
+      <view class="dot dot2"></view>
+      <view class="dot dot3"></view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		props: ["waimai"],
-		data() {
-			return {
-				
-			}
-		},
-		methods:{
-			switch_loading(){
-				this.$store.commit("switch_loading")
-			}
-		},
-		//实测直接在标签属性里写  $store.state.XX  拿不到数据  所以这里通过 计算属性去监听一下
-		computed:{
-			is_loading(){
-				return this.$store.state.user.loading
-			}
-		}
-	}
+export default {
+  name: "loading-bounce",
+  data() {
+    return {};
+  },
+  methods:{
+  	switch_loading(){
+  		this.$store.commit("switch_loading")
+  	}
+  },
+  //实测直接在标签属性里写  $store.state.XX  拿不到数据  所以这里通过 计算属性去监听一下
+  computed:{
+  	is_loading(){
+  		return this.$store.state.user.loading
+  	}
+  }
+};
 </script>
 
-<style scoped>
-	.loading{position: fixed;top: 0;left: 0;bottom: 0;right: 0;display: flex;align-items: center;justify-content: space-around;z-index: 1001;background: transparent;}
-	.load_img{width: 640rpx;height: 490rpx;}
-	
-	.loader,
-	.loader:before,
-	.loader:after {
-	  -webkit-animation: load1 1s infinite ease-in-out;
-	  animation: load1 1s infinite ease-in-out;
-	  width: 1em;
-	  height: 3em;
-	}
-	.loader {
-	  color: #FF8080;
-	  background: #FF8080;
-	  text-indent: -9999em;
-	  margin: 88px auto;
-	  position: fixed;
-	  font-size: 16upx;
-	  -webkit-transform: translateZ(0);
-	  -ms-transform: translateZ(0);
-	  transform: translateZ(0);
-	  -webkit-animation-delay: -0.16s;
-	  animation-delay: -0.16s;
-	  top: 30%;left: 0;bottom: 0;right: 0;
-	}
-	.loader:before,
-	.loader:after {
-	  position: absolute;
-	  top: 0;
-	  content: '';
-	}
-	.loader:before {
-	  left: -1.5em;
-	  -webkit-animation-delay: -0.32s;
-	  animation-delay: -0.32s;
-	  background: #FF9999;
-	  color: #FF9999;
-	}
-	.loader:after {
-	  left: 1.5em;
-	  background: #FE6666;
-	  color: #FE6666;
-	}
-	@-webkit-keyframes load1 {
-	  0%,
-	  80%,
-	  100% {
-		box-shadow: 0 0;
-		height: 2em;
-	  }
-	  40% {
-		box-shadow: 0 -2em;
-		height: 3em;
-	  }
-	}
-	@keyframes load1 {
-	  0%,
-	  80%,
-	  100% {
-		box-shadow: 0 0;
-		height: 2em;
-	  }
-	  40% {
-		box-shadow: 0 -2em;
-		height: 3em;
-	  }
-	}
-	
-	/* .loader,
-	.loader:before,
-	.loader:after {
-	  border-radius: 50%;
-	  width: 2.5em;
-	  height: 2.5em;
-	  -webkit-animation-fill-mode: both;
-	  animation-fill-mode: both;
-	  -webkit-animation: load7 1.8s infinite ease-in-out;
-	  animation: load7 1.8s infinite ease-in-out;
-	}
-	.loader {
-	  color: #000;
-	  font-size: 10px;
-	  margin: 80px auto;
-	  position: fixed;
-	  text-indent: -9999em;
-	  -webkit-transform: translateZ(0);
-	  -ms-transform: translateZ(0);
-	  transform: translateZ(0);
-	  -webkit-animation-delay: -0.16s;
-	  animation-delay: -0.16s;
-	  top: 30%;left: 0;bottom: 0;right: 0;
-	}
-	.loader:before,
-	.loader:after {
-	  content: '';
-	  position: absolute;
-	  top: 0;
-	}
-	.loader:before {
-	  left: -3.5em;
-	  -webkit-animation-delay: -0.32s;
-	  animation-delay: -0.32s;
-	}
-	.loader:after {
-	  left: 3.5em;
-	}
-	@-webkit-keyframes load7 {
-	  0%,
-	  80%,
-	  100% {
-		box-shadow: 0 2.5em 0 -1.3em;
-	  }
-	  40% {
-		box-shadow: 0 2.5em 0 0;
-	  }
-	}
-	@keyframes load7 {
-	  0%,
-	  80%,
-	  100% {
-		box-shadow: 0 2.5em 0 -1.3em;
-	  }
-	  40% {
-		box-shadow: 0 2.5em 0 0;
-	  }
-	} */
-	
-	/* .loader {
-	  font-size: 10px;
-	  margin: 50px auto;
-	  text-indent: -9999em;
-	  width: 8em;
-	  height: 8em;
-	  border-radius: 50%;
-	  background: transparent ;
-	  background: -moz-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
-	  background: -webkit-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
-	  background: -o-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
-	  background: -ms-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
-	  background: linear-gradient(to right, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
-	  position: fixed;
-	  top: 30%;left: 0;bottom: 0;right: 0;
-	  -webkit-animation: load3 1.4s infinite linear;
-	  animation: load3 1.4s infinite linear;
-	  -webkit-transform: translateZ(0);
-	  -ms-transform: translateZ(0);
-	  transform: translateZ(0);
-	}
-	.loader:before {
-	  width: 50%;
-	  height: 50%;
-	  background: transparent ;
-	  border-radius: 100% 0 0 0;
-	  position: absolute;
-	  top: 0;
-	  left: 0;
-	  content: '';
-	}
-	.loader:after {
-	  background: #FFFFFF ;
-	  width: 75%;
-	  height: 75%;
-	  border-radius: 50%;
-	  content: '';
-	  margin: auto;
-	  position: absolute;
-	  top: 0;
-	  left: 0;
-	  bottom: 0;
-	  right: 0;
-	}
-	@-webkit-keyframes load3 {
-	  0% {
-		-webkit-transform: rotate(0deg);
-		transform: rotate(0deg);
-	  }
-	  100% {
-		-webkit-transform: rotate(360deg);
-		transform: rotate(360deg);
-	  }
-	}
-	@keyframes load3 {
-	  0% {
-		-webkit-transform: rotate(0deg);
-		transform: rotate(0deg);
-	  }
-	  100% {
-		-webkit-transform: rotate(360deg);
-		transform: rotate(360deg);
-	  }
-	} */
+<style lang="scss" scoped>
+	.animations{display: flex;align-items: center;justify-content: center;position: fixed;top: 40%;left: 0;right: 0;z-index: 3;}
+.box {
+  width: 100rpx;
+  height: 50rpx;
+  position: relative;
+}
+.dot {
+  width: 18rpx;
+  height: 18rpx;
+  background: #007aff;
+  border-radius: 50%;
+  position: absolute;
+  top: calc(50% - 5rpx);
+}
+
+.dot1 {
+  background: #1fa2ff;
+  left: 0rpx;
+  -webkit-animation: bounce 0.5s cubic-bezier(0.77, 0.47, 0.64, 0.28) alternate
+    infinite;
+  animation: bounce 0.5s cubic-bezier(0.77, 0.47, 0.64, 0.28) alternate infinite;
+}
+
+.dot2 {
+  background: #12d8fa;
+  left: 40rpx;
+  -webkit-animation: bounce 0.5s 0.2s cubic-bezier(0.77, 0.47, 0.64, 0.28)
+    alternate infinite;
+  animation: bounce 0.5s 0.2s cubic-bezier(0.77, 0.47, 0.64, 0.28) alternate
+    infinite;
+}
+
+.dot3 {
+  background: #29ffc6;
+  left: 80rpx;
+  -webkit-animation: bounce 0.5s 0.4s cubic-bezier(0.77, 0.47, 0.64, 0.28)
+    alternate infinite;
+  animation: bounce 0.5s 0.4s cubic-bezier(0.77, 0.47, 0.64, 0.28) alternate
+    infinite;
+}
+
+@-webkit-keyframes bounce {
+  0% {
+    -webkit-transform: translateY(0);
+    transform: translateY(0);
+  }
+
+  100% {
+    -webkit-transform: translateY(-20rpx);
+    transform: translateY(-20rpx);
+  }
+}
+
+@keyframes bounce {
+  0% {
+    -webkit-transform: translateY(0);
+    transform: translateY(0);
+  }
+
+  100% {
+    -webkit-transform: translateY(-20rpx);
+    transform: translateY(-20rpx);
+  }
+}
 </style>

+ 1 - 0
property_ui/config.js

@@ -3,6 +3,7 @@ module.exports = {
   // baseUrl: 'https://vue.ruoyi.vip/prod-api',
   // baseUrl: 'http://47.99.82.249:5010/prod-api',
   baseUrl: 'http://192.168.101.245:8065',
+  // baseUrl: 'http://192.168.101.168:8065',
   // baseUrlimg: 'http://114.99.127.243:2001',
   // 应用信息
   appInfo: {

+ 4 - 4
property_ui/health/components/box/list.vue

@@ -15,13 +15,13 @@
 				</view>
 				<view class="plists">
 					<view class="plist">
-						<image :src="man" class="head" v-if="ite.sex==0"></image>
+						<image :src="man" class="head" v-if="ite.sex==1"></image>
 						<image :src="woman" class="head" v-else></image>
 						<view class="flex1">
 							<view class="ptit">张伟<view class="btn btnc ml10" v-if="ite.hzflag">户主</view></view>
 							<view class="ptxt">身份证号 | 41072719880603022X</view>
 							<view class="flexc">
-								<view class="ptxt">性别 | {{ite.sex==0?'男':'女'}}</view>
+								<view class="ptxt">性别 | {{ite.sex==1?'男':'女'}}</view>
 								<view class="ptxt">年龄 | 36岁</view>
 							</view>
 							<view class="flexc">
@@ -31,13 +31,13 @@
 						</view>
 					</view>
 					<view class="plist" v-if="ite.zhanflag">
-						<image :src="man" class="head" v-if="ite.sex==0"></image>
+						<image :src="man" class="head" v-if="ite.sex==1"></image>
 						<image :src="woman" class="head" v-else></image>
 						<view class="flex1">
 							<view class="ptit">张伟<view class="btn btnc ml10" v-if="ite.hzflag">户主</view></view>
 							<view class="ptxt">身份证号 | 41072719880603022X</view>
 							<view class="flexc">
-								<view class="ptxt">性别 | {{ite.sex==0?'男':'女'}}</view>
+								<view class="ptxt">性别 | {{ite.sex==1?'男':'女'}}</view>
 								<view class="ptxt">年龄 | 36岁</view>
 							</view>
 							<view class="flexc">

+ 93 - 73
property_ui/health/pages/health/add.vue

@@ -10,13 +10,13 @@
 					<view class="plr6">
 						<view class="rztit">请上传身份证照片</view>
 						<view class="flexcj mb10">
-							<view class="carbox" @click="getaddImage('front')">
-								<image :src="baseUrl+datainfo.front" class="img" v-if="datainfo.front"></image>
+							<view class="carbox" @click="getaddImagea('front')">
+								<image :src="baseUrl+datainfo.idCardFront" class="img" v-if="datainfo.idCardFront"></image>
 								<image :src="cardz" class="img" v-else></image>
 								<view class="tit">拍摄人像面</view>
 							</view>
-							<view class="carbox" @click="getaddImage('back')">
-								<image :src="baseUrl+datainfo.back" class="img" v-if="datainfo.back"></image>
+							<view class="carbox" @click="getaddImagea('back')">
+								<image :src="baseUrl+datainfo.idCardBack" class="img" v-if="datainfo.idCardBack"></image>
 								<image :src="cardf" class="img" v-else></image>
 								<view class="tit">拍摄国徽面</view>
 							</view>
@@ -42,12 +42,17 @@
 							<uni-data-checkbox  :map="map" :disabled="isdisabled" selectedColor="#0156FE" selectedTextColor="#272727" :value="datainfo.residentGender" :localdata="xbList" />
 						</view>
 					</uni-forms-item>
+					<uni-forms-item label="家庭地址" required name="idCardAddress">
+						<view class="flexc">
+							<uni-easyinput  disabled  v-model="datainfo.idCardAddress"  :inputBorder='false' placeholder="自动识别" />
+						</view>
+					</uni-forms-item>
 					<uni-forms-item label="手机号码" required name="residentPhone">
 						<view class="flexc">
 							<uni-easyinput  :disabled="isdisabled"  v-model="datainfo.residentPhone"  :inputBorder='false' placeholder="请输入手机号码" />
 						</view>
 					</uni-forms-item>
-					<uni-forms-item label="居住门户" name="portalId">
+					<uni-forms-item label="居住门户" required name="portalId">
 						<w-select
 						      style="margin-left: 20rpx;" 
 						     v-model="chooseValue"
@@ -60,11 +65,7 @@
 						    >
 						    </w-select>
 					</uni-forms-item>
-					<!-- <uni-forms-item label="家庭地址" required name="detailedAddress">
-						<view class="flexc">
-							<uni-easyinput  disabled  v-model="datainfo.detailedAddress"  :inputBorder='false' placeholder="自动识别" />
-						</view>
-					</uni-forms-item> -->
+					
 					<picker range-key='dictLabel' :disabled="isdisabled" :value="sfhzidx" :range="sfList"   @change='bindDateChange'>
 						<uni-forms-item label="是否户主" required name="isHouseholder">
 							<view class="flexc mh35">
@@ -101,25 +102,27 @@
 							</view>
 						</uni-forms-item>
 					</picker>
-					<!-- <picker range-key='dictLabel' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
-						<uni-forms-item label="特殊类型" name="phonenumber">
-							<view class="flexc ml10">
-								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'如有五保户等特殊类型,请选择'}}</view>
+					<picker range-key='dictLabel' :disabled="isdisabled" :value="dslxidx" :range="dslxList"   @change='bindDateChanged'>
+						<uni-forms-item label="特殊类型" name="specialType">
+							<view class="flexc mh35">
+								<view class="flex1 txr f13 co27" v-if="datainfo.specialType&&!dslx">{{statusFormats(datainfo.residentAppearance,dslxList,'dslx')}}</view>
+								<view class="flex1 txr f13" v-else :class="dslx?'co27':'coa'">{{dslx||"如有五保户等特殊类型,请选择"}}</view>
+								
 							</view>
 						</uni-forms-item>
-					</picker> -->
+					</picker>
 					<uni-forms-item label="工作单位"  name="residentEmployer">
 						<view class="flexc">
 							<uni-easyinput :disabled="isdisabled"  v-model="datainfo.residentEmployer"  :inputBorder='false' placeholder="请输入工作单位" />
 						</view>
 					</uni-forms-item>
-					<uni-forms-item label="兴趣爱好" name="hobby">
+					<uni-forms-item label="兴趣爱好" name="residentHobby">
 						<view class="flexc ml10">
-							<uni-easyinput type="textarea" :disabled="isdisabled" autoHeight v-model="datainfo.hobby" :inputBorder='false' placeholder="请输入兴趣爱好" />
+							<uni-easyinput type="textarea" :disabled="isdisabled" autoHeight v-model="datainfo.residentHobby" :inputBorder='false' placeholder="请输入兴趣爱好" />
 						</view>
 					</uni-forms-item>
 					
-					<uni-forms-item label="上传头像" name="phonenumber">			
+					<uni-forms-item label="上传头像" name="facePhoto">			
 						<view class="addimgs">
 							<block v-if="phofile&&phofile.length">
 								<view class="assimg" v-for="(ite,idx) in phofile" :key="idx" @click="getPreview(idx,phofile)">
@@ -180,7 +183,13 @@
 					"isHouseholder":"",//是否是户主 N不是 Y是
 					"isTenant":"",//是否是租户:Y-是,N-否
 					"residentEmployer":"",//居住人员工作单位
-					"residentAppearance":""//居住人员面貌,如党员、群众等
+					"residentAppearance":"",//居住人员面貌,如党员、群众等
+					"residentHobby":"",//爱好
+					"facePhoto":"",//人脸地址
+					"idCardAddress":"",//身份证住址
+					"specialType":"",//特殊类型
+					"idCardFront":"",//身份证正面
+					"idCardBack":"",//身份证反面
 				},
 				rules:{
 					residentIdCard: {rules: [{required: true,errorMessage: '请输入身份证号码' }]},
@@ -198,15 +207,18 @@
 				hzgx:"",
 				sfzh:"",
 				rymm:"",
+				dslx:"",
 				sfhzidx:0,
 				hzgxidx:0,
 				sfzhidx:0,
 				rymmidx:0,
 				sfhzidx:0,
+				dslxidx:0,
 				list:[],
 				sfList:[],
 				hzgxList:[],
 				rymmList:[],
+				dslxList:[],
 				xbList:[],
 				phofile:[],
 				fwlist:[],
@@ -307,6 +319,18 @@
 						})
 					}
 				})
+				// 特殊类型
+				
+				getDictionaryFn('special_type').then(res=>{
+					if(res.code==200){
+						this.dslxList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
 				//性别
 				getDictionaryFn('gender').then(res=>{
 					if(res.code==200){
@@ -345,6 +369,11 @@
 				this.datainfo.residentAppearance=this.rymmList[val].dictValue;
 				this.rymm=this.rymmList[val].dictLabel;
 			},
+			bindDateChanged(e){
+				var val=e.detail.value;
+				this.datainfo.specialType=this.dslxList[val].dictValue;
+				this.dslx=this.dslxList[val].dictLabel;
+			},
 			getDetail(){
 				residentInfoDet(this.id).then(res=>{
 					if(res.code==200){
@@ -460,60 +489,51 @@
 					}
 				});
 			},
-			// 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 = [];
-			// 				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
-			// 			}
-			// 		}
-			// 	})
-			// }
+			getaddImagea(e) {
+				let that = this;
+				let file = []
+				uni.chooseImage({
+					count: 1,
+					success: function(res) {
+						let img = res.tempFilePaths;
+						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.idCardFront = resurl.fileName;
+								if (rs && rs.length > 0) {
+									var obj = {
+										type: e,
+										url: resurl.urlOnline
+									}
+									that.getOcrIdCard(obj)
+								}
+							} else {
+								that.datainfo.idCardBack = resurl.fileName;
+							}
+						})
+					}
+				});
+			},
+			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.residentName = datainfo.realName;
+							this.datainfo.residentIdCard = datainfo.idCard;
+							this.datainfo.idCardAddress = datainfo.address;
+						// } else {
+						// 	this.datainfo.expirationDate = datainfo.expirationDate
+						}
+					}
+				})
+			}
 		}
 	}
 </script>

+ 8 - 8
property_ui/manage/components/car/list.vue

@@ -67,25 +67,25 @@
 				</view>
 				<view class="plists">
 					<view class="plist flexc">
-						<image :src="man" class="head" v-if="ite.sex==0"></image>
+						<image :src="man" class="head" v-if="ite.sex==1"></image>
 						<image :src="woman" class="head" v-else></image>
 						<view class="flex1">
 							<view class="ptit">张伟<view class="btn btnc ml10" v-if="ite.hzflag">户主</view></view>
 							<view class="ptxt">身份证号 | 41072719880603022X</view>
 							<view class="flexc">
-								<view class="ptxt">性别 | {{ite.sex==0?'男':'女'}}</view>
+								<view class="ptxt">性别 | {{ite.sex==1?'男':'女'}}</view>
 								<view class="ptxt">年龄 | 36岁</view>
 							</view>
 						</view>
 					</view>
 					<view class="plist flexc" v-if="ite.zhanflag">
-						<image :src="man" class="head" v-if="ite.sex==0"></image>
+						<image :src="man" class="head" v-if="ite.sex==1"></image>
 						<image :src="woman" class="head" v-else></image>
 						<view class="flex1">
 							<view class="ptit">张伟<view class="btn btnc ml10" v-if="ite.hzflag">户主</view></view>
 							<view class="ptxt">身份证号 | 41072719880603022X</view>
 							<view class="flexc">
-								<view class="ptxt">性别 | {{ite.sex==0?'男':'女'}}</view>
+								<view class="ptxt">性别 | {{ite.sex==1?'男':'女'}}</view>
 								<view class="ptxt">年龄 | 36岁</view>
 							</view>
 						</view>
@@ -98,7 +98,7 @@
 		<view v-if="type=='staff'" class="flecw">
 			<view class="stafflist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
 				<view class="statop">
-					<image class="head" :src="man" v-if="ite.sex==0"></image>
+					<image class="head" :src="man" v-if="ite.sex==1"></image>
 					<image class="head" :src="woman" v-else></image>
 					<view class="flex1">
 						<view class="statit">张伟</view>
@@ -297,7 +297,7 @@
 				<view class="watopcom">
 					<view class="watop ">
 						<view class="watit">
-							<view class="tit">{{ite.communityTitle}}<text class="cir"></text></view>
+							<view class="tit">{{ite.communityTitle}}<text class="cir" v-if="ite.isInteraction=='Y'"></text></view>
 						</view>
 						<view class="watopcoma overtwo">
 							<rich-text :nodes="ite.communityContent"></rich-text>
@@ -374,7 +374,7 @@
 		<!-- 阅读名单 -->
 		<block v-if="type=='readlist'" >
 			<view class="readlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
-				<image class="head" :src="man" v-if="ite.sex==0"></image>
+				<image class="head" :src="man" v-if="ite.sex==1"></image>
 				<image class="head" :src="woman" v-else></image>
 				<view class="flex1">
 					<view class="tit">{{ite.searchValue}}</view>
@@ -384,7 +384,7 @@
 		</block>
 		<block v-if="type=='readcount'" >
 			<view class="readlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
-				<image class="head" :src="man" v-if="ite.sex==0"></image>
+				<image class="head" :src="man" v-if="ite.sex==1"></image>
 				<image class="head" :src="woman" v-else></image>
 				<view class="flex1">
 					<view class="tit">{{ite.staffName}}</view>

+ 1 - 1
property_ui/manage/components/zb-table/all.js

@@ -4,7 +4,7 @@ export const column1 = [
     { name: 'type', label: '开门类型',align:'center',type:"format",key:"kgmlist"},
     { name: 'controlsTime', label: '开/关门时间',align:'center',},
     { name: 'pictureUrl', label: '抓拍图片',align:'center',type:"img",},
-    // { name: 'sex', label: '性别',filters:{0:'男',1:'女'}},
+    // { name: 'sex', label: '性别',filters:{1:'男',2:'女'}},
  //    { name: 'sx', label: '数学',sorter:true },
  //    { name: 'yy', label: '英语',sorter:true },
 	// { name: 'operation', type:'operation',label: '操作',renders:[

+ 1 - 1
property_ui/manage/pages/community/sqmoney.vue

@@ -93,7 +93,7 @@
 				columns: [
 					{ name: 'equipmentName', label: '设备名称',fixed:true,width:160,align:'center',},
 					{ name: 'equipmentNumber', label: '设备编码',align:'center',},
-					// { name: 'sex', label: '性别',filters:{0:'男',1:'女'}},
+					// { name: 'sex', label: '性别',filters:{1:'男',2:'女'}},
 					{ name: 'equipmentQrCode', label: '设备二维码',align:'center',type:'img', },
 					// { name: 'equipmentQrCode', label: '设备二维码',align:'center' },
 					{ name: 'equipmentStatus', label: '状态',align:'center',type:"format",key:"sbztList"},

+ 351 - 0
property_ui/mine/components/box/list.vue

@@ -0,0 +1,351 @@
+<template>
+<view>
+	<!-- 第一种样式  人员管理-->
+	<block v-if="datainfo.length>0">
+		<!-- 我的互动 -->
+		<block v-if="type=='myhd'">
+			<view class="mb12 pr" v-for="(ite,idx) in datainfo" :key="idx"
+				:data-idx="idx"
+				@touchstart="drawStart" @touchmove="drawMove" @touchend="drawEnd" :style="'right:'+ite.right+'px'"
+			>
+				<view class="hdlist pd12 flex">
+					<image :src="man" class="mhead flex0"></image>
+					<view class="flex1 overh">
+						<view class="flexc mb6">
+							<view class="name flex1 over">喜欢耶耶耶</view>
+							<view class="tit flex0 ml10">点赞了你的文章</view>
+							<view class="time flex0 ml10">02-26</view>
+						</view>
+						<view class="flexc overh mb4">
+							<view class="line bga"></view>
+							<view class="txt over flex1">物业服务费缴费公告</view>
+							<image :src="rimg" class="rimg ml10"></image>
+						</view>
+					</view>
+				</view>
+				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:residentInfo:remove'])" @click.stop="getDelFn(ite.residentId)">删除</view>
+			</view>
+		</block>
+		<block v-if="type=='plsh'">
+				<view class="mb12 pr"  v-for="(ite,idx) in datainfo" :key="idx"
+					:data-idx="idx"
+					@touchstart="drawStart" @touchmove="drawMove" @touchend="drawEnd" :style="'right:'+ite.right+'px'"
+				>
+					<view class="hdlist ">
+						<view class="pd12 flex">
+							<image :src="ite.avatar?baseUrl+ite.avatar:man" class="mhead flex0"></image>
+							<view class="flex1 overh">
+								<view class="flexc mb6">
+									<view class="name flex1 over">{{ite.nickName}}</view>
+									<view class="time flex0 ml10">02-26</view>
+								</view>
+								<view class="txt mb8">{{ite.commentContent}}</view>
+								<view class="flexc overh mb2">
+									<view class="line bgd"></view>
+									<view class="txta over flex1">{{ite.communityTitle}}</view>
+									<image :src="rimg" class="rimg ml10"></image>
+								</view>
+							</view>
+						</view>
+						<view class="shbtns flexc pd12" >
+							<view class="btn bga" @click="getSh('4',ite)">不予展示</view>
+							<view class="flex1"></view>
+							<view class="btn bgb" @click="getSh('3',ite)">不通过</view>
+							<view class="btn bgc" @click="getSh('2',ite)">通过</view>
+						</view>
+					</view>
+					<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:residentInfo:remove'])" @click.stop="getDelFn(ite.residentId)">删除</view>
+				</view>
+		</block>
+		<!-- 我的点赞,收藏,评论 -->
+		<block v-if="type=='wdhd'">
+			<view class="mb12 pr"  v-for="(ite,idx) in datainfo" :key="idx"
+					:data-idx="idx"
+					@touchstart="drawStart" @touchmove="drawMove" @touchend="drawEnd" :style="'right:'+ite.right+'px'">
+				<view class="hdlist ">
+					<view class="pd12 flex">
+						<image :src="ite.avatar?baseUrl+ite.avatar:man" class="mhead flex0"></image>
+						<view class="flex1 overh">
+							<view class="flexc mb6">
+								<view class="name flex1 over">{{ite.nickName}}</view>
+								<view class="time flex0 ml10">{{ite.createTime}}</view>
+							</view>
+							<view class="txt mb8">{{ite.commentContent}}</view>
+							<view class="flexc overh mb2">
+								<view class="line bgd"></view>
+								<view class="txta over flex1" v-if="tabval=='mypl'">{{ite.communityTitle}}</view>
+								<view class="txta over flex1" v-else>{{ite.targetTitle}}</view>
+								<image :src="rimg" class="rimg ml10"></image>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:residentInfo:remove'])" @click.stop="getDelFn(ite.residentId)">删除</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 {selectDictValue} from "@/utils/common.js"
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import config from '@/config'
+	export default{
+		props:{
+			datainfo: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			wtdt:{
+				type:String,
+				default () {
+					return ''
+				}
+			},
+			type:{
+				type:String,
+				default () {
+					return 0
+				}
+			},
+			clcxList:{
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			rymmList:{
+				type: Array,
+				default () {
+					return []
+				}
+			},
+				
+			tabval:{
+				type:String,
+				default () {
+					return ''
+				}
+			}
+		},
+		data(){
+			return{
+				noiconpimg:require("@/static/nodata.png"),
+				man:require("@/people/static/people/man.png"),
+				woman:require("@/people/static/people/woman.png"),
+				rimg:require("@/static/images/rimga.png"),
+				baseUrl:config.baseUrl,
+				delBtnWidth:66,//左滑默认宽度
+			}
+		},
+		mounted() {
+			
+		},
+		methods:{
+			checkPermi, checkRole,
+			kaType(data, list) {
+				return selectDictValue(list, data);
+			},
+			getDetail(e){
+				this.$emit('getDetail',e)
+			},
+			getDelFn(e){
+				var that=this;
+				uni.showModal({
+					title: '确认删除',
+					content: "是否确认删除",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							that.$emit('getDelFn',e)
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getSh(type,ite){
+				var that=this;
+				var str="";
+				if(type=='2'){
+					str="通过"
+				}else if(type=='3'){
+					str="不通过"
+				}else if(type=='4'){
+					str="下架"
+				}
+				uni.showModal({
+					title: '确认'+str,
+					content: "是否确认"+str,
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							var obj={
+								status:type,
+								contentId:ite.contentId,
+								commentId:ite.commentId,
+							}
+							that.$emit('getSh',obj)
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getZhan(idx){
+				// 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
+			},
+			getDelFn(id){
+				var that=this;
+				uni.showModal({
+					title: '确认删除',
+					content: "是否确认删除",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							that.$emit('getDelFn',id)
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getAgeFromID(idNumber) {
+				if(idNumber){
+					const birthDateStr = idNumber.substring(6, 14);
+					const birthYear = parseInt(birthDateStr.substring(0, 4));
+					const birthMonth = parseInt(birthDateStr.substring(4, 6));
+					const birthDay = parseInt(birthDateStr.substring(6, 8));
+								
+					const today = new Date();
+					const currentYear = today.getFullYear();
+					const currentMonth = today.getMonth() + 1;
+					const currentDay = today.getDate();
+								
+					let age = currentYear - birthYear;
+					if (currentMonth < birthMonth || (currentMonth === birthMonth && currentDay < birthDay)) {
+					    age--;
+					}
+								
+					return age;
+				}         
+			 },
+			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) {}
+				});
+			},
+			//开始触摸滑动
+			drawStart(e) {
+				// console.log("开始触发");
+				var touch = e.touches[0];
+				this.startX = touch.clientX;
+			},
+			//触摸滑动
+			drawMove(e) {
+				var idx=e.currentTarget.dataset.idx
+				var aidx=e.currentTarget.dataset.aidx
+				var type=e.currentTarget.dataset.type;
+				for (var index in this.datainfo) {
+					if(type&&type=='peo'){	
+						for(var i in this.datainfo[idx].residentInfoList){
+							this.$set(this.datainfo[idx].residentInfoList[i],'right',0);
+						}
+					}else{
+						 this.$set(this.datainfo[index],'right',0);
+					}	
+				}
+				var touch = e.touches[0];
+				var item = this.datainfo[idx];
+				var disX = this.startX - touch.clientX;
+				if (disX >= 20) {
+				        if (disX > this.delBtnWidth) {
+					    disX = this.delBtnWidth;
+				        }
+						
+						if(type&&type=='peo'){
+							
+							 this.$set(this.datainfo[idx].residentInfoList[aidx],'right',disX);
+						}else{
+							 this.$set(this.datainfo[idx],'right',disX);
+						}
+						// this.csListArrl[idx].right=disX
+				       
+				} else {
+					// this.csListArrl[idx].right=0
+					this.$set(this.datainfo[idx],'right',0);
+				}
+			},
+			//触摸滑动结束
+			drawEnd(e) {
+				// console.log("滑动结束");
+				var idx=e.currentTarget.dataset.idx
+				var item = this.datainfo[idx];
+				if (item.right >= this.delBtnWidth / 2) {
+					// this.datainfo[idx].right=this.delBtnWidth
+					// this.$set(this.datainfo[idx],'right',this.delBtnWidth);
+				} else {
+					this.datainfo[idx].right=0
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.flex{display: flex;}
+.flexc{display: flex;align-items: center;}
+.mb10{margin-bottom: 20rpx;}
+// 互动
+.pd12{padding: 24rpx;}
+.hdlist{background: #FFFFFF;border-radius: 20rpx;position: relative;z-index: 1;
+	.mhead{width: 56rpx;height: 56rpx;margin-right: 20rpx;}
+	.name{font-size: 28rpx;font-weight: bold;color: #272727;height: 56rpx;line-height: 56rpx;}
+	.tit{font-weight: 500;font-size: 22rpx;color: #666666;}
+	.time{font-weight: 500;font-size: 22rpx;color: #666666;}
+	.line{width: 6rpx;height: 28rpx;border-radius: 4rpx;margin-right: 12rpx;
+		&.bga{background: #FACA7D;}
+		&.bgb{background: #86AFFF;}
+		&.bgc{background: #93E9C2;}
+		&.bgd{background: #DADADA;}
+	}
+	.txt{font-weight: 500;font-size: 26rpx;color: #272727;line-height: 36rpx;}
+	.txta{font-weight: 500;font-size: 26rpx;color: #666666;}
+	.rimg{width: 12rpx;height: 22rpx;}
+	.shbtns{border-top: 2rpx solid #DADADA;
+		.btn{border-radius: 20rpx;min-width: 110rpx;box-sizing: border-box;padding: 0 16rpx;
+height: 52rpx;display: flex;align-items: center;justify-content: center;flex:0 0 auto;margin-left: 20rpx;
+			&.bga{border: 2rpx solid #06C770;background: #DAEFE6;color: #06C770;margin-left: 0;}
+			&.bgb{border: 2rpx solid #FF6969;;background: #FFE7E7;color: #FF6969;}
+			&.bgc{background: #0256FD;color: #FFFFFF;}
+		}
+	}
+}
+// 无数据
+.nodata{display: flex;flex-direction: column;align-items: center;
+	image{width: 440rpx;height: 440rpx;}
+	view{font-size: 30rpx;color: #666666;font-weight: bold;}
+}
+</style>

+ 106 - 0
property_ui/mine/pages/news/index.vue

@@ -0,0 +1,106 @@
+<template>
+	<view class="news">
+		<box-list :datainfo="list" :wtdt="wtdt" type="myhd" @getDetail='getDetail'></box-list>
+	<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{
+				hrimg:require('@/static/logo.png'),
+				list:[{tit:"11"}],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+			}
+		},
+		onLoad: function() {
+		
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			// var listTop=Number(this.listTop)-Number(this.nvaHeight)
+			if(scrollTop>2){
+				this.scroflag=true
+			}else{
+				this.scroflag=false
+			}
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			// getNextFn(){
+			// 	this.$tab.navigateTo("/work/pages/business/add")
+			// },
+			getDelFn(id){
+				var that=this;
+				reservDel(data).then(res=>{
+					if(res.code==200){
+						this.$toast("删除成功");
+						setTimeout(function(){
+							that.getrefreshData()
+						},1500)
+					}
+				})
+			},
+			getrefreshData(){
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
+			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>
+.news{padding:20rpx 18rpx;}
+</style>

+ 211 - 0
property_ui/mine/pages/news/myhd.vue

@@ -0,0 +1,211 @@
+<template>
+	<view class="news">
+		<!-- tab栏 -->
+		<view class="cartop">
+			<view class="tabtop flexc">
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
+			</view>
+		</view>
+		<box-list :datainfo="list" :wtdt="wtdt" :tabval="tabval" type="wdhd" @getDetail='getDetail'></box-list>
+	<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"; // 权限判断函数
+	// import {mycommentStars,mycommentLikes,mycommentIndex} from "@/api/work/news.js"
+	export default{
+		components:{boxList},
+		data(){
+			return{
+				hrimg:require('@/static/logo.png'),
+				list:[],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+				tabval:'mypl',
+				tablist:[{tit:"评论",val:'mypl'},{tit:"点赞",val:'mydz'},{tit:"收藏",val:'mysc'},]
+			}
+		},
+		onLoad: function() {
+			// this.getDataFn()
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			// var listTop=Number(this.listTop)-Number(this.nvaHeight)
+			if(scrollTop>2){
+				this.scroflag=true
+			}else{
+				this.scroflag=false
+			}
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			// getNextFn(){
+			// 	this.$tab.navigateTo("/work/pages/business/add")
+			// },
+			getDelFn(id){
+				var that=this;
+				// reservDel(data).then(res=>{
+				// 	if(res.code==200){
+				// 		this.$toast("删除成功");
+				// 		setTimeout(function(){
+				// 			that.getrefreshData()
+				// 		},1500)
+				// 	}
+				// })
+			},
+			getTabFn(val){
+				this.tabval=val;
+				this.getrefreshData()
+			},
+			getrefreshData(){
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
+			getSh(data){
+				var that=this;
+				var params=JSON.parse(JSON.stringify(data))
+				commentContentPut(params).then(res=>{
+					if(res.code==200){
+						this.$toast('审核成功')
+						setTimeout(function() {
+							that.getrefreshData()
+						}, 1500);
+					}
+				})
+			},
+			getDataFn(){
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				var tabval=this.tabval
+				if(tabval=='mypl'){
+					mycommentIndex(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 = '到底了~';
+								}
+							}
+							var newArr=JSON.parse(JSON.stringify(res.rows))
+							newArr.forEach(ite=>{
+								ite.right=0;
+							})
+							if (this.pageNum == 1) {
+								this.list = newArr;
+							} else {
+								this.list = this.list.concat(newArr)
+							}
+							
+						}else{
+							this.$toast(res.msg)
+						}
+					})
+				}else if(tabval=='mydz'){
+					mycommentLikes(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 = '到底了~';
+								}
+							}
+							var newArr=JSON.parse(JSON.stringify(res.rows))
+							newArr.forEach(ite=>{
+								ite.right=0;
+							})
+							if (this.pageNum == 1) {
+								this.list = newArr;
+							} else {
+								this.list = this.list.concat(newArr)
+							}
+						}else{
+							this.$toast(res.msg)
+						}
+					})
+				}else{
+					mycommentStars(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 = '到底了~';
+								}
+							}
+							var newArr=JSON.parse(JSON.stringify(res.rows))
+							newArr.forEach(ite=>{
+								ite.right=0;
+							})
+							if (this.pageNum == 1) {
+								this.list = newArr;
+							} else {
+								this.list = this.list.concat(newArr)
+							}
+						}else{
+							this.$toast(res.msg)
+						}
+					})
+				}
+				console.log(this.list)
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.news{padding:124rpx 18rpx 12rpx;}
+.cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
+	.toptit{display: flex;justify-content: center;font-weight: 500;font-size: 26rpx;color: #8592AA;height: 70rpx;align-items: center;
+background: #E4EDFF;
+		text{font-size: 32rpx;color: #0156FE;padding: 0 10rpx;}
+		image{width: 28rpx;height: 26rpx;flex: 0 0 auto;margin-right: 12rpx;}
+	}
+	.tabtop{padding-bottom: 40rpx;padding-top: 14rpx;
+		.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;
+			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
+			}
+		}
+	}
+}
+</style>

+ 123 - 0
property_ui/mine/pages/news/sh.vue

@@ -0,0 +1,123 @@
+<template>
+	<view class="news">
+		<box-list :datainfo="list" :wtdt="wtdt" type="plsh" @getDetail='getDetail' @getSh="getSh"></box-list>
+	<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"; // 权限判断函数
+	// import {commentSh,commentContentPut} from "@/api/work/news.js"
+	export default{
+		components:{boxList},
+		data(){
+			return{
+				hrimg:require('@/static/logo.png'),
+				list:[{tit:"11"}],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+			}
+		},
+		onLoad: function() {
+			// this.getDataFn()
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			// var listTop=Number(this.listTop)-Number(this.nvaHeight)
+			if(scrollTop>2){
+				this.scroflag=true
+			}else{
+				this.scroflag=false
+			}
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			// getNextFn(){
+			// 	this.$tab.navigateTo("/work/pages/business/add")
+			// },
+			getDelFn(id){
+				var that=this;
+				reservDel(data).then(res=>{
+					if(res.code==200){
+						this.$toast("删除成功");
+						setTimeout(function(){
+							that.getrefreshData()
+						},1500)
+					}
+				})
+			},
+			getrefreshData(){
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
+			getSh(data){
+				var that=this;
+				var params=JSON.parse(JSON.stringify(data))
+				commentContentPut(params).then(res=>{
+					if(res.code==200){
+						this.$toast('审核成功')
+						setTimeout(function() {
+							that.getrefreshData()
+						}, 1500);
+					}
+				})
+			},
+			getDataFn(){
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+					"status":'1'
+				}
+				commentSh(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 = '到底了~';
+							}
+						}
+						var newArr=JSON.parse(JSON.stringify(res.rows))
+						newArr.forEach(ite=>{
+							ite.right=0;
+						})
+						if (this.pageNum == 1) {
+							this.list = newArr;
+						} else {
+							this.list = this.list.concat(newArr)
+						}
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.news{padding:20rpx 18rpx;}
+</style>

BIN
property_ui/mine/static/check.png


BIN
property_ui/mine/static/edit.png


BIN
property_ui/mine/static/house/add.png


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


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


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


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


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


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


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


BIN
property_ui/mine/static/house/edit.png


BIN
property_ui/mine/static/house/house.png


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


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


BIN
property_ui/mine/static/ncheck.png


BIN
property_ui/mine/static/reset.png


BIN
property_ui/mine/static/search.png


BIN
property_ui/mine/static/up.png


+ 35 - 2
property_ui/pages.json

@@ -40,6 +40,13 @@
     "style": {
       "navigationBarTitleText": "用户协议及隐私条款"
     }
+  },
+  {
+    "path": "pages/mine/info",
+    "style": {
+      "navigationBarTitleText": "个人信息",
+  	  "h5":{"titleNView":false}
+    }
   },
    {
     "path": "pages/mine/index",
@@ -172,6 +179,32 @@
 			}
 		]
   	},
+	{
+		"root": "mine",
+		"pages": [
+			{
+			  "path": "pages/news/index",
+			  "style": {
+			    "navigationBarTitleText": "收到的互动",
+				"h5":{"titleNView":false}
+			  }
+			},
+			{
+			  "path": "pages/news/sh",
+			  "style": {
+			    "navigationBarTitleText": "评论审核",
+				"h5":{"titleNView":false}
+			  }
+			},
+			{
+			  "path": "pages/news/myhd",
+			  "style": {
+			    "navigationBarTitleText": "我的点评赞",
+				"h5":{"titleNView":false}
+			  }
+			}
+		]
+	},
 	{"root": "manage",
 		"pages": [
 			{
@@ -536,11 +569,11 @@
   "preloadRule":{
 	"pages/index/index": {
 		"network": "all",
-		"packages": ["work","health","manage","people","service","car"]
+		"packages": ["work","health","manage","people","service","car","mine"]
 	}, 
 	"pages/login": {
 	 	"network": "all",
-	 	"packages": ["work","health","manage","people","service","car"]
+	 	"packages": ["work","health","manage","people","service","car","mine"]
 	}
   },
   "globalStyle": {

+ 0 - 380
property_ui/pages/index.vue

@@ -1,380 +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" @click="getPeopleFn">
-						<view class="imgs"><image :src="htabe" class="imge"></image></view>
-						<view class="txt">人员管理</view>
-					</view>
-					<view class="list bimga" @click="getComeglFn">
-						<view class="imgs"><image :src="htabf" class="imgf"></image></view>
-						<view class="txt">来访管理</view>
-					</view>
-					<view class="list bimga" @click="getMoneyFn">
-						<view class="imgs"><image :src="htabg" class="imgd"></image></view>
-						<view class="txt">物业费管理</view>
-					</view>
-					<view class="list bimga" @click="getHouseFn">
-						<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" @click="getPatrolFn">
-						<view class="imgs"><image :src="htabi" class="imgg"></image></view>
-						<view class="txt">今日巡更</view>
-					</view>
-					<view class="list bimga" @click="getWarrantyFn">
-						<view class="imgs"><image :src="htabj" class="imgb"></image><view class="tips">3</view>
-						</view>
-						<view class="txt">物业报修</view>
-					</view>
-					<view class="list bimga" @click="getStaffFn">
-						<view class="imgs"><image :src="htabk" class="imgb"></image></view>
-						<view class="txt">维修人员管理</view>
-					</view>
-					<view class="list bimga" @click="getComplaintFn">
-						<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" @click="getNewsdjFn">
-						<view class="imgs"><image :src="htabm" class="imgh"></image></view>
-						<view class="txt">党建信息</view>
-					</view>
-					<view class="list bimga" @click="getNewssqFn">
-						<view class="imgs"><image :src="htabn" class="imgi"></image><view class="tips">27</view></view>
-						<view class="txt">社区资讯</view>
-					</view>
-					<view class="list bimga" @click="getNewsYgFn">
-						<view class="imgs"><image :src="htabo" class="imgf"></image></view>
-						<view class="txt">员工培训</view>
-					</view>
-					<view class="list bimga" @click="getSqmoneyFn">
-						<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(`/car/pages/index`) 
-		},
-		getCarKuFn(){//车库管理
-			this.$tab.navigateTo(`/car/pages/carku`) 
-		},
-		getCarCheckFn(){//外来车辆登记
-			this.$tab.navigateTo(`/car/pages/carcheck`) 
-		},
-		getillegalParkFn(){//违停管理
-			this.$tab.navigateTo(`/car/pages/illegalParking`) 
-		},
-		getPeopleFn(){//人员管理
-			this.$tab.navigateTo(`/people/pages/people/index`) 
-		},
-		getComeglFn(){//来访管理
-			this.$tab.navigateTo(`/people/pages/people/comegl`) 
-		},
-		getMoneyFn(){//物业费管理
-			this.$tab.navigateTo(`/work/pages/manage/money`) 
-		},
-		getPatrolFn(){//今日巡更
-			this.$tab.navigateTo(`/service/pages/service/patrol`) 
-		},
-		getWarrantyFn(){//报修管理
-			this.$tab.navigateTo(`/service/pages/service/warranty`) 
-		},
-		getStaffFn(){//维修人员管理
-			this.$tab.navigateTo(`/people/pages/people/staff`)
-		},
-		getHouseFn(){//房屋管理
-			this.$tab.navigateTo(`/work/pages/manage/house`)
-		},
-		getComplaintFn(){//投诉建议
-			this.$tab.navigateTo(`/service/pages/service/complaint`)
-		},
-		getNewsdjFn(){//党建资讯
-			this.$tab.navigateTo(`/manage/pages/community/newsdj`)
-		},
-		getNewssqFn(){//党建资讯
-			this.$tab.navigateTo(`/manage/pages/community/newssq`)
-		},
-		getNewsYgFn(){//员工培训
-			this.$tab.navigateTo(`/manage/pages/community/newsyg`)
-		},
-		getSqmoneyFn(){//社区资产
-			this.$tab.navigateTo(`/manage/pages/community/sqmoney`)
-		},
-	}
-  }
-</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>

+ 12 - 2
property_ui/pages/index/index.vue

@@ -19,9 +19,9 @@
 					<view class="adrtit">智慧<text>社区</text></view>
 				</view>
 				<view class="adrtxt flexc mb4">
-					<view class="over">嗨~刘源禧!</view><text>经理</text>
+					<view class="over">嗨~{{nickName}}!</view><text v-if="postGroup">{{postGroup}}</text>
 				</view>
-				<view class="adrtip">幸福小区物业办公室</view>
+				<view class="adrtip">{{deptName}}</view>
 				<image :src="adrbgimg" class="adrbgimg"></image>
 			</view>
 			<view class="mb22">
@@ -204,6 +204,7 @@
 <script>
 import footers from '@/components/footer/footer.vue'
 import notice from '@/components/swiper/notice.vue'
+import {getUserProfile} from "@/api/system/user.js"
 import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
   export default {
 	components:{footers,notice},
@@ -241,6 +242,9 @@ import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函
 			htabp:require("@/static/images/home/htabp.png"),
 			upimg:require("@/static/images/home/up.png"),
 			city:'幸福大街',
+			deptName:this.$store.state.user.deptName,
+			nickName:this.$store.state.user.nickName,
+			postGroup:'',//岗位
 			autoplay:false,
 			zhanflag:true,
 			noticelist:[{noticeTitle:"您有1条报修信息,请及时查看处理!",num:'4'},{noticeTitle:"您有1条报修信息,请及时查看处理!",num:'12'}]
@@ -265,6 +269,12 @@ import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函
 		checkPermi, checkRole,
 		getNoticeDet(){
 			
+		},
+		getUser() {
+		  getUserProfile().then(response => {
+		    this.roleGroup = response.roleGroup
+		    this.postGroup = response.postGroup
+		  })
 		},
 		getZhanFn(){
 			this.zhanflag=!this.zhanflag

+ 3 - 2
property_ui/pages/mine/avatar/index.vue

@@ -68,7 +68,7 @@
 		 */
 		data() {
 			return {
-				imageSrc: store.getters.avatar,
+				imageSrc:config.baseUrl+store.getters.avatar,
 				isShowImg: false,
 				// 初始化的宽高
 				cropperInitW: SCREEN_WIDTH,
@@ -257,7 +257,8 @@
 							uni.hideLoading()
 							let data = {name: 'avatarfile', filePath: res.tempFilePath}
 							uploadAvatar(data).then(response => {
-								store.commit('SET_AVATAR', baseUrl + response.imgUrl)
+								// store.commit('SET_AVATAR', baseUrl + response.imgUrl)
+								store.commit('SET_AVATAR', response.imgUrl)
 								uni.showToast({ title: "修改成功", icon: 'success' })
 								uni.navigateBack()
 							})

+ 20 - 11
property_ui/pages/mine/index.vue

@@ -8,16 +8,17 @@
 		<image :src="bgimg" class="navbg"></image>
 		<view class="mbox">
 			<view class="infobox flexc" @click="handleToInfo">
-				<image  @click.stop="handleToAvatar" :src="avatarimg" class="limg" mode="aspectFill"></image>
+				<image  @click.stop="handleToAvatar" :src="avatar?avatar:avatarimg" class="limg" mode="aspectFill"></image>
 				<view class="cbox">
 					<view class="tit flexc">{{name?name:'登录账号'}}
 					
 						<view class="deptbox">
 							<image :src="wyimg"></image>
-							<view>物业</view>
+							<view>{{kaType(roles[0],roleName)}}</view>
 						</view>
 					</view>
-					<view class="txt">点击详情 享受更多精彩信息</view>
+					<view class="txt" v-if="deptName">{{deptName}}</view>
+					<view class="txt" v-else>点击详情 享受更多精彩信息</view>
 					<!-- <view class="flexc pr" v-if="deptName">
 						<image :src="headl"></image>
 							<view class="txt">{{deptName}}点击登录 享受更多精彩信息</view>
@@ -32,13 +33,14 @@
 				
 			</view>
 			<view class="conts flexc">
-				<view class="contn" v-if="checkPermi([''])" @click="handleToYy">
+				<!-- v-if="checkPermi([''])" -->
+				<view class="contn"  @click="handleToYy">
 					<view class="img">
 						<image :src="listimga" class="imga"></image>
 					</view>
 					<view class="ctit">党建发布</view>
 				</view>
-				<view class="contn" v-if="checkPermi([''])" @click="handleToYy">
+				<view class="contn"  @click="handleToYy">
 					<view class="img">
 						<image :src="listimgb" class="imgb"></image>
 					</view>
@@ -58,7 +60,7 @@
 				</view>
 			</view>
 			<view class="mbgbox">
-				<view class="flexc mine_list" @click="getClockcontFn" v-if="checkPermi([''])">
+				<view class="flexc mine_list" @click="getClockcontFn" >
 					<view class="limg">
 						<image :src="listimge" class="imga"></image>
 					</view>
@@ -130,6 +132,7 @@
 	import footers from '@/components/footer/footer.vue'
 	import {findVersion} from "@/api/system/user.js"
 	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {selectDictValue} from "@/utils/common.js"
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	const webUrl=config.webUrl
@@ -151,16 +154,18 @@
 				// listimgk: require('@/static/images/mine/minek.png'),
 				// listimgl: require('@/static/images/mine/minel.png'),
 				// listimgm: require('@/static/images/mine/minem.png'),
-
+				// avatar:'',
 				head:require('@/static/images/mine/head.png'),
 				wrimg:require("@/static/images/mine/wrimg.png"),
 				rimg:require("@/static/images/home/rimg.png"),
 				wyimg:require("@/static/images/mine/wy.png"),
 				border: false,
 				backgroundColor: 'transparent',
-
+				baseUrl:config.baseUrl,
 				name: this.$store.state.user.nickName,
 				deptName:this.$store.state.user.deptName,
+				roles:this.$store.state.user.roles,
+				roleName:this.$store.state.user.roleName,
 				// version: getApp().globalData.config.appInfo.version,
 				footerindex: 'mine',
 				isfootflag: true,
@@ -176,7 +181,7 @@
 		},
 		computed: {
 			avatar() {
-				return this.$store.state.user.avatar
+				return this.baseUrl+this.$store.state.user.avatar
 			},
 			windowHeight() {
 				return uni.getSystemInfoSync().windowHeight - 50
@@ -209,6 +214,9 @@
 		
 		methods: {
 			checkPermi,checkRole,
+			kaType(data, list) {
+				return selectDictValue(list, data);
+			},
 			// 待我审批
 			handleToYy(){
 				this.$tab.navigateTo("/pages/order/list")
@@ -256,7 +264,8 @@
 			},
 			// 账号信息
 			handleToInfo() {
-				this.$tab.navigateTo('/pages/mine/info/index')
+				// this.$tab.navigateTo('/pages/mine/info/index')
+				this.$tab.navigateTo('/pages/mine/info')
 			},
 			handleToLogin() {
 				this.$tab.reLaunch('/pages/login')
@@ -357,7 +366,7 @@ page{background-color: #ffffff;}
 .navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
 .deptbox{height: 34rpx;position: relative;margin-left: 16rpx;padding-left: 40rpx;box-sizing: border-box;padding-top: 4rpx;
 	image{width: 102rpx;height: 34rpx;position: absolute;left: 0;top: 0;}
-	view{font-weight: bold;font-size: 22rpx;color: #FFFFFF;position: relative;z-index: 2;height: 30rpx;min-width: 60rpx;background: linear-gradient(90deg, #FFB54D, #FE5B0E);border-radius: 0 15rpx 15rpx 0;}
+	view{font-weight: bold;font-size: 22rpx;color: #FFFFFF;position: relative;z-index: 2;height: 30rpx;min-width: 60rpx;background: linear-gradient(90deg, #FFB54D, #FE5B0E);border-radius: 0 15rpx 15rpx 0;padding-right:16rpx;}
 }
 .zxbox{ 
 	.navbg{width: 100%;height: 782rpx;}

+ 214 - 0
property_ui/pages/mine/info.vue

@@ -0,0 +1,214 @@
+<template>
+	<view class="check">
+		<uni-forms ref="form" :model="datainfo" :rules="rules">
+			<view class="cbox">
+				<view class="chmain">
+					<uni-forms-item label="头像" name="phonenumber">
+						<view class="flexjd mt10">
+							<image :src="avatar?avatar:aphoto" class="inimg" @click="handleToAvatar"></image>
+						</view>	
+					</uni-forms-item>
+					<uni-forms-item label="用户名称" name="nickName">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.nickName" :disabled="isdisabled" :inputBorder='false' placeholder="用户名称" />
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="性别" name="sex">
+						<picker range-key='dictLabel' :disabled="isdisabled" :value="xbidx" :range="xbList"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13 co27" v-if="datainfo.sex&&!xb">{{statusFormats(datainfo.sex,xbList,'xb')}}</view>
+								<view class="flex1 txr f13" v-else :class="xb?'co27':'coa'">{{xb||"性别"}}</view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="手机号码" name="phonenumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phonenumber" :disabled="isdisabled" :inputBorder='false' placeholder="手机号码" />
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="邮箱" name="email">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.email" :disabled="isdisabled" :inputBorder='false' placeholder="邮箱" />
+						</view>
+					</uni-forms-item>
+					<!-- <uni-forms-item label="岗位" name="postGroup">
+						<view class="flexc">
+							<uni-easyinput v-model="postGroup" :disabled="isdisabled" :inputBorder='false' placeholder="岗位" />
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="角色" name="roleGroup" style="border:none">
+						<view class="flexc">
+							<uni-easyinput v-model="roleGroup" :disabled="isdisabled" :inputBorder='false' placeholder="角色" />
+						</view>
+					</uni-forms-item> -->
+				</view>
+			</view>
+		</uni-forms>
+		<view class="rhbtn mt30" @click="getEditFn" v-if="isdisabled">修改</view>
+		<view class="rhbtn mt30" @click="getSubmit" v-else>提交</view>
+
+		<loading></loading>
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {uploadIdentify,selectValueKey} from '@/utils/common.js'
+	import {getDictionaryFn,getUserProfile,updateUserProfile} from "@/api/system/user.js"
+	export default {
+		components: {},
+		data() {
+			return {
+				aphoto:require("@/static/images/mine/head.png"),
+				baseUrl: config.baseUrl,
+				checkflag:true,
+				isdisabled:true,
+				roleGroup: "",
+				postGroup: "",
+				datainfo: {},
+				xbList:[],
+				xbidx:'',
+				xb:"",
+				rules: {
+				  nickName: {
+				    rules: [{
+				      required: true,
+				      errorMessage: '用户昵称不能为空'
+				    }]
+				  },
+				  phonenumber: {
+				    rules: [{
+				      required: true,
+				      errorMessage: '手机号码不能为空'
+				    }, {
+				      pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+				      errorMessage: '请输入正确的手机号码'
+				    }]
+				  },
+				  // email: {
+				  //   rules: [{
+				  //     required: true,
+				  //     errorMessage: '邮箱地址不能为空'
+				  //   }, {
+				  //     format: 'email',
+				  //     errorMessage: '请输入正确的邮箱地址'
+				  //   }]
+				  // }
+				}
+			}
+		},
+		onLoad: function() {
+			this.init()
+			this.getUser()
+		},
+		computed: {
+			avatar() {
+				return this.baseUrl+this.$store.state.user.avatar
+			},
+		},
+		methods: {
+			checkPermi,
+			checkRole,
+			getEditFn(){
+				this.isdisabled=false;
+			},
+			handleToAvatar() {
+				if(this.isdisabled){
+					return
+				}
+				this.$tab.navigateTo('/pages/mine/avatar/index')
+			},
+			statusFormats(data, list,type) {
+				var aite=selectValueKey(list, data);
+				if(type=='xbidx'){
+					this.xbidxidx=aite.key
+				}
+				return aite.actions;
+			},
+			getUser() {
+			  getUserProfile().then(response => {
+			    this.datainfo = response.data
+			    this.roleGroup = response.roleGroup
+			    this.postGroup = response.postGroup
+			  })
+			},
+			init(){
+				// 性别
+				getDictionaryFn('sys_user_sex').then(res=>{
+					if(res.code==200){
+						if(res.data){
+							this.xbList = res.data.map(v => {
+								return {
+									dictLabel: v.dictLabel,
+									dictValue: v.dictValue
+								}
+							})
+						}
+					}
+				}) 
+			},
+			bindDateChange(e){
+				var val=e.detail.value;
+				this.datainfo.sex=this.xbList[val].dictValue;
+				this.xb=this.xbList[val].dictLabel;
+			},
+			getSubmit(ref) {
+			  this.$refs.form.validate().then(res => {
+			    updateUserProfile(this.datainfo).then(response => {
+			      this.$modal.msgSuccess("修改成功")
+			    })
+			  })
+			}
+		}
+	}
+</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 .cbox /deep/ .uni-forms-item:last-child{border: none;}
+.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 /deep/ .uni-data-checklist .checklist-group .checklist-box{margin:10rpx 8rpx 10rpx 16rpx;}
+.check /deep/ .uni-forms-item__label text{width: 110rpx;text-align-last: justify;}
+.check /deep/ .uni-data-checklist{flex: 0 0 auto;}
+.check{min-height: 100vh;padding: 20rpx 18rpx 24rpx;box-sizing: border-box;}
+.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;margin-bottom: 24rpx;
+	.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: 70rpx;height: 70rpx;margin-bottom: 16rpx;}
+			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%;}
+		}
+		.checkimg{width: 80rpx;height: 40rpx;margin-right: 8rpx;}
+		.aphoto{padding: 0 24rpx;border-left: 2rpx solid #e6e6e6;margin-left: 26rpx;
+			image{width: 40rpx;height: 38rpx;}
+		}
+	}
+	
+}
+.addimgs{display: flex;align-items: center;flex-wrap: wrap;justify-content: flex-end;
+	
+	.assimg{width: 128rpx;height: 128rpx;position: relative;overflow: hidden;margin: 0 0 20rpx 24rpx;
+		.img{width: 100%;height: 100%;}
+		.delimg{width: 24rpx;height: 24rpx;position: absolute;right: 0;top: 0;}
+	}
+}
+.addbox{width: 102rpx;height: 102rpx;background: #F0F0F0;border-radius: 20rpx;display: flex;flex-direction: column;align-items: center;justify-content: center;margin-left: 24rpx;margin-bottom: 20rpx;flex: 0 0 auto;
+		image{width: 48rpx;height: 42rpx;}
+		// view{font-weight: 500;font-size: 24rpx;color: #666666;}
+	}
+.inimg{width: 102rpx;height: 102rpx;border-radius: 50%;}
+.tips{font-weight: bold;color: #272727;font-size: 26rpx;margin-left: 8rpx;}
+</style>

+ 2 - 2
property_ui/pages/mine/info/edit.vue

@@ -35,10 +35,10 @@
         },
         sexs: [{
           text: '男',
-          value: "0"
+          value: "1"
         }, {
           text: '女',
-          value: "1"
+          value: "2"
         }],
         rules: {
           nickName: {

+ 2 - 2
property_ui/people/components/car/list.vue

@@ -82,10 +82,10 @@
 					<image class="head" :src="woman" v-else></image>
 					<view class="flex1">
 						<view class="statit">{{ite.staffName}}</view>
-						<view class="statxt flexc co06"><text class="cir" :class="{'bga':ite.status==1,'bgb':ite.status==2}"></text>{{kaType(ite.status,ygztList)}}</view>
+						<view class="statxt flexc" :class="{'co06':ite.status==1,'coff':ite.status==2}"><text class="cir" :class="{'bga':ite.status==1,'bgb':ite.status==2}"></text>{{kaType(ite.status,ygztList)}}</view>
 						<!-- <view class="statxt flexc cof6"><text class="cir bgb"></text>指派中</view> -->
 					</view>
-					<image :src="pdel" class="stadel" @click.stop="getDelFn(ite.staffId)"></image>
+					<image :src="pdel" class="stadel" v-if="checkPermi(['wuYe:staffManage:remove'])" @click.stop="getDelFn(ite.staffId)"></image>
 				</view>
 				<view class="stalist">
 					<view class="imgs"><image :src="gzlx" class="gzlximg"></image></view>{{kaType(ite.staffCategory,yglbList)}}

+ 2 - 2
property_ui/people/pages/people/staff.vue

@@ -23,7 +23,7 @@
 		</view>
 		<block v-if="checkPermi(['wuYe:staffManage:add'])">
 			<view style="height: 100rpx;"></view>
-			<view class="rfbtn" @click="getAddFn">添加维修人员</view>
+			<view class="rfbtn" @click="getAddFn">添加人员</view>
 		</block>
 		
 		<loading></loading>
@@ -201,7 +201,7 @@
 	page{background: #F3F3F0;}
 </style>
 <style lang="scss" scoped>
-.car{padding: 140rpx 0 110rpx;}
+.car{padding: 140rpx 0 10rpx;}
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
 	.topa{padding: 20rpx 20rpx 32rpx;
 		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}

+ 4 - 5
property_ui/people/pages/people/staffadd.vue

@@ -93,12 +93,11 @@
 					"staffCategory":"",//员工类别,1:保安 2:维修人员 3:物业管理
 					"maintenanceCategory":"",//维修分类
 					"phoneNumber":"",//手机号码
-					"avatarPhoto":"",//头像
+					// "avatarPhoto":"",//头像
 					"idCard":"",//身份证号码
-					"idCardFront":"",//身份证正面
-					"idCardBack":"",//身份证反面
-					"certificate":"",//相关证件
-					"status":"",//状态
+					// "idCardFront":"",//身份证正面
+					// "idCardBack":"",//身份证反面
+					// "certificate":"",//相关证件
 				},
 				rules: {
 				  staffName: {rules: [{required: true,errorMessage: '请输入人员姓名' }]},

+ 5 - 3
property_ui/service/components/car/list.vue

@@ -22,7 +22,7 @@
 		</block>
 		<!-- 巡更记录patrol -->
 		<block v-if="type=='patrol'">
-			<view class="patlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
+			<view class="patlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail(ite.checkPointRecordId)">
 				<view class="pattop flexc">
 					<image :src="home" class="imgs"></image>
 					<view class="tit">{{ite.checkAddress}}</view>
@@ -36,8 +36,10 @@
 					<!-- <view class="clist"><view class="tit">巡检人</view>:刘兵琦</view> -->
 				</view>
 				<view class="patbtns">
-					<view class="btna" @click.stop="getDetail" v-if="ite.checkStatus==2">查看</view>
-					<view  class="btnb" @click.stop="getAddFn(ite.checkPointRecordId)" v-else>去巡更</view>
+					<!-- v-if="ite.checkStatus==2" -->
+					<!-- v-else -->
+					<view class="btna" @click.stop="getDetail(ite.checkPointRecordId)" >查看</view>
+					<view  class="btnb" @click.stop="getAddFn(ite.checkPointRecordId)" >去巡更</view>
 				</view>
 			</view>
 		</block>

+ 29 - 9
property_ui/service/pages/service/patrol.vue

@@ -9,20 +9,20 @@
 					<view class="txt" @click="getSetFn">巡更点设置</view>
 				</view>
 				<view class="patabs flexc">
-					<view class="patab cof7" @click="tabval=0">
+					<view class="patab cof7" @click="getTabFn(0)">
 						<view class="pattit">{{countinfo.checkPoint}}</view>
 						<view class="pattxt">巡更点</view>
 						<image :src="linea" class="line" v-if="tabval==0"></image>
 					</view>
-					<view class="patab co02" @click="tabval=1">
+					<view class="patab co02" @click="getTabFn(2)">
 						<view class="pattit">{{countinfo.yCheckPoint}}</view>
 						<view class="pattxt">已巡更</view>
-						<image :src="lineb" class="line" v-if="tabval==1"></image>
+						<image :src="lineb" class="line" v-if="tabval==2"></image>
 					</view>
-					<view class="patab cof6" @click="tabval=2">
+					<view class="patab cof6" @click="getTabFn(1)">
 						<view class="pattit">{{countinfo.wCheckPoint}}</view>
 						<view class="pattxt">未巡更</view>
-						<image :src="linec" class="line" v-if="tabval==2"></image>
+						<image :src="linec" class="line" v-if="tabval==1"></image>
 					</view>
 				</view>
 			</view>
@@ -78,7 +78,7 @@
 				linea:require("@/service/static/service/linea.png"),
 				lineb:require("@/service/static/service/lineb.png"),
 				linec:require("@/service/static/service/linec.png"),
-				list:[{tit:'皖A IC520',type:1},{tit:'晋E KD783',type:2},],
+				list:[],
 				pageSize: 10,
 				pageNum: 1,
 				reachflag: true,
@@ -112,12 +112,12 @@
 			})
 			this.getCount();
 			this.init()
-			// this.getDataFn()
+			this.getDataFn()
 		},
 		methods:{
 			checkPermi, checkRole,
-			getDetail(){
-				this.$tab.navigateTo("/service/pages/service/patroldetail")
+			getDetail(id){
+				this.$tab.navigateTo("/service/pages/service/patroldetail?id="+id)
 			},
 			getRecordFn(){
 				this.$tab.navigateTo("/service/pages/service/patrolrecord")
@@ -128,6 +128,17 @@
 			getAddFn(id){
 				this.$tab.navigateTo("/service/pages/service/patroladd?id="+id)
 			},
+			getTabFn(val){
+				console.log(11)
+				this.tabval=val;
+				this.getrefreshData()
+			},
+			getrefreshData(){
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
 			getBackFn(){
 				uni.navigateBack({
 					delta:1
@@ -160,6 +171,15 @@
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
 				}
+				if(this.tabval!=0){
+					params.checkStatus=this.tabval;
+					// if(this.tabval==2){
+					// 	params.checkTime=this.tabval;
+					// }else if(this.tabval==1){
+					// 	params.creatTime=this.tabval;
+					// }
+				}
+				// 
 				// xgdglList ,xgdjlList
 				xgdjlList(params).then(res=>{
 					if(res.code==200){

+ 41 - 16
property_ui/service/pages/service/patroladd.vue

@@ -5,12 +5,12 @@
 				<view class="patlist">
 					<view class="pattop flexc">
 						<image :src="home" class="imgs"></image>
-						<view class="tit">幸福小区1栋2单元电梯间</view>
+						<view class="tit">{{datainfo.checkAddress}}</view>
 						<view class="flex1"></view>
 					</view>
 					<view class="patlistr">
 						<view class="clist"><view class="tit">巡检类型</view>:{{kaType(datainfo.checkType)}}</view>
-						<view class="clist"><view class="tit">巡检时间</view>:{{datainfo.checkTime}}</view>
+						<view class="clist"><view class="tit">巡检时间</view>:{{datainfo.checkResultTime}}</view>
 						<view class="clist"><view class="tit">巡检路线</view>:{{datainfo.checkAddress}}</view>
 					</view>
 				</view>
@@ -32,7 +32,7 @@
 							</view>
 						</picker>
 					</uni-forms-item>
-					<uni-easyinput maxlength='-1' type="textarea" autoHeight v-model="datainfo.companyIntroduction" :inputBorder='false' placeholder="可详细描述巡检结果…" />
+					<uni-easyinput maxlength='-1' type="textarea" autoHeight v-model="datainfo.checkResultDetails" :inputBorder='false' placeholder="可详细描述巡检结果…" />
 					<view class="voice mb20">
 						<view class="flexc">
 							<image :src="voice"></image>
@@ -83,9 +83,9 @@
 				baseUrl: config.baseUrl,
 				checkflag:true,
 				datainfo: {
-					"checkType":"1",//巡更类型
-					"checkTime":"2",//巡更时间
-					"checkAddress":"3",//巡更路线
+					"checkType":"",//巡更类型
+					"checkTime":"",//巡更时间
+					"checkAddress":"",//巡更路线
 					"checkUserName":"",//巡更人姓名
 					"checkUseId":"",//巡更人id
 					"checkResult":"",//巡更结果 1:正常 2:损坏
@@ -99,19 +99,15 @@
 				xgjg:'',
 				xgjgidx:'',
 				xglxList:[],
-				xgjgList:[{dictLabel:'正常',dictValue:"1"},{dictLabel:'损坏',dictValue:"2"}],
+				xgjgList:[],
 				phofile:[]
 			}
 		},
 		onLoad: function(e) {
 			this.init();
-			// this.ptype='edit';
-			// this.getDetail()
-			// if(e.id){
-			// 	this.ptype='edit';
-			//this.id=e.id;
-			// 	this.getDetail()
-			// }
+			this.ptype='edit';
+			this.id=e.id;
+			this.getDetail()
 		},
 		methods: {
 			checkPermi,
@@ -128,7 +124,31 @@
 						})
 					}
 				})
-				//巡更结果checkResult
+				//巡更结果
+				getDictionaryFn('check_result').then(res=>{
+					if(res.code==200){
+						this.xgjgList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
+			time() {
+				var date = new Date();
+				var y = date.getFullYear();
+				var m = date.getMonth() + 1;
+				var d = date.getDate();
+				var h = date.getHours();
+				var min = date.getMinutes();
+				var s = date.getSeconds();
+				var yearStr = y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d)
+				var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
+					'0' + s) : s);
+				var kaTime = yearStr + ' ' + timeStr;
+				return kaTime
 			},
 			kaType(data){
 				return selectDictValue(this.xglxList, data);
@@ -199,7 +219,10 @@
 			getDetail(){
 				xgdjlDet(this.id).then(res=>{
 					if(res.code==200){
-						this.datainfo=res.data
+						this.datainfo=res.data;
+						if(res.data&&res.data.checkResultPhoto){
+							this.phofile=res.data.checkResultPhoto.split(',')
+						}
 					}
 				})
 			},
@@ -214,6 +237,8 @@
 					this.$toast("请选择巡更结果")
 					return
 				}
+				params.checkResultTime=this.time();
+				params.checkStatus='2';
 				xgdjlPut(params).then(res=>{
 					if(res.code==200){
 						this.$toast("操作成功")

+ 48 - 17
property_ui/service/pages/service/patroldetail.vue

@@ -3,16 +3,15 @@
 		<view class="patlist">
 			<view class="pattop flexc">
 				<image :src="home" class="imgs"></image>
-				<view class="tit">幸福小区1栋2单元电梯间</view>
+				<view class="tit">{{datainfo.checkAddress}}</view>
 				<view class="flex1"></view>
-				<view class="txt cd" v-if="datainfo.type==1">未巡更</view>
-				<view class="txt cc" v-if="datainfo.type==2">已巡更</view>
+				<view class="txt cd" v-if="datainfo.checkStatus==1">未巡更</view>
+				<view class="txt cc" v-if="datainfo.checkStatus==2">已巡更</view>
 			</view>
 			<view class="patlistr">
-				<view class="clist"><view class="tit">巡检类型</view>:设备维修</view>
-				<view class="clist"><view class="tit">巡检时间</view>:2024-11-27 10:00</view>
-				<view class="clist"><view class="tit">巡检路线</view>:幸福小区1号楼1-2单元</view>
-				<view class="clist"><view class="tit">巡检人</view>:刘兵琦</view>
+				<view class="clist"><view class="tit">巡检类型</view>:{{kaType(datainfo.checkType)}}</view>
+				<view class="clist"><view class="tit">巡检时间</view>:{{datainfo.checkResultTime}}</view>
+				<view class="clist"><view class="tit">巡检路线</view>:{{datainfo.checkAddress}}</view>
 			</view>
 		</view>
 		
@@ -23,15 +22,13 @@
 		</view>
 		<view class="patlist">
 			<view class="patlistr" style="padding-bottom: 14rpx;">
-				<view class="clist"><view class="tit">巡检人</view>:设备维修</view>
-				<view class="clist"><view class="tit">手机号码</view>:2024-11-27 10:00</view>
-				<view class="clist"><view class="tit">巡检时间</view>:幸福小区1号楼1-2单元</view>
-				<view class="clist"><view class="tit">巡检结果</view>:刘兵琦</view>
+				<view class="clist"><view class="tit">巡检人</view>:{{datainfo.checkUserName}}</view>
+				<view class="clist"><view class="tit">手机号码</view>:</view>
+				<view class="clist"><view class="tit">巡检时间</view>:{{datainfo.checkResultTime}}</view>
+				<view class="clist"><view class="tit">巡检结果</view>:{{datainfo.checkResult}}</view>
 				<view class="clist"><view class="tit">巡检详情</view>:
 					<view class="flexdc">
-						<view>1.设备正常,无任何异动和意向;</view>
-						<view>2.电力系统正常,无故障提示;</view>
-						<view>3.设备使用正常,无异常提示;</view>
+						<view>{{datainfo.checkResultDetails}}</view>
 					</view>
 					
 				</view>
@@ -53,6 +50,9 @@
 <script>
 	import config from '@/config'
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {xgdjlDet} from "@/api/work/service.js"
+	import {getDictionaryFn} from "@/api/system/user.js"
+	import {selectDictValue,selectValueKey} from "@/utils/common.js"
 	export default{
 		components:{},
 		data(){
@@ -61,15 +61,35 @@
 				home:require("@/service/static/service/home.png"),
 				baseUrl:config.baseUrl,
 				datainfo:{
-					type:1,heiflag:true
+					type:1,
+					heiflag:true
 				},
 			}
 		},
-		onLoad: function() {
-		
+		onLoad: function(e) {
+			this.id=e.id;
+			this.getDetail();
+			this.init()
 		},
 		methods:{
 			checkPermi, checkRole,
+			init(){
+				// 巡更类型
+				getDictionaryFn('patrol_type').then(res=>{
+					if(res.code==200){
+						this.xglxList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+				//巡更结果checkResult
+			},
+			kaType(data){
+				return selectDictValue(this.xglxList, data);
+			},
 			getPreview(idx,arr) {
 				var newArr=[];
 				arr.forEach(ite=>{
@@ -83,6 +103,17 @@
 					fail: function(err) {}
 				});
 			},
+			getDetail(){
+				var that=this;
+				xgdjlDet(this.id).then(res=>{
+					if(res.code==200){
+						this.datainfo=res.data;
+						if(res.data&&res.data.checkResultPhoto){
+							that.phofile=res.data.checkResultPhoto.split(',')
+						}
+					}
+				})
+			},
 			getDelFn(){
 				var that=this;
 				uni.showModal({

BIN
property_ui/static/images/rimga.png


+ 1 - 1
property_ui/static/style.css

@@ -33,7 +33,7 @@ font-weight: bold;font-size: 26rpx;color: #FFFFFF;background: #0256FD;border-rad
 .overh{overflow: hidden;}
 .delleft{background-color: #ffffff;border-radius: 20rpx;position: relative;z-index: 1;}
 .w50{min-width: 50%;}
-
+.cof4{color: #F40027 !important;}
 
 .fw5{font-weight: 500;}
 .f12{font-size: 24rpx;}

+ 4 - 0
property_ui/store/getters.js

@@ -2,12 +2,16 @@ const getters = {
   token: state => state.user.token,
   avatar: state => state.user.avatar,
   name: state => state.user.name,
+  nickName: state => state.user.nickName,
   roles: state => state.user.roles,
+  roleName:state => state.user.roleName,
   permissions: state => state.user.permissions,
   wgtcode:state => state.user.wgtcode,
   autologin:state => state.user.autologin,
   userId:state=>state.user.userId,
   phonenumber: state => state.user.phonenumber,
+  deptName: state => state.user.deptName,
+  deptId: state => state.user.deptId,
   loading: state => state.user.loading,
 }
 export default getters

+ 40 - 1
property_ui/store/modules/user.js

@@ -10,13 +10,17 @@ const user = {
   state: {
     token: getToken(),
     name: storage.get(constant.name),
+	nickName: storage.get(constant.nickName),
     avatar: storage.get(constant.avatar),
     roles: storage.get(constant.roles),
+    roleName: storage.get(constant.roleName),
     permissions: storage.get(constant.permissions),
 	wgtcode:storage.get(constant.wgtcode),
 	autologin:storage.get(constant.autologin),
 	userId: storage.get(constant.userId),
 	phonenumber: storage.get(constant.phonenumber),
+	deptId: storage.get(constant.deptId),
+	deptName: storage.get(constant.deptName),
 	loading: false,
   },
 
@@ -37,6 +41,18 @@ const user = {
       state.name = name
       storage.set(constant.name, name)
     },
+	SET_NICKNAME: (state, nickName) => {
+	  state.nickName = nickName
+	  storage.set(constant.nickName, nickName)
+	},
+	SET_DEPTID: (state, deptId) => {
+	  state.deptId = deptId
+	  storage.set(constant.deptId, deptId)
+	},
+	SET_DEPNAME: (state, deptName) => {
+	  state.deptName = deptName
+	  storage.set(constant.deptName, deptName)
+	},
     SET_AVATAR: (state, avatar) => {
       state.avatar = avatar
       storage.set(constant.avatar, avatar)
@@ -45,6 +61,10 @@ const user = {
       state.roles = roles
       storage.set(constant.roles, roles)
     },
+	SET_ROLESNAME: (state, roleName) => {
+	  state.roleName = roleName
+	  storage.set(constant.roleName, roleName)
+	},
     SET_PERMISSIONS: (state, permissions) => {
       state.permissions = permissions
       storage.set(constant.permissions, permissions)
@@ -98,6 +118,7 @@ const user = {
 				    if (res.confirm) {
 						commit('SET_TOKEN', '')
 						commit('SET_ROLES', [])
+						commit('SET_ROLESNAME', [])
 						commit('SET_PERMISSIONS', [])
 						removeToken()
 						storage.clean()
@@ -118,10 +139,25 @@ const user = {
       return new Promise((resolve, reject) => {
         getInfo().then(res => {
           const user = res.user
-          const avatar = (user == null || user.avatar == "" || user.avatar == null) ? require("@/static/images/profile.jpg") : baseUrl + user.avatar
+          const avatar = (user == null || user.avatar == "" || user.avatar == null) ? require("@/static/images/profile.jpg") :  user.avatar
           const username = (user == null || user.userName == "" || user.userName == null) ? "" : user.userName
+		  const nickName = (user == null || user.nickName == "" || user.nickName == null) ? "" : user.nickName
 		  const userId = (user == null || user.userId == "" || user.userId == null) ? "" : user.userId
 		  const phonenumber = (user == null || user.phonenumber == "" || user.phonenumber == null) ? "" : user.phonenumber
+		  const deptId = (user == null || user.deptId == "" || user.deptId == null) ? "" : user.deptId
+		  const deptName = (user == null || user.dept == "" || user.dept == null||user.dept.deptName==''||user.dept.deptName==null) ? "" : user.dept.deptName
+		   // 根据角色来储存权限
+		   if (res.user.roles && res.user.roles.length > 0) {
+			   var newArr=[]
+		   		newArr = res.user.roles.map(v => {
+		   			return {
+		   				dictValue: v.roleKey,
+						dictLabel:v.roleName,
+		   				// permissions: v.permissions
+		   			}
+		   		})
+		   		commit('SET_ROLESNAME', newArr)	
+		   }
           if (res.roles && res.roles.length > 0) {
             commit('SET_ROLES', res.roles)
             commit('SET_PERMISSIONS', res.permissions)
@@ -129,9 +165,12 @@ const user = {
             commit('SET_ROLES', ['ROLE_DEFAULT'])
           }
           commit('SET_NAME', username)
+		  commit('SET_NICKNAME', nickName)
           commit('SET_AVATAR', avatar)
 		  commit('SET_USERID', userId)
 		  commit('SET_PHONENUMBER', phonenumber)
+		  commit('SET_DEPTID', deptId)
+		  commit('SET_DEPNAME', deptName)
           resolve(res)
         }).catch(error => {
           reject(error)

+ 4 - 0
property_ui/utils/constant.js

@@ -1,12 +1,16 @@
 const constant = {
    avatar: 'vuex_avatar',
    name: 'vuex_name',
+   nickName: 'vuex_nickName',
    roles: 'vuex_roles',
+   roleName: 'vuex_roleName',
    permissions: 'vuex_permissions',
    autologin:'vuex_autologin',
    wgtcode:'vuex_wgtcode',
    userId: 'vuex_userId',
    phonenumber:'vuex_phonenumber',
+   deptId: 'vuex_deptId',
+   deptName: 'vuex_deptName',
  }
 
  export default constant

+ 1 - 1
property_ui/utils/storage.js

@@ -4,7 +4,7 @@ import constant from './constant'
 let storageKey = 'storage_data'
 
 // 存储节点变量名
-let storageNodeKeys = [constant.avatar, constant.name, constant.roles, constant.permissions,constant.autologin,constant.wgtcode,constant.userId,constant.phonenumber,]
+let storageNodeKeys = [constant.avatar, constant.name,constant.nickName, constant.roles,constant.roleName,constant.permissions,constant.autologin,constant.wgtcode,constant.userId,constant.phonenumber,constant.deptId,constant.deptName,]
 
 const storage = {
   set: function(key, value) {

+ 2 - 2
property_ui/work/components/car/list.vue

@@ -200,7 +200,7 @@
 		<!-- 阅读名单 -->
 		<block v-if="type=='readlist'" >
 			<view class="readlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
-				<image class="head" :src="man" v-if="ite.sex==0"></image>
+				<image class="head" :src="man" v-if="ite.sex==1"></image>
 				<image class="head" :src="woman" v-else></image>
 				<view class="flex1">
 					<view class="tit">袁玥</view>
@@ -210,7 +210,7 @@
 		</block>
 		<block v-if="type=='readcount'" >
 			<view class="readlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
-				<image class="head" :src="man" v-if="ite.sex==0"></image>
+				<image class="head" :src="man" v-if="ite.sex==1"></image>
 				<image class="head" :src="woman" v-else></image>
 				<view class="flex1">
 					<view class="tit">袁玥</view>

+ 13 - 1
property_ui/work/pages/manage/addcar.vue

@@ -22,6 +22,18 @@
 							<view class="rimg"><image :src="rimg"></image></view>
 						</view>
 					</uni-forms-item>
+					<uni-forms-item label="姓名" name="userName">
+						<view class="flexc" @click.stop="">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.userName" :inputBorder='false' placeholder="请输入姓名" />
+							<view class="rimg"><image :src="rimg"></image></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="手机号" name="residentPhone">
+						<view class="flexc" @click.stop="">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.residentPhone" :inputBorder='false' placeholder="请输入手机号" />
+							<view class="rimg"><image :src="rimg"></image></view>
+						</view>
+					</uni-forms-item>
 					<block v-if="zhanfalg">
 						<uni-forms-item label="居住门户" name="houseId">
 							<w-select
@@ -134,7 +146,7 @@
 					detailedAddress: {rules: [{required: true,errorMessage: '请输入居住地址' }]},
 					// name: {rules: [{required: true,errorMessage: '请输入访客姓名' }]},
 				 //  portalId: {rules: [{required: true,errorMessage: '请选择来访门户' }]},
-				 //  mobileNumber: {rules: [{required: true,errorMessage: '请输入手机号'}, {pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,errorMessage:'请输入正确的手机号码'}]},
+				  residentPhone: {rules: [{required: true,errorMessage: '请输入手机号'}, {pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,errorMessage:'请输入正确的手机号码'}]},
 				  },
 				cllx:"",
 				cllxidx:0,