zouling 4 månader sedan
förälder
incheckning
5c2c6d6775
37 ändrade filer med 1252 tillägg och 748 borttagningar
  1. 8 0
      property_ui/api/system/user.js
  2. 47 0
      property_ui/api/work/manage.js
  3. 79 0
      property_ui/api/work/people.js
  4. 40 0
      property_ui/api/work/work.js
  5. 30 16
      property_ui/car/components/car/list.vue
  6. 5 8
      property_ui/car/pages/carku.vue
  7. 60 24
      property_ui/car/pages/illegalParking.vue
  8. 100 54
      property_ui/car/pages/illegalcheck.vue
  9. 65 55
      property_ui/car/pages/illegalrecord.vue
  10. 5 8
      property_ui/car/pages/index.vue
  11. 0 3
      property_ui/health/pages/health/index.vue
  12. 1 1
      property_ui/manage/components/nodata/nodata.vue
  13. 4 7
      property_ui/manage/pages/community/newsdj.vue
  14. 4 7
      property_ui/manage/pages/community/newssq.vue
  15. 5 8
      property_ui/manage/pages/community/newsyg.vue
  16. 4 7
      property_ui/manage/pages/community/readcount.vue
  17. 4 7
      property_ui/manage/pages/community/readlist.vue
  18. 36 22
      property_ui/manage/pages/community/sqmoney.vue
  19. 46 41
      property_ui/manage/pages/community/sqmoneyadd.vue
  20. 1 7
      property_ui/pages.json
  21. 6 4
      property_ui/pages/index/index.vue
  22. 0 183
      property_ui/pages/work/index.vue
  23. 58 22
      property_ui/people/components/car/list.vue
  24. 127 74
      property_ui/people/pages/people/comeadd.vue
  25. 55 18
      property_ui/people/pages/people/comegl.vue
  26. 0 3
      property_ui/people/pages/people/index.vue
  27. 89 18
      property_ui/people/pages/people/staff.vue
  28. 237 101
      property_ui/people/pages/people/staffadd.vue
  29. 4 7
      property_ui/service/pages/service/complaint.vue
  30. 1 4
      property_ui/service/pages/service/patrolrecord.vue
  31. 4 7
      property_ui/service/pages/service/warranty.vue
  32. 64 1
      property_ui/utils/common.js
  33. 1 1
      property_ui/utils/request.js
  34. 18 4
      property_ui/work/components/car/list.vue
  35. 36 12
      property_ui/work/pages/manage/house.vue
  36. 4 7
      property_ui/work/pages/manage/money.vue
  37. 4 7
      property_ui/work/pages/manage/moneybill.vue

+ 8 - 0
property_ui/api/system/user.js

@@ -46,4 +46,12 @@ export function findVersion(data) {
     method: 'get',
     method: 'get',
     data: data
     data: data
   })
   })
+}
+// 字典值yzdqId
+export function getDictionaryFn(data) {
+  return request({
+    url: '/system/dict/data/type/'+data,
+    method: 'get',
+	type:true
+  })
 }
 }

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

@@ -0,0 +1,47 @@
+import request from '@/utils/request'
+
+// 资产类型-新增wuYe:assetType:add
+export function assetTypeAdd(data) {
+  return request({
+    url: '/wuYe/assetType',
+    method: 'post',
+    data: data
+  })
+}
+// 资产类型-修改wuYe:assetType:edit
+export function assetTypePut(data) {
+  return request({
+    url: '/wuYe/assetType/put',
+    method: 'post',
+    data: data
+  })
+}
+// 资产类型-删除wuYe:assetType:remove
+export function assetTypeDel(data) {
+  return request({
+    url: '/wuYe/assetType/delete/'+data,
+    method: 'get',
+  })
+}
+// 资产类型-列表wuYe:assetType:list
+export function assetTypeList(data) {
+  return request({
+    url: '/wuYe/assetType/list',
+    method: 'get',
+    data: data
+  })
+}
+// 资产类型-详情wuYe:assetType:query
+export function assetTypeDet(data) {
+  return request({
+    url: '/wuYe/assetType/'+data,
+    method: 'get',
+  })
+}
+//资产分类树-列表wuYe:assetType:query
+export function assetTypeTree(data) {
+  return request({
+    url: '/wuYe/assetType/deptTree',
+    method: 'get',
+  })
+}

+ 79 - 0
property_ui/api/work/people.js

@@ -0,0 +1,79 @@
+import request from '@/utils/request'
+
+// 来访管理-列表wuYe:visitorManage:list
+export function visitorList(data) {
+  return request({
+    url: '/wuYe/visitorManage/list',
+    method: 'get',
+    data: data
+  })
+}
+// 来访管理-详情wuYe:visitorManage:query
+export function visitorDet(data) {
+  return request({
+    url: '/wuYe/visitorManage/'+data,
+    method: 'get',
+  })
+}
+// 来访管理-新增wuYe:visitorManage:add
+export function visitorAdd(data) {
+  return request({
+    url: '/wuYe/visitorManage',
+    method: 'post',
+    data: data
+  })
+}
+// 来访管理-修改wuYe:visitorManage:edit
+export function visitorPut(data) {
+  return request({
+    url: '/wuYe/visitorManage/put',
+    method: 'post',
+    data: data
+  })
+}
+// 来访管理-删除wuYe:visitorManage:remove
+export function visitorDel(data) {
+  return request({
+    url: '/wuYe/visitorManage/delete/'+data,
+    method: 'get',
+  })
+}
+
+// 员工管理-列表wuYe:staffManage:list
+export function staffList(data) {
+  return request({
+    url: '/wuYe/staffManage/list',
+    method: 'get',
+    data: data
+  })
+}
+// 员工管理-详情wuYe:staffManage:query
+export function staffDet(data) {
+  return request({
+    url: '/wuYe/staffManage/'+data,
+    method: 'get',
+  })
+}
+// 员工管理-新增wuYe:staffManage:add
+export function staffAdd(data) {
+  return request({
+    url: '/wuYe/staffManage',
+    method: 'post',
+    data: data
+  })
+}
+// 员工管理-修改wuYe:staffManage:edit
+export function staffPut(data) {
+  return request({
+    url: '/wuYe/staffManage/put',
+    method: 'post',
+    data: data
+  })
+}
+// 员工管理-删除wuYe:staffManage:remove
+export function staffDel(data) {
+  return request({
+    url: '/wuYe/staffManage/delete/'+data,
+    method: 'get',
+  })
+}

+ 40 - 0
property_ui/api/work/work.js

@@ -0,0 +1,40 @@
+import request from '@/utils/request'
+
+// 房屋信息-新增wuYe:houseInfo:add
+export function houseInfoAdd(data) {
+  return request({
+    url: '/wuYe/houseInfo',
+    method: 'post',
+    data: data
+  })
+}
+// 房屋信息-修改wuYe:houseInfo:edit
+export function houseInfoPut(data) {
+  return request({
+    url: '/wuYe/houseInfo/put',
+    method: 'post',
+    data: data
+  })
+}
+// 房屋信息-删除wuYe:houseInfo:remove
+export function houseInfoDel(data) {
+  return request({
+    url: '/wuYe/houseInfo/delete/'+data,
+    method: 'get',
+  })
+}
+// 房屋信息-列表wuYe:houseInfo:list
+export function houseInfoList(data) {
+  return request({
+    url: '/wuYe/houseInfo/list',
+    method: 'get',
+    data: data
+  })
+}
+// 房屋信息-详情wuYe:houseInfo:query
+export function houseInfoDet(data) {
+  return request({
+    url: '/wuYe/houseInfo/'+data,
+    method: 'get',
+  })
+}

+ 30 - 16
property_ui/car/components/car/list.vue

@@ -29,26 +29,26 @@
 		</block>
 		</block>
 		<!-- 车辆违规 -->
 		<!-- 车辆违规 -->
 		<block v-if="type=='carpark'">
 		<block v-if="type=='carpark'">
-			<view class="carlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
+			<view class="carlist" v-for="(ite,idx) in datainfo" :key="ite.illegalParkingId" @click="getDetail(ite.illegalParkingId)">
 				<view class="ctop flexc">
 				<view class="ctop flexc">
-					<image :src="cara" class="imgs" v-if="ite.type==1"></image>
-					<image :src="carb" class="imgs" v-if="ite.type==2"></image>
-					<view class="tit">皖A IC520</view>
-					<view class="num" :class="ite.heiflag?'coff':''">(本年度2次)</view>
+					<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>
 					<view class="flex1"></view>
-					<view class="txt ca" v-if="ite.type==1">小区车辆</view>
-					<view class="txt cb" v-if="ite.type==2">外来车辆</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>
 				<view class="clists">
 				<view class="clists">
-					<view class="clist"><view class="tit">关联房号</view>12#1403</view>
-					<view class="clist"><view class="tit">手机号码</view>13656788668</view>
-					<view class="clist"><view class="tit">登记时间</view>2024-11-27 17:30:55</view>
+					<view class="clist"><view class="tit">关联房号</view>{{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="clist"><view class="tit">违停拍照</view>
-						<view class="imgas">
-							<image :src="cara" @click="getPreview(idx,cara)"></image>
-							<image :src="cara"></image>
-							<image :src="cara"></image>
-							<image :src="cara"></image>
+						<view 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>
 				</view>
@@ -69,6 +69,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
+	import {selectDictValue} from "@/utils/common.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import config from '@/config'
 	import config from '@/config'
 	export default{
 	export default{
@@ -91,6 +92,12 @@
 					return 0
 					return 0
 				}
 				}
 			},
 			},
+			carType:{
+				type:Array,
+				default () {
+					return []
+				}
+			},
 			topval:{
 			topval:{
 				type:String,
 				type:String,
 				default () {
 				default () {
@@ -131,6 +138,12 @@
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
+			kaType(data, list) {
+				return selectDictValue(list, data);
+			},
+			kaPhoto(data){
+				return data.split(',');
+			},
 			getDetail(e){
 			getDetail(e){
 				this.$emit('getDetail',e)
 				this.$emit('getDetail',e)
 			},
 			},
@@ -151,7 +164,8 @@
 			},
 			},
 			getPreview(idx,arr) {
 			getPreview(idx,arr) {
 				var newArr=[];
 				var newArr=[];
-				arr.forEach(ite=>{
+				var list=arr.split(',')
+				list.forEach(ite=>{
 					var ds=this.baseUrl+ite
 					var ds=this.baseUrl+ite
 					newArr.push(ds)
 					newArr.push(ds)
 				})
 				})

+ 5 - 8
property_ui/car/pages/carku.vue

@@ -2,7 +2,7 @@
 	<view class="car" :style="'padding-top:'+patop+'px;'">
 	<view class="car" :style="'padding-top:'+patop+'px;'">
 		<view class="cartop">
 		<view class="cartop">
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 			<view class="tips">车位总计<text class="co01">365个</text>,当前空闲地下车位<text class="cofe">27个</text>,地面车位<text class="co28">18个</text></view>
 			<view class="tips">车位总计<text class="co01">365个</text>,当前空闲地下车位<text class="cofe">27个</text>,地面车位<text class="co28">18个</text></view>
 			<view class="tablst flexc">
 			<view class="tablst flexc">
@@ -11,7 +11,7 @@
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='carku'></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='carku'></car-list>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -20,7 +20,7 @@
 <script>
 <script>
 	import config from '@/config'
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	const baseUrl = config.baseUrl
-	import carList from "@/work/components/car/list.vue"
+	import carList from "@/car/components/car/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 	export default{
 		components:{carList},
 		components:{carList},
@@ -37,10 +37,10 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'tcw',
+				tabval:'tcw',
 				tabval:'0',
 				tabval:'0',
 				patop:'144',
 				patop:'144',
-				ttoplist:[{tit:'停车位',val:'tcw'},{tit:'充电桩位',val:'cdz'}],
+				tablist:[{tit:'停车位',val:'tcw'},{tit:'充电桩位',val:'cdz'}],
 				tablist:[{tit:'地下车位',val:0},{tit:'地面车位',val:1}]
 				tablist:[{tit:'地下车位',val:0},{tit:'地面车位',val:1}]
 			}
 			}
 		},
 		},
@@ -70,9 +70,6 @@
 					that.patop=Number(height)
 					that.patop=Number(height)
 				}).exec();
 				}).exec();
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getTabFn(val){
 			getTabFn(val){
 				this.tabval=val
 				this.tabval=val
 			},
 			},

+ 60 - 24
property_ui/car/pages/illegalParking.vue

@@ -5,7 +5,7 @@
 				<image :src="reset" class="resetimg" @click="getReset"></image>
 				<image :src="reset" class="resetimg" @click="getReset"></image>
 				<picker mode="date"   @change='bindDateChangea'>
 				<picker mode="date"   @change='bindDateChangea'>
 					<view class="chekt flexc">
 					<view class="chekt flexc">
-						<view>{{cxrq|| "选择日期"}}</view>
+						<view>{{wtrq|| "选择日期"}}</view>
 						<image :src="up"></image>
 						<image :src="up"></image>
 					</view>
 					</view>
 				</picker>
 				</picker>
@@ -17,17 +17,17 @@
 				</view>
 				</view>
 			</view>
 			</view>
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
-			<!-- <view class="tablst flexc">
-				<view class="tabs" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
-			</view> -->
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists mt12">
 		<view class="carlists mt12">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='carpark' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :carType="carType" :wtdt="wtdt" type='carpark' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
-		<view class="rfbtn" @click="getCheck">违停登记</view>
+		<block v-if="checkPermi(['wuYe:illegalParking:add'])">
+			<view style="height: 100rpx;"></view>
+			<view class="rfbtn" @click="getCheck">违停登记</view>
+		</block>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
 </template>
 </template>
@@ -35,7 +35,9 @@
 <script>
 <script>
 	import config from '@/config'
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	const baseUrl = config.baseUrl
-	import carList from "@/work/components/car/list.vue"
+	import carList from "@/car/components/car/list.vue"
+	import {illegalParkingList} from "@/api/work/car.js"
+	import {getDictionaryFn} from "@/api/system/user.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 	export default{
 		components:{carList},
 		components:{carList},
@@ -47,19 +49,27 @@
 				cara:require('@/car/static/car/cara.png'),
 				cara:require('@/car/static/car/cara.png'),
 				carb:require('@/car/static/car/carb.png'),
 				carb:require('@/car/static/car/carb.png'),
 				search:require('@/car/static/car/search.png'),
 				search:require('@/car/static/car/search.png'),
-				cxrq:"",
+				wtrq:"",
 				text:'',
 				text:'',
-				list:[{tit:'皖A IC520',type:1,heiflag:false},{tit:'晋E KD783',type:2,heiflag:true},],
+				list:[],
 				pageSize: 10,
 				pageSize: 10,
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'暂无数据',
 				wtdt:'暂无数据',
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'外来车辆',val:1},{tit:'小区车辆',val:2},],
+				tabval:'-1',
+				tablist:[{tit:'全部',val:'-1'}],
+				carType:[],//车辆类型
 			}
 			}
 		},
 		},
+		onUnload() {
+			uni.$off('refCarPark')
+		},
 		onLoad: function() {
 		onLoad: function() {
-		
+			uni.$on('refCarPark',(res)=>{
+				this.getrefreshData()
+			})
+			this.init()
+			this.getDataFn()
 		},
 		},
 		// 上拉触底加载更多触发事件
 		// 上拉触底加载更多触发事件
 		onReachBottom() {
 		onReachBottom() {
@@ -70,20 +80,35 @@
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
+			init(){//car_type
+				// 车辆类型
+				getDictionaryFn('car_type').then(res=>{
+					if(res.code==200){
+						this.carType = res.data.map(v => {
+							var obj={
+								tit: v.dictLabel,
+								val: v.dictValue
+							}
+							this.tablist.push(obj)
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
 			getCheck(){
 			getCheck(){
 				this.$tab.navigateTo("/car/pages/illegalcheck")
 				this.$tab.navigateTo("/car/pages/illegalcheck")
 			},
 			},
-			getDetail(){
-				this.$tab.navigateTo("/car/pages/illegalrecord")
-			},
-			getTabtop(val){
-				this.ttopval=val
+			getDetail(e){
+				this.$tab.navigateTo("/car/pages/illegalrecord?id="+e)
 			},
 			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},
 			getReset(){
 			getReset(){
-				this.cxrq='';
+				this.wtrq='';
 				this.text='';
 				this.text='';
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},
@@ -94,19 +119,30 @@
 				this.getDataFn()
 				this.getDataFn()
 			},
 			},
 			getTabFn(val){
 			getTabFn(val){
-				this.tabval=val
+				this.tabval=val;
+				this.getrefreshData()
 			},
 			},
 			bindDateChangea(e){
 			bindDateChangea(e){
 				var val=e.detail.value;
 				var val=e.detail.value;
-				this.cxrq=val;
+				this.wtrq=val;
+				this.getrefreshData()
 			},
 			},
 			getDataFn(){
 			getDataFn(){
 				var params={
 				var params={
 					pageSize:this.pageSize,
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
 					pageNum: this.pageNum,
 				}
 				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
+				if(this.tabval!='-1'){
+					params.carType=this.tabval
+				}
+				if(this.text){
+					params.plateNumber=this.text
+				}
+				if(this.wtrq){
+					params['params[createTime]']=this.wtrq
+					// params.createTime=this.wtrq
+				}
+				illegalParkingList(params).then(res=>{
 					if(res.code==200){
 					if(res.code==200){
 						if (res.rows.length < this.pageSize) {
 						if (res.rows.length < this.pageSize) {
 							this.reachflag = false
 							this.reachflag = false
@@ -139,7 +175,7 @@
 	page{background: #F3F3F0;}
 	page{background: #F3F3F0;}
 </style>
 </style>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-.car{padding: 206rpx 0 110rpx;}
+.car{padding: 206rpx 0 10rpx;}
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
 	.topa{padding: 20rpx ;
 	.topa{padding: 20rpx ;
 		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}
 		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}

+ 100 - 54
property_ui/car/pages/illegalcheck.vue

@@ -22,13 +22,19 @@
 					  <uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
 					  <uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
 					</uni-forms-item>
 					</uni-forms-item>
 					<view class="imgs">
 					<view class="imgs">
-						<view class="img" @click="getPreview">
-							<image :src="car" class="pico"></image>
-							<image :src="del" class="del" @click="getDelFn"></image>
+						<block v-if="phofile&&phofile.length">
+							<view class="img" v-for="(ite,idx) in phofile" :key="idx" @click="getPreview(idx,phofile)">
+								<image :src="baseUrl+ite" class="pico"></image>
+								<image :src="del" class="del" @click.stop="getDelFn(idx)"></image>
+							</view>
+						</block>
+						<view class="addbox" @click="getaddImage">
+							<image :src="photo" class="pico"></image>
+							<view>添加图片</view>
 						</view>
 						</view>
 					</view>
 					</view>
 				</uni-forms>
 				</uni-forms>
-				<view class="rhbtn mt63" @click="getNext">确定</view>
+				<view class="rhbtn mt63" @click="getSubmit">确定</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
@@ -36,25 +42,28 @@
 </template>
 </template>
 
 
 <script>
 <script>
-	import config from '@/config'
+	import config from '@/config.js'
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	import {uploadIdentify} from '@/utils/common.js'
+	import {uploadIdentify,uploadmore} from '@/utils/common.js'
+	import {illegalParkingAdd} from "@/api/work/car.js"
 	export default{
 	export default{
 		components:{},
 		components:{},
 		data(){
 		data(){
 			return{
 			return{
+				photo:require("@/service/static/service/photo.png"),
 				line:require('@/car/static/car/line.png'),
 				line:require('@/car/static/car/line.png'),
 				car:require('@/car/static/car/carico.png'),
 				car:require('@/car/static/car/carico.png'),
 				del:require('@/car/static/car/del.png'),
 				del:require('@/car/static/car/del.png'),
 				baseUrl:config.baseUrl,
 				baseUrl:config.baseUrl,
+				phofile:[],//图片合集
 				datainfo:{
 				datainfo:{
-					realName:'',
-					idCard:'',
-					address:'',
-					expirationDate:'',
-					phonenumber:'',
-					front:'',
-					back:'',
+					"plateNumber": "皖A12345",
+					"portalId": "",
+					"visitPortal": "",
+					"mobileNumber": "",
+					"carType": "2",
+					"visitName": "",
+					"illegalPhoto": "",
 				},
 				},
 			}
 			}
 		},
 		},
@@ -76,7 +85,7 @@
 					fail: function(err) {}
 					fail: function(err) {}
 				});
 				});
 			},
 			},
-			getDelFn(){
+			getDelFn(idx){
 				var that=this;
 				var that=this;
 				uni.showModal({
 				uni.showModal({
 					title: '确认删除',
 					title: '确认删除',
@@ -85,7 +94,7 @@
 					confirmText: '确认',
 					confirmText: '确认',
 					success: function(res) {
 					success: function(res) {
 						if (res.confirm) {
 						if (res.confirm) {
-							// that.filelist.splice(idx,1)
+							that.phofile.splice(idx,1)
 						} else if (res.cancel) {
 						} else if (res.cancel) {
 						}
 						}
 					}
 					}
@@ -93,19 +102,9 @@
 			},
 			},
 			getaddImage(e){
 			getaddImage(e){
 				let that = this;
 				let that = this;
-				// var rs=['D:\\idcard.png']
-				// if(rs&&rs.length>0){
-				// 	var obj={
-				// 		type:e,
-				// 		// url:baseUrl+rs.join(',')
-				// 		url:rs.join(',')
-				// 	}
-				// 	that.getOcrIdCard(obj)
-				// }
-				// return
 				let file =[],count=9
 				let file =[],count=9
 				uni.chooseImage({
 				uni.chooseImage({
-					count: 1,
+					// count: 1,
 					success:function(res){
 					success:function(res){
 						let img= res.tempFilePaths;
 						let img= res.tempFilePaths;
 						if(img.length + file.length > count){
 						if(img.length + file.length > count){
@@ -117,43 +116,86 @@
 						}else{
 						}else{
 							let imglen = res.tempFilePaths.length;
 							let imglen = res.tempFilePaths.length;
 							var fuwufile = [];
 							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)
-								}
+							uploadmore('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
+								that.phofile = that.phofile.concat(rs);
 							})	
 							})	
 						}
 						}
 					}
 					}
 				});
 				});
 			},
 			},
-			getOcrIdCard(obj){
-				var params={
-					image:obj.url,
-					idCardSide:obj.type
+			getSubmit(){
+				var that=this;
+				var params=JSON.parse(JSON.stringify(this.datainfo))
+				var phofile=JSON.parse(JSON.stringify(this.phofile))
+				if(phofile&&phofile.length){
+					params.illegalPhoto=this.phofile.join(',');
 				}
 				}
-				getOcrIdCard(params).then(res=>{
+				illegalParkingAdd(params).then(res=>{
 					if(res.code==200){
 					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
-						}
+						this.$toast("新增成功")
+						setTimeout(function(){
+							uni.$emit("refCarPark")
+							uni.navigateBack({
+								delta:1
+							})
+						},1500)
 					}
 					}
 				})
 				})
-			}
+				
+			},
+			// 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
+			// 			}
+			// 		}
+			// 	})
+			// }
 		}
 		}
 	}
 	}
 </script>
 </script>
@@ -188,6 +230,10 @@
 			}
 			}
 			.pico{width: 100%;height: 100%;border-radius: 20rpx;}
 			.pico{width: 100%;height: 100%;border-radius: 20rpx;}
 			.del{width: 24rpx;height: 24rpx;position: absolute;right: 0;top: 0;}
 			.del{width: 24rpx;height: 24rpx;position: absolute;right: 0;top: 0;}
+			.addbox{background: #F0F0F0;border-radius: 20rpx;display: flex;align-items: center;flex-direction: column;width: 142rpx;height:142rpx;justify-content: center;margin-bottom: 20rpx;
+				image{width: 48rpx;height: 42rpx;margin-bottom: 12rpx;}
+				view{font-weight: 500;font-size: 24rpx;color: #666666;}
+			}
 		}
 		}
 	}
 	}
 	
 	

+ 65 - 55
property_ui/car/pages/illegalrecord.vue

@@ -1,69 +1,52 @@
 <template>
 <template>
 	<view class="irecord">
 	<view class="irecord">
 		<view class="ctop flexc">
 		<view class="ctop flexc">
-			<image :src="carc" class="imgs" v-if="datainfo.type==1"></image>
-			<image :src="card" class="imgs" v-if="datainfo.type==2"></image>
-			<view class="tit">皖A IC520</view>
+			<image :src="carc" class="imgs" v-if="datainfo.carType==1"></image>
+			<image :src="card" class="imgs" v-if="datainfo.carType==2"></image>
+			<view class="tit">{{datainfo.plateNumber}}</view>
 			<view class="flex1"></view>
 			<view class="flex1"></view>
-			<view class="txt ca" v-if="datainfo.type==1">小区车辆</view>
-			<view class="txt cb" v-if="datainfo.type==2">外来车辆</view>
+			<block v-if="datainfo.carType">
+				<view class="txt" :class="datainfo.carType==1?'ca':'cb'">{{kaType(datainfo.carType,carType)}}</view>
+			</block>
 		</view>
 		</view>
 		<view class="pdlr12">
 		<view class="pdlr12">
 			<view class="clists bgef">
 			<view class="clists bgef">
-				<view class="clist"><view class="tit">关联房号:</view>12#1403</view>
-				<view class="clist"><view class="tit">手机号码:</view>13656788668</view>
+				<view class="clist"><view class="tit">关联房号:</view>{{datainfo.visitPortal}}</view>
+				<view class="clist"><view class="tit">手机号码:</view>{{datainfo.mobileNumber}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
-		
 		<view class="chtop flexc">
 		<view class="chtop flexc">
 			<image :src="line"></image>
 			<image :src="line"></image>
 			<view>违停记录</view>
 			<view>违停记录</view>
 			<view class="flex1"></view>
 			<view class="flex1"></view>
-			<view class="num coff">本年度已违停3次</view>
+			<view class="num coff" v-if="datainfo.isBlack=='Y'">(已登黑名单)</view>
 		</view>
 		</view>
 		<!-- 步骤条 -->
 		<!-- 步骤条 -->
-		<view class="steps">
-			<image :src="icoa" class="circle"></image>
+		<view class="steps" v-for="(ite,idx) in datainfo.children">
+			<image :src="icoa" v-if="idx==0" class="circle"></image>
+			<image :src="icob" v-else class="circle"></image>
 			<view class="step">
 			<view class="step">
 				<view class="slist">
 				<view class="slist">
-					<view class="tit">登记时间:</view>2024-11-27 10:03:27
+					<view class="tit">登记时间:</view>{{ite.createTime}}
 				</view>
 				</view>
 				<view class="slist">
 				<view class="slist">
 					<view class="tit">违停拍照:</view>
 					<view class="tit">违停拍照:</view>
 					<view class="imgas">
 					<view class="imgas">
-						<image :src="carc" @click="getPreview(idx,carc)"></image>
-						<image :src="carc"></image>
-						<image :src="carc"></image>
-						<image :src="carc"></image>
+						<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>
 			</view>
 		</view>
 		</view>
-		<view class="steps">
-			<!-- <image :src="icoa" class="circle"></image> -->
-			<image :src="icob" class="circle"></image>
-			<view class="step">
-				<view class="slist">
-					<view class="tit">登记时间:</view>2024-11-27 10:03:27
-				</view>
-				<view class="slist">
-					<view class="tit">违停拍照:</view>
-					<view class="imgas">
-						<image :src="carc" @click="getPreview(idx,carc)"></image>
-						<image :src="carc"></image>
-						<image :src="carc"></image>
-						<image :src="carc"></image>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="rfbtn" @click="getNext">解除黑名单</view>
+		<view class="rfbtn" @click="getDelFn">解除黑名单</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
 </template>
 </template>
 
 
 <script>
 <script>
 	import config from '@/config'
 	import config from '@/config'
+	import {selectDictValue} from "@/utils/common.js"
+	import {illegalParkingDet,illegalParkingDel} from "@/api/work/car.js"
+	import {getDictionaryFn} from "@/api/system/user.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 	export default{
 		components:{},
 		components:{},
@@ -75,19 +58,50 @@
 				icoa:require('@/car/static/car/icoa.png'),
 				icoa:require('@/car/static/car/icoa.png'),
 				icob:require('@/car/static/car/icob.png'),
 				icob:require('@/car/static/car/icob.png'),
 				baseUrl:config.baseUrl,
 				baseUrl:config.baseUrl,
-				datainfo:{
-					type:1,heiflag:true
-				},
+				datainfo:{},
+				id:'',
+				carType:[],
 			}
 			}
 		},
 		},
-		onLoad: function() {
-		
+		onLoad: function(e) {
+			this.init()
+			if(e.id){
+				this.id=e.id;
+				this.getDataFn()
+			}
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
+			kaType(data, list) {
+				return selectDictValue(list, data);
+			},
+			kaPhoto(data){
+				return data.split(',');
+			},
+			init(){
+				// 车辆类型
+				getDictionaryFn('car_type').then(res=>{
+					if(res.code==200){
+						this.carType = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
+			getDataFn(){
+				illegalParkingDet(this.id).then(res=>{
+					if(res.code==200){
+						this.datainfo=JSON.parse(JSON.stringify(res.data));
+					}
+				})
+			},
 			getPreview(idx,arr) {
 			getPreview(idx,arr) {
 				var newArr=[];
 				var newArr=[];
-				arr.forEach(ite=>{
+				var list=arr.split(',')
+				list.forEach(ite=>{
 					var ds=this.baseUrl+ite
 					var ds=this.baseUrl+ite
 					newArr.push(ds)
 					newArr.push(ds)
 				})
 				})
@@ -113,21 +127,17 @@
 					}
 					}
 				});
 				});
 			},
 			},
-			getOcrIdCard(obj){
-				var params={
-					image:obj.url,
-					idCardSide:obj.type
-				}
-				getOcrIdCard(params).then(res=>{
+			getLiftFn(){
+				var that=this;
+				illegalParkingDel(this.id).then(res=>{
 					if(res.code==200){
 					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
-						}
+						this.$toast("解除成功")
+						setTimeout(function(){
+							uni.$emit("refCarPark")
+							uni.navigateBack({
+								delta:1
+							})
+						},1500)
 					}
 					}
 				})
 				})
 			}
 			}

+ 5 - 8
property_ui/car/pages/index.vue

@@ -17,7 +17,7 @@
 				</view>
 				</view>
 			</view>
 			</view>
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 			<view class="tablst flexc">
 			<view class="tablst flexc">
 				<view class="tabs" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 				<view class="tabs" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
@@ -25,7 +25,7 @@
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='car'></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='car'></car-list>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -34,7 +34,7 @@
 <script>
 <script>
 	import config from '@/config'
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	const baseUrl = config.baseUrl
-	import carList from "@/work/components/car/list.vue"
+	import carList from "@/car/components/car/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 	export default{
 		components:{carList},
 		components:{carList},
@@ -53,9 +53,9 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'jr',
+				tabval:'jr',
 				tabval:'0',
 				tabval:'0',
-				ttoplist:[{tit:'进入车辆',val:'jr'},{tit:'驶离车辆',val:'sl'}],
+				tablist:[{tit:'进入车辆',val:'jr'},{tit:'驶离车辆',val:'sl'}],
 				tablist:[{tit:'全部',val:0},{tit:'小区车辆',val:1},{tit:'外来车辆',val:2}]
 				tablist:[{tit:'全部',val:0},{tit:'小区车辆',val:1},{tit:'外来车辆',val:2}]
 			}
 			}
 		},
 		},
@@ -74,9 +74,6 @@
 			// getNextFn(){
 			// getNextFn(){
 			// 	this.$tab.navigateTo("/work/pages/business/add")
 			// 	this.$tab.navigateTo("/work/pages/business/add")
 			// },
 			// },
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 0 - 3
property_ui/health/pages/health/index.vue

@@ -66,9 +66,6 @@
 			getDetail(){
 			getDetail(){
 				this.$tab.navigateTo("/health/pages/health/detail")
 				this.$tab.navigateTo("/health/pages/health/detail")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 1 - 1
property_ui/manage/components/nodata/nodata.vue

@@ -15,7 +15,7 @@
 				}
 				}
 			},
 			},
 			padtop:{
 			padtop:{
-				type: Number,
+				type: [Number,String],
 				default () {
 				default () {
 					return 100
 					return 100
 				}
 				}

+ 4 - 7
property_ui/manage/pages/community/newsdj.vue

@@ -5,12 +5,12 @@
 				<image :src="djtop"></image>本社区党员共<text>367</text>人
 				<image :src="djtop"></image>本社区党员共<text>367</text>人
 			</view>
 			</view>
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='newsdj' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='newsdj' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<view class="rfbtn" @click="getAddFn">发布</view>
 		<view class="rfbtn" @click="getAddFn">发布</view>
 		<loading></loading>
 		<loading></loading>
@@ -34,8 +34,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'党建活动',val:0},{tit:'党建学习',val:1},{tit:'党建知识',val:2}]
+				tabval:'0',
+				tablist:[{tit:'党建活动',val:0},{tit:'党建学习',val:1},{tit:'党建知识',val:2}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -53,9 +53,6 @@
 			getAddFn(){
 			getAddFn(){
 				this.$tab.navigateTo("/manage/pages/community/newsadddj")
 				this.$tab.navigateTo("/manage/pages/community/newsadddj")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getrefreshData(){
 			getrefreshData(){
 				this.pageNum=1;
 				this.pageNum=1;
 				this.list=[];
 				this.list=[];

+ 4 - 7
property_ui/manage/pages/community/newssq.vue

@@ -2,7 +2,7 @@
 	<view class="car">
 	<view class="car">
 		<view class="cartop">
 		<view class="cartop">
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 				<view class="numbox">
 				<view class="numbox">
 					未读互动<text>27</text>
 					未读互动<text>27</text>
 				</view>
 				</view>
@@ -10,7 +10,7 @@
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='newssq' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='newssq' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<view class="rfbtn" @click="getAddFn">发布</view>
 		<view class="rfbtn" @click="getAddFn">发布</view>
 		<loading></loading>
 		<loading></loading>
@@ -33,8 +33,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'公告',val:0},{tit:'通知',val:1},{tit:'资讯',val:2}]
+				tabval:'0',
+				tablist:[{tit:'公告',val:0},{tit:'通知',val:1},{tit:'资讯',val:2}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -52,9 +52,6 @@
 			getAddFn(){
 			getAddFn(){
 				this.$tab.navigateTo("/manage/pages/community/newsaddsq")
 				this.$tab.navigateTo("/manage/pages/community/newsaddsq")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getrefreshData(){
 			getrefreshData(){
 				this.pageNum=1;
 				this.pageNum=1;
 				this.list=[];
 				this.list=[];

+ 5 - 8
property_ui/manage/pages/community/newsyg.vue

@@ -2,7 +2,7 @@
 	<view class="car">
 	<view class="car">
 		<view class="cartop">
 		<view class="cartop">
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 				<view class="numbox" @click="getCount">
 				<view class="numbox" @click="getCount">
 					阅读统计
 					阅读统计
 				</view>
 				</view>
@@ -10,9 +10,9 @@
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :wtdt="wtdt" :type='ttopval' @getDetail="getDetail" @getReadlist="getReadlist"></car-list>
+			<car-list :datainfo="list" :wtdt="wtdt" :type='tabval' @getDetail="getDetail" @getReadlist="getReadlist"></car-list>
 		</view>
 		</view>
-		<view class="rfbtn" @click="getAddFn" v-if="ttopval=='ystv'">发布图文</view>
+		<view class="rfbtn" @click="getAddFn" v-if="tabval=='ystv'">发布图文</view>
 		<view class="rfbtn" @click="getAddvideoFn" v-else>发布视频</view>
 		<view class="rfbtn" @click="getAddvideoFn" v-else>发布视频</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -34,8 +34,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'ystv',
-				ttoplist:[{tit:'图文',val:'ystv'},{tit:'视频',val:'ygsp'}]
+				tabval:'ystv',
+				tablist:[{tit:'图文',val:'ystv'},{tit:'视频',val:'ygsp'}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -62,9 +62,6 @@
 			getCount(){
 			getCount(){
 				this.$tab.navigateTo("/manage/pages/community/readcount")
 				this.$tab.navigateTo("/manage/pages/community/readcount")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getrefreshData(){
 			getrefreshData(){
 				this.pageNum=1;
 				this.pageNum=1;
 				this.list=[];
 				this.list=[];

+ 4 - 7
property_ui/manage/pages/community/readcount.vue

@@ -29,12 +29,12 @@
 			</view>
 			</view>
 			
 			
 			<!-- <view class="tabtop flexc">
 			<!-- <view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view> -->
 			</view> -->
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='readcount' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='readcount' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -63,8 +63,8 @@
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
 				tallflag:true,
 				tallflag:true,
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'待回复',val:1},{tit:'已回复',val:2},{tit:'已完成',val:2}]
+				tabval:'0',
+				tablist:[{tit:'全部',val:0},{tit:'待回复',val:1},{tit:'已回复',val:2},{tit:'已完成',val:2}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -82,9 +82,6 @@
 			getDetail(){
 			getDetail(){
 				this.$tab.navigateTo("/service/pages/service/complaintdetail")
 				this.$tab.navigateTo("/service/pages/service/complaintdetail")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 4 - 7
property_ui/manage/pages/community/readlist.vue

@@ -19,12 +19,12 @@
 				<view class="toptip">当前已读人数共 <text>274</text>人</view>
 				<view class="toptip">当前已读人数共 <text>274</text>人</view>
 			</view>
 			</view>
 			<!-- <view class="tabtop flexc">
 			<!-- <view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view> -->
 			</view> -->
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='readlist' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='readlist' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -49,8 +49,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'待回复',val:1},{tit:'已回复',val:2},{tit:'已完成',val:2}]
+				tabval:'0',
+				tablist:[{tit:'全部',val:0},{tit:'待回复',val:1},{tit:'已回复',val:2},{tit:'已完成',val:2}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -68,9 +68,6 @@
 			getDetail(){
 			getDetail(){
 				this.$tab.navigateTo("/service/pages/service/complaintdetail")
 				this.$tab.navigateTo("/service/pages/service/complaintdetail")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 36 - 22
property_ui/manage/pages/community/sqmoney.vue

@@ -14,10 +14,10 @@
 				</view>
 				</view>
 			</view>
 			</view>
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.id?'act':''" v-for="(ite,idx) in assetTree" :key="ite.id" @click="getTabFn(ite.id,idx)">{{ite.label}}</view>
 			</view>
 			</view>
 			<view class="tablst flexc">
 			<view class="tablst flexc">
-				<view class="tabs" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
+				<view class="tabs" :class="tabvala==ite.id?'act':''" v-for="(ite,idx) in tablist" :key="ite.id" @click="getTabFna(ite.id)">{{ite.label}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 左侧展示 -->
 		<!-- 左侧展示 -->
@@ -77,6 +77,7 @@
 	import noData from "@/manage/components/nodata/nodata.vue"
 	import noData from "@/manage/components/nodata/nodata.vue"
 	import carList from "@/manage/components/car/list.vue"
 	import carList from "@/manage/components/car/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {assetTypeList,assetTypeTree} from "@/api/work/manage.js"
 	export default{
 	export default{
 		components:{carList,zbTable,noData},
 		components:{carList,zbTable,noData},
 		data(){
 		data(){
@@ -91,13 +92,12 @@
 				tabscheight:0,//减去的部
 				tabscheight:0,//减去的部
 				sfxx:"",
 				sfxx:"",
 				text:'',
 				text:'',
-				jclxlist:[{dictLabel:'党员',dictValue:'0'}],
-				list:[{tit:'皖A IC520',num:1,code:true,yy:1},{tit:'晋E KD783',num:2,code:false,yy:2,},],
+				list:[],
 				pageSize: 10,
 				pageSize: 10,
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
+				
 				tabflag:true,
 				tabflag:true,
 				columns: [
 				columns: [
 					{ name: 'tit', label: '设备名称',fixed:true,width:160,align:'center',},
 					{ name: 'tit', label: '设备名称',fixed:true,width:160,align:'center',},
@@ -116,15 +116,17 @@
 				parameter:{
 				parameter:{
 					sflalist:[ {label: '正常',value:'1'},{label: '停用',value:'2'},]
 					sflalist:[ {label: '正常',value:'1'},{label: '停用',value:'2'},]
 				},
 				},
-				ttoplist:[{tit:'房屋',val:0},{tit:'设备',val:1},{tit:'车辆',val:2},{tit:'办公',val:0},{tit:'工具',val:1},{tit:'消防',val:2},{tit:'其他',val:0}],
 				tabval:'0',
 				tabval:'0',
-				tablist:[{tit:'电梯(32)',val:0},{tit:'门禁(18)',val:1},{tit:'供暖(14)',val:2},{tit:'空调(618)',val:2},{tit:'供暖(14)',val:2},],
+				tablist:[],
+				tabvala:'0',
+				tablist:[],
 				showRight: false,
 				showRight: false,
-				showLeft: false
+				showLeft: false,
+				assetTree:[],//资产类型树
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
-		
+			this.init()
 		},
 		},
 		// 上拉触底加载更多触发事件
 		// 上拉触底加载更多触发事件
 		onReachBottom() {
 		onReachBottom() {
@@ -142,6 +144,20 @@
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
 			confirm() {},
 			confirm() {},
+			init(){
+				assetTypeTree().then(res=>{
+					if(res.code==200){
+						this.assetTree=res.data;
+						if(res.data&&res.data.length){
+							this.tabval=res.data[0].id;
+							var children=JSON.parse(JSON.stringify(res.data[0].children))
+							this.tablist=children;
+							this.tabval=children[0].id;
+							this.getDataFn()
+						}
+					}
+				})
+			},
 			pullUpLoading(e){
 			pullUpLoading(e){
 				
 				
 			},
 			},
@@ -174,8 +190,12 @@
 			getAddFn(){
 			getAddFn(){
 				this.$tab.navigateTo("/manage/pages/community/sqmoneyadd")
 				this.$tab.navigateTo("/manage/pages/community/sqmoneyadd")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
+			getTabFn(val,idx){
+				var list=JSON.parse(JSON.stringify((this.assetTree)))
+				this.tabval=val;
+				var children=list[idx].children
+				this.tablist=children;
+				this.tabval=children[0].id;
 			},
 			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
@@ -191,23 +211,17 @@
 				this.reachflag=true;
 				this.reachflag=true;
 				this.getDataFn()
 				this.getDataFn()
 			},
 			},
-			getTabFn(val){
-				this.tabval=val
-			},
-			bindDateChangea(e){
-				var val=e.detail.value;
-				this.sfxx=this.jclxlist[val].dictLabel;
-				// this.orderFoodType=this.jclxlist[val].dictValue;
+			getTabFna(val){
+				this.tabvala=val
 			},
 			},
 			getDataFn(){
 			getDataFn(){
-				console.log(14)
-				return
 				var params={
 				var params={
 					pageSize:this.pageSize,
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
 					pageNum: this.pageNum,
 				}
 				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
+				params.assetId=this.tabval
+				params.parentId=this.tabval
+				assetTypeList(params).then(res=>{
 					if(res.code==200){
 					if(res.code==200){
 						if (res.rows.length < this.pageSize) {
 						if (res.rows.length < this.pageSize) {
 							this.reachflag = false
 							this.reachflag = false

+ 46 - 41
property_ui/manage/pages/community/sqmoneyadd.vue

@@ -5,31 +5,34 @@
 			<view class="cbox">
 			<view class="cbox">
 				<view class="chmain">
 				<view class="chmain">
 					<uni-forms-item label="资讯类型" name="phonenumber">
 					<uni-forms-item label="资讯类型" name="phonenumber">
-						<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+						<!-- <picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
 							<view class="flexc">
 							<view class="flexc">
 								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择资讯类型'}}</view>
 								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择资讯类型'}}</view>
 								<view class="rimg"><image :src="rimg"></image></view>
 								<view class="rimg"><image :src="rimg"></image></view>
 							</view>
 							</view>
-						</picker>
+						</picker> -->
+						<uni-data-picker :map="map" placeholder="请选择" popup-title="请选择" :localdata="assetTree" v-model="classes"
+							@change="onchange" @nodeclick="onnodeclick" @popupopened="onpopupopened" @popupclosed="onpopupclosed">
+						</uni-data-picker>
 					</uni-forms-item>
 					</uni-forms-item>
 				</view>
 				</view>
 			</view>
 			</view>
 			<view class="cbox" style="flex: 1;">
 			<view class="cbox" style="flex: 1;">
 				<view class="chmain">
 				<view class="chmain">
 					<uni-forms-item label-width='0' name="realName">
 					<uni-forms-item label-width='0' name="realName">
-						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName" disabled :inputBorder='false' placeholder="资产名称" />
+						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName"  :inputBorder='false' placeholder="资产名称" />
 					</uni-forms-item>
 					</uni-forms-item>
 					<uni-forms-item label-width='0' name="realName">
 					<uni-forms-item label-width='0' name="realName">
-						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName" disabled :inputBorder='false' placeholder="购买时间" />
+						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName"  :inputBorder='false' placeholder="购买时间" />
 					</uni-forms-item>
 					</uni-forms-item>
 					<uni-forms-item label-width='0' name="realName">
 					<uni-forms-item label-width='0' name="realName">
-						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName" disabled :inputBorder='false' placeholder="用途描述" />
+						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName"  :inputBorder='false' placeholder="用途描述" />
 					</uni-forms-item>
 					</uni-forms-item>
 					<uni-forms-item label-width='0' name="realName">
 					<uni-forms-item label-width='0' name="realName">
-						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName" disabled :inputBorder='false' placeholder="资产状态" />
+						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName"  :inputBorder='false' placeholder="资产状态" />
 					</uni-forms-item>
 					</uni-forms-item>
 					<uni-forms-item label-width='0' name="realName">
 					<uni-forms-item label-width='0' name="realName">
-						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName" disabled :inputBorder='false' placeholder="备注信息" />
+						<uni-easyinput type="textarea" autoHeight v-model="datainfo.realName"  :inputBorder='false' placeholder="备注信息" />
 					</uni-forms-item>
 					</uni-forms-item>
 					<view class="imgs">
 					<view class="imgs">
 						<view class="img" @click="getPreview">
 						<view class="img" @click="getPreview">
@@ -43,7 +46,7 @@
 					</view>
 					</view>
 				</view>
 				</view>
 			</view>
 			</view>
-			<view class="rfbtn">确定</view>
+			<view class="rfbtn" @click="getSubmit">确定</view>
 			<loading></loading>
 			<loading></loading>
 			</view>
 			</view>
 		</uni-forms>
 		</uni-forms>
@@ -55,6 +58,7 @@
 	import editorBox from "@/manage/components/editor/editor.vue"
 	import editorBox from "@/manage/components/editor/editor.vue"
 	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
 	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
 	import {uploadIdentify} from '@/utils/common.js'
 	import {uploadIdentify} from '@/utils/common.js'
+	import {assetTypeAdd,assetTypeTree} from "@/api/work/manage.js"
 	export default {
 	export default {
 		components: {editorBox},
 		components: {editorBox},
 		data() {
 		data() {
@@ -64,33 +68,47 @@
 				car:require('@/car/static/car/carico.png'),
 				car:require('@/car/static/car/carico.png'),
 				del:require('@/service/static/service/rdel.png'),
 				del:require('@/service/static/service/rdel.png'),
 				baseUrl: config.baseUrl,
 				baseUrl: config.baseUrl,
-				checkflag:true,
 				datainfo: {
 				datainfo: {
-					sex:0,
-					realName: '',
-					idCard: '',
-					address: '',
-					expirationDate: '',
-					phonenumber: '',
-					front: '',
-					back: '',
+					"parentId":"",//父资产类型id
+					"ancestors":"",//祖级列表
+					"assetName":"",//资产类型名称
+					"orderNum":"",//显示顺序
+					"status":"",//资产类型状态(0正常 1停用)
+					"delFlag":"",//删除标志(0代表存在 2代表删除)
+					"parentName":"",//父资产名称
+					"children":"",//子资产类型
 				},
 				},
-				syqxidx:'',
-				sexs: [{
-					text: '男',
-					value: 0
-				}, {
-					text: '女',
-					value: 1
-				}],
+				assetTree:[],
+				map:{text:'label',value:'id'},
+				phofile:[],
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
-
+			this.init()
 		},
 		},
 		methods: {
 		methods: {
 			checkPermi,
 			checkPermi,
 			checkRole,
 			checkRole,
+			init(){
+				assetTypeTree().then(res=>{
+					if(res.code==200){
+						this.assetTree=res.data;
+						// if(res.data&&res.data.length){
+						// 	this.tabval=res.data[0].id;
+						// 	var children=JSON.parse(JSON.stringify(res.data[0].children))
+						// 	this.tablist=children;
+						// 	this.tabval=children[0].id;
+						// 	this.getDataFn()
+						// }
+					}
+				})
+			},
+			onchange(e){
+				console.log(e)
+			},
+			getSubmit(){
+				
+			},
 			bindDateChange(e){
 			bindDateChange(e){
 				var val=e.detail.value;
 				var val=e.detail.value;
 				// this.datainfo.applicationBank=this.sdyhlist[val].value;
 				// this.datainfo.applicationBank=this.sdyhlist[val].value;
@@ -138,7 +156,6 @@
 				// return
 				// return
 				let file =[],count=9
 				let file =[],count=9
 				uni.chooseImage({
 				uni.chooseImage({
-					count: 1,
 					success:function(res){
 					success:function(res){
 						let img= res.tempFilePaths;
 						let img= res.tempFilePaths;
 						if(img.length + file.length > count){
 						if(img.length + file.length > count){
@@ -150,20 +167,8 @@
 						}else{
 						}else{
 							let imglen = res.tempFilePaths.length;
 							let imglen = res.tempFilePaths.length;
 							var fuwufile = [];
 							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)
-								}
+							uploadmore('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
+								that.phofile = that.phofile.concat(rs);
 							})	
 							})	
 						}
 						}
 					}
 					}

+ 1 - 7
property_ui/pages.json

@@ -41,13 +41,7 @@
       "navigationBarTitleText": "用户协议及隐私条款"
       "navigationBarTitleText": "用户协议及隐私条款"
     }
     }
   },
   },
-  
-  {
-    "path": "pages/work/index",
-    "style": {
-      "navigationBarTitleText": "工作台"
-    }
-  }, {
+   {
     "path": "pages/mine/index",
     "path": "pages/mine/index",
     "style": {
     "style": {
       "navigationBarTitleText": "我的",
       "navigationBarTitleText": "我的",

+ 6 - 4
property_ui/pages/index/index.vue

@@ -124,7 +124,7 @@
 						<view class="imgs"><image :src="htabc" class="imgc"></image></view>
 						<view class="imgs"><image :src="htabc" class="imgc"></image></view>
 						<view class="txt">外来车辆登记</view>
 						<view class="txt">外来车辆登记</view>
 					</view>
 					</view>
-					<view class="list bimga" @click="getillegalParkFn">
+					<view class="list bimga" @click="getillegalParkFn" v-if="checkPermi(['wuYe:illegalParking:list'])">
 						<view class="imgs"><image :src="htabd" class="imgd"></image></view>
 						<view class="imgs"><image :src="htabd" class="imgd"></image></view>
 						<view class="txt">违停管理</view>
 						<view class="txt">违停管理</view>
 					</view>
 					</view>
@@ -132,7 +132,7 @@
 						<view class="imgs"><image :src="htabe" class="imge"></image></view>
 						<view class="imgs"><image :src="htabe" class="imge"></image></view>
 						<view class="txt">人员管理</view>
 						<view class="txt">人员管理</view>
 					</view>
 					</view>
-					<view class="list bimga" @click="getComeglFn">
+					<view class="list bimga" @click="getComeglFn" v-if="checkPermi(['wuYe:visitorManage:list'])">
 						<view class="imgs"><image :src="htabf" class="imgf"></image></view>
 						<view class="imgs"><image :src="htabf" class="imgf"></image></view>
 						<view class="txt">来访管理</view>
 						<view class="txt">来访管理</view>
 					</view>
 					</view>
@@ -161,9 +161,9 @@
 						</view>
 						</view>
 						<view class="txt">物业报修</view>
 						<view class="txt">物业报修</view>
 					</view>
 					</view>
-					<view class="list bimga" @click="getStaffFn">
+					<view class="list bimga" @click="getStaffFn"  v-if="checkPermi(['wuYe:staffManage:list'])">
 						<view class="imgs"><image :src="htabk" class="imgb"></image></view>
 						<view class="imgs"><image :src="htabk" class="imgb"></image></view>
-						<view class="txt">维修人员管理</view>
+						<view class="txt">员管理</view>
 					</view>
 					</view>
 					<view class="list bimga" @click="getComplaintFn">
 					<view class="list bimga" @click="getComplaintFn">
 						<view class="imgs"><image :src="htabl" class="imga"></image><view class="tips">1</view></view>
 						<view class="imgs"><image :src="htabl" class="imga"></image><view class="tips">1</view></view>
@@ -204,6 +204,7 @@
 <script>
 <script>
 import footers from '@/components/footer/footer.vue'
 import footers from '@/components/footer/footer.vue'
 import notice from '@/components/swiper/notice.vue'
 import notice from '@/components/swiper/notice.vue'
+import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
   export default {
   export default {
 	components:{footers,notice},
 	components:{footers,notice},
 	data(){
 	data(){
@@ -261,6 +262,7 @@ import notice from '@/components/swiper/notice.vue'
 		})
 		})
     },
     },
 	methods:{
 	methods:{
+		checkPermi, checkRole,
 		getNoticeDet(){
 		getNoticeDet(){
 			
 			
 		},
 		},

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

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

+ 58 - 22
property_ui/people/components/car/list.vue

@@ -44,30 +44,30 @@
 		</block>
 		</block>
 		<!-- 维修人员管理 -->
 		<!-- 维修人员管理 -->
 		<view v-if="type=='staff'" class="flecw">
 		<view v-if="type=='staff'" class="flecw">
-			<view class="stafflist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail">
+			<view class="stafflist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail(ite.staffId)">
 				<view class="statop">
 				<view class="statop">
-					<image class="head" :src="man" v-if="ite.sex==0"></image>
+					<image class="head" :src="man" v-if="ite.gender==1"></image>
 					<image class="head" :src="woman" v-else></image>
 					<image class="head" :src="woman" v-else></image>
 					<view class="flex1">
 					<view class="flex1">
-						<view class="statit">张伟</view>
-						<view class="statxt flexc co06" v-if="ite.hzflag"><text class="cir bga"></text>空闲中</view>
-						<view class="statxt flexc cof6" v-else><text class="cir bgb"></text>指派中</view>
+						<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 cof6"><text class="cir bgb"></text>指派中</view> -->
 					</view>
 					</view>
-					<image :src="pdel" class="stadel"></image>
+					<image :src="pdel" class="stadel" @click.stop="getDelFn(ite.staffId)"></image>
 				</view>
 				</view>
 				<view class="stalist">
 				<view class="stalist">
-					<view class="imgs"><image :src="gzlx" class="gzlximg"></image></view>电梯维修
+					<view class="imgs"><image :src="gzlx" class="gzlximg"></image></view>{{kaType(ite.staffCategory,yglbList)}}
 					<view class="flex1"></view>
 					<view class="flex1"></view>
-					<view class="flexcc eyes" @click="getHideFn(idx)">
+					<view class="flexcc eyes" @click.stop="getHideFn(idx)">
 						<image :src="neye" class="neye" v-if="ite.hideflag"></image>
 						<image :src="neye" class="neye" v-if="ite.hideflag"></image>
 						<image :src="eye" class="eye" v-else></image>
 						<image :src="eye" class="eye" v-else></image>
 					</view>
 					</view>
 				</view>
 				</view>
 				<view class="stalist">
 				<view class="stalist">
-					<view class="imgs"><image :src="mphone" class="mphone"></image></view>158****0088
+					<view class="imgs"><image :src="mphone" class="mphone"></image></view>{{ite.hideflag?ite.phoneNumbera:ite.phoneNumber}}
 				</view>
 				</view>
 				<view class="stalist">
 				<view class="stalist">
-					<view class="imgs"><image :src="sfz" class="sfz"></image></view>341235********002X
+					<view class="imgs"><image :src="sfz" class="sfz"></image></view>{{ite.hideflag?ite.idCarda:ite.idCard}}
 				</view>
 				</view>
 			</view>
 			</view>
 		</view>
 		</view>
@@ -77,25 +77,24 @@
 				<view class="ctop flexc">
 				<view class="ctop flexc">
 					<image :src="hicoa" class="imgs"></image>
 					<image :src="hicoa" class="imgs"></image>
 					<!-- <image :src="hicob" class="imgs" v-if="ite.type==2"></image> -->
 					<!-- <image :src="hicob" class="imgs" v-if="ite.type==2"></image> -->
-					<view class="tit">幸福小区12#301</view>
-					<view class="btn btnbga">预约</view>
-					<view class="btn btnbgb">已来访</view>
-					<view class="btn btnbgc">待来访</view>
+					<view class="tit">{{ite.houseAddress}}</view>
+					<view class="btn" :class="{'btnbga':ite.status==1,'btnbgc':ite.status==2}">{{kaType(ite.status,visitorType)}}</view>
+					<!-- <view class="btn btnbgc">临时</view> -->
 					<view class="flex1"></view>
 					<view class="flex1"></view>
-					<view class="txt cc" v-if="ite.type==1">驾车</view>
+					<view class="txt cc" v-if="ite.isCar=='Y'">驾车</view>
 				</view>
 				</view>
 				<view class="clists">
 				<view class="clists">
-					<view class="clist"><view class="tit">预约时间</view>2024-11-25  10:00:00</view>
-					<view class="clist"><view class="tit">来访时间</view>2024-11-27 16:27:48</view>
+					<view class="clist"><view class="tit">预约时间</view>{{ite.reserveTime}}</view>
+					<view class="clist"><view class="tit">来访时间</view>{{ite.visitorTime}}</view>
 					<view class="w50 flexc">
 					<view class="w50 flexc">
-						<view class="clist"><view class="tit">访客姓名</view>刘女士</view>
-						<view class="clist"><view class="tit">来访人数</view>1人</view>
+						<view class="clist"><view class="tit">访客姓名</view>{{ite.name}}</view>
+						<view class="clist"><view class="tit">来访人数</view>{{ite.num}}人</view>
 					</view>
 					</view>
 					<view class="w50 flexc">
 					<view class="w50 flexc">
-						<view class="clist"><view class="tit">来访事由</view>亲友</view>
-						<view class="clist"><view class="tit">车牌号码</view>皖A 86KY2</view>
+						<view class="clist"><view class="tit">来访事由</view>{{ite.reason}}</view>
+						<view class="clist"><view class="tit">车牌号码</view>{{ite.plateNumber}}</view>
 					</view>
 					</view>
-					<view class="clist"><view class="tit">手机号码</view>13656788668</view>
+					<view class="clist"><view class="tit">手机号码</view>{{ite.mobileNumber}}</view>
 				</view>
 				</view>
 			</view>
 			</view>
 		</block>
 		</block>
@@ -113,6 +112,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
+	import {selectDictValue} from "@/utils/common.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import config from '@/config'
 	import config from '@/config'
 	export default{
 	export default{
@@ -135,6 +135,24 @@
 					return 0
 					return 0
 				}
 				}
 			},
 			},
+			visitorType:{
+				type:Array,
+				default () {
+					return []
+				}
+			},
+			yglbList:{//员工类别
+				type:Array,
+				default () {
+					return []
+				}
+			},
+			ygztList:{//员工状态
+				type:Array,
+				default () {
+					return []
+				}
+			},
 			topval:{
 			topval:{
 				type:String,
 				type:String,
 				default () {
 				default () {
@@ -175,6 +193,9 @@
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
+			kaType(data, list) {
+				return selectDictValue(list, data);
+			},
 			getDetail(e){
 			getDetail(e){
 				this.$emit('getDetail',e)
 				this.$emit('getDetail',e)
 			},
 			},
@@ -184,6 +205,21 @@
 			getReadlist(e){
 			getReadlist(e){
 				this.$emit('getReadlist',e)
 				this.$emit('getReadlist',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) {
+						}
+					}
+				});
+			},
 			getZhan(idx){
 			getZhan(idx){
 				// var obj=JSON.parse(JSON.stringify(this.datainfo))[idx]
 				// var obj=JSON.parse(JSON.stringify(this.datainfo))[idx]
 				// obj.zhanflag=!obj.zhanflag;
 				// obj.zhanflag=!obj.zhanflag;

+ 127 - 74
property_ui/people/pages/people/comeadd.vue

@@ -7,29 +7,29 @@
 					<view>访客信息</view>
 					<view>访客信息</view>
 				</view>
 				</view>
 				<view class="chmain">
 				<view class="chmain">
-					<uni-forms-item label="访客姓名" name="realName">
+					<uni-forms-item label="访客姓名" name="name">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.realName"  :inputBorder='false' placeholder="请输入访客姓名" />
+							<uni-easyinput v-model="datainfo.name"  :inputBorder='false' placeholder="请输入访客姓名" />
 							<uni-data-checkbox selectedColor="#0156FE" selectedTextColor="#272727" v-model="datainfo.sex" :localdata="sexs" />
 							<uni-data-checkbox selectedColor="#0156FE" selectedTextColor="#272727" v-model="datainfo.sex" :localdata="sexs" />
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					<uni-forms-item label="来访人数" name="phonenumber">
+					<uni-forms-item label="来访人数" name="num">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入来访人数" />
+							<uni-easyinput v-model="datainfo.num" type="Number" :inputBorder='false' placeholder="请输入来访人数" />
 							<view class="rimg"><image :src="rimg"></image></view>
 							<view class="rimg"><image :src="rimg"></image></view>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					<uni-forms-item label="来访事由" name="phonenumber">
+					<uni-forms-item label="来访事由" name="reason">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请选择或输入来访事由" />
+							<uni-easyinput v-model="datainfo.reason" :inputBorder='false' placeholder="请选择或输入来访事由" />
 							<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
 							<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
 								<view class="rimg"><image :src="rimg"></image></view>
 								<view class="rimg"><image :src="rimg"></image></view>
 							</picker>
 							</picker>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					<uni-forms-item label="来访门户" name="phonenumber">
+					<uni-forms-item label="来访门户" name="houseAddress">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入门户号" />
+							<uni-easyinput v-model="datainfo.houseAddress" :inputBorder='false' placeholder="请输入门户号" />
 							<view class="rimg"></view>
 							<view class="rimg"></view>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
@@ -46,25 +46,26 @@
 					<image :src="car" class="addimg"></image>
 					<image :src="car" class="addimg"></image>
 					<view>拍摄车辆照片自动识别</view>
 					<view>拍摄车辆照片自动识别</view>
 				</view> -->
 				</view> -->
-					<uni-forms-item label="是否驾车" name="realName">
-						<view class="flexc" @click="checkflag=!checkflag">
+					<uni-forms-item label="是否驾车" name="isCar">
+						<view class="flexc" @click="getChangeFn">
 							<view class="flex1"></view>
 							<view class="flex1"></view>
-							<image :src="check" v-if="checkflag" class="checkimg"></image>
+							<image :src="check" v-if="datainfo.isCar=='Y'" class="checkimg"></image>
 							<image :src="ncheck" v-else class="checkimg"></image>
 							<image :src="ncheck" v-else class="checkimg"></image>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					<uni-forms-item label="车牌号码" name="phonenumber">
+					<uni-forms-item label="车牌号码" name="plateNumber">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="拍照自动识别" />
+							<!-- disabled -->
+							<uni-easyinput v-model="datainfo.plateNumber" :inputBorder='false' placeholder="拍照自动识别" />
 							<view class="aphoto" @click="getaddImage">
 							<view class="aphoto" @click="getaddImage">
 								<image :src="aphoto"></image>
 								<image :src="aphoto"></image>
 							</view>
 							</view>
 							
 							
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					<uni-forms-item label="手机号码" name="phonenumber">
+					<uni-forms-item label="手机号码" name="mobileNumber">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入手机号码" />
+							<uni-easyinput v-model="datainfo.mobileNumber" :inputBorder='false' placeholder="请输入手机号码" />
 							<view class="rimg"></view>
 							<view class="rimg"></view>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
@@ -72,7 +73,7 @@
 			</view>
 			</view>
 		</uni-forms>
 		</uni-forms>
 		<view class="pdlr12 mt63">
 		<view class="pdlr12 mt63">
-			<view class="rhbtn" @click="getNext">确定添加</view>
+			<view class="rhbtn" @click="getSubmit">确定</view>
 		</view>
 		</view>
 
 
 		<loading></loading>
 		<loading></loading>
@@ -81,13 +82,9 @@
 
 
 <script>
 <script>
 	import config from '@/config'
 	import config from '@/config'
-	import {
-		checkPermi,
-		checkRole
-	} from "@/utils/permission"; // 权限判断函数
-	import {
-		uploadIdentify
-	} from '@/utils/common.js'
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {uploadIdentify,uploadmore} from '@/utils/common.js'
+	import {visitorAdd} from "@/api/work/people.js"
 	export default {
 	export default {
 		components: {},
 		components: {},
 		data() {
 		data() {
@@ -101,14 +98,19 @@
 				baseUrl: config.baseUrl,
 				baseUrl: config.baseUrl,
 				checkflag:true,
 				checkflag:true,
 				datainfo: {
 				datainfo: {
-					sex:0,
-					realName: '',
-					idCard: '',
-					address: '',
-					expirationDate: '',
-					phonenumber: '',
-					front: '',
-					back: '',
+					"visitorManageId":"",//来访主键
+					 "portalId":"",//门户id
+					 "houseAddress":"",//详细门牌号
+					 "name":"",//访客姓名
+					 "num":"",//来访人数
+					 "reason":"",//来访事由
+					 "mobileNumber":"",//手机号码
+					 "isCar":"N",//是否驾车 N:否 Y:是
+					 "plateNumber":"",//车牌号码
+					 "reserveTime":"",//预约时间
+					 "visitorTime":"",//来访时间
+					 "status":"",//状态 1:预约成功 2:已来访 3:已过期
+					 "photo":""//人脸信息
 				},
 				},
 				syqxidx:'',
 				syqxidx:'',
 				sexs: [{
 				sexs: [{
@@ -118,6 +120,7 @@
 					text: '女',
 					text: '女',
 					value: 1
 					value: 1
 				}],
 				}],
+				phofile:[],
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -131,22 +134,38 @@
 				// this.datainfo.applicationBank=this.sdyhlist[val].value;
 				// this.datainfo.applicationBank=this.sdyhlist[val].value;
 				// this.applicationBank=this.sdyhlist[val].label;
 				// this.applicationBank=this.sdyhlist[val].label;
 			},
 			},
+			getChangeFn(){
+				if(this.datainfo.isCar=='Y'){
+					this.datainfo.isCar='N'
+				}else{
+					this.datainfo.isCar='Y'
+				}
+			},
+			getSubmit(){
+				var params=JSON.parse(JSON.stringify(this.datainfo))
+				// 手机号验证
+				let regphone = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
+				if (params.mobileNumber && !regphone.test(params.mobileNumber)) {
+					this.$toast("请输入正确的手机号")
+					return
+				}
+				visitorAdd(params).then(res=>{
+					if(res.code==200){
+						this.$toast("新增成功")
+						setTimeout(function(){
+							uni.$emit("refComelist")
+							uni.navigateBack({
+								delta:1
+							})
+						},1500)
+					}
+				})
+			},
 			getaddImage(e) {
 			getaddImage(e) {
 				let that = this;
 				let that = this;
-				// var rs=['D:\\idcard.png']
-				// if(rs&&rs.length>0){
-				// 	var obj={
-				// 		type:e,
-				// 		// url:baseUrl+rs.join(',')
-				// 		url:rs.join(',')
-				// 	}
-				// 	that.getOcrIdCard(obj)
-				// }
-				// return
 				let file = [],
 				let file = [],
 					count = 9
 					count = 9
 				uni.chooseImage({
 				uni.chooseImage({
-					count: 1,
 					success: function(res) {
 					success: function(res) {
 						let img = res.tempFilePaths;
 						let img = res.tempFilePaths;
 						if (img.length + file.length > count) {
 						if (img.length + file.length > count) {
@@ -158,43 +177,77 @@
 						} else {
 						} else {
 							let imglen = res.tempFilePaths.length;
 							let imglen = res.tempFilePaths.length;
 							var fuwufile = [];
 							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)
-								}
+							uploadmore('/common/upload', img, 0, 0, 0, imglen, fuwufile, function(rs) {
+								that.phofile = that.phofile.concat(rs);
 							})
 							})
 						}
 						}
 					}
 					}
 				});
 				});
 			},
 			},
-			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
-						}
-					}
-				})
-			}
+			// getaddImage(e) {
+			// 	let that = this;
+			// 	// var rs=['D:\\idcard.png']
+			// 	// if(rs&&rs.length>0){
+			// 	// 	var obj={
+			// 	// 		type:e,
+			// 	// 		// url:baseUrl+rs.join(',')
+			// 	// 		url:rs.join(',')
+			// 	// 	}
+			// 	// 	that.getOcrIdCard(obj)
+			// 	// }
+			// 	// return
+			// 	let file = [],
+			// 		count = 9
+			// 	uni.chooseImage({
+			// 		count: 1,
+			// 		success: function(res) {
+			// 			let img = res.tempFilePaths;
+			// 			if (img.length + file.length > count) {
+			// 				uni.showToast({
+			// 					title: '最多上传' + count + '张图片',
+			// 					icon: 'none',
+			// 					duration: 2000
+			// 				})
+			// 			} else {
+			// 				let imglen = res.tempFilePaths.length;
+			// 				var fuwufile = [];
+			// 				uploadIdentify('/common/upload', img, 0, 0, 0, imglen, fuwufile, function(rs) {
+			// 					var resurl = rs[0];
+			// 					if (e == 'front') {
+			// 						that.datainfo.front = resurl.fileName;
+			// 					} else {
+			// 						that.datainfo.back = resurl.fileName;
+			// 					}
+			// 					if (rs && rs.length > 0) {
+			// 						var obj = {
+			// 							type: e,
+			// 							url: resurl.urlOnline
+			// 						}
+			// 						that.getOcrIdCard(obj)
+			// 					}
+			// 				})
+			// 			}
+			// 		}
+			// 	});
+			// },
+			// getOcrIdCard(obj) {
+			// 	var params = {
+			// 		image: obj.url,
+			// 		idCardSide: obj.type
+			// 	}
+			// 	getOcrIdCard(params).then(res => {
+			// 		if (res.code == 200) {
+			// 			var datainfo = res.data;
+			// 			if (obj.type == 'front') {
+			// 				this.datainfo.realName = datainfo.realName;
+			// 				this.datainfo.idCard = datainfo.idCard;
+			// 				this.datainfo.address = datainfo.address;
+			// 			} else {
+			// 				this.datainfo.expirationDate = datainfo.expirationDate
+			// 			}
+			// 		}
+			// 	})
+			// }
 		}
 		}
 	}
 	}
 </script>
 </script>

+ 55 - 18
property_ui/people/pages/people/comegl.vue

@@ -5,7 +5,7 @@
 				<image :src="reset" class="resetimg" @click="getReset"></image>
 				<image :src="reset" class="resetimg" @click="getReset"></image>
 				<picker mode="date"   @change='bindDateChangea'>
 				<picker mode="date"   @change='bindDateChangea'>
 					<view class="chekt flexc">
 					<view class="chekt flexc">
-						<view>{{cxrq|| "选择日期"}}</view>
+						<view>{{xzrq|| "选择日期"}}</view>
 						<image :src="up"></image>
 						<image :src="up"></image>
 					</view>
 					</view>
 				</picker>
 				</picker>
@@ -17,14 +17,17 @@
 				</view>
 				</view>
 			</view>
 			</view>
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='comepeo'></car-list>
+			<car-list :datainfo="list" :visitorType="visitorType" :wtdt="wtdt" type='comepeo'></car-list>
 		</view>
 		</view>
-		<view class="rfbtn" @click="getAddFn">添加访客</view>
+		<block v-if="checkPermi(['wuYe:visitorManage:add'])">
+			<view style="height: 100rpx;"></view>
+			<view class="rfbtn" @click="getAddFn">添加访客</view>
+		</block>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
 </template>
 </template>
@@ -34,6 +37,8 @@
 	const baseUrl = config.baseUrl
 	const baseUrl = config.baseUrl
 	import carList from "@/people/components/car/list.vue"
 	import carList from "@/people/components/car/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {getDictionaryFn} from "@/api/system/user.js"
+	import {visitorList} from "@/api/work/people.js"
 	export default{
 	export default{
 		components:{carList},
 		components:{carList},
 		data(){
 		data(){
@@ -41,19 +46,27 @@
 				reset:require('@/car/static/car/reset.png'),
 				reset:require('@/car/static/car/reset.png'),
 				search:require('@/car/static/car/search.png'),
 				search:require('@/car/static/car/search.png'),
 				up:require('@/car/static/car/up.png'),
 				up:require('@/car/static/car/up.png'),
-				cxrq:"",
+				xzrq:"",
 				text:'',
 				text:'',
-				list:[{tit:'皖A IC520',type:1},{tit:'晋E KD783',type:2},],
+				list:[],
 				pageSize: 10,
 				pageSize: 10,
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'预约来访',val:1},{tit:'已来访',val:2}]
+				tabval:'-1',
+				tablist:[{tit:'全部',val:-1}],
+				visitorType:[],//访客状态
 			}
 			}
 		},
 		},
+		onUnload() {
+			uni.$off('refComelist')
+		},
 		onLoad: function() {
 		onLoad: function() {
-		
+			uni.$on('refComelist',(res)=>{
+				this.getrefreshData()
+			})
+			this.init()
+			this.getDataFn()
 		},
 		},
 		// 上拉触底加载更多触发事件
 		// 上拉触底加载更多触发事件
 		onReachBottom() {
 		onReachBottom() {
@@ -64,17 +77,32 @@
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
+			init(){//car_type
+				// 预约状态
+				getDictionaryFn('visitor_status').then(res=>{
+					if(res.code==200){
+						this.visitorType = res.data.map(v => {
+							var obj={
+								tit: v.dictLabel,
+								val: v.dictValue
+							}
+							this.tablist.push(obj)
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
 			getAddFn(){
 			getAddFn(){
 				this.$tab.navigateTo("/people/pages/people/comeadd")
 				this.$tab.navigateTo("/people/pages/people/comeadd")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},
 			getReset(){
 			getReset(){
-				this.cxrq='';
+				this.xzrq='';
 				this.text='';
 				this.text='';
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},
@@ -85,19 +113,28 @@
 				this.getDataFn()
 				this.getDataFn()
 			},
 			},
 			getTabFn(val){
 			getTabFn(val){
-				this.tabval=val
+				this.tabval=val;
+				this.getrefreshData()
 			},
 			},
 			bindDateChangea(e){
 			bindDateChangea(e){
 				var val=e.detail.value;
 				var val=e.detail.value;
-				this.cxrq=val;
+				this.xzrq=val;
 			},
 			},
 			getDataFn(){
 			getDataFn(){
 				var params={
 				var params={
 					pageSize:this.pageSize,
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
 					pageNum: this.pageNum,
 				}
 				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
+				if(this.tabval!='-1'){
+					params.status=this.tabval
+				}
+				if(this.text){
+					params.houseAddress=this.tabval
+				}
+				if(this.xzrq){
+					params.reserveTime=this.xzrq
+				}
+				visitorList(params).then(res=>{
 					if(res.code==200){
 					if(res.code==200){
 						if (res.rows.length < this.pageSize) {
 						if (res.rows.length < this.pageSize) {
 							this.reachflag = false
 							this.reachflag = false
@@ -130,7 +167,7 @@
 	page{background: #F3F3F0;}
 	page{background: #F3F3F0;}
 </style>
 </style>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-.car{padding: 224rpx 0 110rpx;}
+.car{padding: 224rpx 0 10rpx;}
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
 	.topa{padding: 20rpx ;
 	.topa{padding: 20rpx ;
 		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}
 		.resetimg{width: 36rpx;height: 36rpx;margin-right: 24rpx;flex: 0 0 auto;}

+ 0 - 3
property_ui/people/pages/people/index.vue

@@ -65,9 +65,6 @@
 			// getNextFn(){
 			// getNextFn(){
 			// 	this.$tab.navigateTo("/work/pages/business/add")
 			// 	this.$tab.navigateTo("/work/pages/business/add")
 			// },
 			// },
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 89 - 18
property_ui/people/pages/people/staff.vue

@@ -3,7 +3,7 @@
 		<view class="cartop">
 		<view class="cartop">
 			<view class="topa flexc">
 			<view class="topa flexc">
 				<image :src="reset" class="resetimg" @click="getReset"></image>
 				<image :src="reset" class="resetimg" @click="getReset"></image>
-				<picker range-key='dictLabel' 	:range="jclxlist"    @change='bindDateChangea'>
+				<picker range-key='dictLabel' 	:range="yglbList"    @change='bindDateChangea'>
 					<view class="chekt flexc">
 					<view class="chekt flexc">
 						<view class="over">{{sfxx|| "选择身份"}}</view>
 						<view class="over">{{sfxx|| "选择身份"}}</view>
 						<image :src="up"></image>
 						<image :src="up"></image>
@@ -19,9 +19,13 @@
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :wtdt="wtdt" type='staff'></car-list>
+			<car-list :datainfo="list" :ygztList="ygztList" :yglbList="yglbList" :wtdt="wtdt" type='staff' @getDetail="getDetail" @getDelFn="getDelFn"></car-list>
 		</view>
 		</view>
-		<view class="rfbtn" @click="getAddFn">添加维修人员</view>
+		<block v-if="checkPermi(['wuYe:staffManage:add'])">
+			<view style="height: 100rpx;"></view>
+			<view class="rfbtn" @click="getAddFn">添加维修人员</view>
+		</block>
+		
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
 </template>
 </template>
@@ -31,6 +35,8 @@
 	const baseUrl = config.baseUrl
 	const baseUrl = config.baseUrl
 	import carList from "@/people/components/car/list.vue"
 	import carList from "@/people/components/car/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {staffList,staffDel} from "@/api/work/people.js"
+	import {getDictionaryFn} from "@/api/system/user.js"
 	export default{
 	export default{
 		components:{carList},
 		components:{carList},
 		data(){
 		data(){
@@ -42,17 +48,26 @@
 				carb:require('@/car/static/car/carb.png'),
 				carb:require('@/car/static/car/carb.png'),
 				search:require('@/car/static/car/search.png'),
 				search:require('@/car/static/car/search.png'),
 				sfxx:"",
 				sfxx:"",
+				sfxxid:'',
 				text:'',
 				text:'',
-				jclxlist:[{dictLabel:'党员',dictValue:'0'}],
-				list:[{tit:'皖A IC520',type:1,hzflag:true,sex:1},{tit:'晋E KD783',type:2,hzflag:false,sex:0,},],
+				yglbList:[],
+				ygztList:[],
+				list:[],
 				pageSize: 10,
 				pageSize: 10,
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
 			}
 			}
 		},
 		},
+		onUnload() {
+			uni.$off('refStaffList')
+		},
 		onLoad: function() {
 		onLoad: function() {
-		
+			uni.$on('refStaffList',(res)=>{
+				this.getrefreshData()
+			})
+			this.init();
+			this.getDataFn();
 		},
 		},
 		// 上拉触底加载更多触发事件
 		// 上拉触底加载更多触发事件
 		onReachBottom() {
 		onReachBottom() {
@@ -63,11 +78,35 @@
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
+			init(){
+				// 员工类别
+				getDictionaryFn('yaungong').then(res=>{
+					if(res.code==200){
+						this.yglbList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+				//状态
+				getDictionaryFn('technician_status').then(res=>{
+					if(res.code==200){
+						this.ygztList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
 			getAddFn(){
 			getAddFn(){
 				this.$tab.navigateTo("/people/pages/people/staffadd")
 				this.$tab.navigateTo("/people/pages/people/staffadd")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
+			getDetail(e){
+				this.$tab.navigateTo("/people/pages/people/staffadd?id="+e)
 			},
 			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
@@ -83,21 +122,24 @@
 				this.reachflag=true;
 				this.reachflag=true;
 				this.getDataFn()
 				this.getDataFn()
 			},
 			},
-			getTabFn(val){
-				this.tabval=val
-			},
 			bindDateChangea(e){
 			bindDateChangea(e){
 				var val=e.detail.value;
 				var val=e.detail.value;
-				this.sfxx=this.jclxlist[val].dictLabel;
-				// this.orderFoodType=this.jclxlist[val].dictValue;
+				this.sfxx=this.yglbList[val].dictLabel;
+				this.sfxxid=this.yglbList[val].dictValue;
+				this.getrefreshData()
 			},
 			},
 			getDataFn(){
 			getDataFn(){
 				var params={
 				var params={
 					pageSize:this.pageSize,
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
 					pageNum: this.pageNum,
 				}
 				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
+				if(this.text){
+					params.staffName=this.text
+				}
+				if(this.sfxx){
+					params.staffCategory=this.sfxxid
+				}
+				staffList(params).then(res=>{
 					if(res.code==200){
 					if(res.code==200){
 						if (res.rows.length < this.pageSize) {
 						if (res.rows.length < this.pageSize) {
 							this.reachflag = false
 							this.reachflag = false
@@ -112,16 +154,45 @@
 								this.wtdt = '到底了~';
 								this.wtdt = '到底了~';
 							}
 							}
 						}
 						}
+						var arr=JSON.parse(JSON.stringify((res.rows)))
+						arr.forEach(ite=>{
+							ite.hideflag=true;
+							if(ite.phoneNumber){
+								ite.phoneNumbera=this.HideType(ite.phoneNumber)
+							}
+							if(ite.idCard){
+								ite.idCarda=this.HideType(ite.idCard)
+							}
+						})
 						if (this.pageNum == 1) {
 						if (this.pageNum == 1) {
-							this.list = res.rows;
+							this.list = arr;
 						} else {
 						} else {
-							this.list = this.list.concat(res.rows)
+							this.list = this.list.concat(arr)
 						}
 						}
 					}else{
 					}else{
 						this.$toast(res.msg)
 						this.$toast(res.msg)
 					}
 					}
 				})
 				})
-				
+			},
+			getDelFn(data){
+				var that=this;
+				staffDel(data).then(res=>{
+					if(res.code==200){
+						this.$toast("删除成功");
+						setTimeout(function(){
+							that.getrefreshData()
+						},1500)
+					}
+				})
+			},
+			HideType(data,flag,type){
+				const firstPart = data.slice(0, 1);  
+				  // 生成中间8位的星号  
+				  const middlePart = '*'.repeat(data.length-2);  
+				  // 获取后4位  
+				  const lastPart = data.slice(data.length-1); 
+				  var s= firstPart + middlePart + lastPart;
+				  return s
 			},
 			},
 		}
 		}
 	}
 	}

+ 237 - 101
property_ui/people/pages/people/staffadd.vue

@@ -1,36 +1,57 @@
 <template>
 <template>
 	<view class="check">
 	<view class="check">
-		<uni-forms ref="form" :model="datainfo">
+		<uni-forms ref="form" :model="datainfo" :rules="rules">
 			<view class="cbox">
 			<view class="cbox">
 				<view class="chtop flexc">
 				<view class="chtop flexc">
 					<image :src="line"></image>
 					<image :src="line"></image>
-					<view>维修人员信息</view>
+					<view>员信息</view>
 				</view>
 				</view>
 				<view class="chmain">
 				<view class="chmain">
-					<uni-forms-item label="人员姓名" name="phonenumber">
+					<uni-forms-item label="人员姓名" name="staffName">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入人员姓名" />
+							<uni-easyinput v-model="datainfo.staffName" :inputBorder='false' placeholder="请输入人员姓名" />
 							<view class="rimg"><image :src="rimg"></image></view>
 							<view class="rimg"><image :src="rimg"></image></view>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					<uni-forms-item label="人员性别" name="realName">
+					<uni-forms-item label="人员性别" name="gender">
 						<view class="flexc">
 						<view class="flexc">
 							<view class="flex1"></view>
 							<view class="flex1"></view>
-							<uni-data-checkbox selectedColor="#0156FE" selectedTextColor="#272727" v-model="datainfo.sex" :localdata="sexs" />
+							<uni-data-checkbox selectedColor="#0156FE" :map="map" selectedTextColor="#272727" v-model="datainfo.gender" :localdata="ygxbList" />
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					
-					<uni-forms-item label="维修类别" name="phonenumber">
-						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请选择或输入维修类别" />
-							<picker range-key='text' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+					<uni-forms-item label="员工类别" name="staffCategory">
+						<!-- <view class="flexc">
+							<uni-easyinput v-model="yglb" :inputBorder='false' placeholder="请选择员工类别" />
+							<picker range-key='dictLabel' :value="yglbidx" :range="yglbList"   @change='bindDateChange'>
 								<view class="rimg"><image :src="rimg"></image></view>
 								<view class="rimg"><image :src="rimg"></image></view>
 							</picker>
 							</picker>
+						</view> -->
+						<picker range-key='dictLabel' :value="yglbidx" :range="yglbList"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13 co27" v-if="datainfo.staffCategory&&!yglb">{{statusFormats(datainfo.staffCategory,yglbList,'yglb')}}</view>
+								<view class="flex1 txr f13" v-else :class="yglb?'co27':'coa'">{{yglb||"请选择员工类别"}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="维修类别" name="maintenanceCategory">
+						<picker range-key='dictLabel' :value="vxlbidx" :range="vxlbList"   @change='bindDateChangea'>
+							<view class="flexc">
+								<view class="flex1 txr f13 co27" v-if="datainfo.maintenanceCategory&&!vxlb">{{statusFormats(datainfo.maintenanceCategory,vxlbList,'vxlb')}}</view>
+								<view class="flex1 txr f13" v-else :class="vxlb?'co27':'coa'">{{vxlb||"请选择维修类别"}}</view>
+								<view class="rimg"><image :src="rimg"></image></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="手机号码" name="phoneNumber">
+						<view class="flexc">
+							<uni-easyinput v-model="datainfo.phoneNumber" :inputBorder='false' placeholder="请输入手机号码" />
+							<view class="rimg"></view>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
-					<uni-forms-item label="手机号码" name="phonenumber">
+					<uni-forms-item label="身份证号" name="idCard">
 						<view class="flexc">
 						<view class="flexc">
-							<uni-easyinput v-model="datainfo.phonenumber" :inputBorder='false' placeholder="请输入手机号码" />
+							<uni-easyinput v-model="datainfo.idCard" :inputBorder='false' placeholder="请输入身份证号" />
 							<view class="rimg"></view>
 							<view class="rimg"></view>
 						</view>
 						</view>
 					</uni-forms-item>
 					</uni-forms-item>
@@ -38,7 +59,7 @@
 			</view>
 			</view>
 		</uni-forms>
 		</uni-forms>
 		<view class="pdlr12 mt55">
 		<view class="pdlr12 mt55">
-			<view class="rhbtn" @click="getNext">确定</view>
+			<view class="rhbtn" @click="getSubmit">确定</view>
 		</view>
 		</view>
 
 
 		<loading></loading>
 		<loading></loading>
@@ -47,13 +68,10 @@
 
 
 <script>
 <script>
 	import config from '@/config'
 	import config from '@/config'
-	import {
-		checkPermi,
-		checkRole
-	} from "@/utils/permission"; // 权限判断函数
-	import {
-		uploadIdentify
-	} from '@/utils/common.js'
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {staffAdd,staffPut,staffDet} from "@/api/work/people.js"
+	import {getDictionaryFn} from "@/api/system/user.js"
+	import {selectValueKey} from "@/utils/common.js"
 	export default {
 	export default {
 		components: {},
 		components: {},
 		data() {
 		data() {
@@ -67,100 +85,217 @@
 				baseUrl: config.baseUrl,
 				baseUrl: config.baseUrl,
 				checkflag:true,
 				checkflag:true,
 				datainfo: {
 				datainfo: {
-					sex:0,
-					realName: '',
-					idCard: '',
-					address: '',
-					expirationDate: '',
-					phonenumber: '',
-					front: '',
-					back: '',
+					// "staffId":"",//员工id员工id
+					// "userId":"",//员工账号id
+					"staffName":"",//员工姓名
+					"gender":"",//员工性别(1男 2女)
+					"staffCategory":"",//员工类别,1:保安 2:维修人员 3:物业管理
+					"maintenanceCategory":"",//维修分类
+					"phoneNumber":"",//手机号码
+					"avatarPhoto":"",//头像
+					"idCard":"",//身份证号码
+					"idCardFront":"",//身份证正面
+					"idCardBack":"",//身份证反面
+					"certificate":"",//相关证件
+					"status":"",//状态
 				},
 				},
-				syqxidx:'',
-				sexs: [{
-					text: '男',
-					value: 0
-				}, {
-					text: '女',
-					value: 1
-				}],
+				rules: {
+				  staffName: {rules: [{required: true,errorMessage: '请输入人员姓名' }]},
+				  gender: {rules: [{required: true,errorMessage: '请选择人员性别' }]},
+				  staffCategory: {rules: [{required: true,errorMessage: '请选择员工类别' }]},
+				  phoneNumber: {rules: [{required: true,errorMessage: '请输入手机号'}, {pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,errorMessage:'请输入正确的手机号码'}]},
+				},
+				yglb:'',
+				vxlb:'',
+				yglbidx:0,
+				vxlbidx:0,
+				ygxbList:[],
+				yglbList:[],
+				vxlbList:[],
+				map:{text:'dictLabel',value:'dictValue'},
+				id:'',
+				ptype:'add',
 			}
 			}
 		},
 		},
-		onLoad: function() {
-
+		onLoad: function(e) {
+			this.init()
+			if(e.id){
+				this.id=e.id;
+				this.ptype='edit';
+				this.getDetailFn()
+			}
 		},
 		},
 		methods: {
 		methods: {
 			checkPermi,
 			checkPermi,
 			checkRole,
 			checkRole,
+			statusFormats(data, list,type) {
+				var aite=selectValueKey(list, data);
+				if(type=='yglb'){
+					this.yglbidx=aite.key
+				}else if(type=='vxlb'){
+					this.vxlbidx=aite.key;
+				}
+				return aite.actions;
+			},
+			init(){
+				// 员工类别
+				getDictionaryFn('yaungong').then(res=>{
+					if(res.code==200){
+						this.yglbList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+				// 维修类别
+				getDictionaryFn('weixiutype').then(res=>{
+					if(res.code==200){
+						this.vxlbList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+				//性别
+				getDictionaryFn('gender').then(res=>{
+					if(res.code==200){
+						this.ygxbList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
 			bindDateChange(e){
 			bindDateChange(e){
 				var val=e.detail.value;
 				var val=e.detail.value;
-				// this.datainfo.applicationBank=this.sdyhlist[val].value;
-				// this.applicationBank=this.sdyhlist[val].label;
+				var vala=this.yglbList[val].dictValue;
+				if(vala!=this.datainfo.staffCategory){
+					this.datainfo.staffCategory=this.yglbList[val].dictValue;
+					this.yglb=this.yglbList[val].dictLabel;
+					this.datainfo.maintenanceCategory='';
+					this.vxlb='';
+					this.vxlbidx=0;
+				}
+				
+			},
+			bindDateChangea(e){
+				var val=e.detail.value;
+				this.datainfo.maintenanceCategory=this.vxlbList[val].dictValue;
+				this.vxlb=this.vxlbList[val].dictLabel;
 			},
 			},
-			getaddImage(e) {
-				let that = this;
-				// var rs=['D:\\idcard.png']
-				// if(rs&&rs.length>0){
-				// 	var obj={
-				// 		type:e,
-				// 		// url:baseUrl+rs.join(',')
-				// 		url:rs.join(',')
-				// 	}
-				// 	that.getOcrIdCard(obj)
-				// }
-				// return
-				let file = [],
-					count = 9
-				uni.chooseImage({
-					count: 1,
-					success: function(res) {
-						let img = res.tempFilePaths;
-						if (img.length + file.length > count) {
-							uni.showToast({
-								title: '最多上传' + count + '张图片',
-								icon: 'none',
-								duration: 2000
-							})
-						} else {
-							let imglen = res.tempFilePaths.length;
-							var fuwufile = [];
-							uploadIdentify('/common/upload', img, 0, 0, 0, imglen, fuwufile, function(rs) {
-								var resurl = rs[0];
-								if (e == 'front') {
-									that.datainfo.front = resurl.fileName;
-								} else {
-									that.datainfo.back = resurl.fileName;
-								}
-								if (rs && rs.length > 0) {
-									var obj = {
-										type: e,
-										url: resurl.urlOnline
-									}
-									that.getOcrIdCard(obj)
-								}
-							})
-						}
+			getSubmit(){
+				var that=this;
+				this.$refs.form.validate().then(res => {
+					var params=JSON.parse(JSON.stringify(this.datainfo))
+					// 手机号验证
+					let regphone = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
+					if (params.phoneNumber && !regphone.test(params.phoneNumber)) {
+						this.$toast("请输入正确的手机号")
+						return
 					}
 					}
-				});
+					let _IDRe18 =
+						/^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
+					let _IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
+					// 校验身份证:
+					if (params.idCard&&!_IDRe18.test(params.idCard) && !_IDre15.test(params.idCard)) {
+						this.$toast("请输入正确身份证号")
+						return
+					}
+					if(this.ptype=='add'){
+						staffAdd(params).then(res=>{
+							if(res.code==200){
+								this.$toast("新增成功")
+								setTimeout(function(){
+									uni.$emit("refStaffList")
+									uni.navigateBack({
+										delta:1
+									})
+								},1500)
+							}
+						})
+					}else{
+						staffPut(params).then(res=>{
+							if(res.code==200){
+								this.$toast("修改成功")
+								setTimeout(function(){
+									uni.$emit("refStaffList")
+									uni.navigateBack({
+										delta:1
+									})
+								},1500)
+							}
+						})
+					}
+					
+				})
 			},
 			},
-			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
-						}
+			getDetailFn(){
+				staffDet(this.id).then(res=>{
+					if(res.code==200){
+						this.datainfo=res.data;
 					}
 					}
 				})
 				})
-			}
+			},
+			// 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
+			// 			}
+			// 		}
+			// 	})
+			// }
 		}
 		}
 	}
 	}
 </script>
 </script>
@@ -168,6 +303,7 @@
 	page{background: #F3F3F0;}
 	page{background: #F3F3F0;}
 </style>
 </style>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
+.check /deep/ .uni-forms-item__error{left:auto;right: 0;margin-top: 10rpx;z-index: 1;}
 .check /deep/ .uni-forms-item{min-height: 106rpx;box-sizing: border-box;display: flex;align-items: center;margin-bottom: 0;border-bottom: 2rpx solid #E6E6E6;padding:10rpx 0;}
 .check /deep/ .uni-forms-item{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 .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-forms-item__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;}

+ 4 - 7
property_ui/service/pages/service/complaint.vue

@@ -16,12 +16,12 @@
 				</view>
 				</view>
 			</view> -->
 			</view> -->
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='complaint' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='complaint' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -46,8 +46,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'待回复',val:1},{tit:'已回复',val:2},{tit:'已完成',val:2}]
+				tabval:'0',
+				tablist:[{tit:'全部',val:0},{tit:'待回复',val:1},{tit:'已回复',val:2},{tit:'已完成',val:2}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -65,9 +65,6 @@
 			getDetail(){
 			getDetail(){
 				this.$tab.navigateTo("/service/pages/service/complaintdetail")
 				this.$tab.navigateTo("/service/pages/service/complaintdetail")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 1 - 4
property_ui/service/pages/service/patrolrecord.vue

@@ -14,7 +14,7 @@
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='patrol' @getDetail="getDetail" @getAddFn="getAddFn"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='patrol' @getDetail="getDetail" @getAddFn="getAddFn"></car-list>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -59,9 +59,6 @@
 			getAddFn(){
 			getAddFn(){
 				this.$tab.navigateTo("/service/pages/service/patroladd")
 				this.$tab.navigateTo("/service/pages/service/patroladd")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 4 - 7
property_ui/service/pages/service/warranty.vue

@@ -16,12 +16,12 @@
 				</view>
 				</view>
 			</view> -->
 			</view> -->
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='warranty' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='warranty' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<loading></loading>
 		<loading></loading>
 	</view>
 	</view>
@@ -46,8 +46,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'全部报修',val:0},{tit:'待分派',val:1},{tit:'处理中',val:2},{tit:'已完成',val:2}]
+				tabval:'0',
+				tablist:[{tit:'全部报修',val:0},{tit:'待分派',val:1},{tit:'处理中',val:2},{tit:'已完成',val:2}]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -65,9 +65,6 @@
 			getDetail(){
 			getDetail(){
 				this.$tab.navigateTo("/service/pages/service/warrantydetail")
 				this.$tab.navigateTo("/service/pages/service/warrantydetail")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
-			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
 			},
 			},

+ 64 - 1
property_ui/utils/common.js

@@ -1,3 +1,8 @@
+import config from '@/config'
+import { getToken } from '@/utils/auth'
+import errorCode from '@/utils/errorCode'
+let timeout = 10000
+const baseUrl = config.baseUrl
 /**
 /**
 * 显示消息提示框
 * 显示消息提示框
 * @param content 提示的标题
 * @param content 提示的标题
@@ -26,7 +31,65 @@ export function showConfirm(content) {
     })
     })
   })
   })
 }
 }
-
+// 字典值匹配
+export function selectDictValue(datas, value) {
+	var actions = [];
+	Object.keys(datas).some((key) => {
+		if (datas[key].dictValue == ('' + value)) {
+			actions.push(datas[key].dictLabel);
+			return true;
+		}
+	})
+	return actions.join('');
+}
+// export function selectDictLabel(datas, value) {
+// 	var actions = [];
+// 	Object.keys(datas).some((key) => {
+// 		if (datas[key].dictLabel == ('' + value)) {
+// 			actions.push(datas[key].dictValue);
+// 			return true;
+// 		}
+// 	})
+// 	return actions.join('');
+// }
+export function selectValueKey(datas, value) {
+	var actions = [];
+	var idx=0;
+	Object.keys(datas).some((key) => {
+		if (datas[key].dictValue == ('' + value)) {
+			idx=key;
+			actions.push(datas[key].dictLabel);
+			return true;
+		}
+	})
+	var newObj={
+		actions:actions.join(''),
+		key:idx
+	}
+	return newObj
+}
+// export function selectValue(datas, value) {
+// 	var actions = [];
+// 	var idx=0;
+// 	Object.keys(datas).some((key) => {
+// 		if (datas[key].value == ('' + value)) {
+// 			actions.push(datas[key].label);
+// 			return true;
+// 		}
+// 	})
+// 	return actions.join('')
+// }
+// export function selectValuetext(datas, value) {
+// 	var actions = [];
+// 	var idx=0;
+// 	Object.keys(datas).some((key) => {
+// 		if (datas[key].value == ('' + value)) {
+// 			actions.push(datas[key].text);
+// 			return true;
+// 		}
+// 	})
+// 	return actions.join('')
+// }
 /**
 /**
 * 参数处理
 * 参数处理
 * @param params 参数
 * @param params 参数

+ 1 - 1
property_ui/utils/request.js

@@ -32,7 +32,7 @@ const request = config => {
   // uni.showLoading({
   // uni.showLoading({
   // 	title:"加载中"
   // 	title:"加载中"
   // })
   // })
-  // vues.$loading(true)
+  vues.$loading(true)
   return new Promise((resolve, reject) => {
   return new Promise((resolve, reject) => {
     uni.request({
     uni.request({
         method: config.method || 'get',
         method: config.method || 'get',

+ 18 - 4
property_ui/work/components/car/list.vue

@@ -13,11 +13,13 @@
 					<view class="btn btnbgb">已来访</view>
 					<view class="btn btnbgb">已来访</view>
 					<view class="btn btnbgc">待来访</view> -->
 					<view class="btn btnbgc">待来访</view> -->
 					<view class="flex1"></view>
 					<view class="flex1"></view>
-					<view class="txt ca" v-if="ite.type==1">业主</view>
-					<view class="txt cb" v-if="ite.type==2">租</view>
+					<view class="txt ca" v-if="ite.type==1">自住</view>
+					<view class="txt cb" v-if="ite.type==2">租</view>
 				</view>
 				</view>
 				<view class="clists">
 				<view class="clists">
-					<view class="w50 flexc">
+					<view class="clist"><view class="tit">房屋坐落</view>袁玥</view>
+					<view class="clist"><view class="tit">建筑面积</view>121.3m²</view>
+					<!-- <view class="w50 flexc">
 						<view class="clist"><view class="tit">房屋所属</view>袁玥</view>
 						<view class="clist"><view class="tit">房屋所属</view>袁玥</view>
 						<view class="clist"><view class="tit">建筑面积</view>121.3m²</view>
 						<view class="clist"><view class="tit">建筑面积</view>121.3m²</view>
 					</view>
 					</view>
@@ -27,9 +29,14 @@
 					</view>
 					</view>
 					<view class="w50 flexc">
 					<view class="w50 flexc">
 						<view class="clist"><view class="tit">有无车位  </view>有</view>
 						<view class="clist"><view class="tit">有无车位  </view>有</view>
-					</view>
+					</view> -->
 					<!-- <view class="clist"><view class="tit">手机号码</view>13656788668</view> -->
 					<!-- <view class="clist"><view class="tit">手机号码</view>13656788668</view> -->
 				</view>
 				</view>
+				<view class="btns flexc">
+					<view class="bga">编辑信息</view>
+					<view class="bgb">居住信息</view>
+					<view class="bgc"> 车辆信息</view>
+				</view>
 			</view>
 			</view>
 		</block>
 		</block>
 		<!-- 物业费管理 -->
 		<!-- 物业费管理 -->
@@ -383,6 +390,13 @@ font-size: 26rpx;color: #272727;display: flex;line-height: 34rpx;
 .houselist{
 .houselist{
 	.clists{padding-bottom: 2rpx !important;}
 	.clists{padding-bottom: 2rpx !important;}
 	.clist{margin-bottom: 22rpx !important;}
 	.clist{margin-bottom: 22rpx !important;}
+	.btns{justify-content: flex-end;
+		view{min-width: 156rpx;font-weight: 500;font-size: 26rpx;margin-right: 24rpx;border-radius: 20rpx;padding: 6rpx 8rpx;box-sizing: border-box;text-align: center;margin-bottom: 26rpx;
+			&.bga{border: 2rpx solid #FE5A0E;background: #FFF8F5;color: #FE5A0E;}
+			&.bgb{border: 2rpx solid #0256FD;background: #F1F5FC;color: #0256FD;}
+			&.bgc{border: 2rpx solid #06C770;background: #EEF8F4;color: #06C770;}
+		}
+	}
 }
 }
 // 巡更地点
 // 巡更地点
 .patlist{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;padding: 0 24rpx 30rpx;
 .patlist{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;padding: 0 24rpx 30rpx;

+ 36 - 12
property_ui/work/pages/manage/house.vue

@@ -17,12 +17,12 @@
 				</view>
 				</view>
 			</view>
 			</view>
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='comehouse'></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='comehouse'></car-list>
 		</view>
 		</view>
 		<view class="cdbtns">
 		<view class="cdbtns">
 			<view class="btna" @click="getAddFn">单个添加</view>
 			<view class="btna" @click="getAddFn">单个添加</view>
@@ -36,6 +36,8 @@
 	import config from '@/config'
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	const baseUrl = config.baseUrl
 	import carList from "@/work/components/car/list.vue"
 	import carList from "@/work/components/car/list.vue"
+	import {houseInfoList} from "@/api/work/work.js"
+	import {getDictionaryFn} from "@/api/system/user.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 	export default{
 		components:{carList},
 		components:{carList},
@@ -51,12 +53,20 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'业主',val:1},{tit:'租户',val:2}]
+				tabval:'',
+				tablist:[{tit:"全部",val:'-1'},],
+				fwztList:[],
 			}
 			}
 		},
 		},
+		onUnload() {
+			uni.$off('refHouseList')
+		},
 		onLoad: function() {
 		onLoad: function() {
-		
+			uni.$on('refHouseList',(res)=>{
+				this.getrefreshData()
+			})
+			this.int()
+			this.getDataFn();
 		},
 		},
 		// 上拉触底加载更多触发事件
 		// 上拉触底加载更多触发事件
 		onReachBottom() {
 		onReachBottom() {
@@ -67,11 +77,29 @@
 		},
 		},
 		methods:{
 		methods:{
 			checkPermi, checkRole,
 			checkPermi, checkRole,
+			init(){
+				// 房屋状态
+				getDictionaryFn('house_status').then(res=>{
+					if(res.code==200){
+						this.fwztList = res.data.map(v => {
+							var obj={
+								tit: v.dictLabel,
+								val: v.dictValue
+							}
+							this.tablist.push(obj)
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
 			getAddFn(){
 			getAddFn(){
 				this.$tab.navigateTo("/work/pages/manage/houseadd")
 				this.$tab.navigateTo("/work/pages/manage/houseadd")
 			},
 			},
-			getTabtop(val){
-				this.ttopval=val
+			getTabFn(val){
+				this.tabval=val
 			},
 			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()
@@ -87,9 +115,6 @@
 				this.reachflag=true;
 				this.reachflag=true;
 				this.getDataFn()
 				this.getDataFn()
 			},
 			},
-			getTabFn(val){
-				this.tabval=val
-			},
 			bindDateChangea(e){
 			bindDateChangea(e){
 				var val=e.detail.value;
 				var val=e.detail.value;
 				this.cxrq=val;
 				this.cxrq=val;
@@ -99,8 +124,7 @@
 					pageSize:this.pageSize,
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
 					pageNum: this.pageNum,
 				}
 				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
+				houseInfoList(params).then(res=>{
 					if(res.code==200){
 					if(res.code==200){
 						if (res.rows.length < this.pageSize) {
 						if (res.rows.length < this.pageSize) {
 							this.reachflag = false
 							this.reachflag = false

+ 4 - 7
property_ui/work/pages/manage/money.vue

@@ -44,12 +44,12 @@
 				</view>
 				</view>
 			</view>
 			</view>
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='money' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='money' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<view class="rfbtn" @click="getAddFn">一键催缴</view>
 		<view class="rfbtn" @click="getAddFn">一键催缴</view>
 		<loading></loading>
 		<loading></loading>
@@ -76,8 +76,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'未缴费',val:0},{tit:'已缴费',val:1},]
+				tabval:'0',
+				tablist:[{tit:'未缴费',val:0},{tit:'已缴费',val:1},]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -97,9 +97,6 @@
 			},
 			},
 			getAddFn(){
 			getAddFn(){
 				
 				
-			},
-			getTabtop(val){
-				this.ttopval=val
 			},
 			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()

+ 4 - 7
property_ui/work/pages/manage/moneybill.vue

@@ -16,12 +16,12 @@
 				</view>
 				</view>
 			</view> -->
 			</view> -->
 			<view class="tabtop flexc">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="ttopval==ite.val?'act':''" v-for="(ite,idx) in ttoplist" :key="idx" @click="getTabtop(ite.val)">{{ite.tit}}</view>
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
 			</view>
 		</view>
 		</view>
 		<!-- 列表 -->
 		<!-- 列表 -->
 		<view class="carlists">
 		<view class="carlists">
-			<car-list :datainfo="list" :topval="ttopval" :wtdt="wtdt" type='moneybill' @getDetail="getDetail"></car-list>
+			<car-list :datainfo="list" :topval="tabval" :wtdt="wtdt" type='moneybill' @getDetail="getDetail"></car-list>
 		</view>
 		</view>
 		<view class="rfbtn" @click="getAddFn">催缴</view>
 		<view class="rfbtn" @click="getAddFn">催缴</view>
 		<loading></loading>
 		<loading></loading>
@@ -47,8 +47,8 @@
 				pageNum: 1,
 				pageNum: 1,
 				reachflag: true,
 				reachflag: true,
 				wtdt:'',
 				wtdt:'',
-				ttopval:'0',
-				ttoplist:[{tit:'全部',val:0},{tit:'未缴费',val:1},{tit:'已缴费',val:2},]
+				tabval:'0',
+				tablist:[{tit:'全部',val:0},{tit:'未缴费',val:1},{tit:'已缴费',val:2},]
 			}
 			}
 		},
 		},
 		onLoad: function() {
 		onLoad: function() {
@@ -68,9 +68,6 @@
 			},
 			},
 			getAddFn(){
 			getAddFn(){
 				
 				
-			},
-			getTabtop(val){
-				this.ttopval=val
 			},
 			},
 			getConfirm(){
 			getConfirm(){
 				this.getrefreshData()
 				this.getrefreshData()