소스 검색

样式修改

zouling 2 달 전
부모
커밋
5194f54f21
37개의 변경된 파일1290개의 추가작업 그리고 206개의 파일을 삭제
  1. 3 0
      user_ui/1.txt
  2. 41 11
      user_ui/components/box/popup.vue
  3. 3 2
      user_ui/config.js
  4. 7 2
      user_ui/manifest.json
  5. 50 0
      user_ui/mine/components/box/list.vue
  6. 1 1
      user_ui/mine/pages/avatar/index.vue
  7. 177 132
      user_ui/mine/pages/house/addhouse.vue
  8. 122 0
      user_ui/mine/pages/house/house.vue
  9. 424 0
      user_ui/mine/pages/house/housedetail.vue
  10. 19 0
      user_ui/mine/pages/house/index.vue
  11. BIN
      user_ui/mine/static/house/hedit.png
  12. BIN
      user_ui/mine/static/house/sha.png
  13. BIN
      user_ui/mine/static/house/shb.png
  14. 19 11
      user_ui/news/pages/complaint/add.vue
  15. 1 1
      user_ui/news/pages/news/detail.vue
  16. 31 8
      user_ui/pages.json
  17. 112 0
      user_ui/pages/down.vue
  18. 11 3
      user_ui/pages/index/index.vue
  19. BIN
      user_ui/static/images/down/abg.png
  20. BIN
      user_ui/static/images/down/bg.png
  21. BIN
      user_ui/static/images/down/boxbg.png
  22. BIN
      user_ui/static/images/down/line.png
  23. BIN
      user_ui/static/images/down/top.png
  24. BIN
      user_ui/static/images/down/topa.png
  25. BIN
      user_ui/static/images/down/user.png
  26. BIN
      user_ui/static/images/down/usera.png
  27. BIN
      user_ui/static/images/profile.jpg
  28. BIN
      user_ui/static/images/tiptit.png
  29. 3 0
      user_ui/static/style.css
  30. 1 1
      user_ui/store/modules/user.js
  31. 10 7
      user_ui/utils/request.js
  32. 138 4
      user_ui/work/components/box/list.vue
  33. 6 4
      user_ui/work/pages/service/warranty.vue
  34. 16 8
      user_ui/work/pages/service/warrantyadd.vue
  35. 95 11
      user_ui/work/pages/visitor/vadd.vue
  36. BIN
      user_ui/work/static/manage/add.png
  37. BIN
      user_ui/work/static/manage/up.png

+ 3 - 0
user_ui/1.txt

@@ -6,9 +6,12 @@
 
 MD5: 43:45:A4:46:EE:C4:B9:9A:BF:D0:B2:B2:9E:EE:79:02
 SHA1: BC:CC:2F:16:32:84:D8:EE:F7:2A:8C:26:F2:11:8E:FA:EE:16:9B:16
+SHA256: F4:58:11:98:98:71:FA:DA:74:5A:C7:1C:AD:3B:3D:D6:88:D1:E9:09:76:5C:53:95:37:B5:75:F6:C5:A5:E5:70
 
 高德key:f55857365884963baed205a0974d6e96
 
+签名信息:4345a446eec4b99abfd0b2b29eee7902
+
 极光appkey:
 百度语音
 

+ 41 - 11
user_ui/components/box/popup.vue

@@ -7,7 +7,7 @@
 				<image :src="wytit" class="imga"></image>
 				<image :src="head" class="imgb"></image>
 			</view>
-			<view class="wylist flexc" v-for="(ite,idx) in phoneList" :key="idx">
+			<view class="wylist flexc" v-for="(ite,idx) in phoneList" :key="idx" @click="getPhone(ite.content)">
 				<image :src="ite.title.indexOf('投诉')!=-1?phicob:phicoa"></image>
 				<view>
 					<view class="co6 mb4">{{ite.title}}</view>
@@ -16,6 +16,19 @@
 			</view>
 			<image :src="closeimg" class="closeimg" @click="getClose"></image>
 		</view>
+		<!-- 信息弹窗 -->
+		<view class="bgbox" style="z-index: 100;" v-if="initFace=='Y'"></view>
+		<view class="fixedbox" style="z-index: 101;" v-if="initFace=='Y'">
+			<image :src="tiptit" class="imga"></image>
+			<view  class="boxs">
+				<view class="ztit">您的信息暂未完善,请前去完善</view>
+				<view class="ztit">解锁更多内容</view>
+			</view>
+			<view class="fixedbtn flexcj">
+				<view class="btns btn2 flex1" @click="getXxwsFn">去完善</view>
+			</view>
+			<image :src="closeimg" class="closeimg" @click="getClose"></image>
+		</view>
 	</view>
 </template>
 
@@ -33,16 +46,10 @@
 					return ''
 				}
 			},
-			canres:{
-				type: Array,
-				default () {
-					return []
-				}
-			},
-			finshtype:{
+			initFace:{
 				type: [String,Number],
 				default () {
-					return ''
+					return 'N'
 				}
 			},
 			phoneList:{
@@ -60,6 +67,7 @@
 				phicoa:require("@/static/images/phicoa.png"),
 				phicob:require("@/static/images/phicob.png"),
 				wytit:require("@/static/images/wytit.png"),
+				tiptit:require("@/static/images/tiptit.png"),
 				// rimg: require('@/work/static/people/rimg.png'),
 				// headbg: require('@/work/static/service/headbg.png'),
 				datainfo:{
@@ -88,8 +96,14 @@
 			getSure(){
 				this.$emit('getSure')
 			},
-			
-			
+			getXxwsFn(){
+				this.$emit('getXxwsFn')
+			},
+			getPhone(phone){
+				uni.makePhoneCall({
+					phoneNumber: phone //仅为示例
+				});
+			}
 		}
 	}
 </script>
@@ -106,4 +120,20 @@
 	}
 }
 .closeimg{width: 34rpx;height: 34rpx;position: absolute;bottom: -52rpx;left: 50%;margin-left: -16rpx;}
+.fixedbox{position: fixed;left: 160rpx;right: 160rpx;background: #fff;border-radius: 20rpx;top: 50%;transform: translateY(-50%);z-index: 10;padding: 32rpx 28rpx 40rpx;box-sizing: border-box;background: linear-gradient(0deg, #FFFFFF, #FEF6E1);
+	.imga{width: 230rpx;height: 70rpx;display: block;margin: 0 auto 36rpx;}
+	.boxs{
+		.ztit{font-weight: 500;font-size: 26rpx;color: #343434;text-align: center;line-height: 48rpx;text-align: center;
+		}
+}
+	.fixedbtn{margin: 36rpx 2rpx 0;
+		.btns{width: 192rpx;height: 70rpx;border-radius: 36rpx;font-weight: bold;
+font-size: 26rpx;display: flex;align-items: center;justify-content: center;box-sizing: border-box;
+			&.btn1{color: #00A9F0;border: 2rpx solid #00A9F0;margin-right: 24rpx;}
+			&.btn2{background: #FFF5EC;color: #F7801F;border: 2rpx solid #F7801F;}
+		}
+		
+	}
+	.closeimg{bottom: -58rpx;}
+}
 </style>

+ 3 - 2
user_ui/config.js

@@ -1,8 +1,9 @@
 // 应用全局配置
 module.exports = {
   // baseUrl: 'https://zhsq.qs163.cn/prod-api',
+  // baseUrl: 'https://zhsqhf.qs163.cn/prod-api',
   baseUrl: 'http://47.99.82.249:5011/prod-api',
-  // baseUrl: 'http://192.168.101.245:8065',
+  // baseUrl: 'http://192.168.101.245:8074',
   // baseUrl: 'http://192.168.101.168:8065',
   // baseUrl: 'http://10.90.90.52:8065',
   // baseUrl: 'http://10.90.90.53:8065',
@@ -11,7 +12,7 @@ module.exports = {
   // 应用信息
   appInfo: {
     // 应用名称
-    name: "ruoyi-app",
+    name: "智慧社区",
     // 应用版本
     version: "1.1.0",
     // 应用logo

+ 7 - 2
user_ui/manifest.json

@@ -20,7 +20,9 @@
         "modules" : {
             "Maps" : {},
             "Speech" : {},
-            "Share" : {}
+            "Share" : {},
+            "Camera" : {},
+            "OAuth" : {}
         },
         "distribute" : {
             "android" : {
@@ -65,6 +67,9 @@
                         "apikey" : "MuVtMTc6EHaLbrr38WEhqjml",
                         "secretkey" : "rPGCiA3L41VwuTCBHkwkmcOt0IPTsi8z"
                     }
+                },
+                "oauth" : {
+                    "univerify" : {}
                 }
             },
             "icons" : {
@@ -101,7 +106,7 @@
             "port" : 9090,
             "https" : false
         },
-        "title" : "RuoYi-App",
+        "title" : "智慧社区",
         "router" : {
             "mode" : "history",
             "base" : ""

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

@@ -95,6 +95,39 @@
 				</view>
 			</view>
 		</block>
+		<!-- 房屋管理 -->
+		<block v-if="type=='comehouse'">
+			<view class="carlist houselist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail(ite.houseId)">
+				<view class="ctop flexc">
+					<image :src="house" class="imgs" v-if="ite.houseStatus==1"></image>
+					<image :src="housea" class="imgs" v-if="ite.houseStatus==4"></image>
+					<image :src="houseb" class="imgs" v-if="ite.houseStatus==2"></image>
+					<image :src="housec" class="imgs" v-if="ite.houseStatus==3"></image>
+					<view class="tit">{{ite.communityName}}{{ite.detailedAddress}}</view>
+					<!-- view class="btn btnbga">预约</view>
+					<view class="btn btnbgb">已来访</view>
+					<view class="btn btnbgc">待来访</view> -->
+					<image :src="hedit" class="hedit"></image>
+					<view class="flex1"></view>
+					<view class="txt ca" v-if="ite.houseStatus==1">自住</view>
+					<view class="txt cb" v-if="ite.houseStatus==4">出租</view>
+					<view class="txt cc" v-if="ite.houseStatus==2">空闲</view>
+					<view class="txt co6" v-if="ite.houseStatus==3">代售</view>
+				</view>
+				<view class="clists">
+					<view class="clist"><view class="tit">房屋坐落</view>{{ite.location}}</view>
+					<view class="flexc">
+						<view class="clist w50"><view class="tit">房屋所属</view>{{ite.ownerName}}</view>
+						<view class="clist w50"><view class="tit">建筑面积</view>{{ite.area}}m²</view>
+					</view>
+					<view class="flexc">
+						<view class="clist w50"><view class="tit">有无车位</view>{{ite.hasParkingSpace=='Y'?'有':'无'}}</view>
+					</view>
+					<image :src="sha" class="shimg"></image>
+					<!-- <image :src="shb" class="shimg"></image> -->
+				</view>
+			</view>
+		</block>
 		<!-- 人员管理 -->
 		<block v-if="type=='people'">
 			<view class="carlist peolist" v-for="(ite,idx) in datainfo" :key="idx">
@@ -354,6 +387,9 @@
 				carb:require("@/mine/static/house/carb.png"),
 				caraa:require("@/mine/static/house/caraa.png"),
 				carbb:require("@/mine/static/house/carbb.png"),
+				hedit:require("@/mine/static/house/hedit.png"),
+				sha:require("@/mine/static/house/sha.png"),
+				shb:require("@/mine/static/house/shb.png"),
 				edit:require("@/mine/static/edit.png"),
 				cira:require('@/news/static/complaint/cira.png'),
 				cirb:require('@/news/static/complaint/cirb.png'),
@@ -665,6 +701,20 @@ border-radius: 10rpx;}
 		&.act{transform: rotate(0deg);}
 	}
 }
+// 房屋管理
+.houselist{position: relative;
+	.clists{padding-bottom: 2rpx !important;}
+	.clist{margin-bottom: 22rpx !important;}
+	.hedit{width: 22rpx;height: 22rpx;flex: 0 0 auto;marign-left:16rpx;}
+	.shimg{width: 117rpx;height: 78rpx;position: absolute;right: 26rpx;bottom: 20rpx;}
+	// .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;}
+	// 	}
+	// }
+}
 // 互动
 .pd12{padding: 24rpx;}
 .hdlist{background: #FFFFFF;border-radius: 20rpx;position: relative;z-index: 1;

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

@@ -68,7 +68,7 @@
 		 */
 		data() {
 			return {
-				imageSrc: store.getters.avatar?config.baseUrl+store.getters.avatar:require('@/static/images/profile.jpg'),
+				imageSrc: store.getters.avatar?config.baseUrl+store.getters.avatar:require('@/static/images/mine/profile.png'),
 				isShowImg: false,
 				// 初始化的宽高
 				cropperInitW: SCREEN_WIDTH,

+ 177 - 132
user_ui/mine/pages/house/addhouse.vue

@@ -1,115 +1,46 @@
 <template>
 	<view class="check">
-		<view class="cbox">
-			<view class="chtop flexc">
-				<view class="line"></view>
-				<view>房屋信息</view>
+		<view class="cartop">
+			<view class="tabtop flexc">
+				<view class="tabt" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.val)">{{ite.tit}}</view>
 			</view>
-			<view class="chmain">
-				<uni-forms ref="form" :model="datainfo" :rules="rules">
-				<view class="upbox" @click="getaddImage">
-					<image :src="baseUrl+datainfo.front" class="img" v-if="datainfo.front"></image>
-					<image :src="cmico" class="addimg"></image>
-					<view>扫描房产证自动填写</view>
-				</view>
-				  <uni-forms-item label="房屋坐落" required name="location">
-					  <view class="flexc">
-					  	<uni-easyinput :disabled="isdisabled" v-model="datainfo.location" :inputBorder='false' placeholder="自动识别" />
-					  	<view class="rimg"></view>
-					  </view>
-				  </uni-forms-item>
-					<uni-forms-item label="权利人姓名" name="ownerName">
+		</view>
+		<view style="width: 100%;">
+		<uni-forms ref="form"  :model="datainfo" :rules="rules">
+			<view class="cbox" >
+				<view class="chmain" v-if="tabval==1">
+					<uni-forms-item label="姓名" name="ownerName">
 						<view class="flexc">
 							<uni-easyinput :disabled="isdisabled" v-model="datainfo.ownerName" :inputBorder='false' placeholder="自动识别" />
 							<view class="rimg"></view>
 						</view>
 					</uni-forms-item>
-					<uni-forms-item label="权利类型" name="rightType">
-						<picker range-key='dictLabel' :disabled="isdisabled" :value="qllxidx" :range="qllxList"   @change='bindDateChange'>
+					<uni-forms-item label="住户类型" name="realName">
+						<picker range-key='dictLabel' :disabled="isdisabled" :value="syqxidx" :range="sexs"   @change='bindDateChange'>
 							<view class="flexc">
-								<view class="flex1 txr f13 co27" v-if="datainfo.rightType&&!qllx">{{statusFormats(datainfo.rightType,qllxList,'qllx')}}</view>
-								<view class="flex1 txr f13" v-else :class="qllx?'co27':'coa'">{{qllx||"请选择权利类型"}}</view>
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择住户类型'}}</view>
 								<view class="rimg"><image :src="rimg"></image></view>
 							</view>
 						</picker>
 					</uni-forms-item>
-					<uni-forms-item label="建筑面积" required name="area">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.area" :inputBorder='false' placeholder="自动识别" />
-							<view class="tips">m²</view>
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="不动产单元号" name="propertyUnitNumber">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.propertyUnitNumber" :inputBorder='false' placeholder="请输入不动产单元号" />
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="相关的字第号" name="documentNumber">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.documentNumber" :inputBorder='false' placeholder="请输入相关的字第号" />
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="小区名称" name="communityName">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.communityName" :inputBorder='false' placeholder="请输入小区名称" />
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="门牌号" required name="detailedAddress">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.detailedAddress" :inputBorder='false' placeholder="请输入门牌号" />
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="使用期限" name="usagePeriod">
+					<uni-forms-item label="是否户主"  name="phonenumber">
 						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.usagePeriod" :inputBorder='false' placeholder="请输入使用期限" />
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="登记日期" name="registrationDate">
-						<!-- <picker mode="timed" :disabled="isdisabled"  @change='bindDateChangea'>
-							<view class="flexc">
-								<view class="flex1 txr f13"  :class="datainfo.registrationDate?'co27':'coa'">{{datainfo.registrationDate||"请选择登记日期"}}</view>
-								<view class="rimg"><image :src="rimg"></image></view>
-							</view>
-						</picker> -->
-						<!-- :hide-second='true' -->
-						<view class="flexc">
-							<uni-datetime-picker  :disabled="isdisabled" :class="datainfo.registrationDate?'co27':'coa'" type="datetime" placeholder="请选择登记日期" :border="false"  v-model="datainfo.registrationDate" @change="changeLog" />
-							<view class="rimg"><image :src="rimg"></image></view>
-						</view>
-					</uni-forms-item>
-					
-					<uni-forms-item label="共有姓名" name="coOwner">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.coOwner" :inputBorder='false' placeholder="请输入共有姓名" />
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="共有情况" name="coOwnership">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.coOwnership" :inputBorder='false' placeholder="请输入共有情况" />
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
 							<view class="rimg"></view>
 						</view>
 					</uni-forms-item>
-					<uni-forms-item label="房屋状态" name="houseStatus">
-						<picker range-key='dictLabel' :disabled="isdisabled" :value="fwztidx" :range="fwztList"   @change='bindDateChangeb'>
+					<uni-forms-item label="与户主关系" :disabled="isdisabled" name="realName">
+						<picker range-key='dictLabel' :value="ywcwidx" :range="ywcwList"   @change='bindDateChange'>
 							<view class="flexc">
-								<view class="flex1 txr f13 co27" v-if="datainfo.houseStatus&&!fwzt">{{statusFormats(datainfo.houseStatus,fwztList,'fwzt')}}</view>
-								<view class="flex1 txr f13" v-else :class="fwzt?'co27':'coa'">{{fwzt||"请选择房屋状态"}}</view>
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择与户主关系'}}</view>
 								<view class="rimg"><image :src="rimg"></image></view>
 							</view>
 						</picker>
 					</uni-forms-item>
-					<uni-forms-item label="房屋用途" name="usageType">
-						<picker range-key='dictLabel' :disabled="isdisabled" :value="fwytidx" :range="fwytList"   @change='bindDateChangec'>
+					<uni-forms-item label="居住人口" name="realName">
+						<picker range-key='dictLabel' :disabled="isdisabled" :value="ywcwidx" :range="ywcwList"   @change='bindDateChange'>
 							<view class="flexc">
-								<view class="flex1 txr f13 co27" v-if="datainfo.usageType&&!fwyt">{{statusFormats(datainfo.usageType,fwytList,'fwyt')}}</view>
-								<view class="flex1 txr f13" v-else :class="fwyt?'co27':'coa'">{{fwyt||"请选择房屋用途"}}</view>
+								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择居住人口'}}</view>
 								<view class="rimg"><image :src="rimg"></image></view>
 							</view>
 						</picker>
@@ -129,58 +60,158 @@
 							<view class="rimg"></view>
 						</view>
 					</uni-forms-item>
-					<!-- <uni-forms-item label="房型" name="realName">
-						<view class="flexjd">
-							<picker range-key='dictLabel' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
-								<view class="flexc ml10">
-									<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择'}}</view>
-									<view class="tips">室</view>
+				</view>
+				<view class="chmain " style="padding-top: 30rpx;" v-if="tabval==2">
+						<view class="upbox" @click="getaddImage">
+							<image :src="baseUrl+datainfo.front" class="img" v-if="datainfo.front"></image>
+							<image :src="cmico" class="addimg"></image>
+							<view>扫描房产证自动填写</view>
+						</view>
+					  <uni-forms-item label="房屋坐落" required name="location">
+						  <view class="flexc">
+						  	<uni-easyinput :disabled="isdisabled" v-model="datainfo.location" :inputBorder='false' placeholder="自动识别" />
+						  	<view class="rimg"></view>
+						  </view>
+					  </uni-forms-item>
+						<uni-forms-item label="权利人姓名" name="ownerName">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.ownerName" :inputBorder='false' placeholder="自动识别" />
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="权利类型" name="rightType">
+							<picker range-key='dictLabel' :disabled="isdisabled" :value="qllxidx" :range="qllxList"   @change='bindDateChange'>
+								<view class="flexc">
+									<view class="flex1 txr f13 co27" v-if="datainfo.rightType&&!qllx">{{statusFormats(datainfo.rightType,qllxList,'qllx')}}</view>
+									<view class="flex1 txr f13" v-else :class="qllx?'co27':'coa'">{{qllx||"请选择权利类型"}}</view>
+									<view class="rimg"><image :src="rimg"></image></view>
 								</view>
 							</picker>
-							<picker range-key='dictLabel' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
-								<view class="flexc ml10">
-									<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择'}}</view>
-									<view class="tips">厅</view>
+						</uni-forms-item>
+						<uni-forms-item label="建筑面积" required name="area">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.area" :inputBorder='false' placeholder="自动识别" />
+								<view class="tips">m²</view>
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="不动产单元号" name="propertyUnitNumber">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.propertyUnitNumber" :inputBorder='false' placeholder="请输入不动产单元号" />
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="相关的字第号" name="documentNumber">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.documentNumber" :inputBorder='false' placeholder="请输入相关的字第号" />
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="小区名称" name="communityName">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.communityName" :inputBorder='false' placeholder="请输入小区名称" />
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="门牌号" required name="detailedAddress">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.detailedAddress" :inputBorder='false' placeholder="请输入门牌号" />
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="使用期限" name="usagePeriod">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.usagePeriod" :inputBorder='false' placeholder="请输入使用期限" />
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="登记日期" name="registrationDate">
+							<!-- <picker mode="timed" :disabled="isdisabled"  @change='bindDateChangea'>
+								<view class="flexc">
+									<view class="flex1 txr f13"  :class="datainfo.registrationDate?'co27':'coa'">{{datainfo.registrationDate||"请选择登记日期"}}</view>
+									<view class="rimg"><image :src="rimg"></image></view>
 								</view>
-							</picker>
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item> -->
-					<!-- <uni-forms-item label="住户类型" name="realName">
-						<picker range-key='dictLabel' :disabled="isdisabled" :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+							</picker> -->
+							<!-- :hide-second='true' -->
 							<view class="flexc">
-								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择住户类型'}}</view>
+								<uni-datetime-picker  :disabled="isdisabled" :class="datainfo.registrationDate?'co27':'coa'" type="datetime" placeholder="请选择登记日期" :border="false"  v-model="datainfo.registrationDate" @change="changeLog" />
 								<view class="rimg"><image :src="rimg"></image></view>
 							</view>
-						</picker>
-					</uni-forms-item> -->
-					<!-- <uni-forms-item label="是否户主"  name="phonenumber">
-						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.phonenumber" disabled :inputBorder='false' placeholder="自动识别" />
-							<view class="rimg"></view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="与户主关系" :disabled="isdisabled" name="realName">
-						<picker range-key='dictLabel' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+						</uni-forms-item>
+						
+						<uni-forms-item label="共有姓名" name="coOwner">
 							<view class="flexc">
-								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择与户主关系'}}</view>
-								<view class="rimg"><image :src="rimg"></image></view>
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.coOwner" :inputBorder='false' placeholder="请输入共有姓名" />
+								<view class="rimg"></view>
 							</view>
-						</picker>
-					</uni-forms-item>
-					<uni-forms-item label="居住人口" name="realName">
-						<picker range-key='dictLabel' :disabled="isdisabled" :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+						</uni-forms-item>
+						<uni-forms-item label="共有情况" name="coOwnership">
 							<view class="flexc">
-								<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择居住人口'}}</view>
-								<view class="rimg"><image :src="rimg"></image></view>
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.coOwnership" :inputBorder='false' placeholder="请输入共有情况" />
+								<view class="rimg"></view>
 							</view>
-						</picker>
-					</uni-forms-item> -->
-					
-				</uni-forms>
-				<view class="rhbtn mt30" @click="getEditFn" v-if="isdisabled">修改</view>
-				<view class="rhbtn mt30" @click="getSubmit" v-else>确定{{ptype=='add'?'添加':'修改'}}</view>
+						</uni-forms-item>
+						<uni-forms-item label="房屋状态" name="houseStatus">
+							<picker range-key='dictLabel' :disabled="isdisabled" :value="fwztidx" :range="fwztList"   @change='bindDateChangeb'>
+								<view class="flexc">
+									<view class="flex1 txr f13 co27" v-if="datainfo.houseStatus&&!fwzt">{{statusFormats(datainfo.houseStatus,fwztList,'fwzt')}}</view>
+									<view class="flex1 txr f13" v-else :class="fwzt?'co27':'coa'">{{fwzt||"请选择房屋状态"}}</view>
+									<view class="rimg"><image :src="rimg"></image></view>
+								</view>
+							</picker>
+						</uni-forms-item>
+						<uni-forms-item label="房屋用途" name="usageType">
+							<picker range-key='dictLabel' :disabled="isdisabled" :value="fwytidx" :range="fwytList"   @change='bindDateChangec'>
+								<view class="flexc">
+									<view class="flex1 txr f13 co27" v-if="datainfo.usageType&&!fwyt">{{statusFormats(datainfo.usageType,fwytList,'fwyt')}}</view>
+									<view class="flex1 txr f13" v-else :class="fwyt?'co27':'coa'">{{fwyt||"请选择房屋用途"}}</view>
+									<view class="rimg"><image :src="rimg"></image></view>
+								</view>
+							</picker>
+						</uni-forms-item>
+						<!-- <uni-forms-item label="有无车位" name="hasParkingSpace">
+							<picker range-key='dictLabel' :disabled="isdisabled" :value="ywcwidx" :range="ywcwList"   @change='bindDateChanged'>
+								<view class="flexc">
+									<view class="flex1 txr f13 co27" v-if="datainfo.hasParkingSpace&&!ywcw">{{statusFormats(datainfo.hasParkingSpace,ywcwList,'ywcw')}}</view>
+									<view class="flex1 txr f13" v-else :class="ywcw?'co27':'coa'">{{ywcw||"请选择有/无"}}</view>
+									<view class="rimg"><image :src="rimg"></image></view>
+								</view>
+							</picker>
+						</uni-forms-item>
+						<uni-forms-item label="车位号" name="parkingNumber">
+							<view class="flexc">
+								<uni-easyinput :disabled="isdisabled" v-model="datainfo.parkingNumber" :inputBorder='false' placeholder="请输入车位号" />
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item> -->
+						<!-- <uni-forms-item label="房型" name="realName">
+							<view class="flexjd">
+								<picker range-key='dictLabel' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+									<view class="flexc ml10">
+										<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择'}}</view>
+										<view class="tips">室</view>
+									</view>
+								</picker>
+								<picker range-key='dictLabel' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
+									<view class="flexc ml10">
+										<view class="flex1 txr f13" :class="datainfo.iszc?'co27':'coa'">{{datainfo.iszc?'是':'请选择'}}</view>
+										<view class="tips">厅</view>
+									</view>
+								</picker>
+								<view class="rimg"></view>
+							</view>
+						</uni-forms-item> -->
+				</view>
+				<view class="chmain">
+					<view class="rhbtn mt30" @click="getEditFn" v-if="isdisabled">修改</view>
+					<view class="rhbtn mt30" @click="getSubmit" v-else>确定{{ptype=='add'?'添加':'修改'}}</view>
+				</view>
 			</view>
+			<!-- <view class="chtop flexc">
+				<view class="line"></view>
+				<view>房屋信息</view>
+			</view> -->
+		</uni-forms>
 		</view>
 		<loading></loading>
 	</view>
@@ -241,6 +272,8 @@
 				latitude:'',
 				longitude:"",
 				starttime:'',
+				tabval:1,
+				tablist:[{tit:'基本信息',val:'1'},{tit:'房本信息',val:'2'},],
 			}
 		},
 		onLoad: function(e) {
@@ -258,6 +291,9 @@
 			getEditFn(){
 				this.isdisabled=false;
 			},
+			getTabFn(val){
+				this.tabval=val;
+			},
 			time() {
 				var date = new Date();
 				var y = date.getFullYear();
@@ -467,8 +503,8 @@
 .check /deep/ .uni-forms-item__label text{width: 110rpx;text-align-last: justify;}
 .check /deep/ .uni-forms-item__label .is-required{width: auto;}
 .check /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
-.check{min-height: 100vh;padding: 20rpx 18rpx 22rpx;box-sizing: border-box;display: flex;box-sizing: border-box;}
-.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;padding-bottom: 28rpx;
+.check{min-height: 100vh;padding: 140rpx 18rpx 22rpx;box-sizing: border-box;display: flex;box-sizing: border-box;}
+.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;padding-bottom: 28rpx;min-height: calc(100vh - 160rpx);
 	.chtop{padding-top: 32rpx;margin-bottom: 22rpx;
 		.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
 		view{font-weight: bold;font-size: 32rpx;color: #272727;}
@@ -486,4 +522,13 @@
 	}
 }
 .tips{font-weight: bold;color: #272727;font-size: 26rpx;margin-left: 8rpx;}
+.cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
+	.tabtop{padding-bottom: 40rpx;padding-top: 26rpx;overflow: auto;
+		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;flex: 0 0 auto;text-align: center;margin: 0 10rpx;padding: 0 20rpx;
+			&.act{font-weight: bold;font-size: 32rpx;color: #272727;
+			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
+			}
+		}
+	}
+}
 </style>

+ 122 - 0
user_ui/mine/pages/house/house.vue

@@ -0,0 +1,122 @@
+<template>
+	<view class="car">
+		<!-- 列表 -->
+		<view class="carlists">
+			<box-list :datainfo="list" :wtdt="wtdt" type='comehouse' @getDetail="getDetail" ></box-list>
+		</view>
+		<loading></loading>
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import boxList from "@/mine/components/box/list.vue"
+	import {houseInfoList} from "@/api/work/work.js"
+	import {getDictionaryFn} from "@/api/system/user.js"
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{boxList},
+		data(){
+			return{
+				text:'',
+				list:[],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+				fwztList:[],
+				userId:this.$store.state.user.userId,
+			}
+		},
+		onUnload() {
+			uni.$off('refHouseList')
+		},
+		onLoad: function(e) {
+			uni.$on('refHouseList',(res)=>{
+				this.getrefreshData()
+			})
+			this.init()
+			this.getDataFn();
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			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(){
+				this.$tab.navigateTo("/mine/pages/house/addhouse")
+			},
+			getDetail(e){
+				this.$tab.navigateTo(`/mine/pages/house/housedetail?id=${e}`)
+			},
+			getrefreshData(){
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
+			getDataFn(){
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+					userId:this.userId
+				}
+				houseInfoList(params).then(res=>{
+					if(res.code==200){
+						if (res.rows.length < this.pageSize) {
+							this.reachflag = false
+							this.wtdt = '到底了~';
+						} else {
+							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+							if (num < res.total) {
+								this.reachflag = true
+								this.wtdt = ''
+							} else {
+								this.reachflag = false
+								this.wtdt = '到底了~';
+							}
+						}
+						if (this.pageNum == 1) {
+							this.list = res.rows;
+						} else {
+							this.list = this.list.concat(res.rows)
+						}
+					}else{
+						this.$toast(res.msg)
+					}
+				})
+				
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.car{padding: 24rpx 0 10rpx;}
+.carlists{padding: 0 18rpx;}
+</style>

+ 424 - 0
user_ui/mine/pages/house/housedetail.vue

@@ -0,0 +1,424 @@
+<template>
+	<view class="check">
+		<view class="cbox">
+			<view class="chtop flexc">
+				<view class="line"></view>
+				<view>房屋信息</view>
+			</view>
+			<view class="chmain">
+				<uni-forms ref="form" :model="datainfo" :rules="rules">
+				  <uni-forms-item label="房屋坐落" required name="location">
+					  <view class="flexc">
+					  	<uni-easyinput :disabled="isdisabled" v-model="datainfo.location" :inputBorder='false' placeholder="" />
+					  	<view class="rimg"></view>
+					  </view>
+				  </uni-forms-item>
+					<uni-forms-item label="权利人姓名" name="ownerName">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.ownerName" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="权利类型" name="rightType">
+						<picker range-key='dictLabel' :disabled="isdisabled" :value="qllxidx" :range="qllxList"   @change='bindDateChange'>
+							<view class="flexc">
+								<view class="flex1 txr f13 co27" v-if="datainfo.rightType&&!qllx">{{statusFormats(datainfo.rightType,qllxList,'qllx')}}</view>
+								<view class="flex1 txr f13" v-else :class="qllx?'co27':'coa'">{{qllx||""}}</view>
+								<view class="rimg"></view>
+								<!-- <image :src="rimg"></image> -->
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="建筑面积" required name="area">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.area" :inputBorder='false' placeholder="" />
+							<view class="tips">m²</view>
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="不动产单元号" name="propertyUnitNumber">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.propertyUnitNumber" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="相关的字第号" name="documentNumber">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.documentNumber" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="小区名称" name="communityName">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.communityName" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="门牌号" required name="detailedAddress">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.detailedAddress" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="使用期限" name="usagePeriod">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.usagePeriod" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="登记日期" name="registrationDate">
+						<view class="flexc">
+							<uni-datetime-picker  :disabled="isdisabled" :class="datainfo.registrationDate?'co27':'coa'" type="datetime" placeholder=" " :border="false"  v-model="datainfo.registrationDate" @change="changeLog" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					
+					<uni-forms-item label="共有姓名" name="coOwner">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.coOwner" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="共有情况" name="coOwnership">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.coOwnership" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="房屋状态" name="houseStatus">
+						<picker range-key='dictLabel' :disabled="isdisabled" :value="fwztidx" :range="fwztList"   @change='bindDateChangeb'>
+							<view class="flexc">
+								<view class="flex1 txr f13 co27" v-if="datainfo.houseStatus&&!fwzt">{{statusFormats(datainfo.houseStatus,fwztList,'fwzt')}}</view>
+								<view class="flex1 txr f13" v-else :class="fwzt?'co27':'coa'">{{fwzt||""}}</view>
+								<view class="rimg"></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="房屋用途" name="usageType">
+						<picker range-key='dictLabel' :disabled="isdisabled" :value="fwytidx" :range="fwytList"   @change='bindDateChangec'>
+							<view class="flexc">
+								<view class="flex1 txr f13 co27" v-if="datainfo.usageType&&!fwyt">{{statusFormats(datainfo.usageType,fwytList,'fwyt')}}</view>
+								<view class="flex1 txr f13" v-else :class="fwyt?'co27':'coa'">{{fwyt||""}}</view>
+								<view class="rimg"></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="有无车位" name="hasParkingSpace">
+						<picker range-key='dictLabel' :disabled="isdisabled" :value="ywcwidx" :range="ywcwList"   @change='bindDateChanged'>
+							<view class="flexc">
+								<view class="flex1 txr f13 co27" v-if="datainfo.hasParkingSpace&&!ywcw">{{statusFormats(datainfo.hasParkingSpace,ywcwList,'ywcw')}}</view>
+								<view class="flex1 txr f13" v-else :class="ywcw?'co27':'coa'">{{ywcw||""}}</view>
+								<view class="rimg"></view>
+							</view>
+						</picker>
+					</uni-forms-item>
+					<uni-forms-item label="车位号" name="parkingNumber">
+						<view class="flexc">
+							<uni-easyinput :disabled="isdisabled" v-model="datainfo.parkingNumber" :inputBorder='false' placeholder="" />
+							<view class="rimg"></view>
+						</view>
+					</uni-forms-item>
+				</uni-forms>
+				<view class="hfbtns flexcj">
+					<view class="btn btn1" >拒绝</view>
+					<view class="btn btn2" >通过</view>
+				</view>
+			</view>
+		</view>
+		<loading></loading>
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {uploadIdentify,selectValueKey,geocodeAddress} from '@/utils/common.js'
+	import {getDictionaryFn} from "@/api/system/user.js"
+	import {houseInfoAdd,houseInfoPut,houseInfoDet} from "@/api/work/work.js"
+	export default{
+		components:{},
+		data(){
+			return{
+				rimg: require('@/mine/static/house/rimg.png'),
+				cmico:require('@/mine/static/house/cmico.png'),
+				baseUrl:config.baseUrl,
+				datainfo:{
+					 // "houseId":"",//房屋信息主键
+					 "ownerName":"",//权利人姓名
+					 "location":"",//房屋坐落位置
+					 "rightType":"",//权利类型,如所有权、使用权等
+					 "area":"",//房屋面积,单位为平方米
+					 "documentNumber":"",//房屋相关的字第号
+					 "propertyUnitNumber":"",//不动产单元号
+					 "coOwnership":"",//房屋的共有情况,如共有比例等
+					 "usageType":"",//房屋用途,如住宅、商业等
+					 "usagePeriod":"",//房屋使用期限
+					 "registrationDate":"",//房屋登记日期
+					 "coOwner":"",//共有人姓名,多个共有人可以用逗号分隔
+					 "detailedAddress":"",//房屋的详细门牌号
+					 "hasParkingSpace":"",//是否有车位,Y表示有,N表示无
+					 "communityName":"",//房屋所在小区名称
+					 "houseStatus":"",//房屋状态:1-自住,2-出租,3-空闲,4-待售
+					 "parkingNumber":'',//车位号
+				},
+				rules: {
+				  location: {rules: [{required: true,errorMessage: '请输入房屋坐落位置' }]},
+				  detailedAddress: {rules: [{required: true,errorMessage: '请输入详细门牌号' }]},
+				  area: {rules: [{required: true,errorMessage: '请输入面积' }]},
+				},
+				id:'',
+				ptype:'add',
+				fwzt:'',
+				qllx:'',
+				fwyt:'',
+				ywcw:'',
+				fwztidx:'',
+				qllxidx:'',
+				fwytidx:'',
+				ywcwidx:'',
+				fwztList:[],
+				qllxList:[],
+				fwytList:[],
+				ywcwList:[{dictLabel:'有',dictValue:'Y'},{dictLabel:'无',dictValue:'N'},],
+				isdisabled:true,
+				latitude:'',
+				longitude:"",
+				starttime:'',
+			}
+		},
+		onLoad: function(e) {
+			if(e.id){
+				this.id=e.id;
+				this.ptype="edit";
+				// this.isdisabled=true;
+				this.getDetail()
+			}
+			this.init()
+		},
+		methods:{
+			checkPermi, checkRole,
+			getEditFn(){
+				this.isdisabled=false;
+			},
+			statusFormats(data, list,type) {
+				var aite=selectValueKey(list, data);
+				if(type=='qllx'){
+					this.qllxidx=aite.key;
+				}else if(type=='fwzt'){
+					this.fwztidx=aite.key;
+				}else if(type=='fwyt'){
+					this.fwytidx=aite.key;
+				}else if(type=='ywcw'){
+					this.ywcwidx=aite.key;
+				}
+				return aite.actions;
+			},
+			init(){
+				// 房屋状态
+				getDictionaryFn('house_status').then(res=>{
+					if(res.code==200){
+						this.fwztList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+				//权利类型
+				getDictionaryFn('types_rights').then(res=>{
+					if(res.code==200){
+						this.qllxList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+				//房屋用途
+				getDictionaryFn('use_remises').then(res=>{
+					if(res.code==200){
+						this.fwytList = res.data.map(v => {
+							return {
+								dictLabel: v.dictLabel,
+								dictValue: v.dictValue
+							}
+						})
+					}
+				})
+			},
+			bindDateChange(e){
+				var val=e.detail.value;
+				this.datainfo.rightType=this.qllxList[val].dictValue;
+				this.qllx=this.qllxList[val].dictLabel;
+			},
+			bindDateChangea(e){
+				var val=e.detail.value;
+				this.datainfo.registrationDate=val;
+			},
+			bindDateChangeb(e){
+				var val=e.detail.value;
+				this.datainfo.houseStatus=this.fwztList[val].dictValue;
+				this.fwzt=this.fwztList[val].dictLabel;
+			},
+			bindDateChangec(e){
+				var val=e.detail.value;
+				this.datainfo.usageType=this.fwytList[val].dictValue;
+				this.fwyt=this.fwytList[val].dictLabel;
+			},
+			bindDateChanged(e){
+				var val=e.detail.value;
+				this.datainfo.hasParkingSpace=this.ywcwList[val].dictValue;
+				this.ywcw=this.ywcwList[val].dictLabel;
+			},
+			getDetail(){
+				houseInfoDet(this.id).then(res=>{
+					if(res.code==200){
+						this.datainfo=res.data;
+						
+					}
+				})
+			},
+			getSubmit(){
+				this.$refs.form.validate().then(res => {
+					var params=JSON.parse(JSON.stringify(this.datainfo))
+					// if(!params.portalId){
+					// 	this.$toast("请选择来访门户")
+					// 	return
+					// }
+					// if(params.isCar=='Y'&&!params.plateNumber){
+					// 	this.$toast("请输入车牌号")
+					// 	return
+					// }
+					// if(!params.visitorTime){
+					// 	this.$toast("请选择来访时间")
+					// 	return
+					// }
+					if(this.ptype=='add'){
+						houseInfoAdd(params).then(res=>{
+							if(res.code==200){
+								this.$toast("新增成功")
+								setTimeout(function(){
+									uni.$emit("refHouseList")
+									uni.navigateBack({
+										delta:1
+									})
+								},1500)
+							}
+						})
+					}else{
+						houseInfoPut(params).then(res=>{
+							if(res.code==200){
+								this.$toast("修改成功")
+								setTimeout(function(){
+									uni.$emit("refHouseList")
+									uni.navigateBack({
+										delta:1
+									})
+								},1500)
+							}
+						})
+					}
+				})
+			},
+			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>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.coa /deep/ .uni-date__x-input{text-align: right;color: #AAAAAA;}
+.check /deep/ .uni-date-editor--x__disabled{opacity: 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__label{font-weight: bold;font-size: 26rpx;color: #222327;flex: 0 0 auto;width: auto !important;}
+.check /deep/ .uni-easyinput{flex: 1;text-align: right;font-size: 26rpx;color: #222327;}
+.check /deep/ .uni-easyinput__content-textarea{min-height: 40rpx;font-size: 26rpx;}
+.check /deep/ .uni-easyinput__placeholder-class{font-size: 26rpx;color: #AAAAAA;}
+.check /deep/ .uni-input-input{font-size: 26rpx;}
+.check /deep/ .uni-textarea-textarea{font-size: 26rpx;}
+.check /deep/ .uni-forms-item__label text{width: 110rpx;text-align-last: justify;}
+.check /deep/ .uni-forms-item__label .is-required{width: auto;}
+.check /deep/ .is-disabled{color: #222327;background-color: #ffffff !important;}
+.check{min-height: 100vh;padding: 20rpx 18rpx 22rpx;box-sizing: border-box;display: flex;box-sizing: border-box;}
+.cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;padding-bottom: 28rpx;
+	.chtop{padding-top: 32rpx;margin-bottom: 22rpx;
+		.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
+		view{font-weight: bold;font-size: 32rpx;color: #272727;}
+	}
+	.chmain{
+		padding: 0 32rpx;
+		.upbox{height: 224rpx;background: #EFF4FF;border-radius: 20rpx;display: flex;align-items: center;justify-content: center;flex-direction: column;margin-bottom: 8rpx;overflow: auto;
+			.img{width: 100%;height: 100%;}
+			.addimg{width: 90rpx;height: 90rpx;margin-bottom: 8rpx;}
+			view{font-weight: bold;font-size: 26rpx;color: #4C6686;}
+		}
+	}
+	.rimg{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;
+		image{width: 100%;height: 100%;}
+	}
+}
+.tips{font-weight: bold;color: #272727;font-size: 26rpx;margin-left: 8rpx;}
+
+.hfbtns{margin-top: 140rpx;
+	.btn{height: 88rpx;background: #FFF8F8;border-radius: 20rpx;width: 316rpx;display: flex;align-items: center;justify-content: center;font-weight: bold;
+font-size: 26rpx;box-sizing: border-box;
+		&.btn1{border: 2rpx solid #FF6969;background: #FFF8F8;color: #FF6969;}
+		&.btn2{background: #0256FD;color: #ffffff;}
+	}
+}
+</style>

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

@@ -80,6 +80,12 @@
 				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:houseInfo:remove'])" @click.stop="getDelFn(ite.houseId)">删除</view>
 			</view>
 		</block>
+		<!-- 审核信息 -->
+		<!-- <view class="cartips flexc mt16 mb16" @click="getChargeFn">
+			<view class="tit flex1">当前有房屋<text class="co025">审核中…</text></view>
+			<image :src="rimg"></image>
+		</view> -->
+		<view class="cartipa" @click="getChargeFn">您有 <text class="plr5">2</text> 套房屋信息正在审核中,<text class="line">查看信息</text></view>
 		<view style="height: 76rpx;"></view>
 		<!-- <view class="hbtns bga mb18" v-if="list.length">修改信息</view> -->
 		<view class="hbtns bgb" :class="list.length?'':'mt110'" @click="getAddFn">添加房屋</view>
@@ -97,6 +103,7 @@
 		components:{},
 		data(){
 			return{
+				rimg: require('@/mine/static/house/rimg.png'),
 				housebg:require('@/mine/static/house/house.png'),
 				more:require("@/work/static/visitor/more.png"),
 				adrs:require('@/mine/static/house/adrs.png'),
@@ -148,6 +155,9 @@
 			getAddFn(){
 				this.$tab.navigateTo("/mine/pages/house/addhouse")
 			},
+			getChargeFn(){
+				this.$tab.navigateTo("/mine/pages/house/house")
+			},
 			getListFn(){
 				this.$tab.navigateTo("/mine/pages/house/people")
 			},
@@ -298,4 +308,13 @@
 .edit{font-weight: 500;font-size: 24rpx;color: #06C770;
 	image{width: 22rpx;height: 22rpx;margin-right: 4rpx;}
 }
+.cartips{background: #FFFFFF;border-radius: 20rpx;height: 98rpx;padding: 0 24rpx;
+	image{width: 16rpx;height: 28rpx;flex: 0 0 auto;margin-left: 20rpx;}
+	.tit{font-weight: bold;font-size: 26rpx;color: #272727;}
+}
+.cartipa{font-weight: 500;font-size: 24rpx;color: #666666;text-align: center;padding-top: 12rpx;
+	text{color: #0256FD;
+		&.line{text-decoration: underline;}
+	}
+}
 </style>

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


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


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


+ 19 - 11
user_ui/news/pages/complaint/add.vue

@@ -6,23 +6,30 @@
 					<view class="flex1">
 						<view class="chtop flexc">
 							<view class="line"></view>
-							<view>基本信息</view>
+							<view class="tit">基本信息</view>
+							<view class="flex1"></view>
+							<view class="voice">
+								<view class="flexc" @click="getVoiceFn">
+									<image :src="voice"></image>
+									语音输入
+								</view>
+							</view>
 						</view>
 						<view class="plr15">
 							</uni-forms-item>
-							<uni-forms-item label="标题" required  name="title">
+							<!-- <uni-forms-item label="标题" required  name="title">
 								<view class="flexc">
 									<uni-easyinput v-model="datainfo.title" :inputBorder='false' placeholder="请输入标题信息" />
 									<view class="rimg"></view>
 								</view>
-							</uni-forms-item>
+							</uni-forms-item> -->
 							<uni-easyinput type="textarea" maxlength="200" autoHeight v-model="datainfo.content" :inputBorder='false' placeholder="请详细描述您的投诉建议内容(最多可输入200字哦)" />
-							<view class="voice mb28">
+							<!-- <view class="voice mb28">
 								<view class="flexc" @click="getVoiceFn">
 									<image :src="voice"></image>
 									语音输入
 								</view>
-							</view>
+							</view> -->
 						</view>
 						<!-- 图片 -->
 						<view class="imgs">
@@ -243,13 +250,11 @@ border-radius: 10rpx;padding: 20rpx 14rpx;text-align: left;}
 			}
 		}
 	}
-	.chtop{margin-bottom: 8rpx;padding-top: 32rpx;	
-		view{font-weight: bold;font-size: 28rpx;color: #272727;}
+	.chtop{margin-bottom: 8rpx;padding-top: 32rpx;padding-right: 36rpx;
+		.tit{font-weight: bold;font-size: 28rpx;color: #272727;}
 		.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
 	}
-	.voice{font-weight: 500;display: flex;justify-content:flex-end;align-items: center;margin-top: 40rpx;font-size: 24rpx;color: #45CB99;
-			image{width: 24rpx;height: 24rpx;margin-right: 8rpx;}
-	}
+	
 	.imgs{display: flex;align-items: center;flex-wrap: wrap;padding: 0 24rpx;
 		.img{width: 142rpx;height:142rpx;border-radius: 20rpx;margin: 0 12rpx 20rpx 12rpx;position: relative;
 		// &:nth-of-type(2n){margin-right: 0;}
@@ -263,5 +268,8 @@ border-radius: 10rpx;padding: 20rpx 14rpx;text-align: left;}
 	}
 	.checkimg{width: 80rpx;height: 40rpx;margin-right: 8rpx;}
 }
-
+// margin-top: 40rpx;
+.voice{font-weight: 500;display: flex;justify-content:flex-end;align-items: center;font-size: 24rpx;color: #45CB99;
+	image{width: 24rpx;height: 24rpx;margin-right: 8rpx;}
+}
 </style>

+ 1 - 1
user_ui/news/pages/news/detail.vue

@@ -410,7 +410,7 @@
 
 .pjfbtn{background: #FFFFFF;position: fixed;bottom: 0;left: 0;right: 0;padding:20rpx 48rpx;box-shadow: 0px 0px 18rpx 0px rgba(159,159,159,0.47);
 	.pjfbox{background: #E6E6E6;border-radius: 10rpx;
-		textarea{flex: 1;font-size: 26rpx;color: #222327;min-height: 40rpx;font-size: 26rpx;margin: 0;background: #E6E6E6;box-sizing: border-box;padding: 10rpx 0 10rpx 36rpx;border-radius:10rpx 0 0 10rpx;}
+		textarea{flex: 1;font-size: 26rpx;color: #222327;min-height: 100rpx;font-size: 26rpx;margin: 0;background: #E6E6E6;box-sizing: border-box;padding: 10rpx 0 10rpx 36rpx;border-radius:10rpx 0 0 10rpx;}
 		.btns{nt-weight: bold;padding: 0 34rpx;height: 60rpx;line-height: 60rpx;flex: 0 0 auto;
 		font-size: 26rpx;
 	}

+ 31 - 8
user_ui/pages.json

@@ -1,5 +1,19 @@
 {
   "pages": [
+	  // {
+	  //   "path": "pages/down",
+	  //   "style": {
+	  //     "navigationBarTitleText": "智慧社区管理平台",
+	  // 	"h5":{"titleNView":false}
+	  //   }
+	  // },
+	  {
+	    "path": "pages/login",
+	    "style": {
+	      "navigationBarTitleText": "登录",
+	  	  "navigationStyle": "custom"
+	    }
+	  }, 
 	  {
 	    "path": "pages/index/index",
 	    "style": {
@@ -20,14 +34,7 @@
 	      "navigationBarTitleText": "商圈",
 	      "navigationStyle": "custom"
 	    }
-	  },
-	  {
-    "path": "pages/login",
-    "style": {
-      "navigationBarTitleText": "登录",
-	  "navigationStyle": "custom"
-    }
-  }, 
+	  }, 
   {
     "path": "pages/agreement",
     "style": {
@@ -316,6 +323,22 @@
 				  "navigationStyle": "custom"
 			  }
 			},
+			{
+			  "path": "pages/house/house",
+			  "style": {
+			    "navigationBarTitleText": "房屋管理",
+				"navigationBarTextStyle": "black",
+				  "navigationStyle": "custom"
+			  }
+			},
+			{
+			  "path": "pages/house/housedetail",
+			  "style": {
+			    "navigationBarTitleText": "房屋详情",
+				"navigationBarTextStyle": "black",
+				  "navigationStyle": "custom"
+			  }
+			},
 			{
 			  "path": "pages/house/people",
 			  "style": {

+ 112 - 0
user_ui/pages/down.vue

@@ -0,0 +1,112 @@
+<template>
+		<view class="box">
+			<!-- <image :src="bg" class="bgimg"></image> -->
+			<view class="main">
+				<image :src="top" class="topimg"></image>
+				<view class="topa">
+					<image :src="topa" ></image>
+				</view>
+				
+				<image :src="abg" class="abg"></image>
+				<view class="btns" @click="getDown('user')" style="margin-top: -28rpx;"><image :src="user" class="imga"></image>用户端下载</view>
+				<view class="btns" @click="getDown('wuye')"><image :src="usera" class="imgb" ></image>物业端下载</view>
+				<view class="tips">
+					<view class="tipa">
+						<view class="tit">产品介绍</view>
+						<view class="tita">PRODUCT INTRODUCTION</view>
+						<view class="line"><image :src="line"></image></view>
+						<view class="txt">智慧社区管理平台是一款集房产管理、车辆管理、社区服务于一体的综合型智慧社区管理软件。</view>
+						<view class="txt">通过该软件,业主可以轻松管理自己的房产和车辆信息,实时查看社区内车位和充电桩位情况,同时关注家人的健康状况,并享受便捷的社区商城服务。</view>
+						<view class="txt">对于物业公司而言,智慧社区管理平台则提供了全面的社区人员管理、房产管理、进出记录监控、门禁控制、车位及充电桩管理以及物业费收缴等功能,极大的提升了物业管理效率和服务质量。
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+  <!-- <view class="regbox pregbox flexdc pr"  id="regbox" style="padding-top: 120rpx;">
+	  <image :src="headimg" class="headimg flex0"></image> 
+	  <view class="rbtn btn2" @click="getDown">立即下载</view>
+  </view> -->
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+  export default {
+	data(){
+		return{
+			bg:require('@/static/images/down/bg.png'),
+			abg:require('@/static/images/down/abg.png'),
+			boxbg:require('@/static/images/down/boxbg.png'),
+			line:require('@/static/images/down/line.png'),
+			top:require('@/static/images/down/top.png'),
+			topa:require('@/static/images/down/topa.png'),
+			user:require('@/static/images/down/user.png'),
+			usera:require('@/static/images/down/usera.png'),
+			userurl:"/profile/upload/2025/04/07/__UNI__E57E235__20250401144753_20250407105540A002.apk",
+			useraurl:"/profile/upload/2025/04/07/__UNI__35B39A9__20250401144647_20250407105511A001.apk",
+		}
+	},
+	
+	methods:{
+		isWechat() {
+		    return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger";
+		},
+
+		getDown(type){
+			if (this.isWechat()) {
+			    uni.showToast({
+			        title: '点击右上角在浏览器中打开后下载',
+			        icon: 'none',
+			        duration: 3000
+			    })
+			    return
+			}
+			var url=''
+			if(type=='user'){
+				url=baseUrl+this.userurl;
+			}else{
+				url=baseUrl+this.useraurl;
+			}
+			let a = document.createElement('a');
+			a.setAttribute('href', url);
+			a.setAttribute('download', 'downapp');
+			a.innerHTML = "立即下载";
+			document.body.appendChild(a);
+			a.click();
+			a.remove()
+		}
+	},
+	onLoad: function() {
+			
+    },
+  }
+</script>
+
+<style lang="scss" scoped>
+.box{position: relative;height: 100vh;overflow: auto;background: url(../static/images/down/bg.png) no-repeat;background-size: 100% 100%;
+	.bgimg{width: 100%;min-height: 100vh;position: absolute;left: 0;right: 0;bottom: 0;top: 0;z-index: 0;}
+	.main{padding: 40rpx 0 76rpx;position: relative;
+		.topimg{width: 312rpx;height: 34rpx;margin-left: 40rpx;margin-bottom: 44rpx;}
+		.topa{margin:0 auto;padding-left: 28rpx;width: 734rpx;box-sizing: border-box;
+			image{width: 706rpx;height: 388rpx;}
+		}
+		.abg{width: 620rpx;height: 664rpx;margin-top: -144rpx;}
+		.btns{width: 392rpx;height: 68rpx;border: 2rpx solid #222222;display: flex;align-items: center;justify-content: center;font-size: 32rpx;color: #222222;border-radius: 68rpx;margin:0 auto 34rpx;
+			.imga{width: 40rpx;height: 36rpx;margin-right: 24rpx;}
+			.imgb{width: 38rpx;height: 40rpx;margin-right: 28rpx;}
+		}
+		.tips{padding:0 12rpx 0 40rpx; margin-top: 74rpx;}
+		.tipa{background: url(../static/images/down/boxbg.png) no-repeat;background-size: 100% 100%;padding: 46rpx 66rpx 80rpx 38rpx;width: 698rpx;margin: 0 auto;box-sizing: border-box;
+			.tit{font-weight: bold;font-size: 44rpx;color: #222222;text-align: center;margin-bottom: 4rpx;}
+			.tita{color: #222222;font-size: 18rpx;
+line-height: 36rpx;text-align: center;}
+			.line{width: 100%;box-sizing: border-box;margin-top: 26rpx;margin-bottom: 40rpx;
+				image{width: 100%;height: 16rpx;}
+			}
+			.txt{font-size: 24rpx;text-indent: 2em;
+color: #434242;line-height: 40rpx;}
+		}
+	}
+}
+</style>

+ 11 - 3
user_ui/pages/index/index.vue

@@ -169,7 +169,7 @@
 			</view>
 		</view>
 	<loading></loading>
-	<pop-up :type="type" @getClose="getClose" :phoneList="phoneList"></pop-up>
+	<pop-up :type="type" @getClose="getClose" :phoneList="phoneList" :initFace='initFace' @getXxwsFn="getXxwsFn"></pop-up>
 	 <footers v-if="isfootflag"  :footerindex="footerindex"></footers>
   </view>
 </template>
@@ -216,6 +216,7 @@ import store from "@/store"
 			listb:require("@/static/images/home/listb.png"),
 			listc:require("@/static/images/home/listc.png"),
 			more:require("@/static/images/home/more.png"),
+			initFace:'N',//initFace Y需要,N不需要人脸认证
 			type:'',//wygj
 			wtdt:"加载更多",
 			yhbg:require("@/static/images/home/yhbg.png"),
@@ -248,6 +249,9 @@ import store from "@/store"
 		}
 	},
     onLoad: function() {
+		// 登录提示去除,登录页面,验证码不要,微信支付宝登录,快递,我的车辆,,
+		//房屋:房产证分开,我的房本 。物业报修:标题不要,报修门户,不是必填。联系方式:默认自己的。 列表查看详情,列表状态加个进度条,详情东西都在列表页展示,,类似快递形式,报修加评论。社区资讯:发表评论框小了,抄头条。访客,来访人数,5人以上,1,23456789,样式修改。来访时间,当前时间,来访事由,选择,来访门户,默认,,有驾车,在车牌号,手机号放上面,常用访客:家人信息。投诉建议和报修一样,交流回复。管家电话:点击s可以打,
+		//物管端 今日统计可以打开点击,,外来车辆登记,临停,,人员面貌,群众,党员,,评论审核,不用二次确认框,
 		var that=this;
 		uni.getSystemInfo({
 			success: (e) => {
@@ -329,10 +333,14 @@ import store from "@/store"
 			})
 		},
 		getClose(){
-			this.type=''
+			this.type='';
+			this.initFace='N';
+		},
+		getXxwsFn(){
+			this.$tab.navigateTo(`/mine/pages/house/addhouse`) 
 		},
 		getNoticeDet(id){
-			this.$tab.navigateTo(`/news/pages/news/detail?id=`+id) 
+			this.$tab.navigateTo(`/news/pages/news/detail?id=${id}`) 
 		},
 		getZhanFn(){
 			this.zhanflag=!this.zhanflag

BIN
user_ui/static/images/down/abg.png


BIN
user_ui/static/images/down/bg.png


BIN
user_ui/static/images/down/boxbg.png


BIN
user_ui/static/images/down/line.png


BIN
user_ui/static/images/down/top.png


BIN
user_ui/static/images/down/topa.png


BIN
user_ui/static/images/down/user.png


BIN
user_ui/static/images/down/usera.png


BIN
user_ui/static/images/profile.jpg


BIN
user_ui/static/images/tiptit.png


+ 3 - 0
user_ui/static/style.css

@@ -32,6 +32,8 @@ image{display: block !important;}
 .shax {font-size: 30rpx;color: #666;text-align: center;padding: 20rpx 0;}
 .rhbtn{width: 100%;height: 88rpx;display: flex;align-items: center;justify-content: center;
 font-weight: bold;font-size: 26rpx;color: #FFFFFF;background: #0256FD;border-radius: 20rpx;}
+.rhbtnw{width: 100%;height: 88rpx;display: flex;align-items: center;justify-content: center;border: 2rpx solid #0256FD;
+font-weight: bold;font-size: 26rpx;color: #0256FD;background: #FFFFFF;border-radius: 20rpx;}
 .rfbtn{height: 100rpx;display: flex;align-items: center;justify-content: center;font-weight: bold;position: fixed;left: 0;right: 0;bottom: 0;z-index: 4;font-size: 26rpx;color: #FFFFFF;background: #0156FE;}
 .linetit{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
 .spdel{width: 164rpx;background: #EA2D2D;font-weight: bold;font-size: 26rpx;color: #FFFFFF;display: flex;align-items: center;justify-content: center;position: absolute;right: -146rpx;top: 0;bottom: 0;padding-left: 14rpx;}
@@ -97,6 +99,7 @@ font-weight: bold;font-size: 26rpx;color: #FFFFFF;background: #0256FD;border-rad
 .mt12{margin-top: 24rpx;}
 .mt16{margin-top: 32rpx;}
 .mt30{margin-top: 60rpx;}
+.mt34{margin-top: 68rpx;}
 .mt35{margin-top: 70rpx;}
 .mt40{margin-top: 80rpx;}
 .mt55{margin-top: 110rpx;}

+ 1 - 1
user_ui/store/modules/user.js

@@ -123,7 +123,7 @@ const user = {
       })
     },
 
-    // 获取用户信息require("@/static/images/profile.jpg")
+    // 获取用户信息require("@/static/images/mine/profile.png")
     GetInfo({ commit, state }) {
       return new Promise((resolve, reject) => {
         getInfo().then(res => {

+ 10 - 7
user_ui/utils/request.js

@@ -113,13 +113,16 @@ const request = config => {
           		})
           	}else{
           		uni.hideLoading()
-          		showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
-          		  if (res.confirm) {
-          		    store.dispatch('LogOut').then(res => {
-          		      uni.reLaunch({ url: '/pages/login' })
-          		    })
-          		  }
-          		})
+				store.dispatch('LogOut').then(res => {
+				  uni.reLaunch({ url: '/pages/login' })
+				})
+          		// showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
+          		//   if (res.confirm) {
+          		//     store.dispatch('LogOut').then(res => {
+          		//       uni.reLaunch({ url: '/pages/login' })
+          		//     })
+          		//   }
+          		// })
           	}
           confirmflag = false;
           },2000)

+ 138 - 4
user_ui/work/components/box/list.vue

@@ -2,8 +2,91 @@
 <view>
 	<!-- 第一种样式  人员管理-->
 	<block v-if="datainfo.length>0">
-		<!-- 报修管理 -->
+		<!-- 报修管理 步骤条-->
 		<block v-if="type=='warranty'">
+			<!-- @click.stop="getDetail(ite.repairId)" -->
+			<view class="bxlists" v-for="(ite,idx) in datainfo" :key="idx" >
+				<view class="bxtop">
+					<swiper  class="swiper" circular :indicator-color="incolorh" :indicator-active-color="activecolorh" :indicator-dots="indicatorDotsh" :autoplay="autoplay">
+						<swiper-item>
+							<image :src="noiconpimg"></image>
+						</swiper-item>
+						<swiper-item>
+							<image :src="noiconpimg"></image>
+						</swiper-item>
+					</swiper>
+					<view class="toptit mb10">{{ite.repairDetails}}</view>
+					<view class="walist"><view class="tit">项目</view>:{{kaType(ite.maintenanceCategory,bxlbList)}}</view>
+					<view class="walist"><view class="tit">报修门户</view>:{{ite.houseAddress}}</view>
+					<view class="walist"><view class="tit">报修时间</view>:{{ite.repairTime}}</view>
+					<!-- <view class="walist" v-if="ite.type==3"><view class="tit" >完成时间</view>:{{ite.completionTime}}</view> -->
+					<view class="btns">
+						<view class="btn btna" v-if="checkPermi(['wuYe:repair:remove'])&&ite.repairStatus<2" @click.stop="getDelFn(ite.repairId)">删除</view>
+						<!-- <view class="btn btnb" v-if="checkPermi(['wuYe:repair:assign'])&&ite.repairStatus==1">指派</view> -->
+					</view>
+				</view>
+				<view class="bxsteps">
+					<uni-collapse ref="collapse" v-model="value">
+						<uni-collapse-item title-border="none">
+								<template v-slot:title>
+									<view class="chtop flexc" >
+										<view class="line"></view>
+										<view>流程记录</view>
+										<view class="flex1"></view>
+										<!-- <image :src="upimg" class="upimg"></image> -->
+									</view>
+								</template>
+								<view class="hfstep">
+									<view class="hfslist flex" v-if="ite.repairStatus>3">
+										<view class="limg flexccc">
+											<image :src="cira" class="imga"></image>
+										</view>
+										<view class="flex1">
+											<view class="hfstit co01">已完成 <text>{{ite.completionTime}}</text></view>
+											<view class="hfstxt">【{{ite.staffName}} {{ite.staffPhone}}】已完成报修业务</view>
+											<view class="hfimgs flexcw">
+												<image :src="cira"></image>
+											</view>
+										</view>
+									</view>
+									<view class="hfslist flex" v-if="ite.repairStatus>2">
+										<view class="limg flexccc">
+											<image :src="cira" class="imga" v-if="ite.repairStatus==3"></image>
+											<image :src="cirb" class="imgb" v-else></image>
+										</view>
+										<view class="flex1">
+											<view class="hfstit">处理中 <text>{{ite.visitTime}}</text></view>
+											<view class="hfstxt">【{{ite.staffName}} {{ite.staffPhone}}】已上门处理中</view>
+										</view>
+									</view>
+									<view class="hfslist flex" v-if="ite.repairStatus>1">
+										<view class="limg flexccc">
+											<image :src="cira" class="imga" v-if="ite.repairStatus==2"></image>
+											<image :src="cirb" class="imgb" v-else></image>
+										</view>
+										<view class="flex1">
+											<view class="hfstit">待上门 <text>{{ite.assignTime}}</text></view>
+											<view class="hfstxt">您的报修申请已派于【{{ite.staffName}} {{ite.staffPhone}}】处理</view>
+										</view>
+									</view>
+									<view class="hfslist flex" >
+										<view class="limg flexccc">
+											<image :src="cira" class="imga" v-if="ite.repairStatus==1"></image>
+											<image :src="cirb" class="imgb" v-else></image>
+										</view>
+										<view class="flex1">
+											<view class="hfstit">待指派 <text>{{ite.repairTime}}</text></view>
+											<view class="hfstxt">您的报修申请已提交,请耐心等待</view>
+										</view>
+									</view>
+								</view>
+							</uni-collapse-item>
+						</uni-collapse>
+				</view>
+			</view>
+		</block>
+		<!-- 报修管理 不需要了-->
+		<block v-if="type=='bxylwarranty'">
 			<view class="walists" v-for="(ite,idx) in datainfo" :key="idx" @click="getPut(ite.repairId,ite.repairStatus)"
 				:data-idx="idx"
 				@touchstart="drawStart" @touchmove="drawMove" @touchend="drawEnd" :style="'right:'+ite.right+'px'"
@@ -13,9 +96,6 @@
 						<view class="watit">
 							<view class="tit">{{ite.repairTitle}}</view>
 							<view class="txt co01":class="{'co01':ite.repairStatus=='1','coa':ite.repairStatus=='3','co28':ite.repairStatus=='3'}">{{kaType(ite.repairStatus,bxztList)}}</view>
-							<!-- <view class="txt co01" v-if="ite.type==1">待分派</view>
-							<view class="txt coa" v-if="ite.type==3">已完成</view>
-							<view class="txt co28" v-if="ite.type==2">处理中</view> -->
 						</view>
 						<!-- <view class="walist"><view class="tit">小区名称</view>:{{ite.communityName}}</view> -->
 						<view class="walist"><view class="tit">项目</view>:{{kaType(ite.maintenanceCategory,bxlbList)}}</view>
@@ -137,8 +217,16 @@
 			return{
 				noiconpimg:require("@/static/images/nodata.png"),
 				rimg:require('@/static/images/rimg.png'),
+				cira:require('@/news/static/complaint/cira.png'),
+				cirb:require('@/news/static/complaint/cirb.png'),
+				upimg:require('@/work/static/manage/up.png'),
 				baseUrl:config.baseUrl,
 				delBtnWidth:66,//左滑默认宽度
+				value:[],
+				autoplay:false,
+				incolorh:'#C0C3C3',
+				activecolorh:'#FFFFFF',
+				indicatorDotsh: true,
 			}
 		},
 		mounted() {
@@ -317,6 +405,52 @@ font-size: 26rpx;color: #272727;display: flex;line-height: 34rpx;
 	.mltit{font-weight: 500;font-size: 26rpx;color: #666666;margin-bottom: 18rpx;}
 	.mltxt{font-weight: bold;font-size: 32rpx;color: #0156FE;}
 }
+//报修步骤条
+.bxlists{background: #FFFFFF;border-radius: 20rpx;margin-bottom: 24rpx;position: relative;
+	.bxtop{padding: 30rpx 24rpx;position: relative;
+		.swiper{width: 100%;height: 280rpx;border: 2rpx solid red;border-radius: 20rpx;box-sizing: border-box;margin-bottom: 28rpx;
+			image{width: 100%;height: 100%;}
+		}
+		.toptit{font-weight: bold;font-size: 28rpx;color: #161616;}
+		.walist{display: flex;font-weight: 500;font-size: 26rpx;color: #666666;margin-bottom: 16rpx;
+			.tit{min-width: 100rpx;text-align-last: justify}
+		}
+		.btns{position: absolute;right: 26rpx;bottom: 20rpx;}
+		.btn{min-width: 120rpx;height: 54rpx;border-radius: 26rpx;font-weight: 500;font-size: 26rpx;text-align: center;line-height: 54rpx;padding: 0 10rpx;box-sizing: border-box; margin-bottom: 14rpx;
+			&.btna{border: 2rpx solid #FF6969;background: #FFF8F8;color: #FF6969;}
+			&.btnb{background: #0256FD;color: #FFFFFF;}
+		}
+	}
+	.bxsteps{border-top: 2rpx solid #E6E6E6;padding: 30rpx 0;
+		.chtop{padding-right: 48rpx;
+				.line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
+				view{font-weight: bold;font-size: 28rpx;color: #272727;}
+				.upimg{width: 22rpx;height: 14rpx;flex: 0 0 auto;margin-left: 12rpx;transform: rotate(180deg);transition: all 0.3s;}
+		}
+		.hfstep{padding: 0 32rpx 30rpx 36rpx;margin-top: 24rpx;
+			.hfslist{padding-bottom: 20rpx;position: relative;
+				&:first-child{
+					.hfstit{color: #0156FE;}
+				}
+				&::before{content: '';position: absolute;left: 14rpx;top:14rpx;height: 100%;width: 2rpx;background: #E6E6E6;}
+				.limg{width: 30rpx;height: 30rpx;margin-right: 22rpx;flex: 0 0 auto;margin-top:3rpx;
+					.imga{width: 30rpx;height: 30rpx;}
+					.imgb{width: 18rpx;height: 18rpx;}
+				}
+				.hfstit{font-weight: bold;font-size: 30rpx;color: #666666;line-height: 36rpx;margin-bottom: 20rpx;
+					text{font-size: 26rpx;margin-left: 12rpx;}
+				}
+				.hfstxt{font-weight: 500;font-size: 26rpx;color: #666666;line-height: 36rpx;margin-bottom: 20rpx;}
+				.hfimgs{padding-top: 2rpx;
+					image{width: 84rpx;height: 84rpx;border-radius: 20rpx;margin-right: 40rpx;margin-bottom: 10rpx;}
+				}
+			}
+		}
+	}
+}
+.bxlists /deep/ .uni-swiper-dots-horizontal{left: 26rpx;transform: translate(0);}
+.bxlists /deep/ .uni-swiper-dot{width: 10rpx;height: 10rpx;}
+.bxlists /deep/ .uni-swiper-dot-active{width: 24rpx;height: 10rpx;}
 // 无数据
 .nodata{display: flex;flex-direction: column;align-items: center;
 	image{width: 440rpx;height: 440rpx;}

+ 6 - 4
user_ui/work/pages/service/warranty.vue

@@ -50,7 +50,8 @@
 				reachflag: true,
 				wtdt:'',
 				tabval:'-1',
-				tablist:[{tit:'全部报修',val:-1}],
+				// tablist:[{tit:'全部报修',val:-1}],
+				tablist:[],
 				bxztList:[],
 				bxlbList:[],
 				userId:this.$store.state.user.userId,
@@ -86,6 +87,7 @@
 								val: v.dictValue
 							}
 							this.tablist.push(obj)
+							this.tabval=res.data[0].dictValue;
 							return {
 								dictLabel: v.dictLabel,
 								dictValue: v.dictValue
@@ -176,9 +178,9 @@
 							}
 						}
 						var newArr=JSON.parse(JSON.stringify(res.rows))
-						newArr.forEach(ite=>{
-							ite.right=0;
-						})
+						// newArr.forEach(ite=>{
+						// 	ite.right=0;
+						// })
 						if (this.pageNum == 1) {
 							this.list = newArr;
 						} else {

+ 16 - 8
user_ui/work/pages/service/warrantyadd.vue

@@ -16,12 +16,12 @@
 							</view>
 						</picker>
 					</uni-forms-item>
-					<uni-forms-item label="标题" required  name="repairTitle">
+					<!-- <uni-forms-item label="标题" required  name="repairTitle">
 						<view class="flexc">
 							<uni-easyinput :disabled="isdisabled" v-model="datainfo.repairTitle" :inputBorder='false' placeholder="请输入报修标题" />
 							<view class="rimg"></view>
 						</view>
-					</uni-forms-item>
+					</uni-forms-item> -->
 					<uni-forms-item label="报修门户" name="portalId">
 						<w-select
 						      style="margin-left: 20rpx;" 
@@ -29,7 +29,9 @@
 						      :list='fwlist'
 						      valueName='label' 
 						      keyName="value"
-							  :chosevalue="datainfo.houseAddress"
+							  :showClose='showClose'
+							  :value='datainfo.houseAddress'
+							  :chosevalue='datainfo.houseAddress'
 							  :filterable='filterable'
 						      @change='getchange'
 						    >
@@ -102,7 +104,7 @@
 					 "portalId":"",//门户id
 					 "houseAddress":"",//详细门牌号
 					 "repairTime":"",//报修时间
-					 "phoneNumber":"",//报修用户手机号码
+					 "phoneNumber":this.$store.state.user.phonenumber,//报修用户手机号码
 					 "repairTitle":"",//报修标题
 					 "maintenanceCategory":"",//报修类别
 					 "repairDetails":"",//报修详情
@@ -110,6 +112,7 @@
 				},
 				checkflag:true,
 				baseUrl:config.baseUrl,
+				showClose:true,
 				tabval:'0',
 				phofile:[],
 				bxlbList:[],
@@ -122,6 +125,7 @@
 				chooseValue:'',
 				filterable:true,
 				userId:this.$store.state.user.userId,
+				phonenumber:this.$store.state.user.phonenumber,
 				voiceflag:false,
 			}
 		},
@@ -130,6 +134,7 @@
 			if(e.id){
 				this.id=e.id;
 				this.ptype='edit';
+				this.datainfo.phonenumber=''
 				// this.isdisabled=true;
 				this.getDetailFn()
 			}
@@ -192,6 +197,9 @@
 								location: v.location
 							}
 						})
+						if(this.ptype=='add'&&res.rows&&res.rows.length){
+							this.datainfo.houseAddress=res.rows[0].detailedAddress
+						}
 					}
 				})
 			},
@@ -293,10 +301,10 @@
 						this.$toast('请选择项目')
 						return
 					}
-					if(!params.repairTitle){
-						this.$toast('请输入标题')
-						return
-					}
+					// if(!params.repairTitle){
+					// 	this.$toast('请输入标题')
+					// 	return
+					// }
 					if(!params.houseAddress){
 						this.$toast('请选择报修门户')
 						return

+ 95 - 11
user_ui/work/pages/visitor/vadd.vue

@@ -1,6 +1,28 @@
 <template>
 	<view class="check">
 		<uni-forms ref="form" :model="datainfo" :rules="rules">
+			<view class="cbox" style="padding-bottom: 24rpx;">
+				<view class="chtop flexc" @click="zhanflag=!zhanflag">
+					<view class="line"></view>
+					<view>常用访客</view>
+					<view class="flex1"></view>
+					<image :src="upimg" class="upimg" :class="zhanflag?'act':''"></image>
+				</view>
+				<view class="peobox flexc" v-if="zhanflag">
+					<view class="plists flexcc">
+						<view class="tit overtwo">爷爷奶奶</view>
+						<view class="addimg flexcc">
+							<image :src="addimg"></image>
+						</view>
+					</view>
+					<view class="plists flexcc">
+						<view class="tit overtwo">王一</view>
+						<view class="addimg flexcc">
+							<image :src="addimg"></image>
+						</view>
+					</view>
+				</view>
+			</view>
 			<view class="cbox">
 				<view class="chtop flexc">
 					<view class="line"></view>
@@ -16,7 +38,11 @@
 					</uni-forms-item>
 					<uni-forms-item label="来访人数" name="num">
 						<view class="flexc">
-							<uni-easyinput :disabled="isdisabled" v-model="datainfo.num" type="Number" :inputBorder='false' placeholder="请输入来访人数" />
+							<!-- <uni-easyinput :disabled="isdisabled" v-model="datainfo.num" type="Number" :inputBorder='false' placeholder="请输入来访人数" /> -->
+							<view class="flex1"></view>
+							<view class="libox flexcw rslist">
+								<view class="sylist flexcc" :class="rsidx==ite.value?'act':''" v-for="(ite,idx) in rslist" :key="idx" @click="getRsFn(ite)">{{ite.label}}</view>
+							</view>
 							<view class="rimg"><image :src="rimg"></image></view>
 						</view>
 					</uni-forms-item>
@@ -34,8 +60,10 @@
 						</picker> -->
 					</uni-forms-item>
 					<uni-forms-item label="来访事由" name="reason">
-						<view class="flexc">
-							<uni-easyinput  :disabled="isdisabled" v-model="datainfo.reason" :inputBorder='false' placeholder="请输入来访事由" />
+						<view class="flexc ">
+							<view class="flex1"></view>
+							<view class="sylist flexcc" :class="syidx==ite.value?'act':''" v-for="(ite,idx) in sylist" :key="idx" @click="getSyFn(ite.value)">{{ite.label}}</view>
+							<!-- <uni-easyinput  :disabled="isdisabled" v-model="datainfo.reason" :inputBorder='false' placeholder="请输入来访事由" /> -->
 							<view class="rimg"><image :src="rimg"></image></view>
 							<!-- <picker range-key='dictLabel' :value="syqxidx" :range="sexs"   @change='bindDateChange'>
 								<view class="rimg"><image :src="rimg"></image></view>
@@ -70,7 +98,7 @@
 							<image :src="ncheck" v-else class="checkimg"></image>
 						</view>
 					</uni-forms-item>
-					<uni-forms-item label="车牌号码" name="plateNumber">
+					<uni-forms-item label="车牌号码" name="plateNumber" v-if="datainfo.isCar=='Y'">
 						<view class="flexc">
 							<!-- disabled -->
 							<uni-easyinput :disabled="isdisabled" v-model="datainfo.plateNumber" :inputBorder='false' placeholder="请输入车牌号" />
@@ -92,7 +120,8 @@
 				</view>
 			</view>
 		</uni-forms>
-		<view class="pdlr12 mt63">
+		<view class="pdlr12 mt34">
+			<view class="rhbtnw mb20" @click="getVisAdd">设为常用访客</view>
 			<view class="rhbtn" @click="getEditFn" v-if="isdisabled">修改</view>
 			<view class="rhbtn" @click="getSubmit" v-else>确定</view>
 		</view>
@@ -114,6 +143,8 @@
 			return {
 				rimg: require('@/static/images/rimg.png'),
 				aphoto: require('@/work/static/visitor/aphoto.png'),
+				upimg: require('@/work/static/manage/up.png'),
+				addimg: require('@/work/static/manage/add.png'),
 				check: require('@/mine/static/check.png'),
 				ncheck: require('@/mine/static/ncheck.png'),
 				baseUrl: config.baseUrl,
@@ -149,9 +180,14 @@
 				chooseValue:'',
 				fwlist:[],
 				id:'',
+				zhanflag:false,
 				isdisabled:false,
 				ptype:'add',
 				userId:this.$store.state.user.userId,
+				syidx:'',
+				rsidx:'',
+				sylist:[{label:'其他',value:'1'},{label:'拜访',value:'2'},{label:'办事',value:'3'}],
+				rslist:[{label:'1',value:'1'},{label:'2',value:'2'},{label:'3',value:'3'},{label:'4',value:'4'},{label:'5',value:'5'},{label:'6',value:'6'},{label:'7',value:'7'},{label:'8',value:'8'},{label:'9',value:'9'},{label:'10及以上',value:'10'}]
 			}
 		},
 		onLoad: function(e) {
@@ -162,6 +198,9 @@
 				this.getDetail()
 			}
 			this.init()
+			if(this.ptype=='add'){
+				this.time()
+			}
 		},
 		methods: {
 			checkPermi,
@@ -171,6 +210,27 @@
 			},
 			changeLog(){
 				
+			},
+			time() {
+				var date = new Date();
+				var y = date.getFullYear();
+				var m = date.getMonth() + 1;
+				var d = date.getDate();
+				var h = date.getHours();
+				var min = date.getMinutes();
+				var s = date.getSeconds();
+				var yearStr = y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d)
+				// var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
+				// 	'0' + s) : s);
+				// var kaTime = yearStr + ' ' + timeStr;
+				this.datainfo.visitorTime=yearStr
+			},
+			getSyFn(e){
+				this.syidx=e
+			},
+			getRsFn(e){
+				this.rsidx=e.value;
+				this.datainfo.num=e.label;
 			},
 			init(){
 				// 自己的房屋
@@ -229,10 +289,13 @@
 						this.$toast("请选择来访时间")
 						return
 					}
-					var lng = '117.211954';
-					var lat = '31.839676';
-					params.lgt=lng;
-					params.lat=lat;
+					// var lng = '117.211954';
+					// var lat = '31.839676';
+					// params.lgt=lng;
+					// params.lat=lat;
+					if(params.isCar!='Y'){
+						params.plateNumber=''
+					}
 					if(this.ptype=='add'){
 						reservAdd(params).then(res=>{
 							if(res.code==200){
@@ -375,8 +438,11 @@
 .check{min-height: 100vh;padding: 20rpx 18rpx 24rpx;box-sizing: border-box;}
 .cbox{background: #FFFFFF;border-radius: 20rpx;flex: 1;margin-bottom: 24rpx;
 	.chtop{padding-top: 32rpx;margin-bottom: 8rpx;
-		image{width: 14rpx;height: 48rpx;margin-right: 20rpx;}
+		// image{width: 14rpx;height: 48rpx;margin-right: 20rpx;}
 		view{font-weight: bold;font-size: 32rpx;color: #272727;}
+		.upimg{width: 22rpx;height: 14rpx;margin-right: 36rpx;transform: rotate(180deg);transition: all 0.3s;
+			&.act{transform: rotate(0deg);}
+		}
 	}
 	.chmain{
 		padding: 0 32rpx;
@@ -393,7 +459,25 @@
 			image{width: 40rpx;height: 38rpx;}
 		}
 	}
-	
+	.peobox{padding:24rpx 16rpx 0;
+		.plists{position: relative;background: #EEF4FF;position: relative;
+border-radius: 50%;width: 94rpx;height: 94rpx;margin: 0 20rpx 20rpx;padding: 4rpx;box-sizing: border-box;
+			.tit{font-weight: 500;font-size: 22rpx;color: #0256FD;}
+			.addimg{width: 36rpx;height: 36rpx;background: #FFFFFF;box-shadow: 0px 3px 5px 0px rgba(147,147,147,0.35);border-radius: 50%;position: absolute;bottom: -4rpx;right: 4rpx;
+				image{width: 18rpx;height: 18rpx;}
+			}
+}
+	}
+}
+.libox{
+	&.rslist{
+		.sylist{min-width:40rpx;height: 40rpx;margin-left: 14rpx;margin-top: 14rpx;}
+	}
+}
+.sylist{background: #F0F0F0;border-radius: 26rpx;border:2rpx solid #DADADA;margin-left: 26rpx;font-weight: 500;min-width:112rpx;height: 54rpx;box-sizing: border-box;
+font-size: 26rpx;
+color: #666666;
+	&.act{border: 2rpx solid #0256FD;background: #DCE8FF;color: #0256FD;}
 }
 .line{width: 14rpx;height: 48rpx;background: #0256FD;border-radius:0 12rpx 12rpx 0;margin-right: 18rpx;}
 .tips{font-weight: 500;font-size: 22rpx;color: #0256FD;padding: 20rpx 0;}

BIN
user_ui/work/static/manage/add.png


BIN
user_ui/work/static/manage/up.png